« zpět / back

Práce z předmětu Systémy a řízení

ČVUT FEL, 2001/2002

Regulace systémů Vodárna 2 a Helikoptéra 2

letní semestr 2001/2002

David Šilhan, [email protected]

2/ Helikoptéra 2

a) návrh regulátorů

Uvažovali jsme přenos systému daný na www stránce předmětu.

Pro něj jsme počítali konstanty regulátorů, nejprve frekvenčními metodami  (PD a PID), dále i předepsanou konfigurací predominantních pólů – mez aperiodicity, regulátor PD. Pomocí RLTOOLu jsme udělali návrh regulátorů podle geometrického místa kořenů.

b) odzkoušení  regulátorů na skutečném systému

Zkoušeli jsme regulátory PD i PID.  Při regulaci pomocí regulátorů navržených v bodě a)  byla vždy nenulová regulační odchylka. S PID regulátorem s experimentálně nastavenými konstantami jsme docílili nulové reg. odchylky a doby ustálení okolo 4 s. Při dalším měření však tento regulátor fungoval jinak.

V tomto, druhém případě se díky rychlosti systému podařilo experimentálně najít celkem dobrý regulátor, který měl ale problémy s nestálostí parametrů systému.

 

fprintf('Helikoptera 2\n')
sys=zpk([],[0 -0.25 -2.9],11.2)

Zero/pole/gain:
11.2
------------------
s (s+0.25) (s+2.9)

fprintf('Frekvencni metoda navrhu, PD\n')
%wk=0.26918
wk=0.8515;
wd=wk;
[amplit,faze]=bode(sys,wd)
r0=1/(sqrt(2)*amplit)
fr_pd_reg=zpk([-wd],[],r0/wd)
fr_pd=feedback(fr_pd_reg*sys,1)
figure(1);step(fr_pd);title(
'Helikoptera 2 - PD faz. bezp.');

Frekvencni metoda navrhu, PD
amplit =
4.9039
faze =
-180.0011
r0 =
0.1442

Zero/pole/gain:
0.16934 (s+0.8515)

Zero/pole/gain:
1.8966 (s+0.8515)
-------------------------------
(s+2.32) (s^2 + 0.83s + 0.6961)

 

%%PID
%%fazova bezpecnost 39,7°
fprintf('Frekvencni metoda navrhu, PID')
wi=0.1*wd
fr_pid_reg=zpk([-wd -wi],[0],r0/(wd+wi))
fr_pid=feedback(fr_pid_reg*sys,1)
figure(2);step(fr_pid);title(
'Helikoptera 2 - PID faz. bezp.');

Frekvencni metoda navrhu, PIDwi =
0.0852

Zero/pole/gain:
0.15395 (s+0.8515) (s+0.08515)
------------------------------
s


Zero/pole/gain:
1.7242 (s+0.08515) (s+0.8515)
----------------------------------------------
(s+2.401) (s+0.08782) (s^2 + 0.6611s + 0.5929)

%%PKPP PD regulator
fprintf('Predepsana konfigurace pred. polu, mez aperiodicity, PD\n')
r0_=((3.15/3)^3)/11.2
r1_=(3*(3.15/3)^2 - 0.725)/11.2
pkpp_pd_reg=tf([r1_ r0_],[1])
pkpp_pd=feedback(pkpp_pd_reg*sys,1)
figure(3);step(pkpp_pd);title(
'Helikoptera 2 - PD PKPP');

Predepsana konfigurace pred. polu, mez aperiodicity, PD
r0_ =
0.1034
r1_ =
0.2306

Transfer function:
0.2306 s + 0.1034

Zero/pole/gain:
2.5825 (s+0.4483)
-----------------
(s+1.05)^3

Zero/pole/gain:
0.19 (s+0.32)

%%GMK
%PD
gmk_pd_reg1=zpk([-0.32],[],0.19)
gmk_pd1=feedback(gmk_pd_reg1*sys,1)
%figure(4);step(gmk_pd1);title('Helikoptera 2 - PD GMK');
gmk_pd_reg2=zpk([-0.61],[],0.36)
gmk_pd2=feedback(gmk_pd_reg2*sys,1)
%figure(5);step(gmk_pd2);title('Helikoptera 2 - PD GMK');
gmk_pd_reg3=zpk([-0.28],[],0.2)
gmk_pd3=feedback(gmk_pd_reg3*sys,1)
figure(6);step(gmk_pd3);title(
'Helikoptera 2 - PD GMK');
gmk_pd_reg4=zpk([-0.2],[],0.46)
gmk_pd4=feedback(gmk_pd_reg4*sys,1)
figure(7);step(gmk_pd4);title(
'Helikoptera 2 - PD GMK');

Zero/pole/gain:
2.128 (s+0.32)
------------------------------
(s+1.725) (s+1.049) (s+0.3765)


Zero/pole/gain:
0.36 (s+0.61)


Zero/pole/gain:
4.032 (s+0.61)
--------------------------------
(s+0.9005) (s^2 + 2.25s + 2.731)


Zero/pole/gain:
0.2 (s+0.28)


Zero/pole/gain:
2.24 (s+0.28)
---------------------------------
(s+0.2957) (s^2 + 2.854s + 2.121)


Zero/pole/gain:
0.46 (s+0.2)


Zero/pole/gain:
5.152 (s+0.2)
---------------------------------
(s+0.1943) (s^2 + 2.956s + 5.303)

 

 

 

 

figure(8);
hold on;
step(fr_pd);
step(pkpp_pd);
step(gmk_pd1);
step(gmk_pd2);
step(gmk_pd3);
step(gmk_pd4);
title(
'Helikoptera 2 - PD srovnani');

 

 

%PID
gmk_pid_reg1=zpk([-0.1 -0.41],[0],0.352)
gmk_pid1=feedback(gmk_pid_reg1*sys,1)
figure(9);step(gmk_pid1);title(
'Helikoptera 2 - PID GMK, 20%');
gmk_pid_reg2=zpk([-0.1 -0.6],[0],0.426)
gmk_pid2=feedback(gmk_pid_reg2*sys,1)
figure(10);step(gmk_pid2);title(
'Helikoptera 2 - PID GMK, 30%');


Zero/pole/gain:
0.352 (s+0.1) (s+0.41)
----------------------
s


Zero/pole/gain:
3.9424 (s+0.1) (s+0.41)
------------------------------------------
(s+0.51) (s+0.1036) (s^2 + 2.536s + 3.058)


Zero/pole/gain:
0.426 (s+0.1) (s+0.6)
---------------------
s


Zero/pole/gain:
4.7712 (s+0.1) (s+0.6)
--------------------------------------------
(s+0.8464) (s+0.1018) (s^2 + 2.202s + 3.322)
 

 

figure(11);
hold on;
step(fr_pid);
step(gmk_pid1);
step(gmk_pid2);
title(
'Helikoptera 2 - PID srovnani');

 

home


e-mail: david [zavináč] kvik [tečka] cz