„Szabályozástechnika - Szakasz megadása” változatai közötti eltérés
| 107. sor: | 107. sor: | ||
wp_zpk=zpk(wp) | wp_zpk=zpk(wp) | ||
</syntaxhighlight> | |||
== Szakasz állapotteres leírásának megadása az átviteli függvényből == | |||
<syntaxhighlight lang="matlab" style="font-size: 140%;"> | |||
% Elsősorban ajánlom figyelmetekbe az 1. gyakorlat 16. ellenőrző kérdésének kidolgozását ;) | |||
% Adott a szakasz átviteli függvénye: | |||
% | |||
% 1 | |||
% w(s) = --------- | |||
% s^2 + 1 | |||
% | |||
% Adjuk meg a szakasz állapotváltozós leírásának normál alakját az x = [y y']' | |||
% állapotváltozó választás mellett! | |||
% | |||
% Először vezessünk be új változókat a könnyebb írhatóság végett: x1 = y és x2 = y' | |||
% Az állapotváltozós leírás normál alakjához n+1 egyenletre van szükségünk (x1', x2' és y) | |||
% Az első egyenlet kapásból látszik az állapotváltozó választásból: x1' = x2 | |||
% A harmadik egyenlet szintén egyszerűen adódik, hiszen: y = x1 | |||
% A második egyenlethez pedig csináljuk ugyanazt, mint az előző feladatban, csak pont visszafelé: | |||
% 1 Y(s) | |||
% w(s) = --------- = ------ -----> Y(s) * (s^2 +1) = U(s) | |||
% s^2 + 1 U(s) | |||
% | |||
% s^2*Y(s) + Y(s) = U(s) | |||
% | |||
% s*( s*Y(s) ) + Y(s) = U(s) | |||
% | |||
% Most végezzük el az inverz-Laplace transzformációt, az ismert tételeket felhasználva ( s*Y(s) = y' ) | |||
% | |||
% y'' + y = u -----> (y')' + y = u -----> x2' + x1 = u -----> x2' = -x1 + u | |||
% | |||
% Tehát összegezve: | |||
% | |||
% x1' = x2 | |||
% x2' = -x1 + u | |||
% y = x1 | |||
% | |||
% Ezekből az első feladat alapján már felírhatóak a mátrixok: | |||
% | |||
% ( 0 1 ) ( 0 ) | |||
% A = ( -1 0 ) B = ( 1 ) | |||
% | |||
% C = ( 1 0 ) D = ( 0 ) | |||
% | |||
% Innét már könnyen megadhatóak a mátrixok a Matlab-nak: | |||
A=[0 1; -1 0] | |||
B=[0 1]' | |||
C=[1 0] | |||
D=[0] | |||
% Ezekből előállítható a szakasz állapotteres leírása: | |||
sys=ss(A,B,C,D) | |||
% Ebből pedig ellenőrzésképpen a szakasz átviteli függvénye: | |||
wp=tf(sys) | |||
% FIGYELEM: Az ROSSZ megoldás, hogyha először bevisszük Matlab-ba az átviteli függvényt, | |||
% majd abból csinálunk Matlab-ban állapotteres leírást! | |||
% A Matlab ugyanis tf -> ss áttérés esetén mindig irányíthatósági lépcsős alakban adja meg a rendszert! | |||
% Tudvalevő, hogy egy rendszer állapotváltozóinak sorrendje az állapotváltozó vektorban tetszőleges lehet, | |||
% csupán az A,B,C mátrixok különböznek, ettől még mindig ugyanazt a rendszert írják le. | |||
% A rendszernek viszont csak egyetlen átviteli függvénye van, így ss -> tf áttérés esetén mindig ugyanazt | |||
% az eredményt kapjuk. Ha tehát mi tf -> ss áttéréssel oldjuk meg a feladatot, rossz eredményre jutunk, | |||
% mivel az irányíthatósági lépcsős alakban x = [y' y]' az állapotváltozó vektor! | |||
% Innentől pedig kinulláztuk a 25 pontot, mivel minden numerikus eredményünk rossz lesz! | |||
% | |||
% Példaképpen nézzük meg mit is kapnánk a ROSSZ módszerrel: | |||
wp=tf(1,[1 0 1]) | |||
sys=ss(wp) | |||
% Látható, hogy az A mátrix traszponálódott, a B és C mátrixok elemei pedig felcserélődtek. | |||