Systemy Czasu Rzeczywistego (SCR) Idea szybkiego prototypowania układu sterowania RPC oraz symulacja w pętli sprzętowej HIL aspekty wybrane realizacji z wykorzystaniem środowiska Matlab/Simulink Politechnika Gdańska Wydział Elektrotechniki i Automatyki Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok II, semestr IV SCR 2015 Opracowanie: dr inż. Jarosław Tarnawski dr inż. Tomasz Rutkowski Katedra Inżynierii Systemów Sterowania 1
Plan wykładu Idea szybkiego prototypowania algorytmów sterowania (ang. Rapid controll prototyping) Idea symulacji w pętli sprzętowej (ang. Hardware In theloop) Zagadnienia związane z automatycznym generowaniem kodu w środowisku Matlab/Simulink: SCR 2015 Matlab Coder Simulink Coder Embeded Coder SimulinkPLC Coder (MATLAB) (SIMULINK) (SIMULINK) (SIMULINK) Szybkie prototypowanie i symulacja w pętli sprzętowej, czyli Matlab/Simulink jako środowiska czasu rzeczywistego: Real Time Windows Target xpc (SOFT REAL-TIME) (HARD REAL-TIME) Sprzętowe środowiska czasu rzeczywistego: dspace Alternatywne środowiska: NI LabView, Scicos
Model tworzenia systemu sterowania Modelowanie i symulacja Integracja i testowania Szybkie prototypowanie układu sterowania RCP (ang. Rapid Control Prototyping) Symulacja w pętli sprzętowej HIL (ang. Hardware In the Loop) Implementacja SCR 2015 3
Model tworzenia systemu sterowania - Rapid Control Prototyping(RCP) ECU electronic control unit Źródło: www.ni.com SCR 2015 4
Model tworzenia systemu sterowania - Rapid Control Prototyping(RCP) Czynności zmierzające do zbudowania prototypu układu sterowania umożliwiającego wszechstronne przetestowanie badanego aspektu, najczęściej jakości działania regulatora, ale także urządzenia pomiarowego wykonawczego, optymalizatora, estymatora, filtru, systemu wspomagania decyzji itd. Zmierza do stworzenia takich warunków w jakich przyjdzie pracować badanemu urządzeniu Nie chodzi tu już tylko jedynie o czystą symulację komputerową, tylko działanie in situ w miejscu, w warunkach jakich będzie pracowało dane urządzenie/plaforma SCR 2015 5
Model tworzenia systemu sterowania Modelowanie i symulacja Integracja i testowania Szybkie prototypowanie układu sterowania RCP (ang. Rapid Control Prototyping) Symulacja w pętli sprzętowej HIL (ang. Hardware In the Loop) Implementacja SCR 2015 6
Model tworzenia systemu sterowania -Hardware In theloop(hil) ECU electronic control unit Źródło: www.ni.com SCR 2015 7
Model tworzenia systemu sterowania -Hardware In theloop Hardware In theloop(hil) to technika symulacji wykorzystywana przy projektowaniu i weryfikowaniu poprawności pracy platform serowania cyfrowego (głównie systemów wbudowanych ale nie tylko) Hardware In theloop(hil) z założenia uwzględnia całą złożoność testowanego systemu uwzględniając dynamikę obiektu sterowania oraz wszystkich urządzeń występujących w analizowanym systemie, np. urządzenia pomiarowe oraz wykonawcze Symulacja HIL przewiduje włączenie platformy sterowania cyfrowego w tak zamodelowane i zasymulowane otoczenie w jakim będzie docelowo pracować Symulacja HIL odbywa się w czasie rzeczywistym i w różnych warunkach pracy w jakich przyjdzie pracować testowanej platformie (warunki te mogą być wprowadzone w modelu otoczenia) SCR 2015 8
Model tworzenia systemu sterowania -przykład tworzenia systemu satelity SCR 2015 Źródło: Simulating Spacecraft Systems 9
Model tworzenia systemu sterowania -przykład tworzenia systemu satelity SCR 2015 Źródło: Simulating Spacecraft Systems 10
Model tworzenia systemu sterowania -przykład tworzenia systemu satelity SCR 2015 Źródło: Simulating Spacecraft Systems 11
Model tworzenia systemu sterowania -przykład tworzenia systemu satelity SCR 2015 Źródło: Simulating Spacecraft Systems 12
Zagadnienia związane z automatycznym generowaniem kodu w środowisku Matlab/Simulink: Matlab Coder Simulink Coder Embeded Coder SimulinkPLC Coder (MATLAB) (SIMULINK) (SIMULINK) (SIMULINK) Szybkie prototypowanie i symulacja w pętli sprzętowej, czili Matlab/Simulink jako środowiska czasu rzeczywistego: Real Time Windows Target xpc (SOFT REAL-TIME) (HARD REAL-TIME) Sprzętowe środowiska czasu rzeczywistego: dspace Alternatywne środowiska: NI LabView, Scicos SCR 2015
MATLABCoder SCR 2015 14
MATLAB Coder MATLAB Codergeneruje niezależny kod C/C++ (zgodny z ANSI/ISO) bezpośrednio z kodu języka MATLAB Wygenerowany kod źródłowy jest przenośny i czytelny MATLAB Coder wspiera podzbiór cech i właściwości języka MATLAB (instrukcje sterujące przepływem programu, funkcje, operacje macierzowe, ) SCR 2015
MATLAB Coder Z języka Mataba do MEX-funkcji: MatlabCoderna generowanie MEX-funckcji, co pozwala na przyspieszenie wykonywania w środowisku Matlabaalgorytmów zapisanych w tych funkcjach MEX-funjcjeto podprogramy (pliki binarne) dynamicznie linkowanei wykonywane przez interpreter Matlaba Z C, C++, Fortrana do MEX-funkcji: W przypadku gdy użytkownik dysponuje własnym kodem (programami w C, C++ lub Fortranie), można się do niego odwołać bez konieczności jego przepisania z wykorzystaniem języka Matlaba SCR 2015
MATLAB Coder Ogólny schemat działania MATLAB Coder Źródło: Matlab Coder SCR 2015
MATLAB Coder Przykład działania MATLAB Coder SCR 2015 Źródło: Matlab Coder
MATLAB Coder Przykład działania MATLAB Coder Skrypt w m-pliku Wygenerowany kod w C Źródło: Matlab Coder SCR 2015
SIMULINKCoder SCR 2015 20
SIMULINK Coder SIMULINK Coder(dawniej we wcześniejszych wersjach Real-Time Workshop RTW) generuje i uruchamia samodzielny kod C/C++ do rozwijania i testowania algorytmów modelowanych w Simulinku (z wykorzystaniem przybornika Stateflow, oraz funkcji Matlaba), Kod wynikowy może być wykorzystany w aplikacjach czasu rzeczywistego jak i w aplikacjach nie będących aplikacjami czasu rzeczywistego Kod wynikowy wykorzystuje się w takich celach jak przyspieszanie symulacji, szybkie prototypowanie i testowanie z wykorzystaniem technik rapid-controlprototyping(rcp) oraz hardware-in-the-loop (HIL), Kod wynikowy może być generowany dla trzech różnych grup systemów docelowych(target environments): komputer host z Matlab/Simulink, wbudowane układy mikroprocesorowe czy symulatory czasu rzeczywistego SCR 2015
SIMULINK Coder Podstawowe grupy systemów docelowych(target environments): SCR 2015 Źródło: Simulink Coder
SIMULINK Coder Przykłady specyficznych typy systemów docelowych: SCR 2015 Źródło: Simulink Coder
SCR 2015 SIMULINK Coder SIMULINK Coder pozwala interaktywnie dostrajać i monitorować generowany kod używając bloków Simulinka i wbudowanych możliwości analizy do uruchamiania i interakcji z kodem poza środowiskiem MATLABa i Simulinka, Tworzy kod ANSI/ISO C i programy wykonywalne dla modeli dyskretnych, ciągłych i hybrydowych, Obsługuje cechy słownika danych Simulinka dla całkowitych, zmienno- i stałoprzecinkowych typów danych, Tworzy kod dla modeli o jednej i zmiennej częstotliwości próbkowania oraz asynchronicznych, Obsługuje jedno- i wielozadaniowe systemy operacyjne oraz środowiska bezoperacyjne(bez systemu operacyjnego), Wykonuje optymalizację kodu polepszającą szybkość uruchamiania programu, Pozwala interaktywnie dopasowywać i monitorować utworzony kod wewnątrz lub na zewnątrz Simulinka,
SIMULINK Coder Diagram generowania kodu SCR 2015 Źródło: Simulink Coder
SIMULINK Coder- budowa aplikacji 1. Określenie wymogów aplikacji 2. Konfiguracja ustawień generowania kodu 3. Uruchomienie narzędzia wspomagającego (ang. Model Advisor Tool) 4. Ewentualna korekta ustawień konfiguracyjnych z wykorzystaniem raportu z narzędzia wspomagającego 5. Generowanie kodu z modelu Simulinka 6. Ewentualne powtórzenie operacji 2-5 7. Zbudowanie obrazu programu wykonywalnego 8. Weryfikacja wyników generowanych przez program wykonywalny w porównaniu do wyników oryginalnego modelu Simulinka 9. Zachowanie konfiguracji dla której dokonano generowania kodu 10. Wykorzystanie narzędzia generowania raportu (ang. Report Generator) do automatycznego udokumentowania projektu SCR 2015
SIMULINK Coder- budowa aplikacji SCR 2015 Źródło: Simulink Coder
SIMULINK Coder- budowa aplikacji Źródło: Simulink Coder SCR 2015
SIMULINK Coder- budowa aplikacji SCR 2015 Źródło: Simulink Coder
SIMULINK Coder- elementy Proces tworzenia aplikacji (ang. Make Process) Proces tworzenia aplikacji, rozszerzalny przez użytkownika umożliwia skonfigurowanie procesów kompilacji i linkowaniakodu generowanego dla potrzeb użytkownika lub dla celów szybkiego prototypowania Tryb zewnętrzny Simulinka(ang. Simulink External Mode) Tryb zewnętrzny umożliwia komunikację pomiędzy Simulinkiemi modelem wykonywanym w środowisku czasu rzeczywistego lub w innym procesie na tym samym komputerze. Tryb zewnętrzny umożliwia strojenie parametrów, zapisywanie danych oraz wizualizację stanu procesu w trakcie wykonywania modelu. SCR 2015
SIMULINK Coder- elementy Szybkie symulowanie (ang. RapidSimulations) Wykorzystując tryb szybkiego symulowania, w S-funkcji lub szybkim symulowaniu można przyspieszyć wykonywanie symulacji średnio od 5 do 20 razy. Pliki wykonywalne w tych systemach omijają normalny tryb interpretatora Simulinka. Kod generowany przez Szybkie symulowanie, docelową S-funkcję i docelowe szybkie symulowanie jest wysoko optymalizowany do wykonywania wyłącznie algorytmów zawartych w modelu użytkownika. SCR 2015
SIMULINK Coder- przykład Model układu sterowania SCR 2015
SIMULINK Coder- przykład Parametry symulacji SCR 2015
SIMULINK Coder- przykład System docelowy (ang. Target system) SCR 2015
SIMULINK Coder- przykład Po skompilowaniu otrzymujemy i możemy uruchomić skompilowany plik SCR 2015
SIMULINK Coder- przykład W celu uruchomienia modelu w tzw. trybie zewnętrznym Simulinka ustawiamy w opcji Interface tryb External mode SCR 2015
SIMULINK Coder- przykład Z menu Toolswybieramy opcję ExternalModeControlPanel i wybieramy opcję Signal&Triggering SCR 2015
SIMULINK Coder- przykład Następnie wydajemy polecenie!pid tf inf w & woknie ExternalModeControlPanel wybieramy komendę Connect, a później Start Real-Time Code. Otwierając okna oscyloskopów można obserwować przebiegi zmiennych. Ewnentualnezmiany parametrów w trakcie symulacji muszą być przesłane do modelu za pomocą opcji z menu Edit/Update Diagram. Aby zakończyć symulację wybierz opcję Stop Real-Time Code z External Mode Control Panel. SCR 2015
EmbededCoder SCR 2015 39
Embeded Coder Rozszerza możliwości MATLAB Coderi SimulinkCoderzwłaszcza jeżeli chodzi o systemy czasu rzeczywistego, Generowany kod może być uruchamiany bez lub w systemie operacyjnym czasu rzeczywistego w trybie jednozadaniowym, wielozadaniowym lub asynchronicznym Generuje kod dla wielu typów mikroprocesorów, procesorów sygnałowych o architekturze 8-bitowej, 16-bitowej i 32-bitowej, Wygenerowany kod można przetestować w trybie software-in-the-loop (SIL) i processor-in-the-loop (PIL) SCR 2015
Embeded Coder SCR 2015 Źródło: Embeded Coder
SimulinkPLC PLCCoder Coder SCR 2015 42
Simulink PLC Coder SimulinkPLC Codergeneruje sprzętowo niezależny kod w języku ST (StructuredText) zgodny z normą IEC 61131 z modeli Simulinka, diagramów Stateflow i funkcji Embedded MATLAB, Kod jest generowany do plików w formatach obsługiwanych przez wiele popularnych środowisk (IDE): B&R Automation Studio, PLCopen XML, Rockwell Automation RSlogix 5000, Siemens SIMATIC STEP 7, 3S-Smart Software Solutions CoDeSys, W efekcie można go skompilować i wdrożyć do wielu sterowników programowalnych typu PLC i PAC, SCR 2015
Simulink PLC Coder SCR 2015 Źródło: Simulink PLC Coder
Simulink PLC Coder SCR 2015 Źródło: Simulink PLC Coder
Real-Time TimeWindows WindowsTarget Target(RTWT) SCR 2015 46
Real-Time Windows Target (RTWT) Real-Time Windows Target pozwala uruchamiać i kontrolować modele Simulinkai Statefloww czasie rzeczywistym na komputerze PC typu desktop lub laptop, Używając SimulinkCodermożna generować kod C, kompilować go i rozpocząć uruchamianie w czasie rzeczywistym w systemie Windows równocześnie podłączając się do kart wejścia-wyjścia komputera PC, Inne aplikacje systemu Windows nie przestają pracować w trakcie wykonywania zadania uruchomionego w RTWT, SCR 2015
Real-Time Windows Target (RTWT) RTWT może pracować w dwóch trybach: normali external(wymagany SIMULINK Coder), W trybie normal umożliwia próbkowanie do 500 Hz W trybie external umożliwia próbkowanie do 20 khz RTWT współpracuje z ponad 250 modułami wejść-wyjść (karty akwizycji danych) ora modułami komunikacyjnymi (protokoły UDP, CAN, szeregowy), RTWT umożliwia stosowanie graficznego interfejsu użytkownika w celu: wizualizowania sygnałów podczas symulacji używa się tych samych bloków co podczas zwykłej programowej symulacji zmiany parametrów w trakcie symulacji SCR 2015
Real-Time Windows Target (RTWT) - Typowe zastosowania Symulacje w czasie rzeczywistym opracowywanie prototypów algorytmów sterowania, urządzeń wbudowanych np. peryferiówkomputerowych, elementów układów sterowania Symulacje typu RCP i HIL opracowywania sterowników, regulatorów podłączonych do fizycznych obiektów Edukacja zobrazowanie procesu projektowania, testowania, budowy prototypów SCR 2015
Real-Time Windows Target (RTWT) - Działanie Real-Time Windows Target wykorzystuje małe jądro czasu rzeczywistego w celu zapewnienia wykonania modelu w czasie rzeczywistym. Jądro to wykorzystuje wbudowany w PC zegar jako podstawowe źródło czasu. Jądro przejmuje przerwania z zegara komputera przed otrzymaniem ich przez system operacyjny Windows. Następnie jądro używa przerwań do wyzwalania wykonania skompilowanego modelu. W wyniku takiego podejścia jądro jest w stanie nadać aplikacji czasu rzeczywistego najwyższy możliwy priorytet. W celu uzyskania dokładnego próbkowania jądro przełącza zegar PC na wyższą częstotliwość. Ponieważ jest to również źródło czasu dla systemu operacyjnego, jądro RTWT wysyła do systemu operacyjnego przerwania z oryginalną częstotliwością. SCR 2015
Real-Time Windows Target (RTWT) - Działanie SCR 2015 Źródło: Real Time Windows Target
Real-Time Windows Target (RTWT) - Działanie SCR 2015 Źródło: Real Time Windows Target
Real-Time Windows Target (RTWT) - Środowisko sprzętowe Dowolny PC z Windows NT4.0, 2000, XP Karty akwizycji danych dla PC wskazane przez Mathworks, w wykazie znajduje się duża liczba producentów i (ponad 250) konkretnych kart wykorzystujących różne interfejsy: ISA, PCI, PCMCIA Karty posiadają AI, DI, AO, DO, wejścia enkoderów, SCR 2015
Real-Time Windows Target (RTWT) karta akwizycji danych Adavantech PCI 1711 Rozdzielczość: 12 bitów Liczba wejść analogowych: 16 SE (ze wspólną masą) Zakresy wejściowe napięciowe: bipolarne Szybkość przetwornika A/C: 100kS/s Liczba wyjść analogowych: 2 Zakresy wyjściowe napięciowe: unipolarne 16 wejść cyfrowych TTL 16 wyjść cyfrowych TTL 1 szesnastobitowy licznik TTL SCR 2015
Real-Time Windows Target (RTWT) karta akwizycji danych Adavantech PCI 1711 Schemat blokowy karty PCI 1711 SCR 2015 http://www.advantech.com
SCR 2015 Real-Time Windows Target (RTWT) - Przykład
Real-Time Windows Target (RTWT) normalizacja i skalowanie we/wy Bloki we i wy analogowych można skonfigurować tak by w Matlabie/Simulink można pracować z danymi: w postaci Voltów znormalizowanymi: normalizacja unipolarna normalizacja bipolarna SCR 2015
SCR 2015 Real-Time Windows Target (RTWT) normalizacja i skalowanie we/wy
SCR 2015 Real-Time Windows Target (RTWT) - Przykład
SCR 2015 Real-Time Windows Target (RTWT) - Przykład
SCR 2015 Real-Time Windows Target (RTWT) - Przykład
SCR 2015 Real-Time Windows Target (RTWT) - Przykład
SCR 2015 Real-Time Windows Target (RTWT) - Przykład
SCR 2015 Real-Time Windows Target (RTWT) - Przykład
SCR 2015 Real-Time Windows Target (RTWT) - Przykład
SCR 2015 Real-Time Windows Target (RTWT) - Przykład
xpc SCR 2015 67
xpc xpc uruchamia aplikacje generowane przez modele Simulinka i Stateflow używając jądra czasu rzeczywistego na dowolnym komputerze PC, Obsługuje dowolny komputer PC jako docelowy system czasu rzeczywistego, Uzyskuje próbki z częstotliwością do 100 KHz, w zależności od poziomu wydajności procesora i rozmiaru modelu, Wyświetla dane i ślady sygnałów na lokalnym, docelowym lub obu komputerach PC, Zapewnia lokalny zintegrowany graficzny interfejs użytkownika, SCR 2015
xpc System xpcjest systemem czasu rzeczywistego, w którym wykorzystywane są dwa oddzielne komputery do projektowania (host computer) i wykonywania modelu czasu rzeczywistego (target computer), Połączenie: RS232 lub TCP/IP, SCR 2015 Źródło: xpc
xpc Komputer host: jest wyposażony w Matlab/Simulink, SIMULINK Coder, xpc Komputer target: nie potrzebuje systemu operacyjnego DOS, Linux czy Windows., można uruchomić: z dyskietki, która zawiera wysoko zoptymalizowane jądro czasu rzeczywistego xpc wysyłając cały projekt przez sieć TCP/IP SCR 2015
xpc SCR 2015 Źródło: www.mathworks.com
xpc Przykład SCR 2015 Źródło: xpc
xpc Przykład SCR 2015 Źródło: xpc
xpc Przykład SCR 2015 Źródło: xpc
xpc Przykład SCR 2015 Źródło: xpc
xpc Przykład SCR 2015 Źródło: xpc
xpc Przykład SCR 2015 Źródło: xpc
dspace SCR 2015 78
dspace Jest to sprzętowo-programowy system czasu rzeczywistego oparty o środowisko Matlab/Simulink, Modelowanie (host computer) realizowane jest klasycznie w Matlabie/Simulinkunatomiast wykonywanie modelu (target computer) wykonywane jest na platformie, sprzętowej z procesorem/procesorami sygnałowymi DSP. Dzięki temu uzyskuje się dużą rozdzielczość czasową, Rozwija firma dspace GMBH, Znajduje szerokie zastosowanie w przemyśle samochodowym i lotniczym, SCR 2015
dspace SCR 2015 Źródło: www.dspace.com
ŚrodowiskaAlternatywne SCR 2015 81
LabView Największym konkurentem Matlabaw zakresie symulacji HIL i prototypowania jest LabView firmy National Instruments (Laboratory Virtual Instrument Engineering Workbench), LabView współpracuje z Matlabem, LabViewposiada koncepcję VI VirtualInstruments umożliwiających budowę modeli symulacyjnych czasu rzeczywistego oraz szeroką gamę kart I/O, SCR 2015
SCR 2015 LabView
ScicosLab Darmowa alternatywa dla Matalba/Simulinka oraz LabView, Duża funkcjonalność, między innymi: graficzne modelowanie, kompilacja i symulacja systemów dynamicznych, programowanie nowych bloków e C czy fortran, generowanie kodu C (Code Generator), symulacje w czasie rzeczywistym (Scicos-HIL), generowanie kodu wykonywalnego uwzględniającego twarde ograniczenia czasowe (Scicos-RTAI, Scicos-FLEX), SCR 2015
ScicosLab SCR 2015 Źródło: www.scicos.org
Bibliografia Matlab Compiler, User s guide, MathWorks 2013 Matalb Coder, User s guide, MathWorks 2013 Simulink Coder, User s guide, MathWorks 2013 Embeded Coder User s guide, MathWorks 2013 SimulinkPLC Coder User s guide, MathWorks 2013 xpc Taget, User s guide, MathWorks 2013 Real-Time Windows Target, User s guide, MathWorks 2013 http://www.mathworks.com http://www.embedded.com http://www.ni.com http://www.scicos.org http://www.advantech.com http://www.dspace.com SCR 2015
Dziękuję za uwagę!!! SCR 2015 87