Przykład korekcji szeregowej członem proporcjonalnym
Jeżeli znany jest nam model obiektu możemy posłużyć się symulacją utworzoną w SIMULINKU. Użycie tego składnika programu MATLAB pozwala w krótkim czasie przeprowadzić wiele symulacji. Jest to narzędzie bardzo wygodne, posiadające ogromne możliwości. Jest również atrakcyjne pod względem wizualnym. Daje intuicyjny obraz złożonego układu regulacji. Posiada znaczny zasób źródeł sygnałów oraz innych bloków funkcjonalnych pozwalających budować ogromną ilość modeli. Aby przybliżyć działanie programu SIMULINK pakiet PDA został zaopatrzony w różne przykładowe symulacje. Aby uruchomić przykładową symulację wpisujemy symulacja z linii poleceń Matlaba (pliki simulink mają postać *.mdl). Edytując pola obiektu, zadajnika i czujnika wprowadzamy parametry modelu (najpierw należy uruchomić pda ). Niech
- transmitancja zadajnika ,
- transmitancja obiektu głównego,
- transmitancja czujnika ,
Rysunek 8.6 Schemat symulacji korekcji proporcjonalnej w Simulinku.
Zmieniając wzmocnienie członu proporcjonalnego możemy szybko sprawdzić eksperymentalnie kiedy system przestanie być stabilny . W naszym przypadku zachodzi to dla k=0.37 . Po każdej symulacji można uruchomić wsk , który pokaże aktualne parametry odpowiedzi skokowej . wynik symulacji jest również zapisywany do pliku którego nazwę wybieramy edytując pole "To file" . Dane z powyższej symulacji zapisane są w plikach prop.mat prop1.mat itd. Aby je przeanalizować wpisujemy polecenie wsk z podaną po nim nazwą pliku np. : wsk prop1 itd. W celu przyspieszonej analizy możemy posłużyć się skryptem regp1 . Musimy wprowadzić do Matlaba transmitancję naszych obiektów . Pomocniczy skrypt do tego celu to trans , edytując go wprowadzamy w odpowiednie miejsca transmitancje i opóźnienia odpowiednich członów .
Rysunek 8.7 Wykresy przeregulowania oraz czasów regulacji w funkcji wzmocnienia
Wykonując to polecenie a następnie uruchamiając skrypt regp1 otrzymamy wykresy przeregulowania oraz czasów ustalania w funkcji wzmocnienia w torze głównym .
Widzimy tu optymalny czas regulacji T5% dla wzmocnienia k=0.07 . Możemy edytować skrypt trans wstawiając w odpowiednie miejsce k=0.07 i w przestrzeni roboczej Matlaba znajdzie się transmitancja układu zamkniętego H(s) . Aby poznać parametry odpowiedzi skokowej należy wykonać sgen ; wsk; . Czas regulacji wynosi T5=0.86 s. Wykonaliśmy w ten sposób pierwszy projekt regulatora proporcjonalnego .
W przypadku tego typu regulacji możemy wyciągnąć następujący wniosek; - zwiększanie wzmocnienia w torze głównym powoduje zwiększenie przeregulowania, w konsekwencji doprowadzi do destabilizacji obiektu.
Przykład korekcji szeregowej członem całkującym
Dla układu jak na rys. 9.1 przy parametrach T0=60s, Ti=120s oraz k0=0.7 mamy:
Rysunek 9.1 Układ przykładowy
Transmitancje obiektu i regulatora są następujące:
.
Sprawdźmy najpierw odpowiedź skokową układu zamkniętego bez regulatora. Transmitancja układu zamkniętego wynosi;
Wyznaczmy parametry tej odpowiedzi. Możemy tego dokonać wykonując poniższy ciąg poleceń matlabowych;
s=tf('s'); % to polecenie wystarczy wykonać tylko raz
H=1/(60*s+1.7); sgen; wsk;
Należy pamiętać, że funkcje *wsk normalizują odpowiedź tak, aby wartość końcowa wynosiła 1. Dlatego wyznaczymy wartość ustaloną odpowiedzi skokowej. Układ zamknięty jest stabilny zatem możemy skorzystać z twierdzenia o wartości granicznej:
Zatem uchyb położeniowy (na pobudzenie skokiem jednostkowym) wynosi 1-0.58=0.42. Czas ustalania T5%=105s.
Rysunek 9.2 Odpowiedź skokowa układu zamkniętego bez regulatora
Zbadajmy teraz układ z regulatorem. Zauważmy, że układ otwarty jest niestabilny (biegun wnoszony przez niestabilny człon GR leży w początku układu współrzędnych na płaszczyźnie 's'). Transmitancja układu zamkniętego:
co po podstawieniu daje
Układ zamknięty jest stabilny (polecenie pole(G(s) pokaże wartości biegunów). Możemy skorzystać z twierdzenia o wartości granicznej transformaty:
,
co oznacza, że pobudzenie skokiem o wysokości '1' (R(s)=1/s) otrzymamy (w granicy) sygnał wyjściowy o wartości '1'. Z definicji uchybu ( e = r - y ) otrzymamy uchyb pozycyjny równy '0' (zapewniają go równe sobie współczynniki wielomianów licznika i mianownika przy s0).
Po wykonaniu poleceń Matlabowych
s=tf('s');
H=1/(7200*s*s+84*s+1);
sgen;
wsk;
otrzymamy wykres 9.3 ( bez czerwonej linii, uchyb=1-odp.skokowa):
Rysunek 9.3 Wykres odpowiedzi skokowej i uchybu układu bez korekty
Zauważmy, że wykres uchybu i wykres odpowiedzi skokowej są komplementarne.
Do wyznaczania wskaźników odpowiedzi skokowej służy funkcja "wskjakg.m" (wskaźniki jakości + wykres) z pakietu dydaktycznego PDA. Informacje na temat jej działania można uzyskać z linii poleceń Matlaba wpisując "help wskjakg". Funkcja ta rysuje odpowiedź skokową oraz podaje wartość czasów regulacji T5% i T2% (czas, po którym wartość odpowiedzi nie przekroczy 5% wartości ustalonej) oraz przeregulowanie. Zakładamy, że wartość uchybu ustalonego jest skończona. Funkcja normalizuje odpowiedź tak, aby dla t = Ą było h(t)=1, czyli e(t)=0.
Na rysunku 9.3 zaznaczono, iż po czasie T5 =464s (dana podana przez funkcję 'wskjakg') odpowiedź skokowa znalazła się w obszarze ± 5% od wartości 1 a uchyb znalazł się w obszarze ± 5% od zera (czerwone okręgi znaczą kolejne ekstrema). Jeżeli czas regulacji nas satysfakcjonuje projekt jest ukończony. W przeciwnym wypadku musimy dobrać parametr regulatora, którym w tym przypadku jest Ti. Możemy tu zdradzić, że nasz regulator nosi nazwę regulatora całkującego. Aby znaleźć minimalny czas regulacji należałoby zmieniać Ti i badać jak zmienia się odpowiedź skokowa. W tym celu posłużymy się m-plikiem (skryptem) Matlabowym "regp.m'. Wykorzystuje on do wyznaczania parametrów odpowiedzi skokowej funkcję "wskjak.m" (wskaźniki jakości bez rysowania wykresu).
Rysunek 9.4 Wykresy przeregulowania oraz czasów regulacji w funkcji stałej Ti
Wykresy przedstawiają zależność przeregulowania k oraz czasów regulacji TD w funkcji stałej całkowania Ti regulatora. Minimum T5% uzyskujemy dla Ti =240s. Podstawiając tę wartość do transmitancji otrzymamy:
.
Wpisując sekwencję jak poprzednio z tą różnicą że
H=1/(14400*s*s+168*s+1);
otrzymamy poniższy wykres
Rysunek 9.5 Wykres odp. skokowej po zmianie Ti
Udało nam się uzyskać czas regulacji T5 =350s, co w porównaniu z poprzednim wynikiem 464s można nazwać znacznym osiągnięciem. Zwróćmy uwagę na to, że stosowaliśmy bardzo prosty regulator w postaci członu całkującego (można szukać regulatora bardziej złożonego). Ważne jest również to, że nawet w tak prostym obiekcie widać nieliniowy przebieg wskaźników jakości w funkcji nastawianej wartości. Oznacza to, że nie jest łatwo znaleźć w prosty sposób ("na oko") nastawę regulatora, która spełni nasze wymagania. Zwróćmy uwagę, że uchyb pozycyjny pozostał zerowy.
Zbadajmy uchyb pozycyjny układu otwartego G0(s) bez korekcji;
Widzimy, że wartość ustalona odpowiedzi nie osiąga 1. Układ posiada niezerowy uchyb pozycyjny. Wprowadźmy do licznika wzmocnienie
(wzmocnienie może być parametrem samego obiektu lub wzmacniacza), którego wartość może fluktuować wokół pewnej wartości średniej (rzeczywisty obiekt).
Odpowiedź układu na skok jednostkowy dąży do jedności wtedy, kiedy
. Widzimy, że uchyb pozycyjny będzie zawsze niezerowy. Jeśli zamkniemy pętlę sprzężenia otrzymamy
Uchyb układu będzie również niezerowy, ale jeśli zapewnimy dużą wartość
, będzie malał (niestety praktyka nie pozwala na stosowanie dowolnie dużych wzmocnień). Jeśli natomiast do układu wprowadzimy człon całkujący GR otrzymamy
Niezależnie czy
jest parametrem obiektu czy dodanego wzmacniacza otrzymaliśmy układ kompensujący niepewność modelu. Wprowadzenie niestabilnego członu do układu spowodowało, iż uchyb pozycyjny jest zerowy bez względu na wzmocnienie układu otwartego.
W ten oto sposób wykonaliśmy pierwszy projekt regulatora a w zasadzie korektora (używamy jednej nastawy stałej całkowania) poprawiającego dokładność (zapewnia zerowy uchyb pozycyjny).
Pominąłem omówienie programu Zerpol
Dodatek A. Transmitancja drugiego rzędu
Rozpatrzmy obiekt o transmitancji
.
Jest to transmitancja drugiego rzędu ze stałym licznikiem. Posiada ona dwa bieguny i nie posiada zer. Jej bieguny to
gdzie stałe:
współczynnik tłumienia,
n pulsacja naturalna (pulsacja drgań nietłumionych),
σ tłumienie,
d pulsacja drgań tłumionych.
Na rysunku 10.1 jest pokazane rozmieszczenie biegunów transmitancji na płaszczyźnie 's'.
Rysunek 10.1 Położenie biegunów transmitancji drugiego rzędu na płaszczyźnie 's'
Pulsacja drgań nietłumionych d jest odległością biegunów od osi rzeczywistej. Od niej zależy pulsacja oscylacji odpowiedzi skokowej (rys. 10.2). Gdy d 0 a =1 (bieguny leżą na osi rzeczywistej) odpowiedź skokowa układu będzie miała charakter nieoscylacyjny. Pulsacja naturalna n jest odległością biegunów od początku układu współrzędnych. W przypadku gdy =0 (bieguny leżą na osi urojonej), układ znajduje się na granicy stabilności a jego odpowiedź skokowa ma charakter oscylacji o stałej pulsacji n. Szybkość zanikania drgań zależy od tłumienia σ . Na wykresie 10.1 jest to odległość biegunów od osi urojonej.
Na wykresach 10.2 znajdują się odpowiedzi skokowe układu drugiego rzędu dla różnych współczynników tłumienia .
Rysunek 10.2 Wykres odpowiedzi skokowych układu 2. rzędu dla różnych współczynników tłumienia
Na wykresach 10.3 znajdują się rozmieszczenia biegunów układu drugiego rzędu na płaszczyźnie zespolonej 's' dla różnych współczynników tłumienia .
Rysunek 10.3 Położenie biegunów transmitancji 2. stopnia dla różnych wartości współczynnika tłumienia
Widzimy, że przy wzroście współczynnika tłumienia maleje przeregulowanie ale rośnie czas narastania oraz czas ustalania. Układ staje się wolniejszy. Kompromisowym rozwiązaniem może być układ o współczynniku tłumienia =0.7. W celu wygenerowania rozkładu biegunów używamy funkcji pzmap.
System drugiego rzędu możemy wygenerować w prosty sposób poleceniem Matlaba ord2;
[NUM,DEN] = ord2( n, ); .