Wybrane środowiska szybkiego prototypowania SIMULINK REAL-TIME (DAWNIEJ XPC TARGET) SIMULINK SUPPORT PACKAGE FOR RASPBERRY PI HARDWARE PRZYGOTOWAŁ TOMASZ KARLA
MATLAB/Simulink Real-Time (dawniej xpc Target) Środowisko pozwalające na tworzenie aplikacji pracujących w czasie rzeczywistym z modeli Simulink i uruchamianie ich na dedykowanych komputerach (Target PC) połączonych z fizycznymi systemami. Zarządzanie symulacją odbywa się na innym komputerze (Host PC). Oprogramowanie pozwala na wykorzystanie kart rozszerzeń i portów znajdujących się w dedykowanym komputerze co w połączeniu z dużą mocą obliczeniową takiej jednostki daje bardzo duże możliwości w projektowaniu systemów HIL. Od wersji MATLAB R2014a narzędzie zostało przemianowane na Simulink Real-Time. We wcześniejszych wersjach funkcjonowało pod nazwą xpc Target.
Procedura przygotowania aplikacji w środowisku Simulink Real-Time (dawniej xpc Target) Utworzyć nowy Simulink Model Przejść w ustawienia Simulation> Model Simulation Parameters Przejść do zakładki Code Generation i wybrać w polu System Target File odpowiedni moduł: slrt.tlc (dla Simulink Real-Time) lub xpctarget.tlc (dla xpc Target)
Procedura przygotowania aplikacji w środowisku Simulink Real-Time (dawniej xpc Target) Simulink Real-Time (xpc Target) do działania wymaga zgodnego kompilatora. W zależności od wersji oprogramowania MATLAB, dostępna jest inna lista kompatybilnych kompilatorów. W większości wypadków darmowy kompilator zawarty w Microsoft Windows SDK w wersji 7 wzwyż jest wystarczającym kompilatorem. Wybrany kompilator można wybrać w zakładce Code Generation, w polu Build proces > Toolchain.
Procedura przygotowania aplikacji w środowisku Simulink Real-Time (dawniej xpc Target) W zakładce Solver, w polu Solver options rekomendowane jest ustawienie trybu Fixed-step i zadeklarowanie określonego kroku wykonywania symulacji oraz ustawić Stop time na inf. W zależności od złożoności modelu możliwe jest wykonywanie modelu z krokiem rzędu 1e-8 s w trybie pracy czasu rzeczywistego.
Procedura przygotowania aplikacji w środowisku Simulink Real-Time (dawniej xpc Target) W zakładce Simulink Real-Time Options (xpc Target Options) można zdefiniować tryb wykonywania modelu. Do wyboru są : Real-Time pozwalający na wykonywanie symulacji w czasie rzeczywistym. W tym trybie, obliczenia poszczególnych kroków symulacji są wykonywanie w oknach czasowych równych długości zadeklarowanego kroku symulacji. Gdy obliczenia trwają krócej niż określony krok symulacji, po wykonaniu zadania dalsze obliczenia zostają wstrzymane dopóki nie zostanie rozpoczęte kolejne okno czasowe. W ten sposób uzyskuje się efekt pracy w czasie rzeczywistym. Freerun pozwalający na wykonywanie symulacji najszybciej jak to tylko możliwe. W tym trybie nie następuje wstrzymywanie obliczeń i kolejne kroki symulacji są liczone zaraz po obliczeniu wyników danego kroku. Ze względu na wykonywanie obliczeń w odizolowanym środowisku i bezpośrednim odwoływaniu się do procesora, obliczenia te są wykonywane znacznie szybciej niż w środowisku Windows (na komputerze z procesorem klasy i3 czas wykonywania obliczeń ulega średnio 100 krotnemu skróceniu względem wykonywania modelu w środowisku Windows).
Procedura przygotowania aplikacji w środowisku Simulink Real-Time (dawniej xpc Target) Po przygotowaniu pliku modelu w środowisku Simulink Real-Time (xpc Target) użytkownik może przystąpić do opracowania interesującej go aplikacji. Simulink Real-Time (xpc Target) jest w stanie wykorzystać większość bloków dostępnych w podstawowym toolboxie Simulink. Dodatkowo, do obsługi warstwy fizycznej dedykowanego komputera należy skorzystać w bloków w toolboxie Simulink Real-Time. Prócz bloków związanych z obsługą portów i kart rozszerzeń komputera posiada on także dodatkowe bloki programowe związane z wizualizacją, zbieraniem pomiarów, nadzorem nad przebiegiem pracy aplikacji.
Procedura przygotowania aplikacji w środowisku Simulink Real-Time (dawniej xpc Target) Po opracowaniu odpowiedniego modelu Simulink, należy utworzyć z niego aplikację i załadować go dedykowanego komputera. Proces ten jest niemal całkowicie zautomatyzowany jednak wymaga przygotowania odpowiedniego środowiska uruchomieniowego na dedykowanym komputerze, na którym będzie uruchamiana aplikacja. Komendą slrtexplr (Simulink Real-Time) lub xpcexplr ( xpc Target) wywołuje się narzędzie Simulink Real-Time Explorer, służące do zarządzania procesem przygotowania i symulacji na komputerze docelowym.
Simulink Real-Time Explorer Najważniejszymi panelami są: -Targets : zawiera ona listę dedykowanych komputerów (Target PC), -Applications : przedstawia ona załadowane aplikacje dla każdego Target PC, -Scopes : pozwala deklarować, które zmienne modelu mogą być podglądane
Simulink Real-Time Explorer W panelu Targets można przygotować środowisko uruchomieniowe dla poszczególnych Target PC. Każdy Target posiada opcje w 3 kategoriach: Host to target communication: najważniejszy w tej sekcji jest ustawiany adres IP, pozostałe parametry domyślne są z reguły optymalne, Target settings : w tej sekcji użytkownik decyduje jakie moduły byłyby mu potrzebne w aplikacji. Do modułów należy między innymi obsługa wielu rdzeni procesora, tryb graficzny czy obsługa USB, Boot configuration: ustawienia trybu uruchamiania systemu na Target PC. Jest możliwość startu systemu z sieci (Host PC przejmuje wtedy rolę serwera DHCP w sieci i przesyła pliki startowe z konfiguracją do odpowiednio zadeklarowanych Target PC), przygotowanie bootloadera dla wersji samodzielnej stand-alone czy przygotowanie przenośnego nośnika z bootowalnym systemem.
Simulink Real-Time Explorer W panelu Applications widoczne są wszystkie załadowane aplikacje z podziałem na Target PC. Umożliwia on zdalne uruchomienie i zatrzymanie załadowanych aplikacji. Możliwe jest podejrzenie listy elementów przygotowanego modelu w aplikacji. Na podstawie listy można wybrać, które zmienne modelu mają być widoczne w panelu Scopes.
Simulink Real-Time Explorer W panelu Scopes, możliwe jest wywołanie podglądu wybranych zmiennych modelu w trakcie działania aplikacji. Zmienne te mogą być wyświetlone w formie wykresów lub za pomocą liczby. Możliwe jest zatrzymywanie podglądu w dowolnym momencie i analiza wyników.
Simulink Real-Time Explorer Po przygotowanie środowiska operacyjnego na Target PC (pendrive z systemem, uruchamianie z sieci itp.) i uruchomieniu go na danym urządzeniu należy do niego załadować przygotowany model. Możliwe jest wysłanie modelu do Target PC i uruchomienie go w trybie stand-alone lub też uruchomienie go w trybie External, który jest podobny do tego używanego przez Real Time Windows Target. Ostatni tryb jest niezwykle przydatny w czasie projektowania aplikacji. Aby uruchomić model w trybie stand-alone, należy w oknie modelu Simulink kliknąć ikonę Deploy to Hardware (w miejscu ikony Build). Oba tryby zawsze odnoszą się do aktualnie domyślnego Target PC. W wypadku wielu Target PC można zmieniać, który z nich jest domyślnym urządzeniem w panelu Targets.
Przykładowa realizacja z wykorzystaniem Simulink Real-Time Celem było opracowanie symulatora pracującego w czasie rzeczywistym procesów zachodzących w reaktorze jądrowym typu PWR. Wymagania: Bardzo mały krok symulacji rzędu 1e-5 s związany z najszybszymi procesami zachodzącymi w reaktorze, Rozdzielenie bloków procesów z podziałem na procesy szybkie, średnie i wolne oraz rozproszona symulacja na kilku Target PC. Komunikacja Ethernet UDP w celach wymiany informacji między jednostkami, wizualizacji, archiwizacji wyników, aplikacji regulatorów.
Przykładowa realizacja z wykorzystaniem Simulink Real-Time
Przykładowa realizacja z wykorzystaniem Simulink Real-Time Środowisko RTWT nie spełniało przedstawionych wymagań. Środowisko xpc osiągało znacznie krótsze czasy wykonywania obliczeń tych samych modeli w porównaniu do środowiska RTWT. Wersja wieloagentowa Blok procesów RTWT xpc Kinetyka neutronów Wymiana ciepła Wypalanie paliwa i zatrucia [s] śr/max/min [s] 6 10 5 1.7 10 7 / 5.9 10 6 / 1.3 10 7 [s] śr/max/min [s] 5 10 5 9.3 10 7 / 5.5 10 6 / 5.7 10 7 [s] 7 10 5 śr/max/min [s] 4.5 10 7 / 5.1 10 6 / 4.2 10 7
Przykładowa realizacja z wykorzystaniem Simulink Real-Time
MATLAB/Simulink Support Package for Raspberry Pi Hardware Rozszerzenie do środowiska Simulink pozwalające w zautomatyzowany sposób na opracowanie na podstawie modeli Simulink samodzielnych aplikacji, uruchamianych na niskobudżetowej platformie sprzętowej Raspberry PI. Platforma Raspberry Pi składa się z jednostki obliczeniowej opartej o układ ARM11 pracującej z częstotliwością 700 MHz, ma dostęp do 512 MB pamięci RAM i procesora graficznego VideoCore IV. Posiada porty audio, HDMI oraz USB i Ethernet. Pozwala także na podłączenie dodatkowego modułu I/O, co zbliża jego możliwości do małych sterowników PLC.
Procedura przygotowania aplikacji na platformę Raspberry Pi (RPI) Wymagane jest ręczne zainstalowanie Simulink Support Package for Raspberry Pi Hardware. Dokonuje się tego z poziomu głównego menu MATLAB. W dziale RESOURCES, należy wybrać przycisk Add- Ons>Get Hardware Support Package. W nowym oknie należy wybrać opcję Install from Internet, następnie zaś z listy wybrać pakiet Raspberry Pi. Po ściągnięciu i zainstalowaniu pakietu, kreator automatycznie próbuje skonfigurować urządzenie. Postępując zgodnie z instrukcjami na ekranie przechodzimy do wyboru urządzenia oraz ustawień sieciowych.
Procedura przygotowania aplikacji na platformę Raspberry Pi (RPI) W oknie konfiguracji sieci rekomendowane jest ręczne wpisanie adresu IP dla używanego urządzenia RPI, podanie maski sieci oraz bramy domyślnej. Każde urządzenie RPI w sieci musi mieć unikalny Host name oraz IP address.
Procedura przygotowania aplikacji na platformę Raspberry Pi (RPI) Po ustawieniu sieci, w kolejnym kroku kreator przygotuje system operacyjny z wcześniej zadeklarowanymi ustawieniami wgrywany na kartę SD, z której bootowany jest RPI. Po instalacji systemu na karcie, kreator poprosi o włożenie karty do RPI, podłączenie urządzenia do sieci i uruchomienie urządzenia w celu przeprowadzenia testu komunikacji z urządzeniem. Po pozytywnie przeprowadzonym teście komunikacji urządzenie jest gotowe do uruchamiania aplikacji przygotowywanych w środowisku Simulink.
Procedura przygotowania aplikacji na platformę Raspberry Pi (RPI) W celu ponownego wgrania systemu na kartę, w oknie modelu Simulink należy z menu wybrać opcję Tools > Run on Target Hardware > Update Firmware. Opcja ta wywoła ponownie kreator ustawień, gdzie będzie można dokonać m.in. aktualizacji adresu sieciowego. Jest to ważne, gdy korzystamy z kilku RPI.
Procedura przygotowania aplikacji na platformę Raspberry Pi (RPI) Po przygotowaniu urządzenia, należy opracować w środowisku Simulink odpowiedni model. Analogicznie jak w wypadku Simulink Real-Time należy utworzyć nowy model Simulink. Następnie wybieramy z menu Tools > Run on Target Hardware > Prepare to Run.
Procedura przygotowania aplikacji na platformę Raspberry Pi (RPI) W nowym oknie należy wybrać w polu Target hardware pozycję Raspberry Pi. Po wybraniu opcji pojawia się nowe okno. Parametry w sekcji Board information powinny przyjąć wartości podane w kreatorze użytym chwilę wcześniej do konfiguracji RPI. Należy jednak zwrócić szczególną uwagę na parametr Host name. W wypadku korzystania z kilku jednostek RPI z jednego komputera, w momencie przesyłania aplikacji do danego RPI należy w ustawieniach zmienić ten parametr na adres odpowiadający docelowemu urządzeniu. Są to globalne ustawienia zapamiętywane w środowisku, nie zaś dla każdego modelu. Każda zmiana powoduje zmianę we wszystkich używanych modelach.
Procedura przygotowania aplikacji na platformę Raspberry Pi (RPI) W zakładce Solver, w sekcji Solver options należy ustawić Solver: discrete oraz Type: Fixed-step. W polu Fixed-step size należy podać określony krok wykonywania obliczeń. Automatyczny moduł do obsługi Raspberry Pi w środowisku Simulink obsługuje tylko i wyłącznie Solver : discrete.
Procedura przygotowania aplikacji na platformę Raspberry Pi (RPI) Po przygotowaniu ustawień modelu można opracować odpowiednią aplikację. Należy pamiętać, że ze względu na tylko jeden obsługiwany solver, nie można używać bloków typu Continous. Dodatkowo po zainstalowaniu Simulink Support Package for Raspberry Pi Hardware dostępny jest nowy toolbox z blokami do obsługi modułów RPI (np. wejścia audio, port Ethernet itp.).
Procedura przygotowania aplikacji na platformę Raspberry Pi (RPI) Po opracowaniu modelu można przesłać go RPI. Dostępne są dwa tryby pracy: External, w którym można zarządzać symulacją z poziomu Simulink na komputerze, Deplay to Hardware, który pozwala na przesłanie aplikacji, która będzie możliwa do uruchomienia w trybie stand-alone.
Raspberry PI jako platforma dla aplikacji pracujących w czasie rzeczywistym System przygotowywany i wgrywany na kartę SD RPI jest pełnoprawną dystrybucją Linuxa nazywaną Raspian. Jest ona zmodyfikowana, tak aby była możliwa komunikacja z MATLAB/Simulink. Zawiera ona także pełen komplet narzędzi programistycznych, użytkowych jak przeglądarka czy nawet gry. Ciekawostką jest dołączany Minecraft PI.
Raspberry PI jako platforma dla aplikacji pracujących w czasie rzeczywistym Kompilacja modelu Simulink do postaci wykonywalnego pliku na RPI odbywa się bezpośrednio na docelowym urządzeniu. Przy standardowych ustawieniach kreatora, wszystkie modele zapisywane są w folderze /home/pi/<nazwa modelu>. Jeżeli model zostały skompilowany za pomocą komendy Deploy to Hardware, z poziomu Raspiana możliwe jest uruchomienie programu. Pliki wykonywalne znajdują się w katalogu /home/pi/<nazwa modelu>/mw.
Raspberry PI jako platforma dla aplikacji pracujących w czasie rzeczywistym Raspberry PI jest kompaktową i tanią platformą programowo-sprzętową, która może być wykorzystywana w mniej obciążających zadaniach. Pełna dystrybucja Linuxa i środowisko graficzne sprawia, że RPI może być używany w roli małego komputera. Simulink Support Package for Raspberry Pi Hardware pozwala na wykorzystanie urządzenia między innymi do celów sterowania w pętlach HIL. Niska cena urządzenia powiązana jest jednak z niezbyt dużą mocą obliczeniową urządzenia.
Podsumowanie Simulink Real-Time jak i Simulink Support Package for Raspberry Pi Hardware pozwalają na tworzenie aplikacji pracujących w czasie rzeczywistym. Simulink RT jest narzędziem wykorzystującym moce obliczeniowe nowoczesnych komputerów klasy PC, dzięki którym może być zastosowany nawet do zadań wyjątkowo złożonych, wymagających twardych ograniczeń czasowych i bardzo małego kroku wykonywania. Posiada dużą bazę obsługiwanych peryferii, kart rozszerzeń, technologii komunikacyjnych. Simulink SPfRPiH korzysta z niskobudżetowych, kompaktowych urządzeń Raspberry Pi. Ich moc obliczeniowa jest wystarczająca do prostych zadań (np. sterowanie prostymi układami), zaś obecność popularnych portów I/O znacznie poszerzają spektrum jego zastosowań. Obie technologie pozwalają na kompilowanie aplikacji typu stand-alone, które mogą być uruchamiane na urządzeniach docelowych bez ponownego wykorzystywania komputerów hostów z oprogramowaniem MATLAB/Simulink.
Dziękuję za uwagę.