ELEKTRYKA 2010 Zeszyt 1 (213) Rok LVI Rafał GRYGIEL, Marcn PACHOLCZYK Instytut Automatyk, Poltechnka Śląska w Glwcach PROTOTYPOWANIE ALGORYTMÓW STEROWANIA W SYSTEMIE MATLAB/SIMULINK Streszczene. W artykule opsano podstawowe załoŝena metodolog tzw. projektowana, operając sę na modelu nteresującej nowej technk projektowana systemów wbudowanych (ang. embedded systems) oraz omówono moŝlwośc systemu Matlab/Smulnk w tym zakrese. W końcowej częśc artykułu czytelnk odnajdze dwa przykłady prototypowana dyskretnego regulatora typu PID oraz optymalnego LQ. Słowa kluczowe: prototypowane algorytmów sterowana, SIL, PIL, HIL, V-cycle, PID, LQ, Matlab/Smulnk PROTOTYPING OF CONTROL ALGORITHMS IN MATLAB/SIMULINK Summary. The artcle presents basc prncples of model-based desgn methodology an nterestng new technque n the desgn of embedded systems. The authors use Matlab/Smulnk system and MPC555 mcrocontroller to demonstrate a desgn of a dscrete PID controller and an optmal LQ controller. Keywords: control prototypng, SIL, PIL, HIL, V-cycle, PID, LQ, Matlab/Smulnk 1. WPROWADZENIE Powszechna obecność mkroprocesorowych systemów sterujących w urządzenach zarówno przemysłowych, jak codzennego uŝytku, tzw. systemów wbudowanych (ang. embedded systems), począwszy od lat 80. XX weku, stymuluje rozwój róŝnorodnych, coraz doskonalszych, platform sprzętowych słuŝących realzacj zadań sterowana. Podstawowym zadanem przy projektowanu systemu wbudowanego jest koneczność stworzena, obok prototypu częśc sprzętowej, równeŝ oprogramowana kontrolującego określone funkcje docelowego urządzena. W ostatnch dekadach moŝna było zaobserwować powszechne przejśce od programowana w językach assemblerów poszczególnych platform do programowana w językach wysokego pozomu, najczęścej C/C++. Take przejśce
150 R. Grygel, M. Pacholczyk pozwolło częścowo unezaleŝnć pewne fragmenty kodu od stosowanej platformy sprzętowej, co znaczne ułatwło przenoszene kodu pomędzy róŝnym platformam umoŝlwło powtórne wykorzystywane fragmentów programów. W chwl obecnej stomy przed kolejną powaŝną zmaną w flozof programowana systemów wbudowanych, a jest ną tzw. proces projektowana bazującego na modelu (ang. model-based desgn). Projektowane bazujące na modelu zakłada jeszcze wększy, w stosunku do programowana w językach typu C/C++, stopeń abstrakcj tworzonego kodu oprogramowana. Zakłada sę moŝlwość jak najprostszego przejśca od modelu symulacyjnego, zapsanego w postac schematu blokowego, do kodu wykonywalnego dla wybranej docelowej platformy sprzętowej. W artykule zaprezentowano moŝlwośc środowska Matlab/Smulnk w zakrese realzacj podstawowych załoŝeń takego modelu programowana. Przykładem będze projektowane dyskretnego regulatora PID oraz optymalnego LQ dla obektu, którego przebeg odpowedz skokowej aproksymuje sę elementem w postac nercj z opóźnenem. 2. MOśLIWOŚCI SYSTEMU MATLAB/SIMULINK W ZAKRESIE PROJEKTOWANIA BAZUJĄCEGO NA MODELU Środowsko Matlab/Smulnk wykorzystywane tradycyjne w badanach symulacyjnych róŝnorodnych sytemów dynamcznych umoŝlwa obecne realzację załoŝeń projektowana bazującego na modelu. Model symulacyjny w postac schematu blokowego Smulnka moŝna uzupełnć o dodatkowe blok reprezentujące najczęścej operacje wejśca-wyjśca, umoŝlwające przeprowadzene pomaru realzację sterowana w rzeczywstym obekce. W wersj 2008b Matlab umoŝlwa wykorzystane m.n. mkrokontrolerów Freescale MPC5xx (32-btowych) oraz Infneon C16x (16-btowych). W przypadku obu rodzn mkrokontrolerów moŝlwe jest wykorzystane magstral CAN, powszechne stosowanej m.n. w przemyśle samochodowym. Kolejne etapy procesu projektowana bazującego na modelu przedstawa sę zwykle w postac tzw. dagramu lub cyklu V (rys. 1). Po opracowanu załoŝeń funkcjonalnych projektowanego algorytmu sterowana oraz zweryfkowanu ch w badanach symulacyjnych, projektant moŝe przystąpć do stopnowego przenoszena algorytmu na docelową platformę sprzętową. Jedną z podstawowych zalet systemów, umoŝlwających projektowane bazujące na modelu, jest automatyczna generacja kodu (najczęścej w języku C) dla docelowej platformy sprzętowej, na podstawe schematu blokowego uzupełnonego o odpowedne elementy reprezentujące operacje wejśca-wyjśca. Przed wygenerowanem kodu, dysponując odpowednm urządzenem, moŝna przeprowadzć proces tzw. szybkego prototypowana sterowana (ang. rapd control prototypng).
Prototypowane algorytmów sterowana 151 Rys. 1. Projektowane bazujące na modelu dagram V Fg. 1. Model-based desgn the V dagram Oznacza to sytuację, w której algorytm sterowana, symulowany w czase rzeczywstym za pomocą komputera PC, oddzałuje na rzeczywsty obekt za pomocą specjalstycznego urządzena umoŝlwającego komunkację w zakrese przesyłana wynków pomarów wartośc sterowań. Wygenerowany w sposób automatyczny kod programu moŝna zweryfkować przeprowadzając symulację typu Software-n-the-Loop (SIL) lub kosymulację Processor-n-the-Loop (PIL rys. 2). W perwszej z nch, skomplowany dla docelowej platformy, kod programu wykorzystywany jest w symulacj za pośrednctwem swostego opakowana (ang. wrapper), umoŝlwającego wykonywane obcego kodu w Smulnku. W przypadku PIL część symulacj, dotycząca algorytmu sterowana, jest wykonywana na platforme docelowej. Wymaga to oczywśce połączena komputera PC z systemem Matlab/Smulnk docelowej platformy sprzętowej, np. za pomocą łącza RS232C, w celu wzajemnej wymany danych. Kolejnym krokem jest przenesene całośc algorytmu sterowana na docelową platformę sprzętową weryfkacja w schemace Hardware-n-the-Loop (HIL rys. 3). HIL oznacza przypadek, w którym wykonywany na docelowej platforme sprzętowej algorytm sterowana oddzałuje na symulowany, w systeme Matlab/Smulnk w czase rzeczywstym, obekt. Po gruntownej weryfkacj prototypowanej strateg regulacj oraz kalbracj parametrów algorytmu moŝna przystąpć do budowy właścwego prototypu urządzena. W kolejnych rozdzałach opsano praktyczny przykład poszczególnych etapów projektowana oraz przebeg testów w schemace HIL z wykorzystanem mkrokontrolera MPC 555 oraz magstral CAN.
152 R. Grygel, M. Pacholczyk RS 232 Rys. 2. Symulacja SIL kosymulacja PIL Fg. 2. SIL smulaton and PIL cosmulaton Rys. 3. Testowane HIL Fg. 3. HIL testng 3. OPIS UKŁADU STEROWANIA Obektem regulacj jest cągły, lnowy układ dynamczny o jednym wejścu u(t) jednym wyjścu y(t): ( t) = ( t) + u ( t) ( ) = d x ( t), x& Ax b y t gdze x(t) jest m-wymarowym wektorem stanu obektu. Macerz stanu A o wymarach m m oraz m-wymarowe wektory sterowana b wyjśca d są stałe. Sygnał sterujący u(t) otrzymywany jest z ekstrapolatora zerowego rzędu (ZOH) z okresem próbkowana h:, (1) u ( t) = u, (2) dla t ( h, h + h], = 0, 1,..., którego wejścem jest dyskretny sygnał wyjścowy regulatora u. Jego wartośc zmenają sę w dyskretnych chwlach czasu t = h, = 0, 1,... Wyjśce
Prototypowane algorytmów sterowana 153 obektu y(t) jest próbkowane takŝe z okresem h. Dla chwl próbkowana otrzymuje sę następujący model dyskretny: gdze: Ah Aν F e, g e b d ν, h = = 0 x Fx g = + + 1 u, y = d x, Celem regulacj jest jak najlepsze odwzorowywane przebegu wartośc zadanej y r, która zmena sę w sposób skokowy r ( t ) = r 1( t ). Do osągnęca postawonego celu regulacj nadąŝnej wykorzystane zostane regulator typu PID oraz LQ. o (3) 4. UKŁADY REGULACJI 4.1. Regulator PID Dyskretny regulator PID zdefnowany jest transmtancją: K reg U ( z) h z TD z 1 ( z) = = kp 1+ + E( z) TI z 1 h z gdze h jest okresem próbkowana, a k P, T I T D odpowedno wzmocnenem, stałą całkowana oraz stałą róŝnczkowana. W pracy wykorzystane zostaną nastawy regulatora, bazujące na aproksymacj cągłej układu dyskretnego, składającego sę z ekstrapolatora zerowego rzędu (ZOH), obektu oraz elementu próbkującego. Ponadto, przebeg odpowedz skokowej obektu (1) aproksymuje sę elementem w postac nercj z opóźnenem: k sτ G ( s) = e (5) 1 + Ts Parametry G(s) mogą zostać określone róŝnym metodam bazującym na odpowedz skokowej układu otwartego (1). Jedną z nch jest metoda dwóch punktów, bazująca na dwóch chwlach czasu: t 1 oraz t 2, dla których odpowedź skokowa osąga odpowedno: 28,3% oraz 63,2% stanu ustalonego: ( ) T = 1,5 t t, τ = t T. (6) 1 2 1 W pracy wykorzystuje sę nastawy regulatora tzw. QDR (Quarter Decay Rato) [1], które są odczytywane z tabel 1, gdze w L wzęto pod uwagę element ZOH oraz próbkowane w następujący sposób: h L = τ +. (7) 2 (4)
154 R. Grygel, M. Pacholczyk Nastawy QDR regulatora PID Tabela 1 P PI PID k P T k L 0,9 T k L 1,2 T k L T I T D 3,33 L 2 L 0,5 L Odpowada to aproksymacj opóźnena o wartośc h/2 wprowadzanego przez ZOH w przecweństwe do rozwązana zaprezentowanego w [2] zapewna poprawną pracę układu regulacj. 4.2. Regulator LQ Celem regulacj jest nadąŝane sygnału y za r. Osągnęce zamerzonego celu ma zapewnć prawo sterowana, do którego wyznaczena wykorzystany zostane, poddany mnmalzacj, kwadratowy wskaźnk jakośc zdefnowany dla przyrostów sterowana u : N 2 2 lm ( + 1 ρ ), ρ 0, (8) N = 0 I = e + u gdze e = y y jest róŝncą pomędzy beŝącym wyjścem układu a poŝądanym, nowym stanem ustalonym wynkającym ze zmenającego sę sygnału wartośc zadanej r. W stane ustalonym prawdzwy jest ops: x = Fx + gu, y = d x na jego podstawe moŝna zdefnować odchyłk: (9) x = x x x = x + x u = u u u = u + u (10) Uwzględnając zaleŝnośc (10) w równanu uchybu ( ) e = y y = d x x = d x oraz stanu obektu (3) we wskaźnku jakośc (8), otrzymuje sę:
Prototypowane algorytmów sterowana 155 I 1 = Q x + = (11) N ( x Q x + x q u + q u ) N 2 2 lm ( x+ 1 + 1 ρ u ) lm 1 2 12 2 N N = 0 N = 0 Q = F QF, q = F Qg, q = g Qg + ρ, 1 12 2 klasyczny problem klasy LQ, którego rozwązane ma postać: gdze: c = k x ˆ, (12) u x k c x q = q 12 2 + F Kg, + g Kg zaleŝy od dodatno określonego rozwązana K równana Rccatego: K = Q + FKF 1 ( q + F KG)( q + F KG) 12 12 q 2 + g Kg. W stane ustalonym (9) sygnały u, x, y mają postać: ( I F ) 1 r g o u =, x = ro, y = ro, ko ko 14243 ( I ) 1 gdze k = d F g. o l (13) Do realzacj prawa sterowana (12) nezbędna jest znajomość oceny stanu ˆx układu (3). Wykorzystano obserwator pełnego rzędu o strukturze bazującej na dyskretnym fltrze Kalmana: gdze ( ( ˆ + )) = ( F k F ) xˆ ( g ) xˆ Fxˆ g k d Fx g d g k d k, (14) f f f f + 1 = + u + y u + u + y f k dobera sę tak, aby równane (14) było asymptotyczne stablne. Elementy wektora f k ustala sę zatem w tak sposób, aby macerz: f f F = ( F k d F ), (15) mała z góry zadane wartośc własne, rzeczywste lub zespolone param sprzęŝone, leŝące wewnątrz koła jednostkowego:
156 R. Grygel, M. Pacholczyk f ( ) λ F < 1. (16) Gdy wartośc własne macerzy mają odpowedne wartośc, wówczas stan obserwatora ˆx dostateczne szybko dąŝy do stanu układu obserwowanego x. Schemat blokowy układu regulacj z uwzględnenem sygnałów zapewnających przejśce do nowego stanu ustalonego (13) przedstawono na rys. 4. Rys. 4. Schemat blokowy układu regulacj LQ Fg. 4. Schematc dagram LQ control system 5. IMPLEMENTACJA W ŚRODOWISKU SIMULINK/MPC 555 Rys. 5. Obekt oraz wartość zadana w PC Fg. 5. Plant and reference n PC
Prototypowane algorytmów sterowana 157 Obekt (1) zamplementowany został w środowsku Matlab/Smulnk (rys. 5) wraz z elementam odpowedzalnym za poberane sygnału sterującego oraz wysyłane sygnału regulowanego wartośc zadanej do mkrokontrolera MPC555. Na schemace tym uwzględnono takŝe ekstrapolator ZOH oraz elementy próbkujące. Symulacja odbywa sę w czase rzeczywstym, co zapewna element RTBlock [3]. Rys. 6. Regulator PID w MPC555 Fg. 6. PID controller n MPC555 Rys. 7. Regulator LQ w MPC555 Fg. 7. LQ controller n MPC55
158 R. Grygel, M. Pacholczyk 6. PRZYKŁADY Do zaprezentowana przykładowych przebegów czasowych w dyskretnych układach regulacj przyjęto tor sterowana (1) o następującej postac: ( ) K s = 1 ( 1+ 2s) 2. (17) Przebeg czasowe w układze regulacj PID, o nastawach wynkających z metody QDR, przy dwóch okresach próbkowana h=0,01 oraz h=0,2 przedstawono na rys. 8. Przy małym okrese próbkowana h=0,01 (rys. 8a) wdoczne są oprócz duŝych wartośc sygnału regulującego u(t) takŝe wysokoczęstotlwoścowe zmany tego sygnału, wynkające z błędów pojawających sę podczas przetwarzana oraz transmsj sygnałów przez magstralę CAN. Zwększene okresu próbkowana (rys. 8b) spowodowało zmnejszene wartośc maksymalnej sygnału regulowanego. Dodatkowo, ponewaŝ transmsja przez CAN ne jest juŝ tak krytyczna czasowo, ne są wdoczne stotne znekształcena w jego przebegu. Prawdłowe strojene regulatora PID, uwzględnene w jego nastawach połowy okresu próbkowana h, spowodowało, Ŝe przebeg sygnału regulowanego y(t) ne uległ zmane jest prawdłowy. Na rys. 9 przedstawono natomast przykładowe przebeg czasowe dla regulatora LQG. W układze tym jest tylko jeden parametr nastawalny λ. Mała wartość tego parametru (rys. 9a) skutkuje szybkm dojścem sygnału y(t) do nowego stanu ustalonego z przeregulowanem oraz stosunkowo duŝą wartoścą maksymalną sygnału sterującego u(t). Zwększene λ powoduje zmnejszene wartośc u(t) oraz aperodyczne dojśce y(t) do stanu ustalonego. Pommo braku elementu całkującego w układze regulacj LQ ne występuje uchyb statyczny. Zerowy uchyb w stane ustalonym gwarantuje struktura układu ze sprzęŝenem w przód przedstawona na rys. 4. Oczywśce, w sytuacj rozbeŝnośc modelu obektu uŝytego do syntezy regulatora w stosunku do obektu, zwłaszcza jego wzmocnena, powstałby uchyb statyczny. MoŜlwym do zastosowana rozwązanem tego problemu byłoby wprowadzene elementu całkującego o małej stałej czasowej, który ne wpływałby na przebeg przejścowe w układze. 7. PODSUMOWANIE W rozwaŝanej strukturze programowo - sprzętowej pojawają sę problemy zwązane z praktycznym aspektem wykonywanych symulacj. W szczególnośc moŝna napotkać następujące problemy: rozsynchronzowane sę próbek, przepełnene buforów przy transmsj z wykorzystanem magstral CAN czy kwantyzację sygnałów. Podstawową zaletą projektowana bazującego na modelu w środowsku Matlab/Smulnk, oprócz ogromnej popularnośc tego środowska, zwłaszcza na uczelnach techncznych, jest stosunkowo nsk
Prototypowane algorytmów sterowana 159 nakład pracy potrzebny do zaprojektowana przetestowana kluczowych zagadneń zwązanych z algorytmem sterowana, a następne przenesena go na docelową platformę sprzętową testowana w czase rzeczywstym. Naukowec czy teŝ nŝyner automatyk moŝe sę skoncentrować na projekce wybranej strateg sterowana w znanym środowsku pracy, bez konecznośc czasochłonnej nejednokrotne skomplkowanej fazy tłumaczena projektu na kod w języku C dla wybranej, docelowej platformy sprzętowej. a) b) Rys. 8. Przebeg czasowe w układze regulacj PID dla: a) h=0,01; b) h=0,2 Fg. 8. Tme realzaton wth PID controller for: a) h=0,01; b) h=0,2
160 R. Grygel, M. Pacholczyk a) b) Rys. 9. Przebeg czasowe w układze regulacj LQ dla h=0,2 oraz a) λ=0,001; b) λ=0,5 Fg. 9. Tme realzaton n LQ structure for h=0,2 and a) λ=0,001; b) λ=0,5
Prototypowane algorytmów sterowana 161 BIBLIOGRAFIA 1. Goodwn G., Graebe S., Salgado M.: Control System Desgn. Prentce Hall, 2001. 2. Hara S.,Yamamoto Y.,Fujoka H.: Modern and Classcal Analyss/Synthes Methods n Sampled-Data Control - A bref Overvew wth Numercal examples. Proc. of the 35th Conference on Decson and Control, Kobe, 1996. 3. http://www.mathworks.com/matlabcentral/fleexchange/3175-real-tme-blockset-7-1-forsmulnk z dna 3.12.2009. Recenzent: Dr hab. nŝ. Krystyna Macek-Kamńska, prof. Pol. Opolskej Wpłynęło do Redakcj dna 15 maja 2010 r. Prezentowana praca naukowa jest fnansowana ze środków na naukę w latach 2008-2010 jako projekt badawczy. Abstract The artcle presents basc prncples of model-based desgn methodology an nterestng new technque n the desgn of embedded systems. The authors use Matlab/Smulnk system and MPC555 mcrocontroller to demonstrate a desgn of a dscrete PID controller and an optmal LQ controller. The broad avalablty of dgtal control systems based on mcrocontrollers (embedded systems) n ndustral as well as consumer products stmulates development of varous, more perfect, hardware platforms desgnated to perform numerous control tasks. The desgn of a control system s usually dvded n two parts - development of dedcated hardware and software controllng the specfc behavor of the system under consderaton. In recent decades we could observe a wdespread transton from programmng n assembler languages to programmng n hgh level languages, mostly C/C++. Ths transton enabled greater ndependence from the hardware platform and facltated code re-use. At the moment we are facng another major change n the phlosophy of programmng of the embedded systems whch s model-based desgn. Model-based desgn assumes even greater degree of abstracton, wth respect to C/C++, of created software code. It assumes the smplest possble transton from the smulaton model, encoded n the form of a block dagram, to the executable code for the selected target hardware platform. The artcle presents the capabltes of the Matlab/Smulnk envronment for the mplementaton of the basc assumptons of such a programmng model. The desgn of dscrete PID and optmal LQ controllers for an object wth step response modeled as frst order nerta wth lag s presented as an example.
162 R. Grygel, M. Pacholczyk The Matlab/Smulnk envronment tradtonally used for the smulaton of systems dynamcs s now equpped n tools meetng the prncpal objectves of model-based desgn. Smulaton model n the form of Smulnk block dagram can be supplemented wth addtonal blocks representng I/O operatons allowng the measurement and control to be mplemented n the real object. In the 2008b verson of Matlab t s possble to use Freescale MPC5xx (32- bts) and Infneon C16x (16-bts) mcrocontrollers. Both mcrocontrollers feature the CAN bus commonly used n automotve ndustry. In consdered software-hardware structure one have to deal wth problems related to practcal aspects of such hardware based smulatons. Those are especally quantzaton of sgnals, naccuraces resultng from fxed-pont representatons or problems wth synchronzaton of samples and buffer overflows related to CAN transmsson. However, n Matlab/Smulnk envronment, very popular especally on techncal unverstes worldwde, t s reasonably easy do desgn and test many aspects of control algorthm and test t n real-tme on the target platform hardware. A scentst or a control engneer can concentrate on developng control strategy n famlar envronment wthout the need for translatng the desgn to the target platform C code.