Projektowanie za pomocą modeli jest wydajnym sposobem rozwijania systemów mechatronicznych. Inżynierowie mogą rozwijać i testować zachowanie modelu obiektu lub procesu w czasie symulacji na komputerze klasy PC. Nic dziwnego, że to podejście do projektowania staje się coraz powszechniejsze.
Większość inżynierów kręci głową z niedowierzaniem, gdy słyszy, że termin ?mechatronika? ma już 40 lat. Pierwszy raz został użyty przez Tetsuro Mori w 1969 roku do opisania systemu złożonego z części mechaniczno-elektrycznej, kontrolowanego przez aplikację wbudowaną (rys. 1.).
Systemy wbudowane (ang. embedded systems) są to dedykowane architektury komputerowe, stanowiące integralną część całego urządzenia. Rozwiązanie opracowane przy wykorzystaniu systemów wbudowanych, zwiększa szybkość i niezawodność, zmniejsza zużycie energii i podnosi bezpieczeństwo pracy.
Systemy wbudowane są stosowane:
- w przemyśle samochodowym (ABS, ESP, komputer pokładowy),
- w przemyśle obronnym (sterowanie w samolotach, rakietach),
- w przemyśle maszynowym, np. PLC,
- jako sterowniki robotów mechanicznych,
- w sterownikach bankomatów czy też innych urządzeń codziennego użytku.
Systemy mechatroniczne wykorzystują zaawansowane mikroprocesory, które sterują złożonymi procesami. Takimi, w których występują bardzo złożone zależności między sprzętem a oprogramowaniem. Dlatego inżynierowie stają przed dużym wyzwaniem. Muszą pogodzić wymagania aplikacji z ograniczeniami sprzętowo-programowymi, na jakie mogą napotkać. W tradycyjnym podejściu do projektowania systemu wbudowanego na początku tworzy się specyfikację i wymagania projektu, następnie określa strategię sterowania i fizyczny prototyp. Później projekt jest implementowany w sprzęcie i na końcu testowany.Zbyt późno znalezione błędy sprzętowe lub programowe są zwykle bardzo kosztowne i trudne do usunięcia. Potrzeba bowiem dużo czasu na ich wykrycie i poprawienie. Bardzo często pojawiają się błędy związane ze złą, niekompletną lub nawet powodującą konflikty z innymi modułami specyfikacją. Przez różne rodzaje błędów (rys. 2.) projekty nie kończą się w założonym czasie. Z kolei wynikowa aplikacja zwykle nie jest zgodna z początkowymi założeniami projektu.Projektowanie opierające się na modelach
Projektowanie z użyciem modeli (ang. Model-Based Design) ułatwia rozwijanie systemów mechatronicznych przez opracowanie i wykorzystywanie jednego spójnego środowiska do projektowania i łączenia elementów: mechanicznych, elektronicznych, pneumatycznych, termicznych itp.
Podejście takie jest zdecydowanie bardziej programowe. Dlatego inżynierowie mogą łatwo porównywać projekty różnych systemów, jak również zarządzać nowymi koncepcjami bez ponoszenia kosztów związanych z budowaniem stanowiska pomiarowego i budową fizycznych prototypów. Inżynierowie są w stanie ? podczas wszystkich prac projektowych ? znacznie szybciej i efektywniej testować nowe pomysły oraz konfrontować je z przyjętymi wymaganiami. Ponadto mogą wcześniej, niż w przypadku budowy prototypów fizycznych, wykrywać błędy wynikające ze złego funkcjonowania aplikacji bądź źle przyjętych założeń / uproszczeń. Ponieważ dzieje się to w czasie symulacji, błędy te są łatwe do usunięcia i kosztują mniej, co zmniejsza ogólne koszty projektu.
Podejście MBD umożliwia automatyczną generację kodu dla aplikacji wbudowanej. Obniża to liczbę błędów wynikających z ręcznego opracowania kodu źródłowego aplikacji sterujących. Dotyczy to zarówno otwartych układów sterowania, jak też zamkniętej pętli sprzężenia zwrotnego, charakterystycznej dla układów regulacji automatycznej. W podejściu określanym jako Model-Based Design, przez model rozumie się wykonywalną specyfikację, która w unikalny sposób określa rzeczywiste i kontrolowane zachowania obiektu za pomocą reprezentacji matematycznej (zwykle są to układy nieliniowych równań różniczkowych). Inżynierowie mogą sprawdzić model w trakcie symulacji komputerowej, która pokaże jego właściwości dynamiczne i wpływ na zachowanie całego procesu / systemu. Model określa jednoznacznie relacje matematyczne oczekiwanego zachowania systemu (w tym przypadku złożonego układu mechatronicznego).
Podejście systemowe, razem z wykonywalną specyfikacją, daje przewagę nad specyfikacją pisemną. Umożliwia już na początkowym etapie sprawdzenie poprawności założeń, wymagań, redundancji lub konfliktu z innymi wymaganiami. Oczywiście pisemne specyfikacje będą istniały zawsze i inżynierowie mogą je dołączać do projektu opartego na MBD. Pomagają zachować zgodność ze standardami, takimi jak: ISO 9001 lub IEC 61508. Dodatkowo, śledzenie wymagań ze specyfikacji w czasie projektowania systemu pokazuje, jak inżynier interpretuje dane wymaganie. Specyfikację w wersji elektronicznej możemy także wykorzystać do testowania, łącząc kryteria testów ze scenariuszami testów używanymi w czasie trwania całego projektu.
Rozwój projektu MBD
Diagram blokowy jest naturalną reprezentacją projektu opartego na modelu (rys. 5.). Model ma wejścia, tj. sygnały dostarczane przez zewnętrzne wymuszenia oraz wyjścia, które pokazują reakcję modelu. Wejścia i wyjścia reprezentowane są przez rzeczywiste wartości, jak np.: napięcie, temperatura, pH, ciśnienie itp.
Wewnątrz modelu bloki połączone są liniami, które odwzorowują matematyczne relacje pomiędzy nimi (a ściślej przepływ informacji pomiędzy elementami modelu). Bloki te mogą być obiektem regulowanym lub procesem, który reprezentuje rzeczywiste działanie systemu mechatronicznego, np. model silnika prądu stałego. Matematyczny model silnika może być całkiem prosty, np. zamiana napięcia na moment obrotowy. Złożoność modelu możemy zwiększyć dodając więcej wejść do modelu, np. zakłócenia od napięcia albo dodając więcej parametrów, np. temperaturę czy wpływ efektów nasycenia magnetycznego. Blok lub podsystem (zgrupowane bloki) może być fragmentem większego systemu i realizować np. filtrację, przetwarzanie sygnału na podstawie sygnału wyjściowego lub zdarzeń występujących w modelu. Może być również modułem kompensującym albo sterowaniem w systemie. Podstawą podejścia MBD jest model oparty na parametrach skupionych, który reprezentuje fizykę systemu. Równania różniczkowe zwyczajne (ODE) lub różnicowe (DAE) określają kolejne stany systemu bazując na modelu i relacjach, wejścia do wyjścia. Na przykład dla silnika DC może to być zależność napięcia wejściowego do momentu obrotowego wału. Równania różniczkowe są obliczeniowo bardziej wydajnym sposobem opisu dynamiki o parametrach skupionych, w porównaniu do równań różniczkowych cząstkowych PDE, na których opiera się metoda elementów skończonych MES.
Dzięki użyciu ODE jako mechanizmu obliczeniowego dla systemu mechatronicznego możliwe jest symulowanie systemów złożonych z elementów różnych domen projektowania, np.: mechaniki, elektroniki, pneumatyki itp. Projektant, który modeluje zachowanie systemu w oparciu o równania matematyczne, musi dobrze znać zjawiska fizyczne zachodzące w systemie. Systemy mechatroniczne są przeważnie nieliniowe. Trzeba w nich uwzględniać takie cechy, jak: histereza, siła tarcia i efekty cieplne, na które system jest narażony w warunkach rzeczywistych.
Poprawianie modelu
Kiedy opis matematyczny systemu staje się zbyt trudny lub czasochłonny, inżynierowie mają do wyboru inne możliwości. Pierwsza z nich to podejście wykorzystujące dane empiryczne z obiektu rzeczywistego (ang. Data-Driven Modeling, rys. 6.). Kiedy mamy dane wejściowe i wyjściowe, jesteśmy w stanie stworzyć przybliżony model matematyczny systemu, używając metod identyfikacji lub wykorzystując zalety sztucznych sieci neuronowych.
Podejście to nie daje jednak wglądu w fizykę systemu. Umożliwia natomiast dokładną reprezentację rzeczywistego systemu w określonym zakresie danych testowych.
Mając przybliżone parametry zidentyfikowanego obiektu oraz dane rzeczywiste, możemy doprecyzować model przy użyciu technik optymalizacji. Następnie można dokonać walidacji przez zbadanie odpowiedzi modelu na zestaw danych testowych.
Podejście MBD pozwala inżynierom budować model krok po kroku, zaczynając od bardzo podstawowego i stopniowo dodając kolejne elementy systemu. Takie podejście pozwala na wcześniejsze wykrycie błędów i umożliwia wybranie optymalnego rozwiązania. Dzięki takiemu podejściu jesteśmy w stanie budować bardzo skomplikowane systemy. Odbywa się to poprzez stopniowe dodawanie nowych elementów mechanicznych, elektrycznych, hydraulicznych. Konieczne jest ciągłe sprawdzanie, czy system pracuje poprawnie i spełnia określone wymagania.
Możliwe jest także łączenie oprogramowania CAD (SolidWorks, ProEngineer) z MBD przy modelowaniu mechaniki. System mechaniczny jest importowany z projektu trójwymiarowego razem z parametrami, takimi jak: masa, inercja, połączenia i zastępowany matematyczną reprezentacją bloków, które reprezentują bryły mechaniczne i łączniki z pliku CAD. Przyśpiesza to rozwijanie zaawansowanych systemów mechanicznych, ponieważ importowany jest gotowy system mechaniczny, zgodny z założeniami.
Opracowanie systemu sterowania
Po zamodelowaniu zachowania systemu następnym krokiem jest zaprojektowanie systemu sterowania, który będzie zawierał wiele wariantów sterowania: nie tylko dla celów sterowania w otwartej pętli, ale również dla celów regulacji w pętli zamkniętej (rys. 7.).
Sterowanie w otwartej pętli realizuje regulator nadrzędny. Zapewnia poprawną pracę układu opierając się na różnych trybach pracy systemu. Projektanci, za pomocą rozbudowanych mikroprocesorów, mogą stworzyć bardziej rozbudowane interfejsy, które dają większa kontrolę nad urządzeniem. Dzięki temu możliwe jest: zaimplementowanie automatycznie wykonywanych algorytmów samodiagnozujących działanie systemu, powrót do normalnej pracy, wykrywanie i obsługa błędów oraz bezpieczny start-stop całego urządzenia.
Badania symulacyjne pomagają testować projekt od samego początku. Zwiększają tym samym ergonomię urządzenia i pozwalają znaleźć rozwiązanie optymalne. Takie, które po pierwsze nie uszkodzi sprzętu, a po drugie nie stwarza potencjalnego niebezpieczeństwa wystąpienia sytuacji niebezpiecznej.
W systemach mechatronicznych możliwe jest używanie wielu zamkniętych pętli sprzężenia zwrotnego działających z różnymi parametrami. Algorytm sterujący może być zarówno regulatorem PID, jak też wielowymiarowym regulatorem liniowo-kwadratowym LQG.
Projektowanie z użyciem modeli wspiera projektowanie, a następnie dostrajanie sterowników w pętlach sterowania. Dostrajanie sterowania bezpośrednio w sprzęcie jest bardzo trudne i czasochłonne. Ponadto często powoduje rozstrojenie dla określonego punktu pracy układu. Projektowanie za pomocą modeli umożliwia inżynierowi analizę odpowiedzi zamkniętych układów regulacji. Pozwala rozwijać sposoby odsprzęgania układu (w sytuacji, gdy takie odprzęganie jest wymagane) i dostrajać wzmocnienia kompensatorów różnymi metodami, które bazują na technikach optymalizacji.
Podejście oparte na modelach (MBD) pomaga inżynierom zasymulować i sprawdzić działanie systemu sterowania przed jego uruchomieniem w warunkach rzeczywistych. Model jest narzędziem, które pozwala zdecydować, kiedy użyć tańszego czujnika z większą tolerancją, zamiast drogiego i czułego. Inżynierowie mogą dokładnie określić, jaki komponent wybrać tak, aby system mechatroniczny działał poprawnie i był w miarę tani.
Testowanie i weryfikacja systemu
Testowanie i weryfikacja podczas rozwoju aplikacji wymaga zdefiniowania i wykorzystania standardowych testów w połączeniu z opracowaną metodyką projektowania układów sterowania. Stosowanie standardowych testów lub testów wytrzymałościowych (ang. harness tests) daje inżynierowi pewność, że system rozwijany jest zgodnie z ogólnie przyjętymi normami. Kryteria testowania, określające, czy projektowany układ / system jest zgodny / niezgodny (ang. pass / fail tests) oraz przyjęte zakresy tolerancji są realizowane w połączeniu z elektronicznym opracowaniem specyfikacji i wymaganej dokumentacji.
Na podstawie przeprowadzonych i odpowiednio udokumentowanych testów inżynierowie określają, czy model jest już kompletny i skończony, czy też wymaga wprowadzenia dalszych poprawek. Weryfikacja testów pozwala zdecydować, czy przy danych założeniach jest możliwe i celowe przystąpienie do budowy fizycznego prototypu.
Podejście wykorzystujące modele (MBD) pomaga inżynierom stworzyć kompletny zestaw testów, których muszą następnie używać podczas wszystkich etapów rozwijania projektu i testowaniu produktu.
Dostosowywanie przyjętego modelu do założeń produkcji
Po opracowaniu działającego i przetestowanego algorytmu sterowania inżynierowie muszą zaimplementować model, który zostanie przekazany do działu wykonawstwa. Implementacja wiąże się z przepisaniem algorytmu sterowania na kod C, HDL lub na język zgodny z normą IEC 61131-3 (np. język tekstu strukturalnego ST), który będzie uruchamiany na systemie docelowym czasu rzeczywistego. Na proces ten składa się m.in. konwersja algorytmu sterowania z modelu ciągłego (analogowego) na dyskretny, często w formacie stałoprzecinkowym. Podczas testów inżynierowie mogą porównać cyfrową wersję algorytmu sterowania do wersji analogowej z obiektem sterowanym. Tym samym stwierdzają, w jaki sposób konwersja cyfrowa wpływa na zachowanie całego systemu.
Opracowanie modelu pozwala inżynierom zbadać także inne aspekty digitalizacji. Inżynierowie mogą dobrać odpowiednie przetworniki A/D i D/A tak, aby zapewnić poprawny sygnał i wyeliminować nakładanie się sygnału (aliasing). Systemy mechatroniczne wykorzystują do działania procesory, działające z różną szybkością i częstotliwością próbkowania. Podejście Model-Based Design daje projektantom możliwość symulowania i testowania systemu w różnych konfiguracjach. W ten sposób mogą odpowiednio oszacować koszty implementacji systemu i wybrać optymalny wariant. Projektanci stoją bowiem często przed dylematem: czy użyć reprogramowalnych stałoprzecinkowych układów FPGA, czy też znacznie szybszych i wydajniejszych zmiennoprzecinkowych układów DSP.
Testowanie systemów mechatronicznych w czasie rzeczywistym
Testowanie w czasie rzeczywistym jest następnym krokiem cyklu projektu prowadzonego zgodnie z podejściem Model-Based Design. Na tym etapie generowany jest automatycznie kod C, HDL albo PLC. Inżynierowie mogą wygenerować kod dla sterownika, obiektu sterowanego lub dla obu tych komponentów. W zależności od tego, jaki sposób testowania chcą wybrać. Projektowanie z użyciem modeli oraz funkcjonalnością automatycznego generowania kodu zwalnia inżynierów ze żmudnego, ręcznego tworzenia kodu aplikacji. W ten sposób przyśpieszeniu ulegają prace wdrożeniowe. Projektanci systemów nie muszą być ekspertami od pisania kodu, a wygenerowany wten sposób kod nie jest narażony na błędy ludzkie.
Testowanie aplikacji może być realizowane na dwa sposoby:
- Rapid Prototyping, (RP) ? szybkie prototypowanie,
- Hardware in the loop (HIL) simulation.
Podczas testowania inżynierowie mogą pobierać dane w czasie rzeczywistym i zmieniać parametry w kodzie podczas pracy.
Tabela 1. pokazuje możliwości, jakie daje testowanie w czasie rzeczywistym. Inżynierowie mogą wybrać odpowiedni sposób, który pozwala na wyłapanie czasochłonnych i krytycznych błędów, zanim zostanie opracowana docelowa aplikacja.
Podczas szybkiego prototypowania (Rapid Prototyping) kod algorytmu sterującego generowany jest na kontroler, który działa na systemie czasu rzeczywistego i jest podłączony do istniejącego sprzętu. System sterowania w modelu zawiera wszystkie potrzebne We/Wy. Wygenerowany kod zarządza wszystkimi tymi urządzeniami. Inżynier nie musi ich samodzielnie programować.
W podejściu Hardware in the loop, kod generowany jest zarówno z modelu obiektu sterowanego, jak też z algorytmu sterującego. Kod z modelu obiektu sterowanego uruchamiany jest na systemie czasu rzeczywistego, a kod z algorytmu sterującego na docelowej architekturze sprzętowej. Przy czym podłączany jest do systemu czasu rzeczywistego, na którym uruchomiony jest obiekt sterowany. Testowanie HIL może być zapewnione także poprzez symulowanie obiektu na komputerze lub stacji roboczej.
Jakość wygenerowanego kodu
Projektowanie MBD pozwala inżynierowi zaprojektować model, z którego generowany jest później kod C, HDL, PLC lub na dedykowany procesor bądź system czasu rzeczywistego. Proces generacji kodu może być zoptymalizowany na wybrany procesor przez użycie specjalistycznych sterowników. Udostępniane są w postaci bloków przez producentów procesorów. Kod generowany z modelu opartego na takich blokach różni się od kodu generowanego na system rzeczywisty. Są w nim bowiem elementy, które wykorzystują bardziej możliwości obliczeniowe danego procesora, pamięć, typ danych, przerwania itp. Optymalizacja kodu dostosowuje automatycznie styl pisania programów do stylu producenta sprzętu. W rezultacie wydajniej wykorzystywane są zasoby sprzętowe. Ułatwia to też pracę osobom, które wdrażają system.
MBD na piątkę
Projektowanie za pomocą modeli jest wydajnym sposobem rozwijania systemów mechatronicznych. Inżynierowie mogą rozwijać i testować zachowanie modelu obiektu lub procesu w czasie symulacji na komputerze klasy PC.
Do pięciu najważniejszych zalet takiego podejścia należy zaliczyć:
- możliwość projektowania i testowania wielu różnych pomysłów na realizację układu sterowania systemu mechatronicznego, bez ponoszenia kosztów i marnowania czasu na budowę prototypów;
- jedno środowisko projektowe, w którym modeluje się wykonywalną specyfikację, tzw. MODEL, do którego następnie dodaje się elementy elektroniczne, mechaniczne, pneumatyczne, termiczne itd.;
- redukcję kosztów i czasu potrzebnego do znalezienia i wyeliminowania wszystkich błędów na każdym etapie projektowania mechatronicznego;
- możliwość rozwijania złożonych systemów wbudowanych, które dają użytkownikom większą kontrolę przy projektowaniu systemów mechatronicznych;
- możliwość automatycznej generacji kodu, która pozwala na szybkie sprawdzenie urządzenia w rzeczywistych warunkach.
Tony Lennon, The MathWorks
Artykuł pod redakcją Pawła Bytnara, przedstawiciela firmy Oprogramowanie Naukowo-Techniczne z Krakowa