background image

 

Projekt z laboratorium Sterowania 

Dyskretnego 

 

 

 

 

 

 

 

 

temat nr 20 

 

 

 

 

 

 

 

 

 

 

Tatar 
Radosław  

gr.  

Rok IIIC - AiR IMIR 

 

background image

 

1.  Opis zadania: 

 

a)  Zaprojektować układ regulacji położenia windy napędzanej obcowzbudnym silnikiem 

prądu stałego o zadanych parametrach, uwzględniając ograniczenia prędkości i 
przyspieszenia windy. Należy zaprojektować trzy różne algorytmy sterowania, PID – 
regulator referencyjny oraz do wyboru: regulator deadbeat, regulator 
czasooptymalny, regulator LQR, układ odporny, regulator rozmyty. 

 

 

b)  dane do tematu: 

 

L=0.2[H] 
R=0.1[Ω] 
J=0.1[kg*m^2/s^2] 
D=1[N*m*s/rad] 
km=2[N*m/A] 
ke=2[V*s/rad] 
P=400[W] 
r=0.3[m] 
m=550[kg] 
B=10[N*s/m] 
k=600000[N/m] 
g=9.81[m/s^2] 

 
 

c)  schemat modelu: 

 

 

rys. 1. schemat układu fizycznego. 

Zdecydowaliśmy się zastosować model windy z kompensacją ciężaru przeciwwagą.

 

background image

2.  Realizacja: 

 

1)  Wyprowadzenie modelu z równania Lagrange’a: 

 

 

 

background image

 

2)  Model windy zrealizowany w Simulinku: 

 

rys.2. cały model 

 

3)  Odpowiedź skokowa tego modelu: 

 

 

rys. 3. Zachowanie modelu. 

background image

4)  Wyprowadzenie transmitancji modelu: 

 

a)  Zredukowaliśmy model blokowy: 

 

rys. 4. schemat zredukowany. 

 

b)  w Matlabie obliczyliśmy transmitację ciągłą i dyskretną: 

 

G1=tf(1,[L R]); 
G2=tf(km,1); 
G01=tf(mp*g*r,1); 
G4=tf(1,[J+mp*r^2 D 
k*r^2]); 
G5=tf([ke 0],[L R]); 
G6=tf(k*r,1); 
G02=tf(m*g,1); 
G8=tf(1,[m B k]); 
G9=tf(k*r,1); 
G09=series(G5,G2); 
G10=feedback(G4,G09); 
G03=series(G10,G6); 
 

G11=series(G03,G8); 
G12=feedback(G11,G9,+1); 
G14=series(G1,G2); 
G13=parallel(G01,G14); 
G04=series(G6,G10); 
G15=series(-G02,G04^-1); 
G16=parallel(G13,G15); 
  
Gc=series(G16,G12) 
[Lc,Mc]=tfdata(Gc,

'v'

); 

  
Tp=0.01 
[Ld,Md]=c2dm(Lc,Mc,Tp,

'zoh'

tf(Ld,Md,Tp) 

 

 

Ich postacie to: 
 

-ciągła: 

 

          -3.854e008 s^5 - 5.858e008 s^4 - 4.561e008 s^3 + 2.383e009 s^2 + 2.552e009 s + 6.48e008 

----------------------------------------------------------------------------------------------------------- 

3.928e007 s^7 + 6.043e007 s^6 + 8.567e010 s^5 + 1.301e011 s^4 + 8.396e010 s^3 + 2.921e010 s^2 + 4.525e009 s 

 

-dyskretna: 
 

-0.0004816 z^6 + 0.001919 z^5 - 0.002386 z^4 - 1.424e-005 z^3 + 0.002393 z^2 - 0.001905 z + 0.0004743 

----------------------------------------------------------------------------------------------------- 

         z^7 - 6.771 z^6 + 19.84 z^5 - 32.64 z^4 + 32.57 z^3 - 19.71 z^2 + 6.698 z - 0.9847 

background image

 

5)  Wyznaczenie parametrów regulatora PID: 

 

 

 
a)  Najpierw doprowadziliśmy układ do niegasnących oscylacji, wyznaczając K

kr

 oraz T

osc

 

 

rys. 5. schemat dyskretnego PID. 

 

 

rys.6. Niegasnące oscylacje w odpowiedzi skokowej dyskretnego PID 

 

Odczytaliśmy: 

 
K

kr

 = 3.5 

T

osc

 = 13.85s 

 

Przyjęliśmy czas próbkowania T

p

 = 0,01s, był to czas w którym odpowiedź dyskretna nie odbiegała 

jeszcze bardzo od ciągłej. 

background image

 

Stąd obliczyliśmy na podstawie tabeli doboru nastaw metodą Zieglera-Nicholsa: 

 
K

= 0,6*K

kr

 = 2.1 

T

p

/T

= 1/(0,5*(T

osc

/T

p

-1)) = 0.0015 

T

d

/T

p

 = 0.125*(T

osc

/T

p

)^2/(T

osc

/T

p

-1) =173.3  

 
 

Niestety okazuje się, iż obliczone parametry nie pozwalają uzyskać stabilności, układ traci stabilność. 

Dla porównania prezentuję wykres regulatora P  dla K

p

 = 1: 

 

 

 

rys. 8. Odpowiedź skokowa układu regulacji z regulatorem dyskretnym P. 

 

 

 

 

 

 

 

 

 

 

 

background image

3.  Modele pozostałych regulatorów: 

 

1)  Regulator rozmyty: 

Regulator rozmyty sporządziliśmy za pomocą narzędzia Matlaba Fuzzy Logic, w modelu Sugeno, 
definiując proste 9 reguł. 

 

 

rys. 9. Widok menu modelu Sugeno. 

 

 

 

 

 

rys. 10. Widok powierzchni(z lewej) utworzonej z reguł (z prawej), 

background image

 

rys. 11. Schemat regulacji rozmytej w simulinku. 

 

rys.12. Odpowiedź skokowa dyskretnego układu regulacji z regulatorem rozmytym 

 

 

 

 

 

 

 

 

background image

2)  Regulator Deadbeat: 

 

a)  implementacja w m-pliku: 

tf(Ld,Md,Tp,'Variable','z^-1') 
 
a1=Md(2) 
a2=Md(3) 
a3=Md(4) 
a4=Md(5) 
a5=Md(6) 
a6=Md(7) 
a7=Md(8) 
b1=Ld(2) 
b2=Ld(3) 
b3=Ld(4) 
b4=Ld(5) 
b5=Ld(6) 
b6=Ld(7) 
b7=Ld(8) 

 

a)  model w simulinku: 

 

q0=1/(b1+b2+b3+b4+b5+b6+b7) 
q1=a1*q0 
q2=a2*q0 
q3=a3*q0 
q4=a4*q0 
q5=a5*q0 
q6=a6*q0 
q7=a7*q0 
p1=b1*q0 
p2=b2*q0 
p3=b3*q0 
p4=b4*q0 
p5=b5*q0 
p6=b6*q0 
p7=b7*q0

 

 

rys.13. model regulatora deadbeat w simulinku. 

 

 

rys.14. odpowiedzi skokowe układu regulacji opartego na regulatorze deadbeat(od góry kolejno 

X,V,a). 

background image

4.  Podsumowanie: 

 

W projekcie sporym wyzwaniem okazało się poprawne zamodelowanie układu oraz poprawne 

przekształcenie transmitancji na postać dyskretną. 

Przedstawiony model generuje, zgodne z oczekiwaniami charakterystyki.  

Prawidłowe wykonanie projektu wynikło z niemożności zastosowania metody Zieglera-Nicholsa 

w celu dobrania nastaw regulatora PID z nieznanego powodu. 

Regulator P posłużył nam za regulator odniesienia z powodu braku możliwości dobrania nastaw 

regulatora PID. 

Pierwszy z porównywanych regulatorów to regulator rozmyty. W naszym dyskretnym przypadku 

odpowiedź układu regulowanego charakteryzuje się brakiem przeregulowania, który uzyskaliśmy 
kosztem czasu regulacji. 

Drugi regulator, regulator Deadbeat nie daje prawidłowej odpowiedzi, możliwe że z tego samego 

powodu co regulator PID. 

Z badań wnioskujemy, że implementacja regulatora rozmytego w gotowym narzędziu Matlaba 

jest dużo łatwiejsza niż dobór optymalnych nastaw regulatora PID. Dzięki regulatorowi rozmytemu 
uzyskaliśmy odpowiedź bez przeregulowania, ale jednak z długim czasem regulacji.