„SzabtechLabZH” változatai közötti eltérés
a szintaktikai hiba javítva |
feladatsor feltöltése (köszi, Papp Krisztián, hogy elküldted), belinkelése |
||
| (17 közbenső módosítás ugyanattól a felhasználótól nincs mutatva) | |||
| 3. sor: | 3. sor: | ||
{{Vissza|Szabályozástechnika_(info)}} | {{Vissza|Szabályozástechnika_(info)}} | ||
==Gyakorló feladatok a | == 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 :) | ||
| 74. sor: | 73. sor: | ||
'''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) %átmeneti függvény kiszámítása | ys=dcgain(T) %állandósult érték kiszámítása | ||
ys=dcgain(T) %állandósult érték kiszámítása | ym=max(y) %maximális érték | ||
ym=max(y) %maximális érték | yt=((ym-ys)/ys)*100 %túllendülés százalékban | ||
yt=((ym-ys)/ys)*100 %túllendülés százalékban | |||
Eredmény: | |||
yt = | yt = | ||
| 103. 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=== | ===2. feladat=== | ||
| 117. 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); %60 fokos fázistartalék | ||
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); | |||
Eredmény: | |||
Zero/pole/gain: | Zero/pole/gain: | ||
| 139. sor: | 138. sor: | ||
==== c/ ==== | ==== c/ ==== | ||
[gt,pm,wg,wc] = margin(L); | |||
[gt,pm,wg,wc] = margin(L); | pm %fázistartalék | ||
pm %fázistartalék | t1=(3/wc) %a beállási (szabályozási) idő e két érték között lesz | ||
t1=(3/wc) %a 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 | y=step(T); %kimeneti jel | ||
y=step(T); %kimeneti jel | ymax = max(y) %kimeneti jel maximuma | ||
ymax = max(y) %kimeneti jel maximuma | ys=dcgain(T) %kimeneti jel állandósult értéke | ||
ys=dcgain(T) %kimeneti jel állandósult értéke | yt=(ymax-ys)/ys*100 %túllendülés százalékban | ||
yt=(ymax-ys)/ys*100 %túllendülés százalékban | es=1-ys %egytől való eltérés | ||
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) %vezérlő jel maximuma | ||
umax = max(u) %vezérlő jel maximuma | |||
Eredmény: | |||
http://i.imgur.com/cPppq7h.png | http://i.imgur.com/cPppq7h.png | ||
| 275. sor: | 274. sor: | ||
'''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)) % átviteli függvény | ||
P=2/((1+s)*(1+4*s)*(1+8*s)) % átviteli függvény | ts=0.5; % mintaveteli ido | ||
ts=0.5; % mintaveteli ido | Pz=c2d(P,ts); % diszkrét átviteli függvény | ||
Pz=c2d(P,ts); % diszkrét átviteli függvény | Pz % zérus-pólus alak | ||
Pz % zérus-pólus alak | kc=1; %egység körerősítés először | ||
kc=1; %egység körerősítés először | [zd,pd,kd] = zpkdata(Pz,'v');%diszkrét folyamat zérusai pólusai | ||
[zd,pd,kd] = zpkdata(Pz,'v');%diszkrét folyamat zérusai pólusai | Cz=kc*(((z-pd(1))*(z-pd(2)))/((z-1)*z)); %diszkrét szab. átv. fv. | ||
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); %saját logaritmikus skála beállítása | ||
w=logspace(-1,1,500); %saját logaritmikus skála beállítása | [mag,phase]=bode(Lz,w); %diszkrétből számolt bode diagram | ||
[mag,phase]=bode(Lz,w); %diszkrétből számolt bode diagram | [kc,pm,wg,wc]=margin(mag,phase-60,w); %60 fokos fázistöbblet | ||
[kc,pm,wg,wc]=margin(mag,phase-60,w); %60 fokos fázistöbblet | Cz=Cz*kc; | ||
Cz=Cz*kc; | Lz=Cz*Pz; %a nyitott kör diszkrét átv. fv. | ||
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); %diszkrét zárt rendszer átv. fv. | ||
Tz= Lz/(1+Lz); %diszkrét zárt rendszer átv. fv. | Ts=d2c(Tz,'tustin') %folytonos zárt rendszer átv. fv. | ||
Ts=d2c(Tz,'tustin') %folytonos zárt rendszer átv. fv. | figure(2),step(Ts),grid %zart rendszer kimeneti jele | ||
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) | |||
http://i.imgur.com/tq7wtWn.png | |||
==== c/ ==== | ==== c/ ==== | ||
y=step(Ts); | |||
y=step(Ts); | ymax = max(y) %a kimenet maximális értéke | ||
ymax = max(y) %a kimenet maximális értéke | ys=dcgain(Ts) %állandósult érték | ||
ys=dcgain(Ts) %állandósult érték | yt=(ymax-ys)/ys*100 %túllövés értéke százalékban | ||
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 | ||
es=1-ys %az előírt 1-tól való eltérés | Uz=Cz/(1+Lz); %zárt rendszer beavatkozó jele | ||
Uz=Cz/(1+Lz); %zárt rendszer beavatkozó jele | Uz=minreal(Uz,0.001); %egyszerűsítések elvégzése | ||
Uz=minreal(Uz,0.001); %egyszerűsítések elvégzése | figure(3),step(Uz),grid %beavatkozó jel kirajzolása | ||
figure(3),step(Uz),grid %beavatkozó jel kirajzolása | u=step(Uz); | ||
u=step(Uz); | umax = max(u) %maximális érték kiírása | ||
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=== | ===5. feladat=== | ||
| 319. sor: | 372. sor: | ||
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/ ==== | ==== b/ c/ ==== | ||
| 325. sor: | 378. sor: | ||
'''Matlab:''' | '''Matlab:''' | ||
s=tf('s') | |||
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=== | ===6. feladat=== | ||
| 350. sor: | 403. sor: | ||
'''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/ ? ==== | ==== b/ ? ==== | ||
| 362. sor: | 432. sor: | ||
'''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=== | ===7. feladat=== | ||
| 377. sor: | 448. sor: | ||
'''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/ ==== | ==== b/ ==== | ||
| 387. sor: | 470. sor: | ||
'''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) | |||
%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=== | ===8. feladat=== | ||
| 429. sor: | 514. sor: | ||
'''Matlab:''' | '''Matlab:''' | ||
s=zpk('s'); | |||
s=zpk('s'); | Ts=0.1; | ||
Ts=0.1; | Thd=1; %holtidő | ||
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; %a holtidő miatt | 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/ ==== | ==== b/ ==== | ||
| 459. sor: | 542. sor: | ||
'''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/ ==== | ==== c/ ==== | ||
| 470. sor: | 551. sor: | ||
'''Matlab:''' | '''Matlab:''' | ||
y_all=dcgain(Yz) | |||
y_all=dcgain(Yz) | u_all=dcgain(Uz) | ||
u_all=dcgain(Uz) | |||
===9. feladat=== | ===9. feladat=== | ||
| 483. sor: | 562. sor: | ||
'''Matlab:''' | '''Matlab:''' | ||
W = 2 / ( 1 + 0.4*s + s^2 ); | |||
W = 2 / ( 1 + 0.4*s + s^2 ); | y = step(W); | ||
y = step(W); | max(y) | ||
max(y) | |||
[gm,pm,wg,wc]=margin(W) | [gm,pm,wg,wc]=margin(W) | ||
beallasi_ido_max=10/wc | beallasi_ido_max=10/wc | ||
beallasi_ido_min=3/wc | beallasi_ido_min=3/wc | ||
Eredmény: | |||
beallasi_ido_max = | |||
5.8898 | |||
beallasi_ido_min = | |||
1.7669 | |||
===10. feladat=== | ===10. feladat=== | ||
| 498. sor: | 583. sor: | ||
'''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 | ||
%Nincs labilis polus, mehet az egysz. Nyquist | %A Nyquist diagram a valós tengelyt -0.00617-nél | ||
%A Nyquist diagram a valós tengelyt -0.00617-nél | %metszi, ezt ~162-vel kell szorozni, hogy -1 legyen | ||
%metszi, ezt ~162-vel kell szorozni, hogy -1 legyen | figure(1), nyquist(W) | ||
figure(1), nyquist(W) | |||
K=162; | |||
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:)=== | ===14. feladat (biztos elírták a pdfben, de ez jön:)=== | ||
| 516. sor: | 602. sor: | ||
'''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 === | === 11. feladat === | ||
| 532. sor: | 644. sor: | ||
'''Matlab:''' | '''Matlab:''' | ||
z=tf('z') | |||
z=tf('z') | Gz=(0.0091*z+0.0082)/(z*z-1.7236*z+0.7408) | ||
Gz=(0.0091*z+0.0082)/(z*z-1.7236*z+0.7408) | |||
[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]] | ||