SzabTechVizsga20070614

A VIK Wikiből

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


1. Feladat

Egy folyamat átviteli függvénye:

  1. Tervezzen soros PID szabályzót úgy, hogy a zárt rendszer viselkedése tegyen eleget a következő feltételeknek.
    • Egységugrás bemeneti jelet stacionárius állapotban hiba nélkül kövesse. Határozza meg a szabályzó átviteli függvényét és annak paramétereit.
    • A szabályzó póluseltolási aránya legyen pk = 4.
    • A fázistöbblet legyen 60°
  1. Adja meg a rendszer fázistöbbletét, kimeneti túllövését, és a vágási körfekvenciát. Egységugrás alapjel esetén ábrázolja a kimenőjel viselkedését és adja meg beavatkozójel maximumát és végértékét.

Megoldás

A C(s) szabályzó függvény:

MATLAB kód a megoldáshoz:

clear;
s = zpk('s');

P = (2 / ((1+0.5*s)*(1+2*s)*(1+2*s)));
C = ((1+2*s)*(1+2*s))/(2*s*(1+0.5*s));
L = minreal(P * C);

[mag, phase, w] = bode(C * P);

%kc erositesi tenyo kiszamitasa a 60 fokos fazistobblethez
kc = margin(mag, phase - 60 , w); % korerosites meghatarozasa a stabilitashoz
disp('A korerosites erteke: ');
disp(kc);
C = kc * C;
T = feedback(C * P, 1);			% eredo atviteli fuggveny
U = feedback(C, P);				 % u beavatkozo jel

figure(1),step(T,'b'); % kimenojel az egysegugrasra
figure(2),step(U,'b'); % beavatkozojel az egysegugrasra
figure(3),margin(C*P); % szabalyoztt rendszer Bode diagramja

y	 = step(T);
ys	= dcgain(T); %
es	= 1-ys; % egysegugrasra adott statikus hiba
yt	= (max(y)-ys)/ys; % szazalekos tullendules
disp('A tullendules szazalekban: ');
disp(100*yt);
u	 = step(U);
umax = max(u); %u beavatkozo jel maximalis erteke;
disp('Az u jel maximalis erteke:');
disp(umax);

[gm,pm, wg, wc] = margin(C*P);
disp('A vagasi korfrekvencia: ');
disp(wc);
disp('A fazistobblet: ');
disp(pm);

2. Feladat

Egy folyamat átviteli függvénye:

Tervezzen soros mintavételes szabályzót a végesbeállás módszerével a mintavételi pontok közötti lengés elkerülésével. A mintavételezési idő Ts = 1. A beavatkozójel maximuma legyen kisebb mint 3.

  1. Zérusrendű tartószerv esetén adja meg a folyamat G(z) impulzusátviteli függvényét zérus-pólus alakban.
  2. Adja meg a szabályzó impulzusátviteli függvényét zérus-pólus alakban.
  3. Vázolja fel a szabályzott rendszer kimenőjelének és beavatkozójelének viselkedését egységugrás alapjelre.

Megoldás

MATLAB kód a feladat megoldásához:

clear;
Ts = 1;
s = zpk('s');
z = zpk('z', Ts);

Ps = 5 / ((1+s)*(1+4*s))

Gz = c2d(Ps, Ts)

[zp, pp, kp] = zpkdata(Ps, 'v') % zerus, polus
[zg, pg, kg] = zpkdata(Gz, 'v') % zerus, polus

Bm = (z-Gz.z{1})
Bmn = Bm/dcgain(Bm)
Tz = Bmn/(z^2)
Cz = Tz / (Gz*(1-Tz))
Cz = minreal(Cz) % a szabalyzo fuggveny

U = feedback(Cz, Gz)
u	 = step(U);
umax = max(u); %u beavatkozo jel maximalis erteke;
disp('Az u jel maximalis erteke:');
disp(umax);

T = feedback(Cz * Gz, 1);			% eredo atviteli fuggveny


figure(1),step(T,'b'); % kimenojel az egysegugrasra
figure(2),step(U,'b'); % beavatkozojel az egysegugrasra

3. Feladat

Egy folytonos rendszer állapotmodelljének paraméterei a következők:

  1. Irányítható-e és megfigyelhető-e a rendszer?
  2. Írja fel a rendszer kanonikus (diagonális) reprezentációját!
  3. Határozza meg a rendszer átviteli függvényét!
  4. Határozza meg az állapotvisszacsatolási erősítést (k vektort) és a bemeneti erősítési kompenzációs tényezőt (G), amely mellett az állapotvisszacsatolt rendszer átviteli függvénye,


Megoldás

A rendszer irányítható, de nem megfigyelhető.

MATLAB parancsok a megoldáshoz:

clear;
s = zpk('s');

a = [-16 -79 -120 0; 1 0 0 0; 0 1 0 0; 0 0 1 0]
b = [1; 0; 0; 0]
c = [0 1 4 3]
d = 0


%kanonikus alak
[ap, bp, cp, dp] = canon(a,b,c,d, 'modal')

% ha kisebb mint ami maximalisan lehetne, akkor nem teljesul
rank(ctrb(ap,bp)) % iranyithatosag
rank(obsv(ap,cp)) % megfigyelhetoseg

%atviteli fuggveny
H  = ss(a,b,c,d);
Hs = zpk(H) % atviteli fuggveny
[zr, pr, kr] = zpkdata(Hs, 'v') % a rendszer polusai
[zh, ph, kh] = zpkdata(minreal(Hs), 'v') % az atviteli fv polusai

T = 1/((s+10)*(s+10)*(s*s+1.4*+s)) % allapotvisszacsatolt atviteli fv
[zt, pt, kt] = zpkdata(T, 'v'); % polusai amibe eltolunk
k = acker(a, b, pt) % keresett k vektor