Wykorzystanie UML i Modeliki w szybkim projektowaniu
Transkrypt
Wykorzystanie UML i Modeliki w szybkim projektowaniu
Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, Wykorzystanie UML i Modeliki w szybkim projektowaniu mechatronicznym Zbigniew Mrozek, Politechnika Krakowska, [email protected] Streszczenie Przekazywanie informacji odgrywa istotną rolę w działaniu urządzeń mechatronicznych i może być łatwo przedstawione na diagramach UML. Dodatkowo, na poziomie modelowania szczegółowego, istotną w mechatronice integrację modeli elementów o różnej naturze można uzyskać przez jednoczesne użycie Simulinka i Modeliki. Zdaniem autora, terminologia i notacja używana w UML może być zaadoptowana do projektowania interdyscyplinarnych systemów mechatronicznych oraz jako narzędzie do sporządzania dokumentacji na wszystkich etapach projektowania. 1 Projektowanie jako część cyklu życia produktu Cykl życia (life cycle) jest pojęciem używanym w inżynierii programowania i oznacza cykl faz, przez które system przechodzi w okresie tworzenia, eksploatacji oraz konserwacji i modyfikacji oprogramowania. Cykl życia kończy się z chwilą zaprzestania użytkowania programu. Cykl życia wyrobu mechatronicznego pokazano na rysunku 1. W porównaniu do metody klasycznej projektowania, najbardziej istotne różnice to: • Użycie komputerowego wspomagania na każdym etapie projektowania. Pozwala to na szybką realizację kolejnych kroków projektowania. Powtórzenie realizacji nawet kilku etapów nie stanowi żadnego problemu. • Proces projektowania ma charakter iteracyjny. Na każdym etapie jest prowadzona weryfikacja uzyskanych rezultatów i może być podjęta decyzja o ewentualnym cofnięciu tego procesu o jeden lub kilka kroków. Pętle prototypowania oznaczono podwójnymi liniami. Są to: 1. symulacja off-line z wykorzystaniem modelu symulacyjnego projektowanego wyrobu 2. szybkie prototypowanie w trybie HiL. Mogą tu być wykorzystane fragmenty elementów rzeczywistego systemu na przykład model fizyczny części mechanicznej systemu z czujnikami i elementami wykonawczymi lub prototyp fizyczny układu sterowania. Elementy fizyczne współpracują z modelem wirtualnym pozostałej części systemu poprzez przetworniki analogowo-cyfrowe i cyfrowo-analogowe. 3. szybkie prototypowanie z prototypem sterownika wykonanym w docelowej technologii (ASIC/FPGA [14,21] lub z użyciem komputera przemysłowego) Rysunek 1 Mechatroniczne podejście do prototypowania jako fragment cyklu życia wyrobu 16 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, 2 Wykorzystanie UML w projektowaniu mechatronicznym Przekazywanie informacji odgrywa istotną rolę w działaniu urządzeń mechatronicznych i może być łatwo przedstawione na diagramach UML. Zdaniem autora, terminologia i notacja używana w UML może być zaadoptowana do projektowania interdyscyplinarnych systemów mechatronicznych oraz jako narzędzie do sporządzania dokumentacji na wszystkich etapach projektowania. Komputerowe systemy CASE wspomagająceprojektowanie są wykorzystywane nie tylko w części merytorycznej, ale też do zarządzania wymaganiami użytkowników i procesem projektowania. Stosowania UML pozwala na ujednolicenie notacji, wczesne wykrywanie luk i niespójności w specyfikacji wymagań oraz zapewnienie zgodności użytych nazw. Użycie sformalizowanej, graficznej formy dokumentowania na wszystkich etapach projektowania ułatwia komunikowanie się członków interdyscyplinarnego zespołu przygotowującego projekt. Pozwala to na przyspieszenie prowadzonych prac oraz znacznie zwiększa szansę zakończenia sukcesem projektów dużych i złożonych systemów. Podejście interdyscyplinarne oznacza, że konstrukcja i technologia produkcji wyrobu jest opracowana z uwzględnieniem różnych systemów i technologii, aby uzyskać efekt synergii (synergia: współdziałanie kilku czynników dające łączny efekt skuteczniejszy niż suma ich oddzielnych działań). Członkowie interdyscyplinarnego zespołu mają różne umiejętności. Posługują się odmiennymi sposobami projektowania i opisu uzyskanych rezultatów. Daje to z jednej strony szansę stworzenia wyrobu, którego nie mógłby zaprojektować żaden z fachowców pracując oddzielnie. Z drugiej strony stwarza to potrzebę określenia wspólnego języka (terminologii i notacji), który posłuży im do precyzyjnego, łatwego i jednoznacznego porozumiewania się i dokumentowania realizowanych etapów projektu. Wspólny język powinien ułatwić precyzyjne określenie przeznaczenia, funkcji i własności projektowanego produktu i jego elementów składowych. Takim językiem może być opisany dalej UML. Jest on łatwy do zrozumienia i możliwy do zaakceptowania przez wszystkich uczestników realizujących projekt. 2.1 Język UML UML (unified modeling language) stworzono w celu modelowania systemów informatycznych. Jest to język uniwersalny, obiektowo zorientowany przydatny do projektowania systemów niezależnie od ich przeznaczenia i od języka, w którym będzie zaimplementowany docelowy system [1-4, 25,26]. Precyzja i uniwersalność notacji języka UML powoduje, ze ponawiane są próby zastosowania go w dziedzinach innych niż informatyka. Już w roku 1998 wykorzystano UML do projektowania systemu sterowania taśmociągiem i sortownikiem pojemników [7]. W dalszej części rozdziału podano przykłady wybranych diagramów UML dla automatu spawającego z użyciem robota, opisywane przez autora w pracy [12] oraz dla automatycznego tostera. Model projektowanego systemu ma postać diagramów graficznych. Każdy rodzaj diagramu pokazuje te elementy przyszłego systemu, które są istotne z wybranego punktu widzenia, a pomija bądź upraszcza inne elementy. Wysoki poziom abstrakcji pozwala na zwięzły opis nawet bardzo dużych systemów. Jest on uzupełniany o opis werbalny w postaci scenariuszy oraz komentarze i inne informacje. Oczywistym jest, że użycie tylko jednego typu diagramu nie jest wystarczające. Praktycznie zawsze wykorzystuje się oba diagramy statyczne: • diagram przypadków użycia (use cases) • diagram klas. Wybór dodatkowych diagramów jest uzależniony od aktualnych potrzeb i doświadczenia projektantów. Są to: diagramy dynamiczne (behawioralne): • diagramy interakcji o diagram sekwencyjny o diagram współpracy (collaboration), zwany też diagramem czynności • diagram aktywności (activity) • diagram stanu (statechart) Diagramy implementacyjne: • diagram komponentów • diagram konfiguracji (deployment), zwany też diagramem wdrożeniowym nie są dostosowane do specyfiki projektowania systemów mechatronicznych i nie będą tu omawiane. Ich rolę może pełnić diagram architektury, przydatny w projektowaniu systemów czasu rzeczywistego. Jest on zdefiniowany w RtS (Real –time Studio [17]), 17 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, 2.2 Kolejność i sposób tworzenia diagramów UML Punktem startowym projektu realizowanego z wykorzystaniem UML jest specyfikacja wymagań w postaci scenariuszy i diagramu przypadków użycia (rys. ). Kolejnym krokiem jest wstępny podział podstawowych funkcji projektowanego wyrobu (są one pokazane na zrobionym wcześniej diagramie przypadków użycia) na podsystemy mechaniczne, urządzenia wykonawcze oraz na podsystemy przetwarzające informację. Prowadzi to do wstępnego wyboru struktury systemu. Podsystemy i wybrane ich elementy mogą być pokazane na diagramie architektury (rys.4) lub jako klasy i obiekty na diagramie klas (rys.5). Przy projektowaniu systemów czasu rzeczywistego, w którym dokonuje się rozdziału funkcji na sprzęt i oprogramowanie, należy przygotować diagram architektury. Pozwala on na łatwe pokazanie kanałów komunikacyjnych oraz konfiguracji i architektury systemu. Stanowi on dobrą podstawę do omawiania integracji całego systemu i do przygotowania projektu szczegółowego podsystemów elektronicznych i mikroprocesorowych. Uzgodniony ze zleceniodawcą opis tworzonego wyrobu może zawierać błędy i niedokładności. Najwięcej błędów wykrywa się tworząc diagramy interakcji (sekwencyjny lub współpracy) oraz diagramy stanu. Brak precyzji lub niejednoznaczność w specyfikacji wymagań uniemożliwia wykonanie tych diagramów i zmusza do doprecyzowania specyfikacji wymagań. Tak wczesne wykrycie błędów zmniejsza koszty ich poprawiania i związaną z tym stratę czasu. Błędy w specyfikacji wymagań powinny być usunięte we współpracy ze zleceniodawcą i przyszłym użytkownikiem. Rysunek 2 Wykorzystanie języka UML w projektowaniu mechatronicznym (opis w tekscie) Diagram sekwencyjny (rys.7) i diagram współpracy (rys6) pokazują sposób realizacji funkcji lub usługi podanej w przypadkach użycia. Są one zarazem graficznym zobrazowaniem informacji zawartych w odpowiednich scenariuszach. Nazwy klas i obiektów do tych diagramów pobiera się z diagramu klas. Jeśli odpowiedniej klasy brakuje, to należy ją utworzyć i wpisać do diagramu klas. Można też zmienić nazwę lub opis klasy już istniejącej, jeśli nie była odpowiednio zdefiniowana. W rezultacie, przygotowanie diagramów sekwencyjnych (lub współpracy) pozwala na uszczegółowienie i weryfikację informacji przedstawionych na diagramie klas i zawartej w scenariuszach. Wszystkie możliwe stany wybranego obiektu można pokazać na diagramie stanu (rys.8). Jest to istotna różnica w porównaniu do opisanych wyżej diagramów sekwencynych i diagramów współpracy, które pokazują tylko sekwencje zawarte w wybranym scenariuszu. Przystępując do tworzenia diagramu stanu należy określić stan 18 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, początkowy, stan końcowy (jeśli istnieje) i stabilne stany pośrednie. Następną czynnością jest wyrysowanie przejść pomiędzy stanami stabilnymi. Warunki przejścia (wyrażenie logiczne) lub nazwę zdarzenia powodującego przejście podaje się obok linii przejścia, łączącej wybrane stany. Diagram aktywności (activity diagram) jest odmianą omówionego wyżej diagramu stanów. Pokazuje się w nim wewnętrzne zmiany stanów systemu lub podsystemu. Zmiany te nie są powodowane przez zdarzenia zewnętrzne (events), ale przez zakończenia jednego lub kilku (w przypadku procesów równoległych) procesów wewnętrznych. Jeśli jakieś uwagi mają być widoczne na ekranie lub na wydrukach, to w wolnym miejscu dowolnego diagramu można umieścić ikonę notatki (ikona ma postać kartki z podwiniętym rogiem) i wpisać tam potrzebne informacje. Ikona notatki powinna być dowiązana do dowolnie wybranego elementu diagramu. 2.2.1 Diagram przypadków użycia Etap analizy rozpoczyna się od uzgodnienia ze zleceniodawcą wymagań i wizji przyszłego wyrobu. Obejmuje to określenie granic systemu jako całości oraz zebranie i opisanie najważniejszych jego cech i scenariuszy jego działania. Diagramy przypadków użycia (use case diagram) tworzy się w oparciu o wymagania zleceniodawcy i przyszłych użytkowników. Przypadki użycia pozwalają na graficzne pokazanie własności systemu w taki sposób, jak są one widziane po stronie użytkownika. Funkcje projektowanego wyrobu są przedstawiane w postaci owalnych ikon z nazwą funkcji lub jej opisem (rys.3). Taka forma specyfikacji jest zrozumiała dla zleceniodawcy i przyszłego użytkownika, Zarazem jest ona wystarczająco precyzyjna i jednoznaczna, aby mogła być wykorzystana przez projektantów. W języku UML definiuje się aktorów, którzy z zewnątrz oddziaływują na pracę systemu. Aktorem może być zarówno człowiek (użytkownik lub operator systemu) jak i dowolne urządzenie znajdujące się na zewnątrz projektowanego systemu. W przypadku automatycznego tostera aktorem jest użytkownik wkładający pieczywo do tostera. Diagram przypadków użycia pokazuje możliwości oddziaływania aktora na system (i odwrotnie). Symbolem aktora jest uproszczony rysunek przedstawiający człowieka. Zdefiniowanie aktorów pozwala na precyzyjne określenie granicy pomiędzy projektowanym systemem i jego otoczeniem. Przypadki użycia są wykorzystane do określenia interfejsu pomiędzy budowanym systemem i jego użytkownikiem oraz do określenia funkcjonalności i odpowiedzialności podsystemów projektowanego wyrobu. Rysunek 3 Diagram przypadków użycia dla tostera automatycznego Wysoki poziom abstrakcji i możliwość pominięcia niepotrzebnych na tym etapie szczegółów pozwalają na sporządzenie prostego i przejrzystego diagramu przypadków użycia nawet dla bardzo skomplikowanych systemów. Diagramy przypadków użycia i opisane dalej scenariusze stanowią podstawę wszystkich następnych etapów projektowania, testowania i odbioru gotowego projektu. 2.2.2 Scenariusz Scenariusz to opisana w języku naturalnym wybrana sekwencja zachowań i komunikatów wymienianych pomiędzy aktorami a projektowanym systemem oraz werbalny opis reakcji systemu i aktorów na te komunikaty. Scenariusz podaje, co dzieje się wewnątrz przypadku użycia. Dla każdego przypadku użycia można podać wiele różniących się pomiędzy sobą scenariuszy, opisujących typowe zachowania systemu oraz zachowania wyjątkowe, na przykład w warunkach awarii. Przykładowy scenariusz może wyglądać następująco: Operator spawarki mocuje na pozycjonerze elementy do spawania. Wybiera z menu program spawania i zadaje trajektorię ruchu głowicy spawającej. Następnie uruchamia automat spawalniczy. Automat włącza wydawanie gazu, wody chłodzącej, obcina końcówkę drutu 19 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, elektrody, po czym rozpoczyna spawanie. Jeśli łuk elektryczny nie zajarzy się lub zgaśnie podczas spawania, automatycznie ponawia się próbę jego zapalenia... Scenariusze są używane do tworzenia i weryfikacji diagramu przypadków użycia, diagramu sekwencyjnego, diagramu współpracy i diagramu stanów. Są też używane podczas testowania, weryfikacji i walidacji systemu. 2.2.3 Diagram architektury systemu. Podczas tworzenia przypadków użycia określa się granice pomiędzy projektowanym systemem i jego otoczeniem. Jest to właściwa chwila, aby zdefiniować interfejsy pomiędzy systemem a zewnętrznymi aktorami. W przypadku spawania łukowego z użyciem robota aktorem jest operator (spawacz) i ewentualnie pracownik, którego zadaniem jest wpisanie i konserwowanie biblioteki programów spawania (aktor Programowanie). Przykładem aktora jest także łuk spawalniczy (aktor Luk_spaw), który czasem nie zapala się albo nieoczekiwanie gaśnie. Łuk spawalniczy jest zjawiskiem zewnętrznym względem spawarki. Parametry łuku spawalniczego są mierzone i rejestrowane przez system, a w wypadku niezajarzenia się łuku lub jego zgaśnięcia, uruchamiane są procedury obsługi wznowienia pracy spawarki. W odróżnieniu od systemów informatycznych, systemy mechatroniczne mają często dedykowany hardwarowy interfejs użytkownika w postaci specjalizowanych wyświetlaczy, przycisków pokręteł i innych elementów. spawarka System Architecture Diagram SYSTEM Gniazdo Spawalnicze subsystem_pozycjoner CAN subsystem_Robot Subs._szafa_sterownicza CAN naped_pozycjonera sterownik_robota sterownik_pozycjonera zasilacz_spaw naped_robota CAN can glowica_spaw- CAN ajaca CAN Luk_spaw Programowa i CAN konsola_opera- wydawanie_drut u gazu_i_wody tora_spawarki Operator Rysunek 4 Diagram architektury dla systemu spawania łukowego z użyciem robota Czujniki (tensometry, enkodery, etc) i elementy wykonawcze (serwomechanizmy i silniki) powinny być wybrane w początkowej fazie projektowania, co potwierdza Gawrysiak [7]. Grega [5] wskazuje na potrzebę wczesnego wyboru protokołów i standardów. Decyzje te są istotnym poszerzeniem informacji zawartych w diagramie przypadków użycia i powinny być uwzględnione podczas analizy specyfikacji projektowania systemu. Tego typu informacje można przedstawić na diagramie architektury systemu w pakiecie RtS [17] który jest rozszerzeniem języka UML. Diagram architektury jest ukierunkowany na pokazanie konfiguracji systemów czasu rzeczywistego. 2.2.4 Obiekty i klasy Kolejnym krokiem jest zidentyfikowanie (wyszukanie) obiektów i klas. Diagram klas określa strukturę wewnętrzną systemu i jego podsystemów. Szczegółowość przedstawienia struktury budowanego systemu na diagramie klas jest znacznie wyższa, niż można to pokazać na diagramie architektury. Wstępną wersję diagramu klas buduje się w oparciu o wiedzę o systemie, zawartą w scenariuszach i w diagramie przypadków. W przypadku systemów mechatronicznych, obiektami są urządzenia bądź ich wydzielone podzespoły, sterowniki lub ich bloki funkcjonalne oraz interfejsy, czujniki i elementy wykonawcze. Obiekty realizują czynności opisane przez przypadki użycia i scenariusze. Analiza rzeczowników i czasowników w scenariuszu pomaga zidentyfikować obiekty, a także ich atrybuty i metody. Rzeczowniki są kandydatami na nazwy obiektów, klas i ich atrybutów, a czasowniki są kandydatami na nazwy metod. W miarę postępu prac projektowych diagramy będą uzupełniane o dodatkowe obiekty i klasy, a ich opis będzie uzupełniany o nowe atrybuty, metody i inne elementy. 20 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, Wstępną postać diagramu klas można utworzyć już na etapie analizy systemu, w oparciu o scenariusz i diagram przypadków użycia. Autor nie zna sposobu, które by pozwolił: poprawnie i jednoznacznie zidentyfikować wszystkie obiekty oraz przypisać im wszystkie właściwe atrybuty i metody. Tworzenie diagramów jest procesem iteracyjnym i nie należy się przy tym śpieszyć. Te same obiekty i klasy są wykorzystywane do budowy różnych diagramów. Przygotowując kolejne diagramy, można tworzyć brakujące obiekty (lub modyfikować obiekty już istniejące) w taki sposób, aby miały potrzebne w danym momencie atrybuty i metody. Rysunek 5 Diagram klas dla zrobotyzowanego stanowiska spawalniczego. Podwójna linia pozioma w pod nazwami ::sterow_robota oraz ::drut_woda_gaz pokazuje, że pominięto atrybuty. Diagram klas dla automatu spawalniczego pokazano na rysunku (rys.5). Notacja używana w diagramie klas i w diagramie obiektów jest następująca: trzy prostokątne przedziały zawierają (poczynając od góry) kolejno: 1. nazwę (podanie nazwy jest obowiązkowe), 2. atrybuty (można pominąć) 3. metody danego obiektu lub klasy (można pominąć). Linie łączące obiekty i klasy oraz umieszczone tam komentarze (dokładniej role i komunikaty) pokazują wzajemne relacje obiektów lub klas. Odczytuje się je następująco: konsola_operatora steruje zasilacz(em)_spaw(arki). Linie zakończone rombem oznaczają relację zawierania (przynależności), np. głowica_spaw należy do zasilacz(a)_spaw(arki).. Cyfry i gwiazdki określają krotność występowania obiektów danej klasy np. jedno (1) zrobotyzowane stanowisko spawalnicze oraz (*)jeden lub więcej zasilacz spawarki (*)jeden lub więcej robot. Dziedziczenie oznacza się linią z domkniętą trójkątną strzałką. Strzałka zawsze wskazuje rodzica. Może to prowadzić do błędów, gdyż intuicyjnie postrzegany jest zazwyczaj odmienny kierunek dziedziczenia: od rodziców do dzieci, co jest niezgodne z UML. 2.2.5 Diagram sekwencyjny i diagram współpracy Diagram sekwencyjny (rys.6) i diagram współpracy (rys.7) są uszczegółowieniem diagramu przypadków użycia. Pokazują one wybraną sekwencję działań aktora oraz reakcję obiektów z projektowanego systemu na te działania. Rysunek 6 Diagram sekwencyjny dla automatycznego tostera Pokazują, co robi wywołany obiekt, aby zrealizować zadania podane w diagramie przypadków użycia, w sposób opisany w scenariuszu. Oba diagramy pokazują współpracę obiektów. Jest ona poprzedzana poprzez wymianę komunikatów z żądaniem, aby wołany obiekt wykonał określone czynności. Komunikat można tu traktować jako 21 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, wywołane metody kolejnego, wołanego obiektu. Diagram współpracy (rys.7) pokazuje te same obiekty co diagram sekwencyjny. Są one uporządkowane i ponumerowane w kolejności ich reagowania na działania aktora i innych obiektów. Ten sam obiekt może wystąpić wielokrotnie, jeśli był wielokrotnie aktywny. Rysunek 7 Diagram współpracy dla automatycznego tostera 2.2.6 Diagram stanów Opisane powyżej diagramy sekwencyny i współpracy pokazują tylko niektóre sekwencje działania aktorów i wybranych obiektów, odpowiadające wybranemu scenariuszowi. Wszystkie możliwe stany wybranego obiektu można pokazać na diagramie stanu,. opartym na formalizmie graficznym Harel’a [1987]. Diagram stanu pozwala na czytelny i zwarty opis logiki systemu reaktywnego, w którym sygnały wyjściowe zależą nie tylko od sygnałów wejściowych, ale też od stanu wewnętrznego tego systemu. Kolejne stany obiektu są pokazane jako prostokątne bloki o zaokrąglonych krawędziach. Stan początkowy systemu jest oznaczony przejściem z czarną kulką, a stan końcowy przejściem z czarną kulką w okręgu. Systemy wbudowane (embedded) są przeznaczone do pracy ciągłej i nie mają stanu końcowego. Rysunek 8 Przykład diagramu stanów dla automatu spawalniczego(MATLAB/STATEFLOW) Jeszcze więcej możliwości daje wykorzystanie na tym etapie specjalizowanego oprogramowania (np. STATEFLOW w połączeniu z MATLAB i SIMULINK, opisane przez autora w pracy [9]) obsługującego diagramy stanów. Zaletą takiego podejścia jest możliwość stworzenia wirtualnego prototypu i symulacji jego pracy metodą HiL (hardware in the loop). Wadą jest wyjście poza środowisko narzędzi CASE i utrata możliwości automatycznego aktualizowania diagramów w oparciu o bazę danych systemu CASE. 2.2.7 Diagram aktywności (czynności) Diagram aktywności (activity diagram) jest odmianą diagramu stanów. Pokazuje się w nim zmiany stanów, które nie są powodowane przez zdarzenia zewnętrzne (events), ale przez zakończenie jednego lub kilku (w przypadku procesów równoległych) procesów wewnętrznych. Na rysunku 9 przedstawiono czynności wykonywane podczas przygotowania spawarki do pracy. Na diagramie pokazano możliwość równoczesnego włączenia wody i 22 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, gazu oraz wysunięcia drutu. Pozostałe czynności są wykonywane w odpowiedniej kolejności. Pogrubione linie służą do synchronizacji procesów. Na diagramie pokazano, że ruch głowicy (do punktu startowego) można wykonać po włączeniu wody chłodzącej, gazu ochronnego (obojętnego lub aktywnego) oraz wysunięciu i obcięciu końcówki drutu, będącego elektrodą spawającą. Znaczenie diagramu aktywności polega na pokazaniu możliwości równoległego wykonywania pewnych czynności. Rysunek 9 Diagram aktywności dla procesu przygotowania spawarki 2.3 Pakiety oprogramowania CASE wspomagające użycie UML Produkty firmy Rational Inc, wykazują bardzo wysoki stopień zgodności ze standardem języka UML. Są one szeroko stosowane przy tworzeniu systemów informatycznych na potrzeby banków, linii lotniczych oraz innych zleceniodawców. Rational Rose służ do modelowania wizualnego w jęzku UML. Rational Rose RT jest przeznaczone do wspomagania projektowania systemów oprogramowania czasu rzeczywistego. Real-TimeStudio (RtS) z Artisan Software Tools Inc, jest określany przez producenta jako narzędzie wspomagające projektowanie systemów czasu rzeczywistego. Z punktu widzenia projektanta systemów mechatronicznych jest on łatwiejszy w obsłudze. Oferuje też rozszerzenie języka UML o dodatkowe diagramy, z których najważniejszym dla zastosowań mechatronicznych jest diagram architektury. Reasumując, pakiet RtS jest mniejszy Rational Rose i posiada część możliwości, które w przypadku Rational Rose wymagają innych programów z zestawu Rational Suite. Doświadczenie autora pokazuje, że RtS jest lepiej dostosowane do wymagań projektowania systemów mechatronicznych, niż konkurencyjne produkty. 3 Oprogramowanie wspomagające modelowanie i symulację Do projektowania oraz symulacji układów sterowania autor używa program MATLAB z rozszerzeniem SIMULINK i STATEFLOW. Zastosowany w tym systemie interfejs graficzny umożliwia analizę oraz syntezę układu sterowania na poziomie bloków funkcjonalnych. Odciąża to projektanta od ręcznego pisania kodu sterownika oraz umożliwia łatwe i szybkie zmiany projektowanego układu sterowania. Dodatkowe rozszerzenie RTW (real time workshop) przetwarza schematy blokowe SIMULINKA i STATEFLOW na program w języku C, co umożliwia symulację on-line i w trybie HiL. Opisy innych pakietów CACSD (computer aided control system design) wspomagających projektowanie systemów sterowania, w tym narzędzi do programowania sterowników logicznych PLC są podane przez. Grega w [5]. 3.1 Modelica Istotą podejścia zastosowanego w Modelice jest modelowanie fizyczne. Oznacza to, że połączenie ikon elementów na schemacie blokowym realizuje prawa fizyki obowiązujące w miejscu połączenia. Jest to pewna analogia do grafu wiązań (Bond grafu), a zarazem istotna różnica w porównaniu do SIMULINKA, gdzie połączenia bloków służą jedynie do jednokierunkowej transmisji informacji. Przy omawianiu własności Modeliki, autor wykorzystuje pakiet Dymola, który dostarcza narzędzia do tworzenia tych modeli i wykorzystuje modele z Modeliki do symulacji. 23 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, Istotnym usprawnieniem projektowania interdyscyplinarnego w Modelice jest ujednolicenie sposobów tworzenia i zapisu modeli. Umożliwia to łatwe tworzenie modeli złożonych, zawierające elementy i podsystemy o różnej naturze fizycznej, pochodzące z różnych pakietów symulacyjnych. Przy tworzeniu Modeliki pracowali naukowcy, przedstawiciele przemysłu i niewielkich firm softwarowych. Język Modelica został stworzony zbiorowym wysiłkiem twórców kilku wcześniejszych, obiektowozorientowanych języków: Propozycje standaryzacji w zakresie modelowania przez długi czas nie miały wsparcia ze strony wiodących producentów. Powodem mogła być obawa o utratę części dotychczasowych rynków zbytu i zmniejszenia dochodów. Sytuacja zmieniła się, gdy realizację tego problemu podjęto w ramach projektu ESPRIT "Simulation in Europe Basic Research Working Group (SiE-WG)", finansowanej przez Wspólnotę Europejską. Autor tej pracy uczestniczył we wczesnym etapie prac SiE-WG podczas odbywania stażu na uniwersytecie w Gandawie (Belgia) w roku 1995. Standardowa postać modeli z bibliotek Modeliki może być wykorzystana przez dowolny pakiet symulacyjny pod warunkiem zastosowania odpowiedniego translatora. Powinien on dokonać przekształceń symbolicznych równań różniczkowych (ODE) i różniczkowo-algebraicznych (DAE). Potrzebna jest też analiza struktur dziedziczenia klas modeli i połączeń bloków w schematach graficznych oraz wiele innych operacji. Nie jest to problem banalny, gdyż Modelika akceptuje równania źle uwarunkowane i w postaci uwikłanej. Problemy te zostały rozwiązane przez niektórych producentów oprogramowania: • Dymola z firmy Dynasim AB (uczestnik zespołu opracowującego Modelikę), w wersji 4 jest w pełni zintegrowana z Modeliką. Język ten opisano w dalszej części pracy • MathModelica z firmy MathCore wraz z Modeliką tworzy środowisko symulacyjne, które może być zintegrowane z pakietami Mathematica oraz Microsoft Visio. MATLAB i Dymola uzupełniają się wzajemnie. Mogą one współpracować ze sobą dzięki narzędziom opracowanym przez Dynasim AB (producent Dymoli i. Pozwala to na wykorzystanie bogatych bibliotek obu pakietów do modelowania systemów o różnej naturze fizycznej oraz wykorzystanie ich do prototypowania w czasie rzeczywistym. W Modelice przyjęto, że równania różniczkowe (ODE: ordinary differential equations) i równania różniczkowoalgebraiczne (DAE: differential analog equations), opisujące zjawiska zachodzące w modelowanym urządzeniu, nie muszą być przekształcane do równania stanu w postaci: dx / dt = f ( x, u ) y = g ( x, u ) (1) gdzie x – wektor zmiennych stanu u – wektor zmiennych na wejściu y – wektor zmiennych na wyjściu Pakiet Modelica akceptuje równania w postaci niejawnej deklaratywnej (2), umożliwiającej późniejsze przypisanie zmiennych modelu do wejść i do wyjść systemu Błąd! Nie można odnaleźć źródła odwołania.: f (t , dx / dt , x, y ) = 0 (2) gdzie: x – wektor zmiennych dynamicznych (ich pochodna występuje we wzorze) y – wektor zmiennych algebraicznych (pochodna nie występuje we wzorze) t – czas Oznacza to, że równanie (2), w przypadku wielkości dualnych (takich, jak prąd i napięcie w układach elektrycznych lub siła i przesunięcie w układach mechanicznych) nie określa, która wielkość jest wymuszeniem, a która odpowiedzią obiektu. W powyższym równaniu x, y to nieznane wektory zmiennych, przy czym równanie zależy też od pochodnych wektora x. Przykładowo model dwójnika szeregowego RC może być wykorzystany do obliczenia zależności prądu ładowania od przyłożonego napięcia i czasu, a też pozwala obliczyć napięcie na kondensatorze w funkcji przepływającego prądu i czasu. Zaletą takiego podejścia jest możliwość wykorzystania tego samego modelu niezależnie od sposobu pobudzania modelowanego systemu. Właściwą postać równań czyli przeniesienie odpowiednich zmiennych układu równań na lewą stronę jest dokonywane przez oprogramowanie symulacyjne. 24 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, 3.1.1 Biblioteka standardowa i biblioteka dodatkowa modeli Modelica jest dostępna w Internecie bezpłatnie wraz z dwoma pakietami bibliotecznymi: standardowym i dodatkowym (additions). Biblioteka ThermoFluid jest dostępna nieodpłatnie pod adresem www.SourceForgeProject/Modelica.htm. Dodatkowo można dokupić biblioteki oferowane jako opcje pakietu Dymola (rozdział 3.2). Są to: HyLib (Hydraulics library) i Powertrain (układy przekazywania mocy w pojazdach). Biblioteki Modeliki mają wielopoziomową strukturę hierarchiczną. Poniżej pokazano ikony z biblioteki specjalistycznej elementów obrotowych z biblioteki podstawowej Modeliki. Rysunek 10 Biblioteka podstawowa: bloki elementów obrotowych Modelika jest obiektowo-zorientowana i każdy jej element ma pola, w których przechowywane są wszystkie istotne, z punktu widzenia celu symulacji, parametry wybranego bloku. Przypisanie parametrom potrzebnych wartości jest wykonywane w sposób dogodny dla użytkownika, w oparciu o typowe dane katalogowe dla wybranego urządzenia. W modelu przekładni (rys.11) wejściem jest moment i kąt na wale_a (ang. flange_a), a wyjściem jest kąt i moment przyłożony na wale_b przekładni (ang. flange_b). Prócz tego określa się wartości następujących parametrów: • Przełożenie (ratio), • Sprawność (gear efficiency) uwzględniająca straty na tarcie w zębach przekładni, • tarcie w łożyskach, mokre (friction_pos) i suche (peak) • elastyczność, tłumienie i luzy Jeśli niektórym parametrom nie nadano wartości, to przyjęte zostaną wartości domyślne. Rysunek 11 Model przekładni Rozdzielenie tarcia w łożyskach, tarcia w zębach przekładni i tarcia suchego umożliwia poprawną symulacje przy uruchamianiu i zatrzymaniu przekładni oraz przy pracy z dowolną prędkością. 3.2 Dymola W grupie programów przydatnych do modelowania złożonych urządzeń mechatronicznych należy zwrócić uwagę na Dymolę (dynamic modeling language) – obiektowo zorientowany pakiet do modelowania i symulacji obiektów fizycznych. Dymola wykorzystuje modele w standardzie Modeliki, co ułatwia symulowanie układów o mieszanej naturze fizycznej: mechanicznych, elektrycznych, termodynamicznych, chemicznych oraz innych, 25 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, opisanych równaniami lub modelami Modeliki. Dymola jest oferowana dla Windows 98/2000/NT/ME oraz dla Unix i Linux. Połączenie elementów Modeliki na schemacie blokowym służy nie tylko do jednokierunkowej transmisji informacji (jak w SIMULINKU), lecz realizuje prawa fizyki obowiązujące w miejscu połączenia. Wbudowany do Dymoli translator może dokonać symbolicznego przekształcenia ponad 100 000 równań dla potrzeb symulacji. Edytor graficzny pozwala na przeglądanie, edycję i tworzenie nowych modeli. Dymola wspomaga symulację w czasie rzeczywistym (również HiL), ale może też wygenerować M-pliki do Matlaba i bloki podsystemów SIMULINKA, działające w oparciu o S-funkcję (C-Mex plik). Umożliwia to pełne wykorzystanie możliwości SIMULINKA. Przeniesione z Dymoli bloki podsystemów mogą być kompilowane przez Real Time Workshop i wykorzystane do prototypowania w środowisku dSPACE w czasie rzeczywistym. Połączenie Modeliki z SIMULINKIEM (poprzez Dymolę) ułatwia prototypowanie bardzo dużych i skomplikowanych systemów, których model można przygotować w Modelice. Wyniki obliczeń Dymoli sa zapisywane w binarnym formacie MAT-pliku, co umożliwia ich przetwarzanie w środowisku MATLABA. 4 Wnioski końcowe W systemie mechatronicznym współpracują z sobą elementy i podsystemy o różnej naturze fizycznej: układy mechaniczne, elektryczne, elektroniczne oraz oprogramowanie. O jakości całego systemu decyduje współpraca jego elementów składowych (daje to efekt synergii) oraz parametry najsłabszego elementu. Złożoność współczesnych konstrukcji oraz konieczność (ze względu na konkurencyjność rynku) skrócenia czasu powstawania produktu powoduje, że projekty nowych wyrobów są zazwyczaj tworzone przez wieloosobowe zespoły fachowców różnych specjalności. Proces projektowania może być wspierany przez narzędzia CAD/CAM, CAE, PDM i CASE oraz przez odpowiednią organizację pracy zespołu projektantów. Powszechne jest wykorzystywanie komputerowych systemów wspomagania - nie tylko w części merytorycznej, ale też do zarządzania wymaganiami użytkowników i procesem projektowania [10, 17-24]. Nowym i bardzo efektywnym narzędziem do modelowania systemów interdyscyplinarnych jest język Modelica. Jest on oparty na koncepcji modelowania fizycznego, co oznacza wymóg spełniania obowiązujących praw fizyki w złączach używanych do połączenia elementów składowych modelu złożonego. Jest zasadnicza zmiana w porównaniu do dotychczasowych narzędzi (np. SIMULINK), gdzie połączenie elementów schematu blokowego oznaczało przekazywanie tylko informacji i tylko w jednym kierunku. Pakiet symulacyjny Dymola może być stosowany do modelowania układów o mieszanej naturze fizycznej: mechanicznych, elektrycznych, termodynamicznych, chemicznych oraz innych, opisanych równaniami lub zawartych w bibliotekach. Dymola jest zgodna ze standardem modelowania języka Modelica. Modele symulacyjne są tworzone przez graficzne łączenie ikon z bibliotek Modelicy. Wyniki obliczeń są zapisywane w MAT-pliku, w standardzie MATLABA i mogą być przedstawione na wykresie jako funkcja czasu lub innej zmiennej. Oba pakiety, MATLAB i Dymola uzupełniają się wzajemnie. Mogą one współpracować ze sobą dzięki narzędziom opracowanym przez producenta Dymoli. Pozwala to na wykorzystanie bogatych bibliotek obu pakietów do modelowania systemów o różnej naturze fizycznej oraz wykorzystanie ich do prototypowania w czasie rzeczywistym. Stosowanie języka UML do modelowania struktury i działania dużych i bardzo dużych systemów umożliwia ujednolicenie notacji, wczesne wykrywanie luk i niespójności w specyfikacji wymagań. Istotne jest też automatyczne zapewnienie przez pakiet CASE zgodność nazw i opisów elementów projektowanego systemu na wszystkich diagramach i w dokumentacji systemu [11-13]. Narzędzia CASE istotnie zwiększają efektywność i produktywność, pozwalając na skrócenie czasu tworzenia końcowego produktu. Ułatwiają też wprowadzenie sterowania jakością oraz identyfikację odpowiedzialności, zgodnie z normami ISO 9000. Zdaniem autora stosowanie UML jest uzasadnione nawet przy realizacji niewielkich projektów interdyscyplinarnych. Możliwości języka UML zostały szybko docenione przez rynek. Pakiety CASE (computer aided system engineering) oferują narzędzia wspomagające kolejne etapy komputerowego wspomagania projektowania z wykorzystaniem języka UML. Obecnie oferowane jest ponad 60 pakietów oprogramowania o różnej jakości, wspierających wykorzystanie UML. Dwa z nich: Rational Suite i Real Time Studio zostały wykorzystane w tej pracy. Umożliwiają one automatyczne dokumentowanie prac i wprowadzanych zmian. CASE sprawdza też formalną poprawność i zgodność wykonywanych diagramów z diagramami wcześniej przygotowanymi. Pozwala to na automatyczne wychwycenie błędów formalnych i braku spójności różnych elementów projektu. W rezultacie koszt i strata czasu na dokonanie poprawek i modyfikowanie projektu są relatywnie niskie, gdyż znaczną ich część wykonuje się we wczesnym etapie realizacji projektu. Stosowanie narzędzi CASE poprawia 26 Projektowanie Mechatroniczne, Zagadnienia wybrane, red. T.Uhl, KRiDM AGH Kraków, 2002, komfort pracy projektantów i wydaje się niezbędne nawet przy tworzeniu niewielkich systemów. Dodatkowym walorem jest automatyczne generowanie dokumentacji budowanego systemu przez narzędzia CASE. Autor składa podziękowanie firmom ARTiSAN Software Tools, Inc (GB); Rational Software Corporation (USA) i Premium Technology Sp zoo za bezpłatne udostępnienie wersji ewaluacyjnej programów: Real-time Studio, Rational Rose Suite i Rational Rose RT, firmom The MathWorks Inc(USA) i ONT(Kraków) za udostępnienie pakietu MATLAB z bibliotekami i firmie Dymosim AB za udostępnienie pakietu Dymola.. 5 Literatura 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Booch, G. Rumbaugh, J. Jacobson I The Unified Modelling Language User Guide, Addison Wesley, 1999, WNT Warszawa 2000 Bruegge B, Dutoit A, Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Prentice-Hall, 1999, Douglas, B.P. Real-time UML: Developing Efficient Objects for Embedded Systems. Addison Wesley, 1998. Douglas, B.P. Designing Real-time Systems with UML, Part I-III, Embedded Systems, 03-05,1998. Elmqvist H, Mattsson S.E, Otter M, Modelica — the new object-oriented modeling language, 12th European Simulation Multiconference ESM'98, Manchester, UK1998 Grega Wojciech, Sterowanie cyfrowe w czasie rzeczywistym, Wyd. WEAIiE AGH Kraków, 1999 Gawrysiak M. Etapy projektowania mechatronicznego wg. R. Isermanna (w T.Uhl, Warsztaty projektowania mechatronicznego), Kraków 2002 McLaughlin Michael J., Moore Alan, Real-Time Extensions to UML, Timing, concurrency, and hardware interfaces, Dr. Dobb's Journal December 1998 Mrozek B, Mrozek Z, MATLAB 6, poradnik użytkownika Wydawnictwo PLJ, Warszawa 2001. Mrozek Z Sterowanie elastycznym ramieniem robota, str 178-210 w Wybrane problemy projektowania mechatronicznego , red. T. Uhl, KRiDM AGH, 1999 Mrozek Z, UML as integration tool for design of the mechatronic system, Second Workshop on Robot Motion and Control, pp:189-195, Oct 18-20, Bukowy Dworek, 2001 Mrozek Z, Metodyka wykorzystania UML w projektowaniu mechatronicznym, Pomiary Automatyka Kontrola Nr 1, pp.25-28, 2002 Mrozek Z, Mrozek B, Adjei O, Teaching object oriented software engineering with UML, 13-th Annual Conference on Innovations in Education for Electrical and Information Eng, York, 2002 Mrozek Z, Komputerowo wspomagane projektowanie systemów mechatronicznych, Zeszyty Naukowe Politechniki Krakowskiej, seria Inżynieria Elektryczna i Komputerowa nr 1 (2002, w przygotowaniu) Petko M. Implementacja układów sterowania w układach ASIC/FPGA, Pomiary Automatyka Kontrola Nr 1, pp.18-21, 2002, Rational Rose, Rational Rose RT (i inne oprogramowanie z Rational Software Corporation), Real-time Studio, ARTiSAN Software Tools, Inc. July 2001, Uhl T (edytor), Bojko T, Mrozek Z, Petko M, Szwabowski W, Korendo Z, Bogacz M, Wybrane problemy projektowania mechatronicznego, Wydawnictwo Katedry Robotyki i Dynamiki Maszyn, AGH Kraków 1999. Uhl T System komputerowego wspomagania projektowania mechatronicznego, Pomiary Automatyka Kontrola Nr 1, pp.14-17, 2002 Uhl T, Bojko T, Mrozek Z, Szwabowski W, Rapid prototyping of mechatronic systems, Journal of Theoretical and Applied Mechanics, pp.655-668, vol.38.3, 2000 Uhl T, Bojko T, Mrozek Z, Petko M, Szwabowski W, Korendo Z, Bogacz M; - Wybrane problemy projektowania mechatronicznego, Katedra Robotyki i Dynamiki Maszyn, AGH Kraków 1999." Uhl T, Mrozek Z, Petko M Rapid control prototyping for flexible arm, Preprints of 1-st IFAC Conference on Mechatronic Systems, vol II, pp 489-494, Darmstadt, September 18-20, 2000. Uhl T, Bojko T, Mrozek Z, 1999, Mechatronic Approach Towards Designing and Implementing of Control Systems, Proceedings of the First Workshop on Robot Motion and Control pp 135-140 , RoMoCo, Poznan , June 28-29, Uhl, Bojko, Mrozek, Szwabowski, Sterowanie elastycznym ramieniem robota - szybkie prototypowanie i implementacja I Krajowych Warsztatów Metod Szybkiego Prototypowania, Kraków, 26-27 listopad 1998 Uhl T, Śliwa Z, Wybrane zagadnienia systemów CAD/CAM i ich zastosowań, CCATIE Kraków 1996. UML for Real Time System Design,, ISG 1998 OMG Unified Modeling Language Specification v.1.4, Sept. 2001. (oraz inne dokumenty z OMG:Object Management Group), http://www.omg.org 27