Akademia Górniczo-Hutnicza w Krakowie |
Kamiński Radosław | |
Laboratorium Teorii Sterowania i Techniki Regulacji | ||
Wydział: EAIiIB |
Rok akademicki: 2012/2013 |
Rok studiów: II |
Temat ćwiczenia: C 12 Regulator Cyfrowy |
||
Data wykonania: 14.06.2013 |
Data zaliczenia: | Ocena: |
Podczas tego ćwiczenia poznaliśmy metody symulacji regulatorów cyfrowych PID oraz zasady dobierania jego parametrów.
Regulatory cyfrowe PID są najczęściej spotykanym przykładem sterowania dyskretnego. W skrócie regulatory te przekształcają sygnał błędu (uchybu) e(t) na sygnał regulujący u(t).
Z regulatorami typu PID spotkaliśmy się już wcześniej przy okazji ćwiczenia:
Regulator ciągły PID - charakterystyki czasowe i częstotliwościowe.
W tamtym przypadku działanie regulatora opisywaliśmy równaniem:
$$u\left( t \right) = \ K_{\text{p\ }}e(t) + K_{i}\int_{0}^{T}{e\left( t \right)\text{\ dt}} + K_{d}\frac{d\ e(t)}{\text{dt}}$$
gdzie:
Kp , Ki, Kd – współczynniki kolejno: części proporcjonalnej, części całkującej oraz części różniczkującej.
Jako, że tematem tego ćwiczenia jest analiza regulatora cyfrowego, powyższy algorytm musimy poddać dyskretyzacji. W budowie układów sterowania do tego celu stosuje się przetworniki A/C. Sygnały ciągłe zastępowane są sygnałami dyskretnymi. Zmienną czasu zastępuje się wyrażeniem t = k * Tp, gdzie n jest liczbą całkowitą dodatnią a Tp okresem próbkowania.
Po dyskretyzacji równanie opisujące regulator prezentuje się w następujący sposób:
$$u\left( k \right) = K_{\text{p\ }}e\left( k \right) + K_{i}\ T_{p}\sum_{j = 1}^{k}{e\left( j - 1 \right) + \ }K_{d}\frac{e\left( k \right) - e\left( k - 1 \right)}{T_{p}}\ $$
Do zastąpienia całkowania używamy metody Eulera, inaczej metody prostokątów (całkę wyrażamy jako sumę pól prostokątów pod wykresem o jednym z boków równym Tp).
Część różniczkująca zastępowana jest ilorazem różnicowym.
Argumentem powyższego wzoru, zamiast czasu t, jest teraz zmienna k, która określa numer próbki. Przyjmujemy założenie, że dla czasu t<0 próbki nie istnieją.
Algorytm w tej postaci jest algorytmem pozycyjnym. Oznacza to, że wymaga on obliczania pełnej wartości sygnału wyjściowego dla każdego taktu próbkowania. Lepszym rozwiązaniem jest zastosowanie algorytmu przyrostowego, ponieważ obliczana jest tylko zmiana (przyrost) sygnału wyjściowego, która wystarcza w zupełności do poprawnego sterowania. Z postacią algorytmu opisującego regulator związana jest kwestia jego struktury.
Regulatory PID można zrealizować na dwa sposoby:
struktura równoległa - realizuje wyłącznie algorytm pozycyjny
struktura szeregowa - może realizować zarówno algorytm pozycyjny, jak i przyrostowy (prędkościowy).
W tej części ćwiczenia zajmujemy się więc strukturą szeregową.
Algorytm przyrostowy określa się jako różnicę algorytmu pozycyjnego dla próbki k oraz próbki k-1.
$$u\left( k - 1 \right) = K_{\text{p\ }}e\left( k - 1 \right) + K_{i}\ T_{p}\sum_{j = 1}^{k - 1}{e\left( j - 1 \right) + \ }K_{d}\frac{e\left( k - 1 \right) - e\left( k - 2 \right)}{T_{p}}\ $$
$$u\left( k \right) = u\left( k \right) - u\left( k - 1 \right) = e\left( k \right)\left\lbrack K_{p} + \frac{K_{d}}{T_{p}} \right\rbrack + e\left( k - 1 \right)\left\lbrack - K_{p} + K_{i}T_{p} - \frac{{2K}_{d}}{T_{p}} \right\rbrack + e\left( k - 2 \right)\frac{K_{d}}{T_{p}}$$
Ostatecznie algorytm wyrażamy jako:
u(k) = e(k) q0 + e(k−1) q1 + e(k−2) q2
gdzie:
$$q_{0} = K_{p} + \frac{K_{d}}{T_{p}}\ ,\ \ q_{1} = - K_{p} + K_{i}T_{p} - \frac{{2K}_{d}}{T_{p}},\ \ q_{2} = \ \frac{K_{d}}{T_{p}}.$$
Współczynniki te traktuje się jako nastawy regulatora, jak widać zależą one zarówno od współczynników poszczególnych członów, jak od okresu próbkowania Tp.
Teraz sygnał wyjściowy możemy wyrazić jako:
u(k) = u(k−1) + u(k).
Schemat blokowy regulatora:
W schemacie tym zawarto:
bloki Step oraz Step1, odpowiedzialne za wygenerowanie sygnału o amplitudzie 10 oraz okresie 1,2s,
blok Zero-Order Hold, jest to ekstrapolator rzędu zerowego, który spełnia rolę przetwornika A/C,
bloki Gain reprezentujące nastawy generatora,
bloki opóźniające sygnał – Unit Delay.
Sygnał wejściowy przedstawiony jest kolorem czerwonym, a sygnał wyjściowy kolorem niebieskim.
Kp = 2, Ki = 0, Kd = 0
Jak widać, sygnał wejściowy nie zmienił kształtu, został jedynie wzmocniony, a współczynnik wzmocnienia wynosi 2, zgodnie z nastawami.
Człon proporcjonalny działa poprawnie.
Kp = 0, Ki = 10, Kd = 0
Człon całkujący również działa poprawnie. Zmiana sygnału wyjściowego jest schodkowa, a szerokość pojedynczego schodka zależy od czasu próbkowania.
Kp = 0, Ki = 0, Kd = 0.1
Gdy aktywny jest tylko człon różniczkujący obserwujemy skoki sygnału wyjściowego podczas zmian poziomu sygnału wejściowego. Im większa jest ta zmiana, tym większe są skoki.
Człon różniczkujący działa poprawnie.
Kp = 2, Ki = 10, Kd = 0.1
Przebieg uzyskany dla regulatora PID jest sumą przebiegów poszczególnych jego członów, potwierdza w ten sposób poprawność jego działania.
Żeby zastosować w regulatorze PID ograniczenie amplitudy, musimy uzyskać schemat w takiej postaci, w której wyróżnione są wszystkie jego człony.
Wystarczy przekształcić wzór na przyrost sygnału.
$$u\left( k \right) = e\left( k \right)\left\lbrack K_{p} + \frac{K_{d}}{T_{p}} \right\rbrack + e\left( k - 1 \right)\left\lbrack - K_{p} + K_{i}T_{p} - \frac{{2K}_{d}}{T_{p}} \right\rbrack + e\left( k - 2 \right)\frac{K_{d}}{T_{p}}$$
Wyciągamy współczynniki każdego z członów przed nawiasy i otrzymujemy wzór:
$$u\left( k \right) = K_{p}\left\lbrack e\left( k \right) - e\left( k - 1 \right) \right\rbrack + K_{i}\left\lbrack T_{p}e\left( k - 1 \right) \right\rbrack + K_{d}\left\lbrack \frac{e\left( k \right)}{T_{p}} - \frac{2e\left( k - 1 \right)}{T_{p}} + \frac{e\left( k - 2 \right)}{T_{p}} \right\rbrack\ $$
Ostatecznie algorytm wyrażamy jako:
u(k) = [e(k)−e(k−1)]q0 + e(k−1) q1 + [ e(k)−2e(k−1)+e(k−2)]q2
gdzie:
$$q_{0} = K_{p}\ ,\ \ q_{1} = K_{i}T_{p},\ \ q_{2} = \ \frac{K_{d}}{T_{p}}.$$
Na tej podstawie możemy stworzyć schemat z trzema równoległymi torami związanymi z działaniem każdej części tworzącej regulator PID.
Schemat blokowy:
Dla współczynników dobranych tak, jak poprzednio: Kp = 2, Ki = 10, Kd = 0.1, otrzymujemy taki sam sygnał wyjściowy.
Zatem oba schematy są równoważne.
Następnie dodajemy blok Saturation, który reprezentuje ograniczenie, na torze całkowania oraz w torze sumy sygnału regulatora. Wartości ograniczeń ustawiamy na 30 i -30.
Schemat regulatora z ograniczeniem
Na początku zaobserwujemy działanie ograniczenia podczas, gdy aktywny tylko jest człon całkujący.
Kp = 0, Ki = 10, Kd = 0
Widzimy, że sygnał zostaje ‘ucięty’, gdy jego amplituda osiąga wartości zadane przez saturator.
Procedura całkowania w tych momentach jest zatrzymywana i poziom sygnału jest utrzymywany, dopóki sygnał wejściowy nie zmieni swojej wartości.
Na sam koniec zobaczymy przebieg cyfrowego regulatora PID z następującymi nastawami:
Kp = 2, Ki = 10, Kd = 0.1,
o czasie próbkowania równym:
Tp = 0, 05 [s]
oraz ograniczeniami amplitudy w przedziale:
od -30 do 30.
Zaobserwowany przebieg ma kształt, taki jak w przypadku regulatora PID, jednak sygnał nie przekracza wartości zadanych przez ograniczenia. Możemy wnioskować, że blok Saturation spełnia swoje zadanie oraz cały układ działa poprawnie.
Wszystkie potrzebne do ćwiczenia symulacje przeprowadzamy za pomocą programu Matlab – Simulink.