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

Harapeti (vitalap | szerkesztései)
eredmény bemásolása
Harapeti (vitalap | szerkesztései)
feladatsor feltöltése (köszi, Papp Krisztián, hogy elküldted), belinkelése
 
(8 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:
Eredmény:
473. 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===
515. 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/ ====
545. 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/ ====
556. 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===
569. 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_min=3/wc


beallasi_ido_max=10/wc
Eredmény:
beallasi_ido_min=3/wc
 
</pre>
  beallasi_ido_max =
      5.8898
 
  beallasi_ido_min =
      1.7669


===10. feladat===
===10. feladat===
584. 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;
K=162;
  W=K*W;
W=K*W;
 
  figure(2), nyquist(W)


figure(2), nyquist(W)
http://i.imgur.com/2Auo86Q.png
</pre>
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:)===
602. 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
  %polusok: -20, -20, -20


a_zart=s^3+60*s^2+1200*s+8000
  k=acker(A,b,[-20 -20 -20])
%polusok: -20, -20, -20


k=acker(A,b,[-20 -20 -20])
Eredmény:
</pre>
 
  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 ===
641. sor: 667. sor:
   gm =
   gm =
       8.7017
       8.7017
 
 
   pm =
   pm =
     59.9160
     59.9160
 
 
   wg =
   wg =
       0.7699
       0.7699
 
 
   wc =
   wc =
       0.2219
       0.2219
A lap eredeti címe: „https://vik.wiki/SzabtechLabZH