„SzabtechLabZH” változatai közötti eltérés
pre tag, br tagek eltávolítása, felesleges |
feladatsor feltöltése (köszi, Papp Krisztián, hogy elküldted), belinkelése |
||
| (42 közbenső módosítás ugyanattól a felhasználótól nincs mutatva) | |||
| 1. sor: | 1. sor: | ||
{{GlobalTemplate|Infoalap|SzabtechLabZH}} | {{GlobalTemplate|Infoalap|SzabtechLabZH}} | ||
{{Vissza|Szabályozástechnika_(info)}} | |||
== Gyakorló feladatok a laborZH-hoz, 2007. ősz == | |||
[ | |||
EREDETI FELADATSOR: [[Média:Szabtech_LaborZH_2007_osz_gyakorlo_feladatok_zh3.pdf|LaborZH 2007. ősz, gyakorló feladatok]] (Megoldása: [[Média:Szabtech_LaborZH_2007_osz_gyakorlo_feladatok_zh3_megoldasok.doc|LaborZH 2007. ősz, gyakorló feladatok - MEGOLDÁS]]) | |||
Itt van pár feladat, amihez tök jó volna ha összehoznánk a megoldásokat, mert pl. az 1. zh-hoz kiadott pdf-ből is válogattak a zh-ba, lehet hogy itt is van erre esély, másrészt meg gyakorolni mindenképp jó. Köszi :) | Itt van pár feladat, amihez tök jó volna ha összehoznánk a megoldásokat, mert pl. az 1. zh-hoz kiadott pdf-ből is válogattak a zh-ba, lehet hogy itt is van erre esély, másrészt meg gyakorolni mindenképp jó. Köszi :) | ||
| 12. sor: | 13. sor: | ||
Felelősséget nem vállalok semmiért, nem értek hozzá, lehet hogy komplett hülyeség, aki nagyon vágja, az lecserélheti akár a komplett kódot is.... | Felelősséget nem vállalok semmiért, nem értek hozzá, lehet hogy komplett hülyeség, aki nagyon vágja, az lecserélheti akár a komplett kódot is.... | ||
===1. feladat=== | |||
==== Tervezze meg a C(s) soros szabályozót úgy, hogy a fázistartalék 60° legyen! ==== | |||
'''Matlab:''' (copy-paste Matlabba) | '''Matlab:''' (copy-paste Matlabba, magyarázat [http://info.site.hu/document.php?cmd=download_proc&tmp_page=&doc_id=8387 ez] /7. fejezet alapján) | ||
s=zpk('s'); %szokásos | |||
s=zpk('s'); | P=1/((10+s)*(5+s)*(2+s)); %átviteli függvény megadása | ||
P=1/((10+s)*(5+s)*(2+s)); | kc=1; %kezdeti érték | ||
kc=1; | C=kc*(1+0.5*s)/s; %PI szabályzó átviteli függvénye alapján, nézz utána | ||
C=kc*(1+0.5*s)/s; | L=C*P; | ||
L=C*P; | margin(L) %felnyitott kör Bode-diagrammja, fázis- és erősítési tartalék, látszik, hogy van még neki:) | ||
margin(L) | figure(2) | ||
figure(2) | [mag, phase, w]=bode(L); | ||
[mag, phase, w]=bode(L); | gm=margin(mag,phase-60,w);%őő izé, doksi:) | ||
gm=margin(mag,phase-60,w); | kc=gm; | ||
kc=gm; | C=kc*(1+0.5*s)/s; %behelyettesítjük a megkapott erősítési tényezőt | ||
C=kc*(1+0.5*s)/s; | L=kc*L; | ||
L=kc*L; | margin(L) %láss csodát, fázistartalék=60.1° | ||
margin(L) | [gm,pm,wg,wc]=margin(L); | ||
[gm,pm,wg,wc]=margin(L); | margin(L) | ||
margin(L) | |||
http://i.imgur.com/ciWCWbW.png | |||
http://i.imgur.com/KAdgP0h.png | |||
==== a/ Adja meg a megtervezett PI szabályzó átviteli függvényét: ==== | |||
''' | '''Matlab:''' | ||
C | |||
(vagyis beírod a fentiek után, hogy "C", és pont azt írja ki) | |||
Zero/pole/gain: | |||
96.9722 (s+2) | |||
------------- | |||
s | |||
==== b/ Adja meg a zárt rendszer átviteli függvényének domináns póluspárját ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
T=feedback(L,1) %a zárt rendszer átviteli függvénye | |||
T=feedback(L,1) | pole(T) %dom. pp.= az imag. tengelyhez legközelebb eső komplex konjugált póluspár, a parancs egyértelműen kiadja | ||
pole(T) | |||
Zero/pole/gain: | |||
96.9722 (s+2) | |||
-------------------------------------- | |||
(s+11.35) (s+2) (s^2 + 3.653s + 8.546) | |||
ans = | |||
-11.3466 | |||
-1.8267 + 2.2824i | |||
-1.8267 - 2.2824i | |||
-2.0000 | |||
==== c/ Adja meg a zárt rendszer átmeneti függvényének százalékos túllendülését ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
t=0:0.05:10; | |||
t=0:0.05:10; | y=step(T,t) %átmeneti függvény kiszámítása | ||
y=step(T,t) | ys=dcgain(T) %állandósult érték kiszámítása | ||
ys=dcgain(T) | ym=max(y) %maximális érték | ||
ym=max(y) | yt=((ym-ys)/ys)*100 %túllendülés százalékban | ||
yt=((ym-ys)/ys)*100 | |||
Eredmény: | |||
yt = | |||
7.7553 | |||
==== d/ Egység-sebességugrás alapjel esetén adja meg a zárt rendszer állandósult állapotbeli hibáját ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
Egység- | Egység-'''sebességugrás''' alapjel esetén mivel ebben egy integrátor van, a zárt rendszer állandósult állapotbeli hibája <sup>1</sup>/<sub>K</sub> lesz. | ||
Tankönyv 140. old. | Tankönyv 140. old. | ||
Az | Az egységugrás-jelet valóban 0 statikus hibával követi, és az meghatározható az <code>es=1-ys</code> matlab kóddal, de nem az volt a feladat. | ||
==== e/ Egység-sebességugrás alapjelet feltételezve írja fel a zárt rendszer kimenőjelének analitikus kifejezését állandósult állapotban ==== | |||
hint: | hint: | ||
| 99. sor: | 102. sor: | ||
tehát konkrét adatokkal: | tehát konkrét adatokkal: | ||
y(t->inf) = lim(s-> | y(t->inf) = lim(s->0) s*T(s)/s^2 | ||
===2. feladat=== | |||
==== a/ P szabályozás alkalmazása esetén ( C ( s) = K ) határozza meg K azon értékeit, melyekre a zárt kör stabilis. ==== | |||
Strukturálisan stabilis. K bármely értékére stabilis, mivel a fázistolás mindig kisebb mint −180°. | Strukturálisan stabilis. K bármely értékére stabilis, mivel a fázistolás mindig kisebb mint −180°. | ||
==== b/ ==== | |||
Integrátor már van a rendszerben, de a gyorsasági feltételt ki kell elégíteni, ezért PD szabályozót kell tervezni. | Integrátor már van a rendszerben, de a gyorsasági feltételt ki kell elégíteni, ezért PD szabályozót kell tervezni. | ||
| 113. sor: | 116. sor: | ||
'''Matlab:''' | '''Matlab:''' | ||
kc=1; | kc=1; | ||
C=kc*((1+2*s)/(1+(2/3)*s)); | C=kc*((1+2*s)/(1+(2/3)*s)); | ||
L=C*P; | L=C*P; | ||
w=logspace(-1,1,500); | w=logspace(-1,1,500); | ||
[mag,phase]=bode(L,w); | [mag,phase]=bode(L,w); | ||
kc=margin(mag,phase-60,w); | kc=margin(mag,phase-60,w); %60 fokos fázistartalék | ||
C=C*kc | C=C*kc | ||
L=C*P; | L=C*P; | ||
L=minreal(L); | L=minreal(L); | ||
figure(1),margin(L); | |||
Eredmény: | |||
Zero/pole/gain: | |||
379.5687 (s+0.5) | |||
---------------- | |||
(s+1.5) | |||
http://i.imgur.com/yUl1CLv.png | |||
==== c/ ==== | |||
[gt,pm,wg,wc] = margin(L); | |||
pm %fázistartalék | |||
t1=(3/wc) %a beállási (szabályozási) idő e két érték között lesz | |||
t2=(10/wc) | |||
T=L/(1+L); | |||
figure(2),step(T),grid | |||
y=step(T); %kimeneti jel | |||
ymax = max(y) %kimeneti jel maximuma | |||
ys=dcgain(T) %kimeneti jel állandósult értéke | |||
yt=(ymax-ys)/ys*100 %túllendülés százalékban | |||
es=1-ys %egytől való eltérés | |||
U=C/(1+L); | |||
U=minreal(U); | |||
figure(3),step(U),grid | |||
u=step(U); | |||
umax = max(u) %vezérlő jel maximuma | |||
Eredmény: | |||
http://i.imgur.com/cPppq7h.png | |||
http://i.imgur.com/jVCaHqe.png | |||
---- | ---- | ||
| 147. sor: | 164. sor: | ||
'''Matlab: [http://info.site.hu/document.php?cmd=download_proc&tmp_page=&doc_id=17375 ez a doksi] 49. oldal 1. példa 1:1-ben ugyanez''' | '''Matlab: [http://info.site.hu/document.php?cmd=download_proc&tmp_page=&doc_id=17375 ez a doksi] 49. oldal 1. példa 1:1-ben ugyanez''' | ||
===3. feladat=== | |||
==== a/ P szabályozás alkalmazása esetén ( C ( s) = K ) határozza meg K azon értékeit, melyekre a zárt kör stabilis. ==== | |||
Strukturálisan stabilis. K bármely értékére stabilis, mivel a fázistolás mindig kisebb mint −180°. | Strukturálisan stabilis. K bármely értékére stabilis, mivel a fázistolás mindig kisebb mint −180°. | ||
==== b/ ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
kc=1; | kc=1; | ||
C=kc*((1+4*s)/(1+(4/3)*s)); | C=kc*((1+4*s)/(1+(4/3)*s)); | ||
L=C*P; | L=C*P; | ||
w=logspace(-1,1,500); | w=logspace(-1,1,500); | ||
[mag,phase]=bode(L,w); | [mag,phase]=bode(L,w); | ||
kc=margin(mag,phase-60,w); | kc=margin(mag,phase-60,w); %60 fokos fázistartalék | ||
C=C*kc | C=C*kc | ||
L=C*P; | L=C*P; | ||
L=minreal(L); | L=minreal(L); | ||
figure(1),margin(L); | figure(1),margin(L); | ||
[gt,pm,wg,wc] = margin(L); | [gt,pm,wg,wc] = margin(L); | ||
pm | pm %fázistartalék értéke | ||
t1=(3/wc) | t1=(3/wc) %beállási (szabályozási) idő e két érték között lesz | ||
t2=(10/wc) | t2=(10/wc) | ||
T=L/(1+L); | T=L/(1+L); | ||
figure(2),step(T),grid | figure(2),step(T),grid | ||
Zero/pole/gain: | |||
330.4437 (s+0.25) | |||
----------------- | |||
(s+0.75) | |||
pm = | |||
60.0003 | |||
t1 = | |||
0.7201 | |||
t2 = | |||
2.4004 | |||
http://i.imgur.com/nXeo67u.png | |||
http://i.imgur.com/x42BKRE.png | |||
==== c/ ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
y=step(T); | y=step(T); %kimeneti jel | ||
ymax = max(y) | ymax = max(y) %kimeneti jel maximuma | ||
ys=dcgain(T) | ys=dcgain(T) %kimeneti jel állandósult értéke | ||
yt=(ymax-ys)/ys*100 | yt=(ymax-ys)/ys*100 %túllendülés százalékban | ||
es=1-ys | es=1-ys %egytől való eltérés | ||
U=C/(1+L); | U=C/(1+L); | ||
U=minreal(U); | U=minreal(U); | ||
figure(3),step(U),grid | figure(3),step(U),grid | ||
u=step(U); | u=step(U); | ||
umax = max(u) | umax = max(u) %vezérlő jel maximuma | ||
Eredménye: | |||
====4. feladat==== | ymax = | ||
0.9034 | |||
ys = | |||
0.5241 | |||
yt = | |||
72.3478 | |||
es = | |||
0.4759 | |||
umax = | |||
330.4437 | |||
http://i.imgur.com/3TBrSUl.png | |||
===4. feladat=== | |||
==== a/ Zérusrendű tartószerv esetén adja meg a folyamat G(z) impulzusátviteli függvényét zérus-pólus alakban. ==== | |||
Az impulzusátviteli függvény más néven: Diszkrét átviteli függvény. | Az impulzusátviteli függvény más néven: Diszkrét átviteli függvény. | ||
'''Matlab:''' | '''Matlab:''' | ||
s = zpk('s); | |||
P = 2 / ( (1+s)*(1+4*s)*(1+8*s) ); | s = zpk('s'); | ||
Ts = 0.5; | P = 2 / ( (1+s)*(1+4*s)*(1+8*s) ); | ||
sysd = c2d(P, Ts, 'zoh'); | Ts = 0.5; %ez a mintavételezési idő, adott a feladat szövegében | ||
sysd = c2d(P, Ts, 'zoh'); %ez alakítja át diszkrétre. A 'zoh' adja meg, hogy zérusrendű a tartószerv. | |||
-- [[NovakAron]] - 2007.11.21. | -- [[NovakAron]] - 2007.11.21. | ||
==== b/ ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
s=zpk('s'); | s=zpk('s'); | ||
z=zpk('z',0.5); | z=zpk('z',0.5); | ||
P=2/((1+s)*(1+4*s)*(1+8*s)) | P=2/((1+s)*(1+4*s)*(1+8*s)) % átviteli függvény | ||
ts=0.5; | ts=0.5; % mintaveteli ido | ||
Pz=c2d(P,ts); | Pz=c2d(P,ts); % diszkrét átviteli függvény | ||
Pz | Pz % zérus-pólus alak | ||
kc=1; | kc=1; %egység körerősítés először | ||
[zd,pd,kd] = zpkdata(Pz,'v'); | [zd,pd,kd] = zpkdata(Pz,'v');%diszkrét folyamat zérusai pólusai | ||
Cz=kc*(((z-pd(1))*(z-pd(2)))/((z-1)*z)); | Cz=kc*(((z-pd(1))*(z-pd(2)))/((z-1)*z)); %diszkrét szab. átv. fv. | ||
Lz = Cz*Pz | Lz = Cz*Pz | ||
Lz=minreal(Lz,0.001); | Lz=minreal(Lz,0.001); | ||
w=logspace(-1,1,500); | w=logspace(-1,1,500); %saját logaritmikus skála beállítása | ||
[mag,phase]=bode(Lz,w); | [mag,phase]=bode(Lz,w); %diszkrétből számolt bode diagram | ||
[kc,pm,wg,wc]=margin(mag,phase-60,w); | [kc,pm,wg,wc]=margin(mag,phase-60,w); %60 fokos fázistöbblet | ||
Cz=Cz*kc; | Cz=Cz*kc; | ||
Lz=Cz*Pz; | Lz=Cz*Pz; %a nyitott kör diszkrét átv. fv. | ||
Lz=minreal(Lz,0.001); | Lz=minreal(Lz,0.001); | ||
Tz= Lz/(1+Lz); | Tz= Lz/(1+Lz); %diszkrét zárt rendszer átv. fv. | ||
Ts=d2c(Tz,'tustin') | Ts=d2c(Tz,'tustin') %folytonos zárt rendszer átv. fv. | ||
figure(2),step(Ts),grid | figure(2),step(Ts),grid %zart rendszer kimeneti jele | ||
Eredmény: | |||
Zero/pole/gain: | |||
0.0625 | |||
------------------------ | |||
(s+1) (s+0.25) (s+0.125) | |||
Zero/pole/gain: | |||
0.0011005 (z+3.157) (z+0.2247) | |||
-------------------------------- | |||
(z-0.9394) (z-0.8825) (z-0.6065) | |||
Sampling time (seconds): 0.5 | |||
Zero/pole/gain: | |||
0.0011005 (z-0.9394) (z-0.8825) (z+3.157) (z+0.2247) | |||
---------------------------------------------------- | |||
z (z-1) (z-0.9394) (z-0.8825) (z-0.6065) | |||
Sampling time (seconds): 0.5 | |||
Zero/pole/gain: | |||
0.0076717 s (s-7.709) (s-4) (s+4) (s+6.318) (s+0.9797) | |||
------------------------------------------------------ | |||
s (s+4) (s+4.126) (s+0.9797) (s^2 + 0.7745s + 0.3623) | |||
====5. feladat | http://i.imgur.com/tq7wtWn.png | ||
==== c/ ==== | |||
y=step(Ts); | |||
ymax = max(y) %a kimenet maximális értéke | |||
ys=dcgain(Ts) %állandósult érték | |||
yt=(ymax-ys)/ys*100 %túllövés értéke százalékban | |||
es=1-ys %az előírt 1-tól való eltérés | |||
Uz=Cz/(1+Lz); %zárt rendszer beavatkozó jele | |||
Uz=minreal(Uz,0.001); %egyszerűsítések elvégzése | |||
figure(3),step(Uz),grid %beavatkozó jel kirajzolása | |||
u=step(Uz); | |||
umax = max(u) %maximális érték kiírása | |||
Eredmény: | |||
ymax = | |||
1.0000 | |||
ys = | |||
1 | |||
yt = | |||
1.6233e-004 | |||
es = | |||
0 | |||
umax = | |||
13.4985 | |||
http://i.imgur.com/2BIAmlr.png | |||
===5. feladat=== | |||
'''[http://info.site.hu/document.php?cmd=download_proc&tmp_page=&doc_id=17375 ez a doksi] 43. oldal 2. példa majdnem 1:1-ben ugyanez''' | '''[http://info.site.hu/document.php?cmd=download_proc&tmp_page=&doc_id=17375 ez a doksi] 43. oldal 2. példa majdnem 1:1-ben ugyanez''' | ||
==== a/ ==== | |||
A zavarkompenzáló tagon áthaladó jelnek ki kell ejtenie a zavarás hatását. | A zavarkompenzáló tagon áthaladó jelnek ki kell ejtenie a zavarás hatását. | ||
Fs = -2*((1+2*s)/(1+10*s)) | Fs = -2*((1+2*s)/(1+10*s)) | ||
==== b/ c/ ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
s=tf( | s=tf('s') | ||
P=1/((1+2*s)*(1+s)*(1+6*s)) | P=1/((1+2*s)*(1+s)*(1+6*s)) | ||
P=zpk(P) | P=zpk(P) | ||
C=(1+6*s)/s | C=(1+6*s)/s | ||
L=C*P | L=C*P | ||
L=minreal(L) | L=minreal(L) | ||
[mag,phase,w]=bode(L); | [mag,phase,w]=bode(L); | ||
k=margin(mag,phase-60,w) | k=margin(mag,phase-60,w) | ||
C=k*C | C=k*C | ||
margin(C*P) | margin(C*P) | ||
T=C*P/(1+C*P), T=minreal(T) | T=C*P/(1+C*P), T=minreal(T) | ||
t=0:0.05:40; | t=0:0.05:40; | ||
y=step(T,t); | y=step(T,t); | ||
plot(t,y),grid | plot(t,y),grid | ||
ym=max(y) | ym=max(y) | ||
http://i.imgur.com/P0MFbu8.png | |||
===6. feladat=== | |||
'''[http://info.site.hu/document.php?cmd=download_proc&tmp_page=&doc_id=17375 ez a doksi] 43. oldal 1. példa majdnem 1:1-ben ugyanez''' | '''[http://info.site.hu/document.php?cmd=download_proc&tmp_page=&doc_id=17375 ez a doksi] 43. oldal 1. példa majdnem 1:1-ben ugyanez''' | ||
==== a/ Határozza meg a folyamat állapotmátrixait diagonális alakban: ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
num=1; | num=1; | ||
den=[5 6 1] | den=[5 6 1] | ||
[a,b,c,d]=tf2ss(num,den); | [a,b,c,d]=tf2ss(num,den); | ||
[a,b,c,d]=canon(a,b,c,d,'modal') | [a,b,c,d]=canon(a,b,c,d,'modal') | ||
Eredmény: | |||
den = | |||
5 6 1 | |||
a = | |||
-1.0000 0 | |||
0 -0.2000 | |||
b = | |||
-0.6988 | |||
-0.3366 | |||
c = | |||
0.3578 -0.7428 | |||
d = | |||
0 | |||
==== b/ ? ==== | |||
==== c/ Rajzolja fel a rendszer kimenetének változását és az állapottrajektóriáját nulla bemenet és x0=[-1, 2 ] kezdeti feltétel esetén. (állapotrajektória: a x2 állapotváltozó az x1 függvényében) ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
x0=[-1,2] | x0=[-1,2] | ||
[y,x,t]=initial(a,b,c,d,x0); | [y,x,t]=initial(a,b,c,d,x0); | ||
x1=x(:,1); | x1=x(:,1); | ||
x2=x(:,2); | x2=x(:,2); | ||
figure(1);plot(t,y,'k');grid | figure(1);plot(t,y,'k');grid | ||
figure(2);plot(x1,x2,'k');grid | figure(2);plot(x1,x2,'k');grid | ||
http://i.imgur.com/qC1JBEm.png | |||
http://i.imgur.com/wV8PxLC.png | |||
===7. feladat=== | |||
==== a/ ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
num_=5; | num_=5; | ||
den_=poly([-10, -0.25]); | den_=poly([-10, -0.25]); | ||
[A,b,c,d]=tf2ss(num_,den_) | [A,b,c,d]=tf2ss(num_,den_) | ||
A = | |||
-10.2500 -2.5000 | |||
1.0000 0 | |||
b = | |||
1 | |||
0 | |||
c = | |||
0 5 | |||
d = | |||
0 | |||
==== b/ ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
num=1 | num=1 | ||
den=[0.64 1.12 1] | den=[0.64 1.12 1] | ||
pk=roots(den) | pk=roots(den) | ||
numk=1; | numk=1; | ||
denk=poly(pk); | denk=poly(pk); | ||
H=tf(numk,denk) | H=tf(numk,denk) | ||
H=zpk(H) | H=zpk(H) | ||
g0=dcgain(H) | g0=dcgain(H) | ||
====8. feladat | %Egysegnyi erositest akarunk, ezert normaljuk | ||
Hn=H/g0 | |||
k=acker(A,b,pk) | |||
Tk=ss(A-b*k,b,c,d) | |||
Tk=zpk(Tk) | |||
Javítandó, hiba: | |||
Error using acker (line 38) | |||
Vector P must have SIZE(A) elements | |||
===8. feladat=== | |||
'''Ez a megoldás nem jó. Csak egy kósza próbálkozás volt.:)''' | '''Ez a megoldás nem jó. Csak egy kósza próbálkozás volt.:)''' | ||
''Aki tudja a jó megoldást, légyszi javítsa ki!'' | |||
'''-- [[HorvathGeza]] - 2007.11.25.''' | '''-- [[HorvathGeza]] - 2007.11.25.''' | ||
Ki kell szedni az eredeti átviteli függvényből az időállandókat, | Ki kell szedni az eredeti átviteli függvényből az időállandókat, <br /> | ||
és a gyakorlat könyvben található képlet alapján akkor ki lehet | és a gyakorlat könyvben található képlet alapján akkor ki lehet <br /> | ||
számolni a megfelelő értékeket. | számolni a megfelelő értékeket. <br /> | ||
e^(-Ts/Ti) | e^(-Ts/Ti) <br /> | ||
és | és <br /> | ||
e^(-Ts/Td) | e^(-Ts/Td) <br /> | ||
A kéttárolós tag időállandója 1, az egytárolósé pedig 10. | A kéttárolós tag időállandója 1, az egytárolósé pedig 10. | ||
De a | De a Matlab nekem sehogy sem engedi hogy z^-0.3 al beszorozzam, <br /> | ||
pedig így kéne beleszámolni a késleltetést, érdekes módon | pedig így kéne beleszámolni a késleltetést, érdekes módon <br /> | ||
z^-1 el engedi. | z^-1 el engedi. | ||
| 339. sor: | 510. sor: | ||
Tehát jelen esetben 0.3/0.1=3 => z^-3 | Tehát jelen esetben 0.3/0.1=3 => z^-3 | ||
==== a/ ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
s=zpk('s'); | s=zpk('s'); | ||
Ts=0.1; | Ts=0.1; | ||
Thd=1; | Thd=1; %holtidő | ||
z=zpk('z',Ts); | z=zpk('z',Ts); | ||
P=0.5*(s+5)/((s+0.1)*(s*s+1.2*s+1)); | P=0.5*(s+5)/((s+0.1)*(s*s+1.2*s+1)); | ||
Gz=c2d(P,Ts,'zoh') | Gz=c2d(P,Ts,'zoh') | ||
Gz = Gz*z^-Thd; | Gz = Gz*z^-Thd; %a holtidő miatt | ||
[zd,pd,kd]=zpkdata(Gz,'v') | [zd,pd,kd]=zpkdata(Gz,'v') | ||
kc=1 | kc=1 | ||
Cz=kc*((z-exp(-Ts/10))*(z-exp(-Ts/1)))/((z-1)*z) | Cz=kc*((z-exp(-Ts/10))*(z-exp(-Ts/1)))/((z-1)*z) | ||
Lz=Cz*Gz | Lz=Cz*Gz | ||
[mag,phase,w]=bode(Lz); | [mag,phase,w]=bode(Lz); | ||
kc=margin(mag,phase-60,w) | kc=margin(mag,phase-60,w) | ||
Cz=kc*Cz | Cz=kc*Cz | ||
Lz=Cz*Gz; | Lz=Cz*Gz; | ||
Yz=feedback(Lz,1); | Yz=feedback(Lz,1); | ||
Uz=feedback(Cz,Gz); | Uz=feedback(Cz,Gz); | ||
==== b/ ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
t=0:0.1:0.4; | t=0:0.1:0.4; | ||
figure(1),step(Yz,t) | figure(1),step(Yz,t) | ||
figure(2),step(Uz,t) | figure(2),step(Uz,t) | ||
==== c/ ==== | |||
'''Matlab:''' | '''Matlab:''' | ||
y_all=dcgain(Yz) | y_all=dcgain(Yz) | ||
u_all=dcgain(Uz) | u_all=dcgain(Uz) | ||
===9. feladat=== | |||
Adja meg a W1(s) átviteli függvénnyel megadott szakasz átmeneti | Adja meg a W1(s) átviteli függvénnyel megadott szakasz átmeneti | ||
függvényének maximális értékét és beállási idejét. | függvényének maximális értékét és beállási idejét. | ||
Maximális érték meghatározása: | Maximális érték meghatározása: | ||
[gm,pm,wg,wc]=margin(W) | '''Matlab:''' | ||
W = 2 / ( 1 + 0.4*s + s^2 ); | |||
y = step(W); | |||
max(y) | |||
[gm,pm,wg,wc]=margin(W) | |||
beallasi_ido_max=10/wc | |||
beallasi_ido_min=3/wc | |||
Eredmény: | |||
beallasi_ido_max= | beallasi_ido_max = | ||
beallasi_ido_min= | 5.8898 | ||
beallasi_ido_min = | |||
1.7669 | |||
===10. feladat=== | |||
'''Matlab:''' | '''Matlab:''' | ||
s=zpk('s'); | s=zpk('s'); | ||
W=1/(s*(s+3)*(s+6)); | W=1/(s*(s+3)*(s+6)); | ||
%Nincs labilis polus, mehet az egysz. Nyquist | |||
%A Nyquist diagram a valós tengelyt -0.00617-nél | |||
%metszi, ezt ~162-vel kell szorozni, hogy -1 legyen | |||
figure(1), nyquist(W) | figure(1), nyquist(W) | ||
K=162; | K=162; | ||
W=K*W; | W=K*W; | ||
figure(2), nyquist(W) | |||
http://i.imgur.com/2Auo86Q.png | |||
http://i.imgur.com/GJeBHh6.png | |||
===14. feladat (biztos elírták a pdfben, de ez jön:)=== | |||
'''Matlab:''' | '''Matlab:''' | ||
A=[-17 -80 -100; 1 0 0; 0 1 0] | A=[-17 -80 -100; 1 0 0; 0 1 0] | ||
b=[1;0;0] | b=[1;0;0] | ||
c=[0,0,1] | c=[0,0,1] | ||
d=0 | d=0 | ||
a_zart=s^3+60*s^2+1200*s+8000 | a_zart=s^3+60*s^2+1200*s+8000 | ||
%polusok: -20, -20, -20 | %polusok: -20, -20, -20 | ||
k=acker(A,b,[-20 -20 -20]) | k=acker(A,b,[-20 -20 -20]) | ||
Eredmény: | |||
A = | |||
-17 -80 -100 | |||
1 0 0 | |||
0 1 0 | |||
b = | |||
1 | |||
0 | |||
0 | |||
c = | |||
0 0 1 | |||
d = | |||
0 | |||
Zero/pole/gain: | |||
(s+20)^3 | |||
k = | |||
43 1120 7900 | |||
=== 11. feladat === | |||
'''Matlab:''' | |||
kc=1 | z=tf('z') | ||
Cz=kc | Gz=(0.0091*z+0.0082)/(z*z-1.7236*z+0.7408) | ||
Lz=Cz*Gz | |||
[zd,pd,kd]=zpkdata(Gz,'v') | |||
kc=1 | |||
Cz=kc | |||
Lz=Cz*Gz | |||
[mag,phase,w]=bode(Lz); | |||
kc=margin(mag,phase-60,w) | |||
Cz=kc*Cz | |||
Lz=Cz*Gz | |||
Lz=minreal(Lz) | |||
[gm,pm,wg,wc]=margin(Lz) | |||
margin(Lz) | |||
Eredmény: | |||
gm = | |||
8.7017 | |||
pm = | |||
59.9160 | |||
wg = | |||
0.7699 | |||
wc = | |||
0.2219 | |||
-- [[EszenyiViktor|Dög]] - 2007.11.14. | |||
http://i.imgur.com/bILXvPs.png | |||
[[Category:Infoalap]] | [[Category:Infoalap]] | ||