„SzabtechLabZH” változatai közötti eltérés

Harapeti (vitalap | szerkesztései)
képek feltöltve, belinkelve
Harapeti (vitalap | szerkesztései)
feladatsor feltöltése (köszi, Papp Krisztián, hogy elküldted), belinkelése
 
(16 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 labor zárthelyihez==
== Gyakorló feladatok a laborZH-hoz, 2007. ősz ==


<s>[http://www.aut.bme.hu/Portal/Default/DocDownload.aspx?DocId=844bd985-e822-4587-8100-f9c6d6d0179d&CultureId=16df90ec-fcf2-466d-8f3e-8c4057561621 Gyakorló feladatok a labor ZH-hoz (pdf)]</s>
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]])
[http://info.sch.bme.hu/document.php?cmd=download_proc&tmp_page=&doc_id=20491Szerintem Itt még elérhető]


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:'''


<pre>
  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  
 
</pre>
Eredmény:


   yt =
   yt =
103. sor: 102. sor:


tehát konkrét adatokkal:  
tehát konkrét adatokkal:  
y(t->inf) = lim(s->o)  s*T(s)/s^2
y(t->inf) = lim(s->0)  s*T(s)/s^2


===2. feladat===
===2. feladat===
117. sor: 116. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  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);
 
</pre>
Eredmény:


   Zero/pole/gain:
   Zero/pole/gain:
139. sor: 138. sor:
==== c/ ====
==== c/ ====


<pre>
  [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  
 
</pre>
Eredmény:


http://i.imgur.com/cPppq7h.png
http://i.imgur.com/cPppq7h.png
327. sor: 326. sor:
==== c/ ====
==== c/ ====


<pre>
  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  
 
</pre>
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===
346. 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/ ====
352. sor: 378. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  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)
 
</pre>
http://i.imgur.com/P0MFbu8.png


===6. feladat===
===6. feladat===
377. sor: 403. sor:
'''Matlab:'''
'''Matlab:'''
   
   
<pre>
  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')
 
</pre>
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/ ? ====
389. sor: 432. sor:
'''Matlab:'''  
'''Matlab:'''  


<pre>
  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
 
</pre>
http://i.imgur.com/qC1JBEm.png
http://i.imgur.com/wV8PxLC.png


===7. feladat===
===7. feladat===
404. sor: 448. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  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_)
 
</pre>
  A =
    -10.2500  -2.5000
      1.0000        0
 
  b =
      1
      0
 
  c =
      0    5
 
  d =
      0


==== b/ ====
==== b/ ====
414. sor: 470. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  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)  


%Egysegnyi erositest akarunk, ezert normaljuk
Javítandó, hiba:
Hn=H/g0
  Error using acker (line 38)
k=acker(A,b,pk)  
  Vector P must have SIZE(A) elements
Tk=ss(A-b*k,b,c,d)  
Tk=zpk(Tk)
</pre>


===8. feladat===
===8. feladat===
456. sor: 514. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  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);
</pre>


==== b/ ====
==== b/ ====
486. sor: 542. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  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)  
</pre>


==== c/ ====
==== c/ ====
497. sor: 551. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  y_all=dcgain(Yz)
y_all=dcgain(Yz)
  u_all=dcgain(Uz)
u_all=dcgain(Uz)
</pre>


===9. feladat===
===9. feladat===
510. sor: 562. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  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
</pre>
 
Eredmény:
 
  beallasi_ido_max =
      5.8898
 
  beallasi_ido_min =
      1.7669


===10. feladat===
===10. feladat===
525. sor: 583. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  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)


K=162;
http://i.imgur.com/2Auo86Q.png
W=K*W;
http://i.imgur.com/GJeBHh6.png
 
figure(2), nyquist(W)
</pre>


===14. feladat (biztos elírták a pdfben, de ez jön:)===
===14. feladat (biztos elírták a pdfben, de ez jön:)===
543. sor: 602. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  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])
</pre>
 
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 ===
559. sor: 644. sor:
'''Matlab:'''
'''Matlab:'''


<pre>
  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:


[zd,pd,kd]=zpkdata(Gz,'v')
  gm =
      8.7017
 
  pm =
    59.9160
 
  wg =
      0.7699
 
  wc =
      0.2219


kc=1
-- [[EszenyiViktor|Dög]] - 2007.11.14.
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)
</pre>
-- [[EszenyiViktor|Dög]] - 2007.11.14.


http://i.imgur.com/bILXvPs.png


[[Category:Infoalap]]
[[Category:Infoalap]]
A lap eredeti címe: „https://vik.wiki/SzabtechLabZH