Zastosowanie oprogramowania MATLAB i Simulink w automatyce przemysłowej
Autor: Rafał Płatek
Źródło: Automatyka 3/2015
Przed projektantami i producentami rozwiązań dla branży automatyki przemysłowej stawiane są coraz wyższe wymagania. Oczekiwania wobec produktów dotyczą przede wszystkim ich jakości i niezawodności. Wykorzystanie narzędzi środowiska MATLAB i Simulink ułatwia licznym firmom podołać postawionym wymaganiom, a także zmniejszyć koszty oraz czas realizacji projektu.
Model-Based Design
Projektowanie i produkcja sprzętu przeznaczonego do zastosowania w automatyce przemysłowej związane są z integracją różnych podsystemów. W skład kompletnego systemu wchodzą elementy mechaniczne, elektryczne, a także realizujące zadania przetwarzania sygnałów czy sterowania. Wykonanie gotowanego systemu jest procesem długotrwałym i wieloetapowym. Oprogramowanie MATLAB i Simulink, wraz z zastosowaniem metodyki Model-Based Design (MBD), wspiera pracę inżynierów na każdym etapie. Umożliwia modelowanie systemu, symulację, automatyczną generację kodu oraz testowanie i weryfikację. MATLAB to środowisko obliczeń numerycznych, wizualizacji i programowania. Pozwala na rozwijanie algorytmów, tworzenie aplikacji, obliczenia równoległe, automatyczną generację kodu i przygotowanie raportów. Simulink rozszerza funkcjonalność oprogramowania o symulację systemów dynamicznych za pomocą hierarchicznych schematów blokowych. W zagadnieniach związanych z automatyką przemysłową pełnię możliwości pakietu MATLAB i Simulink można wykorzystać stosując metodykę Model-Based Design. Podejście to polega na oparciu każdego etapu projektowania o model zbudowany w programie Simulink. W tradycyjnym procesie projektowania pomiędzy poszczególnymi etapami występują wyraźne granice. Widoczny jest również podział pomiędzy zespołami pracującymi nad projektem. Każdy z nich realizuje swoje zadania, a efekty ich pracy są integrowane na końcu procesu. Także weryfikacja i testy opracowanego rozwiązania następują dopiero po zakończeniu wcześniejszych prac. Zastosowanie metodyki MBD pozwala na łatwiejsze przechodzenie pomiędzy poszczególnymi etapami procesu oraz ułatwia komunikację pomiędzy zespołami projektowymi. Możliwe jest to dzięki wykorzystywaniu w każdej fazie projektu oraz przez każdy zespół modeli programu Simulink, które pełnią funkcję platformy komunikacyjnej. W jednym modelu mogą być zawarte elementy mechaniczne, elektryczne oraz algorytmy sterowania lub przetwarzania sygnałów. Istotną zaletą MBD jest możliwość ciągłego testowania oraz weryfikacji na każdym etapie projektu.
Stosując metodykę Model-Based Design zyskujemy możliwość ciągłego testowania i weryfikacji projektu.
Takie podejście znajduje zastosowanie w licznych projektach z dziedziny automatyki przemysłowej. Można tu wymienić m.in systemy sterowania robotów przemysłowych, automatyzację produkcji, algorytmy sterownia napędów elektrycznych czy też konwersję energii.
Modelownie i symulacja
W początkowej fazie projektu powstaje specyfikacja, która ma określać sposób zachowania budowanego urządzenia lub systemu. Już na tym etapie można rozpocząć korzystanie z metodyki MBD. Tworzenie specyfikacji projektu w postaci modelu pozwala na jasne i jednoznaczne określenie elementów składowych projektu, ich interfejsów, a także wzajemnych zależności. Jednocześnie utworzony model jest wykonywalną specyfikacją, ponieważ można przeprowadzać jego symulacje. Podczas projektowania systemu da się wykorzystać standardowe bloki programu Simulink realizujące proste modele matematyczne, a także bloki pakietu Simscape, które dostarczają możliwość modelowania fizycznego. Takie podejście zwalania projektanta z wnikania w matematyczny opis pracy danego komponentu. Biblioteki Simscape, SimMechanics, SimElectronics, SimDriveline, Sim-PowerSystems oraz SimHydraulics zawierają wiele elementów gotowych do wykorzystania w modelu (m.in. napędy, sprzęgła, zawory, czujniki). W trakcie modelowania systemu istotne znaczenie ma również możliwość wykorzystania narzędzi przeznaczonych do projektowania systemów sterowania. W środowisku MATLAB i Simulink dostępne są przyborniki do projektowania standardowych systemów sterownia (Simulink Control Design, Control System Toolbox), sterowania rozmytego (Fuzzy Logic Toolbox), sieci neuronowych (Neural Network Toolbox) czy też systemów decyzyjnych, maszyn skończenie stanowych (Stateflow). Można również przeprowadzić optymalizację nastaw, parametrów (Simulink Design Optimization, Optimization Toolbox) oraz identyfikację systemu (System Identification Toolbox).
Środowisko MATLAB i Simulink pozwala na modelowanie, analizę zachowania oraz wizualizację układu.
Możliwość przeprowadzania symulacji ma bardzo duże znaczenie dla zespołu pracującego nad projektem. Ułatwia szybkie sprawdzanie różnych wariantów rozwiązania, a także przeprowadzenie optymalizacji parametrów systemu. Testowanie kolejnych rozwiązań nie wiąże się z dodatkowymi kosztami, ponieważ nie trzeba budować prototypu dla każdego pomysłu. Ważną zaletą jest także sposobność przeprowadzenia symulacji zachowania się systemu w sytuacjach skrajnych, w których testy na prototypie wiązałyby się ze stworzeniem zagrożenia (np. systemy energetyczne lub napędy).
Automatyczna generacja kodu
Po zakończeniu symulacji i opracowaniu najlepszego rozwiązania należy przejść do etapu implementacji. W tej fazie projektu budowane są podsystemy mechaniczne i elektryczne, natomiast elementy programistyczne mogą zostać wygenerowane automatycznie. Dzięki narzędziom automatycznej generacji kodu można uniknąć błędów popełnianych podczas ręcznego kodowania, zoptymalizować powstający kod czy też ograniczyć nakład pracy programistów. Moduły oferowane przez środowisko MATLAB i Simulink przeznaczone do automatycznej generacji kodu to:
- MATLAB Coder – generuje niezależny kod C i C++ (zgodny z ANSI/ISO ) z kodu języka MATLAB.
- Simulink Coder – generuje niezależny kod C i C++ z modeli programu Simulink, diagramów Stateflow oraz funkcji MATLABa. Otrzymany kod może służyć do przyspieszenia symulacji, zadań szybkiego prototypowania oraz testów hardware-in-the-loop.
- Embedded Coder – rozszerza możliwości narzędzi MATLAB i Simulink Coder, pozwala generować czytelny, zwarty i szybki kod produkcyjny C/C++ przeznaczony do pracy na dedykowanym sprzęcie.
- HDL Coder – generuje przenośny i syntezowalny kod Verilog oraz VHDL. Otrzymany kod może być wykorzystany na układach FPGA oraz ASIC.
Simulink PLC Coder – generuje sprzętowo niezależny kod w języku ST (Structured Text) zgodny z normą IEC 61131. Wygenerowany kod może być użyty do programowania kontrolerów PLC i PAC.
Narzędzia automatycznej generacji kodu wspierają liczne platformy sprzętowe, a także współpracują z wieloma popularnymi środowiskami programistycznymi (IDE).
Automatyczna generacja kodu to jedna z najważniejszych zalet oprogramowania MATLAB i Simulink.
Weryfikacja projektu
Zastosowanie metodyki MBD daje możliwość ciągłej weryfikacji projektu we wszystkich jego fazach. Dostępne są narzędzia sprawdzające kompatybilność zbudowanego modelu z dokumentacją zawierającą wymagania. Podobnie można przeprowadzać weryfikację zgodności wygenerowanego kodu z modelem, z którego kod pochodzi. Powstały w projekcie kod można również poddać analizie statycznej oraz przetestować pod względem błędów czasu wykonania (z wykorzystaniem produktów z rodziny Polyspace). Dokumentowanie prac projektowych usprawniają narzędzia automatycznej generacji dokumentacji (MATLAB i Simulink Report Generator). Funkcjonalności te w znaczny sposób ułatwiają sprawdzenie poprawności projektu, jak i przeprowadzenie procesu certyfikacji produktu. Dla wsparcia procesu certyfikacji dostępny jest IEC Certification Kit, który zawiera dokumentację, certyfikaty i szablony pomocne w procesie certyfikacji zgodnie z normami ISO® 26262, IEC 61508, EN 50128 oraz IEC 62304.
Dobrym przykładem wykorzystania oprogramowania MATLAB i Simulink są systemy sterowania urządzeń przemysłowych.
Zastosowanie
Wiele firm produkujących sprzęt oraz instytucji badawczych i jednostek naukowych zajmujących się automatyką przemysłową zdecydowało się na wykorzystanie narzędzi środowiska MATLAB i Simulink. Wśród nich można wymienić:
- Festo – zaprojektowanie i implementacja systemu sterowania pneumatycznym ramieniem robota. Narzędzia z rodziny MATLAB i Simulink posłużyły do modelowania, symulacji, optymalizacji oraz generacji kodu. Istotną zaletą zastosowania MBD było osiągnięcie zautomatyzowanej, pełnej implementacji rozwiązania na sterowniku PLC.
- ATB Technologies – opracowanie oprogramowania sterującego, które maksymalizuje wydajność silnika synchronicznego. Przeprowadzono symulację oraz wykorzystano automatyczną generację kodu do implementacji rozwiązania na procesorze TI C2000. Użycie MBD pozwoliło na zmniejszenie czasu realizacji projektu o połowę.
- Centre for Concepts in Mechatronics – wykonanie systemu sterownia, który pozwolił na zwiększenie rozdzielczości obrazu uzyskiwanego przez drukarki przemysłowe. Wykorzystano narzędzia środowiska MATLAB i Simulink do realizacji projektu oraz implementacji rozwiązania. Pozwoliło to na zrobienie kolejnych iteracji projektu w bardzo krótkim czasie, a także uzyskanie rozwiązania niezależnego od platformy sprzętowej.
Więcej przykładów użycia oprogramowania MATLAB i Simulink można znaleźć na stronie producenta.