WOJSKOWA AKADEMIA TECHNICZNA
WYDZIAŁ MECHATRONIKI I LOTNICTWA
CYFROWE UKŁADY REGULACJI
MODEL NUMERYCZNY UKŁADU REGULACJI Z REGULATOREM DYSKRETNYM TYPU „DEADBEAT”
Prowadzący: dr inż. Marek Jaworowicz
Autorzy: Wojciech Żerek
Michał Jankowski
Anna Szymanek
Grupa: A9U1S1
Sformułowanie zagadnienia
Celem pracy było opracowanie w programie Matlab modeli numerycznych układów regulacji z regulatorem dyskretnym ze skończoną odpowiedzią impulsową, tzw. „deadbeat”. W układach zastosowano regulatory kompensacyjne - struktura regulatora kompensuje całkowicie dynamikę obiektu i dzięki temu sprowadza on układ do stanu ustalonego w najkrótszym z możliwych czasie ze względu na rząd układu i wartość okresu próbkowania Tp.
Po opracowaniu modeli numerycznych należało wyznaczyć przebiegi wartości regulowanych i sygnału sterującego dla różnych okresów próbkowania Tp oraz ocenić, jak wartość okresu próbkowania Tp wpływa na wartość początkową sterowania u(0).
Zadanie zostało wykonane w następujących wariantach:
UR z obiektem inercyjnym I rzędu bez opóźnienia, Tp = 1[s];
UR z obiektem inercyjnym I rzędu bez opóźnienia, Tp = 2[s];
UR z obiektem inercyjnym I rzędu z opóźnieniem T = 3 [s], Tp = 1[s];
UR z obiektem inercyjnym I rzędu z opóźnieniem T = 3 [s], Tp = 2[s],
we wszystkich układach amplituda sygnału sterowania jest nieograniczona.
Parametry regulowanego obiektu:
K = 1;
T0 = 10 [s]
Transmitancja:
Go(s)=
Realizacja w programie Matlab
UR z obiektem inercyjnym I rzędu bez opóźnienia
Zamodelowane zostały 2 układy regulacji dla różnych okresów próbkowania:
Tp1 = 1 [s];
Tp2 = 2 [s].
% Modul wprowadzania danych:
%--------------------------------------------------------------------------
% T0, K - parametry obiektu (obiekt inercyjny I rzedu)
% Tp1, Tp2 - okresy probkowania
T0 = 10;
K = 1;
Tp1 = 1;
Tp2 = 2;
% Modulobliczen dla Tp1:
%--------------------------------------------------------------------------
% Go_c - transmitancja obiektu ciaglego
% Go_d - transmitancja dyskretna obiektu (ZOH, Tp = Tp1)
Go_c = tf([K], [T0 1])
Go_d = c2d(Go_c, Tp1);
Go_d.Variable = 'z^-1'; % przeksztalcenie do funkcji opoznien
[Go_d_L, Go_d_M] = tfdata(Go_d, 'v'); % licznik i mianownik Go_d
% b1, a0, a1 - wspolczynniki transmitancji Go_d
% Gr_d - transmitancja dyskretna regulatora w funkcji opoznien
% (regulator 'deadbeat' kompensujacydynamike obiektu, Tp = Tp1)
% q0, q1, p1 - wspolczynniki transmitancji Gr_d
b1 = Go_d_L(2);
a0 = Go_d_M(1);
a1 = Go_d_M(2);
q0 = 1/b1;
q1 = a1*q0;
p1 = b1*q0;
Gr_d = filt([q0 q1], [1 -p1], Tp1);
% Got_d_op - transmitancja dyskretna ukladu otwartego w funkcji opoznien
% Gur_d_op - transmitancja dyskretna ukladu regulacji w funkcji opoznien
Got_d_op = Go_d*Gr_d;
Gur_d_op = Got_d_op/(1+Got_d_op);
% Modulobliczen Tp2 (wszystkie zmienne analogicznie):
%--------------------------------------------------------------------------
Go_c_2 = tf([K], [T0 1]);
Go_d_2 = c2d(Go_c_2, Tp2);
Go_d_2.Variable = 'z^-1';
[Go_d_L_2, Go_d_M_2] = tfdata(Go_d_2, 'v');
b1_2 = Go_d_L_2(2);
a0_2 = Go_d_M_2(1);
a1_2 = Go_d_M_2(2);
q0_2 = 1/b1_2;
q1_2 = a1_2*q0_2;
p1_2 = b1_2*q0_2;
Gr_d_2 = filt([q0_2 q1_2], [1 -p1_2], Tp2);
Got_d_op_2 = Go_d_2*Gr_d_2;
Gur_d_op_2 = Got_d_op_2/(1+Got_d_op_2);
% Modul wyznaczania przebiegow:
%--------------------------------------------------------------------------
% - wielkosci regulowanych (odpowiedz skokowa):
subplot(2,2,1);
step(Gur_d_op);
axis([0 5 0 1.25])
xlabel('Czas')
ylabel('Amplituda')
gridon
title('Odpowiedz skokowa UR dla Tp1');
subplot(2,2,3);
step(Gur_d_op_2);
axis([0 5 0 1.25])
xlabel('Czas')
ylabel('Amplituda')
gridon
title('Odpowiedz skokowa UR dla Tp2');
% - sygnalusterujacego u(0):
subplot(2,2,2);
step(Gr_d_op);
axis([0 Tp1 0 15])
xlabel('Czas')
ylabel('Amplituda')
gridon
title('Sygnalsterujacy u(0) dla Tp1');
subplot(2,2,4);
step(Gr_d_op_2);
axis([0 Tp2 0 15])
xlabel('Czas')
ylabel('Amplituda')
gridon
title('Sygnalsterujacy u(0) dla Tp2');
Wyznaczone transmitancje regulatora i UR przyjmują następujące postacie (dla Tp1 oraz Tp2):
Gr_d =
Gur_d_op =
Gr_d_2 =
Gur_d_op_2 =
Widzimy, że po uproszczeniu transmitancje ukladów regulacji przyjmują wartość z^-1, co spełnia postawione założenia dotyczące regulatora.
Otrzymano następujące przebiegi:
UR z obiektem inercyjnym I rzędu z opóźnieniem
Zamodelowane zostały 2 układy regulacji dla różnych okresów próbkowania:
Tp1 = 1 [s];
Tp2 = 2 [s],
obydwa dla opóźnienia T = 3 [s].
W tym przypadku transmitancja obiektu ma postać:
Go(s) =
% Modul wprowadzania danych:
%--------------------------------------------------------------------------
% T0, K - parametry obiektu (obiekt inercyjny I rzedu z opoznieniem T)
% Tp1, Tp2 - okresy probkowania
% T - opoznienie [s]
T0 = 10;
K = 1;
Tp1 = 1;
Tp2 = 2;
T = 3;
% Modulobliczen dla Tp1:
%--------------------------------------------------------------------------
% Go_c - transmitancja obiektu ciaglego
% Go_d - transmitancja dyskretna obiektu (ZOH, Tp = Tp1)
Go_c = tf([K], [T0 1]);
Go_c.OutputDelay = T; % opoznienie obiektu
Go_d = c2d(Go_c, Tp1);
Go_d.Variable = 'z^-1'; % przeksztalcenie do funkcji opoznien
[Go_d_L, Go_d_M] = tfdata(Go_d, 'v'); % licznik i mianownik Go_d
% b1, a0, a1 - wspolczynniki transmitancji Go_d
% Gr_d - transmitancja dyskretna regulatora w funkcji opoznien
% (regulator 'deadbeat' kompensujacydynamike obiektu, Tp = Tp1)
% q0, q1, p1 - wspolczynniki transmitancji Gr_d
b1 = Go_d_L(2);
a0 = Go_d_M(1);
a1 = Go_d_M(2);
q0 = 1/b1;
q1 = a1*q0;
p4 = b1*q0;
Gr_d = filt([q0 q1], [1 0 0 0 -p4], Tp1);
% Got_d_op - transmitancja dyskretna ukladu otwartego w funkcji opoznien
% Gur_d_op - transmitancja dyskretna ukladu regulacji w funkcji opoznien
Got_d_op = Go_d*Gr_d;
Gur_d_op = Got_d_op/(1+Got_d_op);
% Modulobliczen Tp2:
%--------------------------------------------------------------------------
Go_c_2 = tf([K], [T0 1]);
Go_c_2.OutputDelay = T;
Go_d_2 = c2d(Go_c_2, Tp2);
Go_d_2.Variable = 'z^-1';
[Go_d_L_2, Go_d_M_2] = tfdata(Go_d_2, 'v');
b0_2 = Go_d_L_2(1);
b1_2 = Go_d_L_2(2);
a0_2 = Go_d_M_2(1);
a1_2 = Go_d_M_2(2);
q0_2 = 1/(b0_2+b1_2);
q1_2 = a1_2*q0_2;
p2_2 = b0_2*q0_2;
p3_2 = b1_2*q0_2;
Gr_d_2 = filt([q0_2 q1_2], [1 0 -p2_2 -p3_2], Tp2);
Got_d_op_2 = Go_d_2*Gr_d_2;
Gur_d_op_2 = Got_d_op_2/(1+Got_d_op_2);
% Modul wyznaczania przebiegow:
%--------------------------------------------------------------------------
% - wielkosci regulowanych (odpowiedz skokowa):
subplot(2,2,1);
step(Gur_d_op);
axis([0 10 0 1.5])
xlabel('Czas')
ylabel('Amplituda')
set(gca, 'xtick', [0,1,2,3,4,5,6,7,8,9,10]);
gridon
title('Odpowiedz skokowa UR dla Tp1');
subplot(2,2,3);
step(Gur_d_op_2);
axis([0 10 0 1.5])
xlabel('Czas')
ylabel('Amplituda')
set(gca, 'xtick', [0,1,2,3,4,5,6,7,8,9,10]);
gridon
title('Odpowiedz skokowa UR dla Tp2');
% - sygnalusterujacego u(0):
subplot(2,2,2);
step(Gr_d);
axis([0 Tp1 0 15])
xlabel('Czas')
ylabel('Amplituda')
gridon
title('Sygnalsterujacy u(0) dla Tp1');
subplot(2,2,4);
step(Gr_d_2);
axis([0 Tp2 0 15])
xlabel('Czas')
ylabel('Amplituda')
grid on
title('Sygnalsterujacy u(0) dla Tp2');
Wyznaczone transmitancje regulatora i UR przyjmują w tym przypadku następujące postacie (dla Tp1 oraz Tp2):
Gr_d =
Gur_d_op =
Gr_d_2 =
Gur_d_op_2 =
Otrzymano następujące przebiegi:
Wnioski
Wraz ze wzrostem okresu próbkowania Tp maleje amplituda wartości początkowej sygnału sterującego u(0) i odwrotnie – zmniejszanie okresu próbkowania Tp powoduje wzrost amplitudy sygnału sterującego u(0). Przy założeniu braku ograniczeń dla sygnału sterującego nie stanowi to problemu, jednak w rzeczywistej sytuacji może wystąpić nasycenie elementu wykonawczego na skutek zbyt wysokiej wartości tego sygnału.
W rozpatrywanych przypadkach zależność okresu próbkowania Tp od amplitudy wartości początkowej sygnału sterującego u(0) przedstawia się następująco:
Okres próbkowania [s] |
Amplituda sygnału sterującego u(0) |
---|---|
Obiekt bez opóźnienia | |
Tp1 = 1 | 10.5 |
Tp2 = 2 | 5.52 |
Okres próbkowania Tp ma bezpośredni wpływ na czas, po jakim następuje skokowa odpowiedź układu.
Opóźnienie T nie ma wpływu na wysokość amplitudy wartości początkowej sygnału sterującego u(0) – dla układów bez opóźnienia oraz układów z opóźnieniem otrzymujemy takie same wyniki (przy takich samych wartościach okresów próbkowania Tp).
Dla układów bez opóźnienia zmiany wartości okresu próbkowania Tp powodują jedynie zmiany wartości współczynników transmitancji obiektu i regulatora, jednak nie zmieniają ogólnych postaci tych transmitancji - nie prowadzi to do destabilizacji obiektu.
W przypadku układów z opóźnieniem modelowanie strukturdyskretnych obiektu i regulatora zależy od konkretnych wartości okresu próbkowania Tp oraz opóźnienia T, dlatego dla różnych wartości powstają różne postacie transmitancji regulatora (różniące się nie tylko wartościami współczynników, ale również liczbą i stopniem poszczególnych członów). W efekcie rozwiązanie dla każdego zestawu wartości Tp i T jest unikatowe i zmiana tych wartości prowadzi do destabilizacji obiektu.