Scilab
Rozdział 11. Xcos-Podstawowe człony dynamiczne
Rozdział 11.1 Wstęp
Tytuł dziwny. Kurs dotyczy Scilaba, podstawowego obok Matlaba narzędzia matematycznego. A tu jakieś człony dynamiczne, czyli coś z Teorii Regulacji. Powód jest oczywisty. Człony dynamiczne jako transmitancje to nic innego jak wyrażone w postaci ułamka G(s)=L(s)/G(s) relacje sygnałów czasowych między wejściem x(t) na obiekt G(s) a jego wyjściem y(t). Transmitancja G(s) jest jakby skróconą wersją równania różniczkowego liniowego opisująca tę zależność. Z drugiej strony Scilab ma funkcję ODE do rozwiązywania równań różniczkowych. I jak z tego nie skorzystać! Scilab, a właściwie jego aplikacja graficzna XCOS, zamieni G(s) przy pomocy ODE transmitancję G(s) na równanie różniczkowe, rozwiąże je i poda nam jak na tacy odpowiedź y(t). Tego jak to robi, Użytkownik nie widzi, bo i po co? Mało tego, XCOS wyposażony jest w bloki nieliniowe np. przekaźniki. Dzięki temu możemy rozwiązywać równania różniczkowe nieliniowe. Więcej o transmitancjach, np. jak interpretować zmienną s w G(s), będzie w rozdz.12.
Wniosek:
Wystarczy rozpracować matematycznie podstawowe bloki dynamiczne takie jak jak np.-proporcjonalny, inercyjny, całkujący…Rozpracować tzn. podać sygnał skokowy x(t)* na wejście obiektu, zarejestrować reakcję tj. wyjście y(t) i na tej podstawie wyznaczyć tzw. transmitancję G(s). Nawet nie bardzo wiedząc co to jest. Dalej możemy zapomnieć o równaniach różniczkowych. Wystarczy w XCOSie połączyć bloki tworząc różne kombinacje. Połączenia równoległe, szeregowe i z ujemnym sprzężeniem zwrotnym**-najważniejsze pojęcie w automatyce. Stworzą one nowe i bardziej skomplikowane transmitancje G(s). Ale nas to nie martwi. To problem XCOSa, który zamieni G(s) na równanie różniczkowe, rozwiąże przy pomocy ODE i poda odpowiedź y(t). Czyli, trywializując nieco, rozwiązywanie równań różniczkowych to rysowanie schematów blokowych.
*Dlaczego skokowy? Bo jest łatwy do uzyskania-włączenie napięcia, otwarcie zaworu na rurociągu….
**Tu przy okazji zrozumiesz, dlaczego w układzie z ujemnym sprzężeniem zwrotnym sygnał wyjściowy y(t) stara się naśladować wartość zadaną x(t).
Rozdział 11.2 Jak będziemy badać podstawowe człony dynamiczne?
Rozdział 11.2.1 Wstęp
Otaczają nas człony dynamiczne –proporcjonalne, inercyjne, oscylacyjne, całkujące itd… Tzn. Dla automatyka dźwignia jest członem proporcjonalnym, piec-inercyjnym w pierwszym przybliżeniu, i wieloinercyjnym w drugim. A ciężarek na sprężynie-oscylacyjnym. Czyli każdy patrzy na rzeczywistość przez pryzmat swoich doświadczeń lub zawodu. A propos, spytano strażaka czym różni się wiolonczela od skrzypiec. Odpowiedź-wiolonczela dłużej się pali. Skończmy z krotochwilami. Najważniejsze, że będziesz kojarzył transmitancję G(s) z czymś oczywistym. Z odpowiedzią y(t) obiektu na wejście x(t)-konkretnie na skok jednostkowy.
Rozdział 11.2.2 Schemat uniwersalny
Rys. 11-1
Schemat Uniwersalny
Tak będziemy badać podstawowe człony dynamiczne w rozdz. 11.3…11.11
Rozdział 11.2.3 Więcej o schemacie uniwersalnym
Badając podstawowe człony dynamiczne, zaczynając od Proporcjonalnego a kończąc na Inercyjnym z opóźnieniem, schemat będzie zawsze taki jak Rys. 11-1, a dokładniej na Rys.11-2. Będziemy tylko zmieniać mianownik (głównie) i licznik bloku CLR oraz rzadziej, o ile będzie to konieczne, parametry pozostałych bloków.
Rys.11-2
Schemat uniwersalny XCOS do badania członów dynamicznych.
Najczęściej będzie tak:
– Transmitancja Uniwersalna CLR – Jest to Człon Inercyjny który będziemy modyfikować, w tym przekształcać na inne człony, w Rozdz.11.3…11.
– Wejściem jest skok jednostkowy od 0 do 1 i opóźnieniu 1sek*
– Nastawy oscyloskopu Ymin=-1, Ymax-+1.5, czas odświeżania=10sek
– Nastawa bloku const=0 (do wykreślania osi x wykresu)
– Nastawa zegara Okres=0.01sek Czas inicjalizacji=0sek
– Nastawa multipleksera=3 wejścia
– Nastawy w zakładce “Symulacja”– Ostateczny czas integracji=10sek, skalowanie czasu rzeczywistego=1, Solver kind= RK45 Runge-Kutta4(5)_
Parametry symulacji otrzymamy klikając 2 razy lewą myszą zakładkę Symulacja. Wprowadzamy liczbę dziesiętną np. 10, która automatycznie zmieni się na notację naukową, tzn. 10–>1.0E01.
Parametry pozostałych bloków otrzymamy klikając je 2 razy prawą myszą. Otworzą się wtedy powyższe okna z mniejszymi okienkami, do których można wpisać odpowiednie parametry. Np. w oknie zegara Set_CLOCK_c są wpisane parametry Okres=0.01 i czas początkowy 0 w sekundach.
* Przy badaniu Członu Różniczkującego wejściem będzie sygnał narastający zamiast skoku jednostkowego.
Rozdział 11.2.4 Jak stworzyć schemat uniwersalny?
Czyli z Rys. 11-2. Z niego będziemy tworzyć schematy w rozdz.11.3…11.
Najlepiej pokaże to animacja
Rys.11-3
Tworzenie Schematu Uniwersalnego
Widzisz stan końcowy tworzenia schematu, w którym zapisałem go w folderze jako ...xcos/czlon_wzor. Jest zasłonięty przez okno Zapisz jako…ale zobaczysz go w niebieskiej “przerywanej” ramce na Rys.11-2.
W animacji pojawią się kolejne etapy tworzenia Schematu Uniwersalnego.
1.Stan początkowy z otwartymi oknami
– Przeglądarka palet-w nim otwarte Recently used blocks-Wygodne dla Użytkownika, bo tu pojawiają się ostatnio używane bloki.
– Untitled-Xcos-w nim rysujemy schematy blokowe pobierając bloki z konkretnych palet Przeglądarki palet.
2. W oknie Untitled blocks wybieramy lewą myszą zakładkę Plik/Nowy schemat (w animacji trwa to krótko!)
3. Z palety Źródła przenosimy lewą myszą do Untitled blocks bloki -Step_Function, Const, Clock_c,
4. Z palety Sinks przenosimy lewą myszą do Untitled blocks blok CSCOPE
5. Z palety Trasowanie sygnału przenosimy lewą myszą do Untitled blocks multiplekser MUX
6. Z palety Systemy czasu ciągłego przenosimy lewą myszą do Untitled blocks transmitancję CLR
7. Wpisanie 0 do bloku Const
8. Wpisanie 3 do bloku MUX (3 wejścia)
9. Narysowanie lewą myszą połączeń
10. Teraz robota dla Ciebie. Sprawdź parametry pozostałych bloków i zakładki Symulacja. Muszą być takie jak na Rys. 11-2. Jeżeli nie, to zmień je.
Wiesz jak to zrobić. Klikamy prawą myszą itd… Zakładkę Symulacja lewą myszą itd…
11. Zapisanie schematu pod jakąś nazwą w jakimś folderze, tu …xcos/czlon_wzor. Ty zapisz u siebie gdzie chcesz.
Ostatni punkt bardzo ważny! Zaoszczędzisz kupę roboty w rozdziałach 11.3…11.?
Rozdział 11.3 Człon proporcjonalny
Rys.11-4
Człon proporcjonalny o wzmocnieniu K=1.25
Najprostszy człon dynamiczny. Wyjście y(t) związane jest z wejściem skokowym x(t)=1(t-1)* równaniem algebraicznym ( a nie różniczkowym!) y(t)=K*x(t).
Tu K=1.25. Natychmiastowa reakcja na wejście. Nie chciałbyś się znaleźć w samochodzie, który tak reagowałby prędkością v(t) na wciśnięcie pedału gazu x(t) . Przyspieszenie katapulty lotniczej to małe piwo.
* 1(t-1) jest to skok jednostkowy przesunięty w czasie o 1sek.
Schemat z Rys. 11-4 otrzymamy następująco:
– Pobranie pliku czlon_wzor z folderu …xcos, który zapisałem w p.10 animacji Rys.11-3. Ty mogłeś go zapisać gdzie indziej.
– Zmiana parametrów bloku transmitancji CLR z 1/(1+s) na 1.25/1
– Schemat czlon_wzor możesz go zapisać albo nie. Najwyżej w przyszłym czlon_wzor będzie inna transmitancja CLR. Chyba jesteś już wstanie zrobić to samodzielnie. Na wszelki wypadek dałem animację. Przy przy badaniu następnych członów dynamicznych już jej nie będzie.
Rys.11-5
Realizacja członu proporcjonalnego G(s)=1.25 i jego odpowiedź na skok jednostkowy.
Odpowiedź jest natychmiastowa. Porównaj wyjście y(t) z wejściem x(t). Widać, że y(t)=1.25*x(t).
1. Pobranie schematu czlon_wzor
2. Podmianka transmitancji CLR z 1/(1+s) na 1.25/1
3. Wciśniecie “Start” i obserwowanie symulacji
x(t)–zielone
y(t)–czerwone
Transmitancją członu proporcjonalnego jest po prostu G(s)=K, gdzie K jest wzmocnieniem tu K=1.25.
Jeżeli masz sokoli wzrok, to widzisz napisy przebiegów czasowych y(t) i x(t) oraz ich stany ustalone y i x. Dla Członu Proporcjonalnego, który reaguje natychmiast, y(t)=y i x(t)=x oraz wzmocnienie K=y/x.
W życiu codziennym prawie wszystkie obiekty z którymi masz do czynienia to człony proporcjonalne. Przynajmniej na pierwszy rzut oka.
Przykłady:
Huśtawka dwuosobowa z podparciem w środku
Zmiana położenia lewego siodełka x(t) odpowiada takiemu samemu przesunięciu tylko w przeciwnym kierunku
prawego siodełka y(t), dlatego y(t)=-1*x(t). Czyli jest to Człon Proporcjonalny o wzmocnieniu K=-1
Wzmacniacz
Napięcie wyjściowe y(t)=K*x(t) gdy wejściem jest napięcie wejściowe x(t). Parametr K jest wzmocnieniem
Transformator
Amplituda napięcia sinusoidalnego wyjściowe y(t)=K*x(t) gdy wejściem jest amplituda napięcia sinusoidalnego wejściowego x(t).
Wzmocnienie K jest tzw. przekładnią.
A teraz co oznacza “Przynajmniej na pierwszy rzut oka”? No właśnie, nie widzimy stanów przejściowych,
które będą widoczne dopiero przy dokładniejszej analizie.
Amplituda transformatora nie zmieni się natychmiast tylko po np. 1 sekundzie.
Wzmacniacz–>Na dobrym oscyloskopie też da się zauważyć, że wyjście y(t) nie zmieni się natychmiast
Huśtawka–>Tu temat trudniejszy. Ale jak uwzględnimy dynamiczne ugięcia belki przy szybkich zmianach x(t)…
Rozdział 11.4 Człon inercyjny
Rys.11-6
Człon Inercyjny o wzmocnieniu K=1 i stałej czasowej T=1.5sek
Pokazano także jak wpisano transmitancję 1/(1+1.5s). Zwróć uwagę, że wpisano 1.5*s (z gwiazdką) a nie1.5s(bez gwiazdki).
Po kliknięciu w XCOSie w górnej zakładce trójkącika “Start” otrzymasz taki przebieg.
Rys.11-7
Odpowiedź y(t) Członu Inercyjnego 1/(1+1.5s) na skok jednostkowy x(t)
Parametr T=1.5sek otrzymamy ze stycznej, a wzmocnienie K=y/x, gdzie y i x są wartościami ustalonymi wyjścia y(t) i x(t). Gdyby G(s) było postaci np. G(s)=2/(2+3s) to należy licznik i mianownik podzielić przez 2 i otrzymamy G(s)=1/(1+1.5s) w której widoczne są parametry K=1 i T=1.5sek członu inercyjnego.
Rozdział 11.5 Człon DwuInercyjny
Rys.11-8
Człon Dwuinercyjny o wzmocnieniu K=1 i stałych czasowych T1=2sek i T2=5sek
Przy tych parametrach spodziewamy się dłuższych przebiegów czasowych. Dlatego zmienimy nastawy oscyloskopu i zakładki Symulacja na czas przebiegu 30sek. Po wpisywaniu parametrów bloku CLR należało go rozciągnąć klasyczną metodą windowsową.
Po kliknięciu w XCOSie trójkącika “Start” w górnej zakładce otrzymasz przebieg.
Uwaga:
Skalowanie Czasu Rzeczywistego powinno być nastawione na 1, a nie na 0 jak w “Ustaw Parametry” na Rys. 11.8
Rys.11-9
Odpowiedź y(t) Członu dwuinercyjnego G(s)=1/(1+2s)(1+5s) na skok jednostkowy x(t)
Wzmocnienie K=1 liczymy łatwo z wykresu jako stosunek wartości ustalonych K=y/x. Z parametrami T1 i T2 już nie jest tak miło.
Pewnie jest jakaś metoda, ale dajmy sobie spokój. W okolicy napisu y(t) jest charakterystyczny punkt przegięcia wykresu.
Człon DwuInercyjny jest szeregowym połączeniem dwóch inercyjnych, trójinercyjny trzech inercyjnych itd…
Rozdział 11.6 Człon całkujący idealny
Poprzednio zmieniliśmy nastawy bloków i zakładki Symulacji. Dlatego wróć do poprzednich z Rys.11-2.
Rys.11-10
Człon Całkujący o stałej całkowania Ti=5sek
Stała całkowania Ti jest to czas, po którym sygnał wyjściowy y(t) osiągnie wartość wejścia x(t) skoku jednostkowego.
Rys.11-11
Odpowiedź y(t) Członu Całkującego Idealnego G(s)=1/5s na skok jednostkowy x(t)
Zauważ, że po czasie Ti=5sek sygnał wyjściowy y(t) zrównał się z wejściowym skokiem x(t).
A jaki będzie przebieg “piły” y(t) np. dla dwa razy mniejszego tj. Ti=2.5sek?
Rys.11-12
Odpowiedź y(t) Członu całkującego idealnego G(s)=1/2.5s na skok jednostkowy x(t)
Przebieg jest 2 razy szybszy. Sam wyciągnij wnioski.
Przykładem członu całkującego jest idealny silnik prąadu stałego. Tzn. z małą masą i indukcyjnością. Krótko mówiąc, jak każdy ideał nie ma takiego na świecie. Wtedy odpowiedź jego kąta wału α(t) na skok napięcia stałego u(t) będzie taka jak powyżej. Przypominam, że α(t) moźe być większa od 360º.
Rozdział 11.7 Człon całkujący rzeczywisty czyli z inercją
A jak będzie reagował prawdziwy silnik prądu stałego, którego wirnik ma bezwładność, a uzwojenie indukcyjność?
Oczywiście z pewną ospałością, czyli z inercją.
Rys.11-13
Człon Całkujący Rzeczywisty Ti=1.5sek i T=0.5sek
Jako szeregowe połączenie członu całkującego Ti=1.5sek z członem inercyjnym T=0.5sek.
Uwaga:
Ze względy na inny zakres czasowy przebiegu niż dotychczas, zmień nastawy oscyloskopu i zakładki Symulacja tak jak na rysunku.
Rys. 11-14
Odpowiedź y(t) Członu Całkującego G(s)=1/2.5s na skok jednostkowy x(t).
Pokazano jak odczytać z wykresu czas całkowania Ti i stałą czasową inercji T.
Człon całkujący z inercją jako połączenie szeregowe
Czyli takie.
Rys. 11-15
Takie podejście pozwoli nam coś zauważyć
Rys.11-16
Jak przebieg członu całkującego z inercją jest przesunięty względem składowej całkującej.
Tu wyraźnie widać że, składowa z inercją jest przesunięta równolegle w prawo względem idealnej o stałą inercji T=0.5sek.
Rozdział 11.8 Człon różniczkujący idealny
Rys 11-17
Człon Różniczkujący Idealny
Z różnych powodów nie będziemy modyfikować bloku CLR, tylko wywołamy z palety Systemy Czasu Ciągłego osobny blok różniczkujący du/dt. Radzę też pobrać stamtąd blok DUMMY CLSS. Nie wnikam po co, ale Scilab nie będzie krzyczał, że coś nie tak. Ze schematu wynika, że parametrem stałej różniczkowania jest Td=1 (a sciślej Td=1sek). Po wciśnięciu “Start” będziesz wiedział o co chodzi.
Rys.11-18
Odpowiedź członu różniczkującego idealnego sTd gdy Td=1sek.
Odpowiedź podobna do Rys.11-11, tylko “a rebours”. To co było wejściem jest wyjściem. Dla członu różniczkującego nie można stosować sygnału skokowego jako wejściowego. Bo jaka jest pochodna w momencie skoku. Nieskończenie wielka! Trudno z tego wyciągnąć np. wartość parametru Td. A gdy wejściem jest sygnał narastający liniowo? Żaden problem. Jest to czas Td po którym sygnał wyjściowy y(t) zrówna się z wartością sygnału narastającego -“rampy”. I to niezależnie od szybkości narastania. To sprawdźmy jeszcze gdy Td=2sek? Zmień wartość wzmacniacza k=1 z Rys.11-17 na k=2.
Rys.11-19
Odpowiedź członu różniczkującego idealnego sTd gdy Td=2sek.
Sygnał wyjściowy jest 2 razy większy, tak jak oczekiwaliśmy. Niezależnie od prędkości narastania sygnału wejściowego x(t).
Rozdział 11.9 Człon różniczkujący rzeczywisty czyli z inercją.
Rys.11-20
Człon Różniczkujący Rzeczywisty i nastawy oscyloskopu.
Znowu skorzystaliśmy z członu CLR, który odpowiednio zmodyfikowaliśmy.
Rys.11-21
Odpowiedź członu Różniczkującego Rzeczywistego na sygnał narastający liniowo x(t) gdy Td=3sek i T=T0.25sek.
Parametr Td=3sek jest czasem zrównania się sygnału ustalonego wyjściowego y(t) z wejściowym “piłą” x(t). Pamiętaj, że wejściem piła a nie skok!
Rozdział 11.10 Człon oscylacyjny
Rys.11-22
Człon oscylacyjny w postaci znormalizowanej. Tj. takiej w której wyraz wolny w mianowniku=1
Parametry obliczymy na podstawie wartości w czerwonych kółkach:
1–>Wzmocnienie k=1 (licznik mianownika)
0.04–>(o.2²=0.04)–>Okres oscylacji Tosc=2*π*0.2≈1.256sek
0.1—>(2*q*0.2=0.1–>q=0.25)–>Tłumienie q=0.25
Pierwotnie postać ułamka mogła być nieznormalizowana np. taka 3/(0.12s+0.3+3).
Jeżeli licznik i mianownik podzielimy przez wyraz wolny tzn. przez 3 to otrzymamy postać znormalizowaną.
Rys.11-23
Poprzednio obliczyliśmy parametry członu oscylacyjnego z czerwonych kółek. Parametry możemy obliczyć także z wykresu.
Wzmocnienie k=1 obliczyliśmy jako k=y/x=1/1=1 gdy y i x to stany ustalone
Okres oscylacji Tosc≈1.3sek jest trochę większy od Tosc=1.256sek obliczonego pod Rys.11-22.
Parametr tłumienia q też da się policzyć, ale dajmy sobie spokój. To kurs Scilaba, a nie teorii regulacji.
Więcej znajdziesz w rozdziale 7 kursu Podstawy Automatyki.
Rozdział 11.11 Człon opóźniający i transmitancja zastępcza
Rozdział 11.11 .1 Wstęp
Do tej pory poznałeś większość typowych członów dynamicznych opisanych przez transmitancje, lub jak kto woli, przez równania różniczkowe. Może to być piec, rakieta, reaktor chemiczny dla którego wejściem jest przepływ np. zasady (chemicznej oczywiście, nie moralnej) a wyjściem jego współczynnik ph. Każda transmitancja jest inna. Automatycy dla wygody wymyślili sobie tzw. transmitancję zastępczą będącą szeregowym połączeniem członu Opóźniającego i Inercji. A po co to? W chemii np. bardzo dużo obiektów opisuje się jako wieloinercyjne. Na skok reagują one etapem “rozpędzania się”, potem jest prędkość maksymalna, która się stopniowo zmniejsza aż dojdzie do stanu ustalonego. Z samego przebiegu łatwo wyznaczymy wzmocnienie K=y/x gdzie y, x to wartości ustalone. A stałe czasowe T1,T2,…Tn? To już wyższa szkoła jazdy. Dlatego wymyślono transmitancję zastępczą, która ma tylko 3 parametry. Wzmocnienie K, Inercję T i opóźnienie To. Są łatwe do wyznaczenia z wykresu. W dodatku dla tych 3 parametrów mądrzy ludzie już dawno dobrali optymalne nastawy regulatorów PID, tak żeby odpowiedź układu zamkniętego była pod jakimś względem najlepsza.
Rozdział 11.11 .2 Człon opóźniający exp(-sTo)
Rys.11-24
Człon opóźniający exp(-sTo) i nastawy oscyloskopu 2-kanałowego
To=3sek czyli exp(3*s)
Uwaga.
Symbol s w exp(3*s) nie jest sekundą! Jest to liczba zespolona s. Więcej na ten temat w następnym rozdziale.
Człon opóźniający znajdziesz w palecie Systemy Czasu Ciągłego jako blok TIME_DELAY
Rys.11-25
Odpowiedź członu opóźniającego exp(-4*s) na skok jednostkowy.
Wyjście jest ewidentnie opóźnione o 4 sekundy.
Rozdział 11.11.3 Transmitancja zastępcza
Rys.11-26
Transmitancja Zastępcza jako szeregowe połączenie Członu Opóźniającego i Inercyjnego.
Rys.11-27
Transmitancja zastępcza G(s) o parametrach
K=1, To=0.5sek, T=1.5sek
Wzmocnienie K=1, opóźnienie To=0.5sek oraz T=1.5sek “jako styczna” są oczywiste.