Szybkie prototypowanie regulatora PID

Za pomocą komputerowych modeli można symulować proces i dobierać odpowiednie nastawy regulatora ? zanim wszystko zaprojektujesz i wykonasz.
Regulatory PID (Proportional-Integral-Derivative ? proporcjonalno-całkująco-różniczkujące) są wszechobecne. Projektowanie i dobór parametrów tych regulatorów może wydawać się teoretycznie prosty, ale w praktyce taki nie jest. Typowa procedura dobru nastaw wygląda tak, że regulator steruje obiektem, a operator dobiera jego parametry. Niestety zabiera to wiele czasu i jest potencjalnie niebezpieczne, gdyż nieświadomie można doprowadzić proces do niestabilności. W artykule przedstawiono procedurę doboru nastaw regulatora PID z wykorzystaniem symulacji komputerowych i modelu rzeczywistego obiektu. Opracowany regulator został zainstalowany w jednostce PLC, PAC i mikrokontrolerze.
Do projektowania w oparciu o model procesu wykorzystane zostanie graficzne środowisko programistyczne. Modele mogą być wielokrotnie symulowane i poprawiane, zanim ostateczna wersja zostanie wdrożona i uruchomiona. Nie ma potrzeby wykorzystywania rzeczywistych sterowników i rzeczywistych obiektów ? nie ma zatem obawy o uszkodzenie urządzenia lub spowodowanie sytuacji niebezpiecznej. Dzięki możliwości wczesnego wykrywania błędów wszystko zostanie odpowiednio nastrojone, zanim regulator zacznie sterować prawdziwym obiektem. Taką funkcjonalność oferuje wiele nowoczesnych programów, jednak w tym przypadku wykorzystaliśmy narzędzie Simulink firmy MathWorks.
Projektowanie regulatora PID w oparciu o model procesu przebiega w czterech krokach:

  • stworzenie modelu procesu,
  • zaprojektowanie regulatora PID,
  • testowanie działania regulatora w czasie rzeczywistym,
  • wdrożenie rozwiązania.

Wykorzystując jako przykład cyfrowy system sterowania napędem, przeprowadzimy proces szybkiego prototypowania regulatora PID.
Cyfrowy system sterowania napędem
Rysunek 1 przedstawia proces lub obiekt fizyczny, którym będziemy sterować. Składa się on z końcówki mocy sterującej silnikiem DC oraz dwóch enkoderów optycznych mierzących położenie wału silnika i obciążenia. Obciążenie połączone jest z silnikiem za pomocą elastycznego wałka, który odzwierciedla podatność wału na obciążenia, spotykaną w wielu systemach sterowania ruchem. Zadaniem systemu sterowania jest utrzymywanie zadanej trajektorii obciążenia silnika. Regulator PID porównuje wartość zadaną trajektorii z aktualnym kątem, pod jakim znajduje się obciążenie i na tej podstawie wypracowuje sygnał napięcia silnika. Naszym celem jest poprawienie osiągów maszyny: obecna prędkość wynosi 150 rad/sec, a przyspieszenie 2000 rad/sec2, docelowe wartości wynoszą odpowiednio 250 rad/sec i 5000 rad/sec2. Zwiększenie prędkości ma odbyć się bez zmniejszania jakości regulacji ? różnica między wartością zdaną kąta a wartością aktualną nie może być większa niż 1 stopień. Obecny regulator nie jest w stanie spełnić tych wymagań (rysunek 2).
Zamiast ręcznego strojenia wzmocnień regulatora PID bezpośrednio ?na obiekcie?, stworzymy model procesu, do którego zaprojektujemy, przetestujemy i wdrożymy regulator.

Tworzenie modelu procesu
Zjawiska fizyczne można opisywać dwojako: empirycznie i za pomocą wzorów fizycznych.
Tworzenie modelu empirycznego polega na podawaniu na wejście określonych sygnałów i pomiarze sygnałów wyjściowych. Aby nie zakłócać procesu, rzeczywisty regulator będzie cały czas sterował procesem. Naszą wartością wejściową będzie biały szum, a wyjściową sygnał mierzony na zaciskach zasilających silnik. Zapisane sygnały wejściowe i wyjściowe pozwolą nam określić charakterystykę częstotliwościową zamkniętej pętli sterowania, a ponieważ znamy obecne nastawy regulatora (tego, który chcemy poprawić), będziemy w stanie określić charakterystykę częstotliwościową samego procesu. Aby móc symulować działanie nowego regulatora w dziedzinie czasu, a nie częstotliwości, wykorzystamy wbudowane w oprogramowanie narzędzie identyfikacyjne, które oszacuje funkcję przejścia procesu.
Aby stworzyć model procesu na podstawie zjawisk fizycznych w nim występujących, tworzymy w oprogramowaniu diagram, łącząc ze sobą bloczki wzmocnienia, sumowania, całkowania itd.
Modele mechanicznych i elektrycznych układów uzyskuje się często uproszczoną metodą wyprowadzania równań fizycznych: bloczki, takie jak inercja, sztywność, tłumienie, rezystancja i indukcyjność, łączy się odpowiednio na diagramie analogicznie do schematów mechanicznych i elektrycznych. Takie modelowanie pozwala ominąć żmudną analizę poszczególnych zjawisk fizycznych.
Czasem warto skorzystać z zalet obu metod modelowania, łącząc je. Aby to zrobić, wykorzystaliśmy sygnały wejściowe i wyjściowe z rzeczywistego obiektu do doboru parametrów modelu fizycznego (rysunek 5). Parametry (inercja silnika i obciążenia, sztywność i tłumienie) zostały dobrane z wykorzystaniem technik numerycznej optymalizacji. Aby potwierdzić wiarygodność otrzymanego modelu, porównaliśmy jego odpowiedź z odpowiedzią rzeczywistego procesu na ten sam sygnał wejściowy. Procedura była automatycznie powtarzana tak długo, aż otrzymaliśmy żądaną wartość dopasowania modelu do rzeczywistego procesu.

Projektowanie regulatora PID
Gdy mamy model procesu, projektowanie regulatora PID jest proste. Dodajemy blok regulatora PID do naszego diagramu i tworzymy zamkniętą pętlę sterowania. Blok jest sparametryzowany, co oznacza, że możemy zmieniać wzmocnienia akcji proporcjonalnej, całkującej i różniczkującej. Zamiast ręcznie dobierać nastawy, korzystamy z funkcji automatycznego doboru nastaw, przedstawionej na rysunku 6, która sama wypracuje odpowiednie wartości wzmocnień. Gdy próbowaliśmy wzmacniać działanie regulatora, system stawał się niestabilny. Analiza przebiegów sygnałów w dziedzinie częstotliwości wskazała przyczynę ? był nią lokalny rezonans.
Tego typu niestabilność to typowa cecha układów sterowania ruchem, ale zastosowanie filtru typu notch eliminuje problem. Narzędzie programistyczne pozwala nam wyciąć wąski fragment pasma, aby ustabilizować system i zwiększyć wzmocnienia regulatora (rysunek 8).
Przetestowaliśmy nasze rozwiązanie (regulator PID z nowymi nastawami i filtrem typu notch), uruchamiając nieliniową symulację naszego układu z zamkniętej pętli. Nieliniowy model uwzględnia zjawisko nasycenia zachodzące w silniku. Symulacje potwierdziły, że układ spełnia wymagania przedstawione wcześniej (rysunek 9).
Dzięki symulacjom udało się nam ustalić, że samo zwiększanie wzmocnień regulatora PID nie jest wystarczające. Potrzebne było zastosowanie filtru typu notch, który wyeliminuje rezonans w układzie. Automatyczny dobór nastaw regulatora PID pozwala nam na szybki dobór parametrów. Ręczny ich dobór na rzeczywistym obiekcie mógł spowodować niestabilność, a nawet awarię.
Testowanie w czasie rzeczywistym
Następnym krokiem po potwierdzeniu przez symulację poprawności działania naszego regulatora było przetestowanie go w praktyce. W pierwszej kolejności do testów potrzebna była platforma sprzętowa czasu rzeczywistego z możliwością komunikacji z komputerem i wyposażona w moduł I/O, przedstawiona na rysunku 10. Moduły I/O są zwykle podłączone do czujników i elementów wykonawczych maszyny (prototypu). Za pomocą specjalnego narzędzia wygenerowaliśmy na podstawie diagramu kod programu w języku C wprost do naszej platformy czasu rzeczywistego. W krótkim czasie nasz regulator wraz z filtrem notch pracował, pobierając dane z rzeczywistego układu i sterując rzeczywistym obiektem. Mogliśmy zatem upewnić się, że prototyp działa poprawnie i steruje procesem zgodnie z przyjętymi założeniami, zanim zaimplementowaliśmy jego funkcjonalność w ostatecznym urządzeniu wykonawczym, jakim jest sterownik PLC/PAC. To jest właśnie idea szybkiego prototypowania. Dodatkowo mogliśmy na bieżąco monitorować, czy zachowanie testowanego regulatora jest identyczne z symulowanym wcześniej. Jeśli wystąpiłyby różnice, moglibyśmy je łatwo skorygować i ponownie sprawdzić poprawność działania projektowanego regulatora.
Wdrożenie rozwiązania
Naszym ostatnim krokiem było zainstalowanie regulatora w sterowniku PLC/PAC lub w mikrokontrolerze, który wykonaliśmy za pomocą narzędzia do automatycznego generowania kodu. Dla sterownika PLC/PAC wygenerowaliśmy program w języku strukturalnym, który jest jednym z języków określonych w normie IEC 61131. Program zapisany został w formacie PLCopen XML, dzięki czemu można go przenieść i uruchomić na wielu sterownikach programowalnych różnych producentów. Jeśli sprzętową platformą docelową byłby mikrokontroler, wygenerowalibyśmy automatycznie kod w języku C.
Wykorzystując techniki modelowania, symulowania pracy zamkniętej pętli sterowania i automatycznego nastawiania regulatora PID, mogliśmy analizować na komputerze zachowanie się naszego układu regulacji. Nasz model pozwolił na wykrycie rezonansu, którego wpływ zlikwidowaliśmy przy użyciu filtru typu notch. Badania w urządzeniu czasu rzeczywistego potwierdziły poprawną pracę zaprojektowanego regulatora. Automatyczne generowanie kodu programu pozwoliło na szybkie zainstalowanie regulatora w sterowniku programowalnym. Ostatecznie wykorzystanie symulacji w oparciu o dobry model procesu umożliwiło zaprojektowanie i przetestowanie rozwiązania bez uszkadzania, a nawet przerywania pracy rzeczywistego procesu.
Arkadiy Turevskiy i Brian McKay są menedżerami marketingu. Doug Eastman i Paul Lambrechts są starszymi inżynierami aplikacji.
Artykuł pod redakcją mgr. inż. Łukasza Urbańskiego, doktoranta w Katedrze Automatyki Przemysłowej i Robotyki Wydziału Elektrycznego Zachodniopomorskiego Uniwersytetu Technologicznego w Szczecinie.
CE