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:
- 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°
- 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.
- Zérusrendű tartószerv esetén adja meg a folyamat G(z) impulzusátviteli függvényét zérus-pólus alakban.
- Adja meg a szabályzó impulzusátviteli függvényét zérus-pólus alakban.
- 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:
- Irányítható-e és megfigyelhető-e a rendszer?
- Írja fel a rendszer kanonikus (diagonális) reprezentációját!
- Határozza meg a rendszer átviteli függvényét!
- 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