Zastosowanie formuł do symulacji ruchu
W punkcie tym zawarto praktyczne informacje związane z zastosowaniem formuł matematycznych do realizacji symulacji prostego ruchu posuwowego, obrotowego i ruchu złożonego. Poza tym przedstawiono przykład realizacji ruchu z użyciem funkcji matematycznych, jakie oferuje nam system CATIA.
Zastosowanie formuł do symulacji ruchu posuwowego
Zastosowanie formuł matematycznych do realizacji symulacji ruchu posuwowego poznamy z użyciem przygotowanego przykładu prostego mechanizmu. W tym celu, otwierając katalog Modele/Rozdzial 5/Model mechanizmu ruchu prostoliniowego (z załączonej płyty CD-ROM), wskazujemy plik Mechanizm ruchu prostoliniowego. CATProduct. W oknie podglądu okna File Selection widzimy postać modelu mechanizmu (rysunek 5.1).
Rysunek 5.1. Widok zawartości okna File Selection podczas otwierania pliku Mechanizm ruchu prostoliniowego. CATProduct
Działanie mechanizmu jest bardzo proste. Element przesuwny wykonuje ruch posuwisty w prowadnicy Ostoi (rysunek 5.2). Model mechanizmu posiada jeden więz sterowany, typu Prismatic. Sterowaniu podlega długość ruchu (odległość, droga, jaką przebywa model).
Zakładamy, że chcemy, aby realizowany ruch był ruchem jednostajnym prostoliniowym. A więc prędkość ruchu powinna być stała i określona przez użytkownika. Czas ruchu również ma zostać określony przez użytkownika.
Zanim zajmiemy się utworzeniem stosownej formuły matematycznej, określającej prędkość ruchu, należy dokładnie zrozumieć dalsze czynności. Dla wytłumaczenia sposobu definiowania formuły posłużymy się wzorem na prędkość ruchu jednostajnego prostoliniowego: prędkość liniowa = droga/czas.
Rysunek 5.2. Widok postaci mechanizmu ruchu jednostajnego prostoliniowego
Jak już wspomnieliśmy, model mechanizmu zawiera jeden sterowalny więz, gdzie zmianie podlega długość ruchu modelu. A więc przekształćmy wzór na obliczanie prędkości, tak aby obliczyć z niego drogę. Otrzymamy wówczas zależność: droga = czas × prędkość liniowa.
A więc, aby sterować długością drogi, jaką przebywa model, należy dysponować wartościami czasu i prędkości. W przytoczonym wzorze brakuje nam więc wartości dwóch wielkości: czasu i prędkości. Jak już wspomniano, czas realizacji ruchu zostanie zawarty w parametrze KINTime (wartość będzie zależała od użytkownika), natomiast prędkość ruchu musi zostać zdefiniowana za pomocą odpowiedniej wartości i jednostki (mm/s) przez użytkownika.
Do tego celu zastosujemy stosowną formułę matematyczną.
Utworzenie formuły dotyczącej realizacji ruchu mechanizmu jest dla systemu sygnałem uaktywniającym polecenie Simulation with Laws.
Aby formuła, jaką chcemy utworzyć, dotyczyła obliczania drogi, jaką ma przebyć w danym czasie i z daną prędkością model, przed uaktywnieniem polecenia Formula klikamy myszą komendę Command.1 (Prismatic.1, Length) w drzewie topologicznym. Następnie za pomocą polecenia w menu ToolsFormula (lub za pomocą stosownej ikony w belce narzędziowej, domyślnie umieszczonej w dolnej części ekranu, rysunek 5.3) uruchamiamy okno dialogowe Formula (rysunek 5.4).
Rysunek 5.3. Uruchomienie polecenia Formula
Rysunek 5.4. Widok zawartości okna dialogowego Formulas
W polu Parameter okna Formulas widzimy więc nazwę sterowania (komendy), której wartość chcemy uzależnić od czasu i prędkości. W polu Value widzimy, że domyślną jednostką odległości jest mm. Widoczna nazwa sterowania (Mechanism.1Commands Command.1Length), które jednocześnie oznacza drogę, jest lewą stroną formuły (równania), które utworzymy.
W celu utworzenia formuły klikamy myszą przycisk Add Formula (rysunek 5.4).
Efektem naszego działania jest uaktywnienie się okna dialogowego Formula Editor (rysunek 5.5). Widzimy następujący układ formuły: Mechanism.1CommandsCommand.1 Length = ... Naszym zadaniem jest wypełnienie prawej strony równania (zgodnie z równaniem: droga = czas × prędkość liniowa).
Rysunek 5.5. Widok zawartości okna Formula Editor
Jak już wspominano, czas realizacji symulacji zawrzemy w parametrze KINTime. Aby go zastosować, należy odnaleźć go w liście Members of Parameters (przy aktywnej liście Parameters). Znajdziemy go, wskazując parametr Time. Wtedy to w liście Members of Time ukaże się poszukiwany parametr: Mechanism.1KINTime (rysunek 5.6).
Za pomocą podwójnego kliknięcia na nazwie parametru dokonujemy jego skopiowania do pola edycyjnego, w którym edytujemy prawą stronę formuły (rysunek 5.7). Następnie, aby zdefiniować prędkość ruchu elementu, zapisujemy zależność, jak na rysunku 5.7. Zapis (10mm/1s) oznacza, że w czasie jednej sekundy element przemieści się o 10 mm. Proces definiowania formuły kończymy, wybierając przycisk OK.
Rysunek 5.6. Widoczny parametr Mechanism.1KINTime
Rysunek 5.7. Widok zdefiniowanej formuły matematycznej
W ten sposób zdefiniowaliśmy formułę, za pomocą której będzie można realizować symulację ruchu mechanizmu z pełnym nadzorem nad jego parametrami. Po zdefiniowaniu formuły system automatycznie wraca do okna dialogowego Formulas. Widzimy, że wartość parametru Mechanism.1CommandsCommand.1Length jest częścią zdefiniowanej formuły (rysunek 5.8). Formuła jest też domyślnie aktywna (pole Active).
Rysunek 5.8. Widok utworzonej formuły w oknie Formulas
Wybraniem przycisku Apply, a następnie OK dezaktywujemy okno Formulas. Utworzona formuła jest częścią całego projektu, a więc powinna być widoczna jako osobna gałąź w drzewie topologicznym. Tak też jest w rzeczywistości (rysunek 5.9). Zdefiniowana formuła znalazła się aż w dwóch miejscach drzewa topologicznego: jako podgałąź gałęzi Relations oraz jako podgałąź gałęzi Laws. Uważny Czytelnik powinien zadać sobie pytanie: w zdefiniowanej formule zastosowaliśmy parametr KINTime, w którym zawarty jest czas trwania symulacji. Ale skąd wiemy, jaka jest jego wartość? Pytanie jak najbardziej słuszne, szczególnie że wcześniej autor wspomniał o tym, że to użytkownik wpływa na długość trwania czasu symulacji. Rozwiązanie zagadki daje nam uaktywnienie polecenia Simulation with Laws (rysunek 5.10).
Wynikiem uaktywnienia polecenia Simulation with Laws jest okno Kinematics Simulation, zawierające przede wszystkim - znany nam już - "odtwarzacz" (rysunek 5.11). Za pomocą przycisku oznaczonego wielokropkiem (...) uruchamiamy okno Simulation Duration, gdzie w polu Maximum time bound wpisujemy czas trwania symulacji (rysunek 5.12). To właśnie tę wartość przejmuje parametr KINTime.
Rysunek 5.9. Widok zawartości drzewa topologicznego (widoczna utworzona formuła)
Rysunek 5.10. Uaktywnienie polecenia Simulation with Laws
Rysunek 5.11. Widok zawartości okna Kinematics Simulation
Rysunek 5.12. Widok zawartości okna Simulation Duration
Po uruchomieniu procesu symulacji ruchu mechanizmu Element przesuwny wykonuje stosowny ruch (rysunek 5.13). Porusza się on z prędkością 10 mm/s w czasie 10 s. A więc przebywa drogę 100 mm. Taką też wartość przyjmuje ostatecznie parametr Mechanism.1 CommandsCommand.1Length.
Rysunek 5.13. Widok położenia Elementu przesuwnego po wykonaniu symulacji ruchu
Zajmijmy się jeszcze opcjami okna Kinematics Simulation. Znajduje się tam m.in. opcja Activate sensors. Uaktywnijmy ją.
Przed wybraniem opcji Activate sensors należy ustawić suwak "odtwarzacza" w pozycji wyjściowej (można też dezaktywować okno Kinematics Simulation, a następnie uruchomić je ponownie).
Rezultatem jej wybrania jest uaktywnienie się okna Sensors. Służy ono do realizacji analizy niektórych parametrów wykonanego ruchu (lub ruchów - w innych przypadkach). Bardziej szczegółowo problematyka analiz została opisana w rozdziale 6., ale - niejako przy okazji - omówmy kilka podstawowych zagadnień. Otóż okno to posiada trzy zakładki: Selection, Instantaneous Values oraz History. Zajmijmy się pierwszą z nich.
Zawartością tej zakładki (rysunek 5.14) jest pole zawierające wszystkie utworzone więzy ruchowe (w naszym przypadku tylko jeden), których wartości przemieszczeń są uzależnione od zastosowanej formuły i tym samym ulegają zmianie podczas realizacji procesu symulacji. Przebieg zmienności ich wartości w funkcji czasu możemy obserwować graficznie. Aby to uczynić, najpierw musimy wskazać systemowi, że chcemy obserwować przebieg zmienności danej wartości w czasie. W tym celu należy zmienić wartość zmiennej w kolumnie Observed z No (rysunek 5.14) na Yes (rysunek 5.15).
Rysunek 5.14. Widok zawartości zakładki Selection okna Sensors
Rysunek 5.15. Uaktywnienie zmiennej aktywności obserwowanej wielkości
Po wykonaniu symulacji ruchu wraz z uaktywnieniem obserwowania zmienności wartości przemieszczenia w więzie Mechanism.1JointsPrismatic.1Length wybieramy przycisk Graphics (z okna Sensors). Uaktywnia się wtedy okno Sensors Graphical Representation przedstawiające w sposób graficzny (za pomocą wykresu liniowego) przebieg zmian wartości wybranej wielkości w funkcji czasu (rysunek 5.16). Jak widzimy, model przebył dystans 100 mm w czasie 10 s ze stałą prędkością.
Rysunek 5.16. Widok zawartości okna Sensors Graphical Representation
Widoczna linia wykresu jest aktywna. Po ustawieniu w dowolnym jej miejscu kursora myszki w dolnej części okna ukazują się wartości czasu (Time) i odległości (Length), odpowiadające wskazanemu punktowi (rysunek 5.17).
Rysunek 5.17. Widok wartości czasu i odległości odpowiadających wskazanemu punktowi wykresu prędkości
Sposób odczytu wartości poprzez wskazanie kursorem myszy jest oczywiście niedokładny i trudny do praktycznego zastosowania. Dlatego też istnieje dodatkowo możliwość eksportu danych związanych z otrzymanym wykresem do postaci arkusza kalkulacyjnego MS Excel.
Eksportu dokonujemy, klikając - znajdujący się w dolnej części okna Sensors - przycisk File. Rezultatem jest uaktywnienie się okna Save As (rysunek 5.18), za pomocą którego możemy dokonać stosownego zapisu otrzymanych danych do pliku .xls o dowolnej nazwie. Po otwarciu pliku z użyciem programu MS Excel widzimy wartości wygenerowanych danych uporządkowanych w trzech kolumnach (rysunek 5.19).
Wartości w kolumnach B oraz C są identyczne. W kolumnie B liczby są traktowane jako wartości komend w poszczególnych krokach czasowych, natomiast w kolumnie C są one traktowane jako wartości parametru przemieszczenia.
Przejdźmy teraz do zakładki Instantaneous Values (rysunek 5.20). Widzimy tam listę podzieloną na trzy kolumny, podobnie jak w zakładce Selection. Na liście tej możemy obserwować chwilowe wartości przemieszczeń w węźle Mechanism.1JointsPrismatic.1 Length. W przypadku, jaki widzimy na rysunku 5.20, jest to wartość końcowa.
Rysunek 5.18. Okno zapisu danych z wykonanej symulacji ruchu do postaci pliku arkusza kalkulacyjnego MS Excel
Rysunek 5.19. Widok fragmentu zawartości arkusza kalkulacyjnego programu MS Excel
Na zakończenie przeglądania okna Sensors przejdźmy do zakładki History (rysunek 5.21). Widzimy tam znów listę o większej liczbie kolumn. Możemy tam obserwować wszystkie wartości, jakie podczas realizacji symulacji przybierał parametr Mechanism.1Commands Command.1Length. Jest to swego rodzaju odpowiednik arkusza kalkulacyjnego, do którego podobne dane można zapisać. Zawartość listy zakładki History można w dowolnym momencie usunąć za pomocą przycisku Clear.
Rysunek 5.20. Widok zawartości zakładki Instantaneous Values
Rysunek 5.21. Widok zawartości zakładki History okna Sensors
Jak wspomniano we wstępie do niniejszego rozdziału, CATIA jest systemem parametrycznym. A więc spróbujmy wykorzystać tę własność systemu do usprawnienia realizacji symulacji z użyciem komend.
W przypadku gdybyśmy chcieli np. zwiększyć prędkość przesuwu elementu wykonującego ruch, wiązałoby się to z wykonaniem edycji zapisanej formuły. Taki sposób postępowania jest możliwy, ale niewygodny. Można więc sobie wyobrazić sytuację, gdy w zapisie formuły wystąpi zmienna, której wartości będziemy zmieniać poza "ciałem" formuły. Natomiast wszelkie zmiany jej wartości zostaną automatycznie przesłane do formuły. Właśnie do zrealizowania takiego sposobu postępowania wykorzystamy parametryczność systemu. W pierwszym kroku musimy utworzyć nową zmienną, typu Length (rysunek 5.22). W tym celu ponownie uaktywniamy okno Formulas. Z listy rozwijalnej, jak na rysunku 5.22, wybieramy typ zmiennej - Length. Następnie klikamy przycisk New Parameter of type (rysunek 5.23).
Rysunek 5.22. Wybór typu nowej zmiennej
Nowa zmienna zostaje utworzona. Zmieńmy jej nazwę z - domyślnej - Length na droga (rysunek 5.24). Skutkiem utworzenia nowej zmiennej jest również jej pojawienie się w strukturze drzewa topologicznego (rysunek 5.25). Zauważmy, że domyślną wartością zmiennej droga jest 0mm.
Rysunek 5.23. Utworzenie nowej zmiennej typu Length
Rysunek 5.24. Zmiana nazwy zmiennej z Length na droga
Rysunek 5.25. Widok fragmentu drzewa topologicznego (widoczna gałąź nowego parametru)
Aby zastosować nową zmienną w - poprzednio utworzonej - formule, należy przejść do jej edycji (np. wykonując klik podwójny myszką na jej gałęzi w drzewie topologicznym). W miejsce stałej wartości 100mm wstawmy nazwę utworzonej zmiennej (rysunek 5.26). Nazwę utworzonego parametru można szybko znaleźć w liście Members of Parameters w pozycji Renamed parameters (rysunek 5.26).
Zmianę treści formuły zatwierdzamy poprzez wybór przycisku OK. Zmiana treści formuły natychmiast widoczna jest również w drzewie topologicznym (rysunek 5.27). Aby móc efektywnie użyć nowego parametru do symulacji ruchu, musimy zmienić jego wartość. W tym celu wykonujemy klik podwójny lewym przyciskiem myszy na nazwie parametru w drzewie topologicznym. Efektem tego jest pojawienie się okna edycyjnego Edit Parameter (rysunek 5.28).
Rysunek 5.26. Użycie zmiennej droga w formule
Rysunek 5.27. Widok zmienionej zawartości gałęzi formuły Formula.1
Rysunek 5.28. Widok zawartości okna Edit Parameter
Zmieniamy domyślną wartość zmiennej droga z 0mm na np. 40mm (rysunek 5.29).
Rysunek 5.29. Widok zawartości okna Edit Parameter - widoczna nowa wartość zmiennej droga
Możemy teraz odtworzyć symulację ruchu mechanizmu z użyciem polecenia Simulation with Laws. Widzimy, że Element przesuwny w czasie 10 s pokonał drogę równą długości prowadnicy (Ostoi), czyli 400 mm (rysunek 5.30).
Chcąc zmieniać wartość prędkości Elementu przesuwnego, wystarczy każdorazowo zmieniać wartość parametru droga, nie ingerując już w treść formuły.
Rysunek 5.30. Widok położenia Elementu przesuwnego po wykonaniu symulacji ruchu
CATIA v5. Modelowanie i analiza układów kinematycznych, autor: Marek Wyleżoł Wydawnictwo: Helion