„Szabályozástechnika - Diszkrétidejű állapotteres szabályozók tervezése” változatai közötti eltérés

David14 (vitalap | szerkesztései)
Szikszayl (vitalap | szerkesztései)
aNincs szerkesztési összefoglaló
 
(2 közbenső módosítás, amit egy másik szerkesztő végzett, nincs mutatva)
234. sor: 234. sor:


<syntaxhighlight lang="matlab" style="font-size: 140%;">
<syntaxhighlight lang="matlab" style="font-size: 140%;">
% Tegyük fel, hogy a bemenetre rárakódik egy szakaszosan hosszú ideig konstans zaj. Az állapotmegfigyelővel
% ezt is becsülni tudjuk és ezt a becsült értéket kivonhatjuk a bemenetből (beavatkozó jelből), így
% kompenzálhatjuk a zavarás hatását. Ezt úgy oldjuk meg, hogy a zajt egy új állapotváltozónak (xd) tekintjük.
% Mivel a zaj szakaszosan hosszú ideig konstans, ezért xd[k+1]=xd[k], a bemenettől pedig független, ezért a
% differenciaegyenlete: xd[k+1] = 0*x[k] + xd[k] + 0*u[k]. Viszont a többi változó differenciaegyenletébe már
% beleszól az xd zavarást modellező fiktív állapotváltozó, méghozzá a Gamma bemeneti mátrixon keresztül:
% x[k+1] = Phi*x[k] + Gamma*( xd[k]+u[k] )
% Tehát a kibővített rendszerünk állapotegyenletei:
%
% ( x[k+1]  )  ( Phi  Gamma )  ( x[k]  )  ( Gamma )
% ( xd[k+1] ) = (  0      1  ) * ( xd[k] ) + (  0  ) * u[k]
%
%                          ( x[k]  )
%    y[k]    = ( C  0 ) * ( xd[k] )
%
% Új jelöléseket bevezetve a kibővített rendszerünk állapotegyenletei:
%
% xtilde[k+1] = Phitilde * xtilde[k] + Gammatilde * u[k]
%    y[k]    = Ctilde  * xtilde[k]
%
% Tehát az állapotmegfigyelőnket most ehhez a kibővített "tilde" rendszerhez kell megterveznünk.
% A módosult állapotmegfigyelő differenciaegyenlete a hatásvázlatról leolvasható!
% Az terhelésbecslővel kiegészített szabályzó hatásvázlata:
% Az terhelésbecslővel kiegészített szabályzó hatásvázlata:
</syntaxhighlight>
</syntaxhighlight>
243. sor: 266. sor:
% A kibővített rendszer mátrixai
% A kibővített rendszer mátrixai
Phitilde=[Phi Gamma; 0 0 1]; % n darab nulla és fixen 1 darab egyes (SISO)
Phitilde=[Phi Gamma; 0 0 1]; % n darab nulla és fixen 1 darab egyes (SISO)
Gammatilde=[Gamma;0]; % Fixen 1 darab nulla a végére (SISO)
Gammatilde=[Gamma;0];       % Fixen 1 darab nulla a végére (SISO)
Ctilde=[C 0]; % Fixen 1 darab nulla a végére (SISO)
Ctilde=[C 0];               % Fixen 1 darab nulla a végére (SISO)


% A megfigyelő sajátértékeit tartalmazó vektorban soinf most egyel nagyobb
% A megfigyelő sajátértékeit tartalmazó vektorban zoinf most egyel nagyobb
% multiplicitással szerepel, hiszen felvettünk egy új (fiktív) állapotot
% multiplicitással szerepel (n+1), hiszen felvettünk egy új (fiktív) állapotot
phiotilde=[zoinf zoinf zoinf];
phiotilde=[zoinf zoinf zoinf];


258. sor: 281. sor:
% A megfelelő Simulink-modell megnyitása
% A megfelelő Simulink-modell megnyitása
open('discrete_4');
open('discrete_4');
% t=10 secnél egy egységugrás jellegű zavarás adódik a szakasz bemenetére.
% A modellben a K,Nu és Nx paraméterek ugyanazok, mint amiket korábban meghatároztunk.
% FONTOS: A Simulink alapból 10 secundumig számol, szóval ezt az időt át kell írni 20-ra az ablak tetején!


% Várakozás billentyűlenyomásra
% Várakozás billentyűlenyomásra
268. sor: 294. sor:


<syntaxhighlight lang="matlab" style="font-size: 140%;">
<syntaxhighlight lang="matlab" style="font-size: 140%;">
% Az integráló szabályzó célja a zavarelnyomás és a paraméterbizonytalanságok kiküszöbölése. Ezt úgy érjük el,
% hogy új állapotként felvesszük a kimenet integrálját: xI = integrál (0->t) y(tau) dtau
% Ebből a baloldali téglalap szabályt (LSR) alkalmazva: xI[k+1] = xI[k] + T*y[k] = xI[k] + T*C*x[k]
% Ezzel már felírhatók a kibővített rendszer állapotegyenletei:
%
% ( x[k+1]  )  ( Phi  0 )  ( x[k]  )  ( Gamma )
% ( xIfk+1] ) = ( T*C  1 ) * ( xI[k] ) + (  0  ) * u[k]
%
%                            ( x[k]  )
%    y[k]    = ( C  0 )  * ( xI[k] )
%
% Új jelöléseket bevezetve a kibővített rendszerünk állapotegyenletei:
%
% xi[k+1] = Phii * xi[k] + Gammai * u[k]
%  y[k]  = Ci  * xi[k]
%
% Most ehhez a kibővített rendszerhez kell egy új Ktilde = [Kt Ki] állapot-visszacsatolást megterveznünk.
% Az integráló hatást is tartalmazó szabályzó hatásvázlata:
% Az integráló hatást is tartalmazó szabályzó hatásvázlata:
</syntaxhighlight>
</syntaxhighlight>
276. sor: 320. sor:


% A kibővített rendszer mátrixai
% A kibővített rendszer mátrixai
% n*1-es nullmátrix, a végén fixen 1 darab egyes (SISO)
Phii=[Phi zeros(2,1);C*Ts 1]; % Az első sorban n*1-es nullmátrix
Phii=[Phi zeros(2,1);C*Ts 1];
                              % A második sorban fixen 1 darab nulla (SISO)
Gammai=[Gamma;0];
Gammai=[Gamma;0];             % Fixen 1 darab nulla a végére


% Az integrátor állapotának s=-3-nak megfelelő sajátértéket írunk elő
% Az integrátor állapotának s = -3 folytonosidejű pólusnak megfelelő sajátértéket írunk elő
phictilde=[zdom1 zdom2 exp(-3*Ts)];
phictilde=[zdom1 zdom2 exp(-3*Ts)];


287. sor: 331. sor:


% Az állapotvisszacsatolás vektorának felbontása
% Az állapotvisszacsatolás vektorának felbontása
Kt=Ktilde(1:2); % Annyi eleme van, ahány valódi állapotunk
Kt=Ktilde(1:2); % Annyi eleme van, ahány valódi állapotunk (n)
Ki=Ktilde(3);  % Skalár  
Ki=Ktilde(3);  % Skalár  


% A megfelelő Simulink-modell megnyitása
% A megfelelő Simulink-modell megnyitása
open('discrete_5');
open('discrete_5');
% Ebben nincs terhelésbecslő, hiszen mind a terhelésbecslő, mind
% Vigyázat ez itt a terhelésbecslő nélküli modell továbbfejlesztése.
% az integrátor zavarelnyomási célokat szolgál, így a kettő együtt felesleges
% Az integráló szabályozás is a bemenetre szuperponálódott zavarjelek kiküszöbölésére való.
% Itt Nu helyett egy Ki erősítés van és egy integrátor, valamint K helyett Kt !!!


% Várakozás billentyűlenyomásra
% Várakozás billentyűlenyomásra
301. sor: 346. sor:
</syntaxhighlight>
</syntaxhighlight>


[[Category:Villanyalap]]
[[Kategória:Villamosmérnök]]