MASARYKOVA UNIVERZITA 5 c FAKULTA INFORMATIKY m

INFORMAČNÍ TECHNOLOGIE PRO MODELOVÁNÍ A SIMULACE

DIPLOMOVÁ PRÁCA

Brno, 2013 Bc. KAMIL DUREC

5 c m

PREHLÁSENIE

Prehlasujem, že táto práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní použil alebo z nich čerpal, v práci riadne citujem s uvedením úplného odkazu na príslušný zdroj.

Bc. Kamil Durec

Vedúci práce: prof. RNDr. Jiří Hřebíček, CSc.

ZHRNUTIE

Cieľom mojej diplomovej práce je prieskum v oblasti súčasného stavu informačných a komunikačných technológií určených na modelovanie a simulácie procesov v praxi. Z prieskumu bude vybraná vhodná ICT, ktorá bude podrobne preskúmaná a popísané jej vlastnosti. Určením vhodného problému, bude predvedený postup jeho riešenia za pomoci vybratej ICT a pomocou počítačovej simulácie analýza vlastností získaného riešenia.

KĽÚČOVÉ SLOVÁ simulácia, modelovanie, systém počítačovej algebry, , CAS, , MapleSim, robotická ruka

Obsah

1 Úvod ...... 5

2 Teória simulácie a modelovania ...... 6

2.1. Experiment ...... 7

2.2. Model ...... 8

2.3. Simulácia ...... 9

2.4. Dôvody pre simuláciu ...... 11

2.5. Oblasti použitia simulácie v praxi ...... 12

2.5.1. Príklady aplikovania simulácie ...... 13

3 Systém počítačovej algebry ...... 14

3.1. Výber dostupného CAS softvéru ...... 15

4 Maple systém ...... 23

4.1. Základy o Maple systéme ...... 23

4.2. Novinky v Maple 16 ...... 24

5 MapleSim ...... 25

5.1. Úvod do MapleSim ...... 25

5.1.1. Vlastnosti MapleSim...... 25

5.2. Novinky v MapleSim 6 ...... 26

5.2.1. Modelica – rozšírená podpora ...... 26

5.2.2. Efektívne testovanie a experimentovanie ...... 27

5.2.3. Doplnky konektivity ...... 28

5.2.4. Dodatočné funkcionality a zlepšenia ...... 28

5.3. Fyzikálne modelovanie v MapleSim ...... 30

5.3.1. Topologické vyjadrenie systému ...... 30

5.3.2. Formulácia a zjednodušenie matematického modelu ...... 30

5.3.3. Riešenie pokročilých diferenciálnych algebrických rovníc ...... 30

5.3.4. Akauzálne a kauzálne modelovanie ...... 31 1

5.4. Užívateľské prostredie MapleSim 6 ...... 33

5.4.1. Popis jednotlivých častí užívateľského prostredia ...... 34

6 Ukážkové príklady simulácie v MapleSim 6 ...... 36

6.1. Kľukový mechanizmus ...... 36

6.1.1. Základné kyvadlo ...... 36

6.1.2. Postup modelovania kľukového mechanizmu ...... 38

6.2. Základné mechanické rameno ...... 43

6.2.1. Nastavenia komponentu Ramp ...... 45

6.2.2. Simulácia základného mechanického ramena ...... 46

7 Robotická ruka ...... 47

7.1. Komponenty modelu a schémy ich prepojenia ...... 48

7.1.1. Prehľad subsystémov robotickej ruky ...... 51

7.2. Dizajn modelu so základnou grafikou ...... 56

7.2.1. CAD grafika ...... 57

7.3. Dizajn modelu s použitím CAD grafiky ...... 58

7.4. Simulácia pohybu robotickej ruky ...... 59

7.5. Modelica kód ...... 62

8 Záver ...... 63

9 Zoznam bibliografických odkazov ...... 65

2

Zoznam obrázkov obr. 1 Metodika riešenia vedecko-technických úloh [3] ...... 6 obr. 2 Kauzálny model blokového diagramu [10] ...... 31 obr. 3 Akauzálny model blokového diagramu [10] ...... 32 obr. 4 Jednoduchý model s premennými „through“ a „across“ [10] ...... 32 obr. 5 Uživateľské prostredie MapleSim 6 ...... 33 obr. 6 Spojené komponenty základného kyvadla ...... 37 obr. 7 Grafy simulácie základného kyvadla ...... 37 obr. 8 3D vizualizácia základného kyvadla ...... 38 obr. 9 Kľukový mechanizmus [14] ...... 38 obr. 10 Schéma prepojených komponentov kľukového mechanizmu ...... 39 obr. 11 Použité subsystémy v komponentoch kľukového mechanizmu...... 40 obr. 12 Grafy kľukového mechanizmu ...... 41 obr. 13 Grafy kľukového mechanizmu 2 ...... 41 obr. 14 Porovnanie grafov kľukového mechanizmu ...... 42 obr. 15 3D zobrazene kľukového mechanizmu, vrátanie zobrazenej stopy pohybu ...... 42 obr. 16 Prepojené komponenty základného mechanického ramena ...... 43 obr. 17 Komponenty mechanického ramena zoradené v subsystémoch ...... 44 obr. 18 Komponent Ramp ...... 45 obr. 19 Rovnica komponentu Ramp [15] ...... 45 obr. 20 3D zobrazenie základného mechanického ramena s trajektóriou pohybu ...... 46 obr. 21 Grafy uhlov základného mechanického ramena ...... 46 obr. 22 Nákres robotickej ruky [16] ...... 48 obr. 23 Kompletná schéma modelu robotickej ruky bez použitia subsystémov ...... 49 obr. 24 Schéma modelu robotickej ruky s použitím subsystémov ...... 50 obr. 25 subsystém pohybXZ ...... 51 obr. 26 subsystém zakladna1 ...... 51 3

obr. 27 Subsystém rameno1 ...... 52 obr. 28 Subsystém rameno2 ...... 52 obr. 29 Subsystém rameno3 ...... 53 obr. 30 Subsystém Riadenie1 ...... 53 obr. 31 Subsystém Riadenie2 ...... 54 obr. 32 Subsystémy Riadenie3 a Riadenierotacie1 ...... 54 obr. 33 Subsystémy Riadenie4 a Riadenierotacie2 ...... 55 obr. 34 3D vizualizácia robotickej ruky s použitím základnej grafiky ...... 56 obr. 35 Pridanie CAD grafiky ...... 57 obr. 36 Kostra modelu robotickej ruky ...... 58 obr. 37 CAD grafika modelu robotickej ruky ...... 59 obr. 38 3D vizualizácia modelu robotickej ruky s vyznačenou trajektóriou pohybu ...... 60 obr. 39 Grafy pohybu robotickej ruky ...... 61 obr. 40 Náhľad na Modelica kód robotickej ruky...... 62

4

1 Úvod

Cieľom mojej diplomovej práce je prieskum v oblasti súčasného stavu informačných a komunikačných technológií určených na modelovanie a simulácie procesov v praxi. Z prieskumu bude vybratá vhodná ICT, ktorú podrobne preskúmam a popíšem jej vlastnosti. Určením vhodného problému, bude predvedený postup jeho riešenia za pomoci vybratej ICT. Problém by sa mal vyriešiť na základe počítačovej simulácie, kde sa budem venovať analýze získaného riešenia.

Práca je rozdelená do šiestich hlavných kapitol. Úvodná kapitola je venovaná základným pojmom v oblasti teórie simulácie a modelovania. V nej budú vysvetlené pojmy ako experiment, model, systém, simulácia a pod. Následne vysvetlím, aké sú hlavné dôvody k použitiu simulácie a v akých oblastiach je simulácia využívaná v reálnom svete. Väčšina informačných a komunikačných technológií určených na modelovanie a simulácie procesov z praxe je postavená na systéme počítačovej algebry (CAS). Tomuto systému bude venovaná nasledujúca kapitola, v ktorej popíšem, čo pojem CAS vlastne predstavuje. Spravím výber dostupných softvérov, z ktorého vytvorím abecedne zoradený zoznam so stručným popisom jednotlivých CAS systémov. Ten by mal pomôcť pri rozhodovaní sa, ktorý systém počítačovej algebry je vhodný na riešenie potenciálneho problému. Na riešenie mnou vybraného problému som sa rozhodol použiť systém Maple, konkrétne jeho nadstavbu MapleSim. Tretia časť práce predstaví systém Maple, vrátane jeho nových možností využitia. Ďalej bude nasledovať časť, zameraná na jeho nadstavbu, modelovaciemu a simulačnému nástroju MapleSim, ktorému sa budem venovať podrobne. Pomocou tohto programu predvediem základné príklady, ktoré pomôžu k pochopeniu spôsobu práce a tvorbe simulácií na danom systéme a bude im venovaná jedna časť tejto diplomovej práce. V poslednej šiestej časti sa budem venovať riešeniu konkrétneho problému z praxe. Zameriam sa na vytvorenie simulácie robotickej ruky, ktorá má široké možnosti uplatnenia v reálnom svete. Vysvetlím postup, ako som tento problém riešil a k akému riešeniu som dospel.

5

2 Teória simulácie a modelovania

Prírodné, technické a spoločenské vedy si kladú za ciel spoznať zákonitosti, ktorými sa javy a procesy v prírode a spoločnosti riadia a využiť ich vo svoj prospech. K tomu sa priebežne vytvárali a vyvíjali zodpovedajúce nástroje poznania, podporované úrovňou rozvoja matematiky. Prístup k riešeniu vedecko-technických úloh môže byť schematicky znázornený podľa obr. 1. Je samozrejmé, že jedna úloha môže byť riešená rôznymi metódami, dôležité je aby výsledky riešenia modelom boli uspokojivé. [3]

Začiatok

Problém

Teoretický model – ideová predstava

Formálne vyjadrenie modelu

Analytické algebrické Grafické a numerické Simulačné Experimentálne

Verifikácia výsledkov riešenia

Uspokojivé Zmena výsledky metódy

Riešenie problému Zmena modelu

Koniec Návrh nového modelu

obr. 1 Metodika riešenia vedecko-technických úloh [3]

6

2.1. Experiment

K štúdiu určitého systému je potrebné jeho pozorovanie. Musíme byť schopný sledovať aspoň niektoré jeho výstupy. Ale omnoho viac sa o ňom dozvieme, pokiaľ budeme schopný ovplyvňovať jeho vstupy. Tento proces ovplyvňovania sa nazýva experimentovanie, ktoré môže byť definované nasledovne:

Experiment je proces získavania informácií o systéme, za pomoci ovplyvňovania jeho vstupov .

Ak chceme vykonávať experiment na systéme je potrebné, aby bol regulovateľný a pozorovateľný. Aplikujeme sadu externých podmienok do dostupných vstupov a meraním dostupných výstupov monitorujeme reakciu systému.

Jednou z nevýhod experimentálnej metódy je, že pre veľké množstvo systémov nie sú dostupné a kontrolovateľné vstupy. Tieto systémy sú ovplyvnené nedostupnosťou vstupov, občas nazývané rušivé vstupy. Rovnako často sa stáva že výstupy, ktoré by aj mohli byť prínosné nie sú merateľné. Tieto sú často nazývané vnútornými stavmi systému. S vykonávaním experimentov je spojená aj rada praktických problémov, napríklad:

 Experiment môže byť príliš nákladný: Postaviť a nechať havarovať loď je trochu nákladný spôsob ako zistiť jej životnosť.

 Experiment môže byť príliš nebezpečný: Neodporúča sa trénovať zamestnancov atómovej elektrárne spôsobom, že uvedieme elektráreň do rizikových stavov.

 Systém potrebný pre experiment nemusí existovať. To je typické pre systémy, ktoré ešte len budú navrhnuté alebo vyrobené.

Nedostatky experimentálnych metód viedli ku konceptu modelu. Vytvorením dostatočne realistického modelu systému, možno tento model skúmať a následne môže odpovedať na mnohé otázky o reálnom systéme. [2]

7

2.2. Model

Pojem model môžeme po predchádzajúcich informáciách definovať nasledovne:

Model je čokoľvek, na čom môže byt použitý experiment, z ktorého dokážeme zistiť informácie o systéme.

Z toho vyplýva, že model môže byť použitý na získanie odpovedí bez experimentovania na reálnom systéme. Namiesto toho vykonávame zjednodušené „experimenty“ na modeli, ktorý môže byť považovaný za zjednodušený druh reálneho systému, alebo odrážať jeho určité vlastnosti. V najjednoduchšom prípade, model môže byť časť informácie ktorá poskytuje odpovede ohľadne systému.

 Mentálny model – vyhlásenie, ako „osoba je spoľahlivá“ nám pomáha odpovedať na otázky, ako sa táto osoba správa v určitých situáciách.

 Ústny model – tento druh modelu je vyjadrený slovami. Napríklad, veta „Stane sa viac nehôd ak sa zvýši rýchlosť“ je príklad ústneho modelu.

 Fyzický model – fyzický predmet, ktorý napodobňuje určité vlastnosti reálneho systému, aby nám pomohol odpovedať na otázky týkajúce sa tohto systému. Napríklad pri stavbe budov, lietadiel a pod. je bežné postaviť malý fyzický model vzhľadovo zhodný s reálnym systémom, na ktorom možno študovať napríklad aerodynamiku a pod.

 Matematický model – popis systému, kde vzťahy medzi premennými sú vyjadrené v matematickom tvare. Premenné môžu byt merateľné hodnoty, ako napríklad veľkosť, dĺžka, hmotnosť, teplota, miera nezamestnanosti, bitová rýchlosť atď. V tomto zmysle je väčšina prírodných zákonov. Napríklad Ohmov zákon, ktorý definuje vzájomný vzťah medzi elektrickým prúdom, napätím a odporom. Newtonove pohybové zákony a pod. [2]

8

2.3. Simulácia

Simulačné modely sú využívané každodenne, takže pojem simulácia je pre väčšinu ľudí známi pojem. Napríklad, meteorológovia denne ukazujú simuláciu počasia, kde je možné sledovať pohyb poveternostných front pre nadchádzajúce dni. Mnoho z nás má herné konzoly, ktoré simulujú celý rad aktivít, ktoré nám umožňujú otestovať svoje šoférske, strelecké prípadne letecké skúsenosti a mnoho ďalších. Ale simulácia nemusí byť nutne závislá na počítači. Do tohto pojmu spadajú aj modeli železníc, lode a lietadlá na diaľkové ovládanie a podobne. Takže pojem simulácia môže byť definovaná ako:

Imitácia systému.

Imitácia znamená napodobňovanie, alebo kopírovanie niečoho iného. Ale pod imitáciu môžeme zaradiť aj obrazové falzifikáty, rôzne napodobeniny sôch, budov a podobne. A tu je hlavný rozdiel medzi týmito “napodobeninami“ a príkladmi uvedenými v predchádzajúcom odseku. Druhá sada príkladov nezahŕňa a neráta s tzv. prechodom časom. Preto je rozdiel, pod pojmom statická simulácia a pojmom dynamická simulácia, ktorá napodobňuje určitý systém vrátane jeho prechodu časom. Termín simulácia sa najčastejšie používa s pojmom dynamická simulácia. V tejto práci sa zameriavam na dynamickú simuláciu a dôraz je kladený na počítačové simulácie a nástroje potrebné k jej realizácii. V nadväznosti na predchádzajúcu definíciu, počítačová dynamická simulácia môže byť definovaná nasledovne:

Imitácia systému (na počítači) a jeho prechod časom.

Niektoré aspekty musia byť vysvetlené trošku podrobnejšie. Za prvé je to pojem systém. Vo všeobecných termínoch, systém je kolekcia dielov organizovaných za určitým účelom. Checkland (1981) identifikuje štyri hlavné triedy systému:  Prírodné systémy: systém, ktorého korene ležia v počiatkoch vesmíru, napr. atóm, počasie atď.  Vytvorené fyzické systémy: fyzické systémy, ktoré sú výsledkom ľudského vývoja, napr. dom, auto, výrobné zariadenia a pod.  Vytvorené abstraktné systémy: abstraktné systémy, ktoré sú výsledkom ľudského vývoja, napr. matematika a literatúra 9

 Systém ľudskej aktivity: systémy ľudskej činnosti, ktoré sú vedome alebo nevedome využívané, napr. rodina, mesto, politika a pod.

Druhým aspektom definície ktorý by mal byť preskúmaný je zvážiť podstatu simulačných modelov. Pidd (2003) tvrdí, že zmysel modelov je v porozumení, menení, riadení a kontrolovaní reality. Navodzujúc na túto myšlienku, zmysel simulácie môžeme označiť, ako možnosť získania lepšieho porozumenia a/alebo identifikovať vylepšenia pre daný systém. Lepšie pochopenie systému, rovnako ako identifikovať vylepšenia je dôležité, pretože ovplyvňuje budúce rozhodnutia a prácu na reálnom systéme.

Ďalším charakteristickým rysom modelu je jeho jednoduchosť. Je nepravdepodobné, že by simulácia operácií systému, hlavne prvkov ľudskej aktivity, bola realizovaná v plných detailoch. V skutočnosti, aj keby to bolo možné, nebolo by to žiaduce, pretože čas potrebný pre zber údajov na dokonalý model by bol až príliš vysoký.

Posledným aspektom na zváženie je spôsob využitia simulačného modelu. Niektoré modelovacie prístupy sa snažia dosiahnuť optimálne odpovede (napr. lineárne programovanie), alebo čo najbližšie k optimálnym odpovediam (napr. heuristické metódy). Toto nie je prípad simulačného modelu. Simulácia jednoducho predpovedá výkon prevádzkového systému podľa konkrétnej sady vstupov. Napríklad, by sme mohli predpovedať priemernú čakaciu dobu zákazníka telefonujúceho do call centra, kde je zamestnaný určitý počet operátorov. Úlohou osoby používajúcou simulačný model je meniť vstupy (počet operátorov) a spustiť simuláciu s cieľom zistiť dôsledok. Užívateľ modelu zadá scenár a model predpovedá výsledok. Užívateľ pokračuje v skúmaní alternatívnych scenárov dovtedy, kým nezíska dostatočné množstvo údajov, ktoré môže uplatniť k vylepšeniu skutočného systému. Simulácia, by v dôsledku mohla byť videná, ako druh podporného systému pri rozhodovaní, resp. uľahčiť užívateľovi rozhodovať sa. Každopádne väčšina moderných simulačných softvérov poskytuje možnosti pre automatické experimenty s cieľom nájsť optimálny scenár.

Následným pridaním týchto aspektov do predchádzajúcej definície môžeme simuláciu definovať nasledovne:

10

Experiment so zjednodušenou napodobeninou (na počítači), na základe operácií systému v priebehu jeho postupu časom, za účelom lepšieho porozumenia a/alebo zlepšenia daného systému. [1]

2.4. Dôvody pre simuláciu

Existuje rada dobrých dôvodov, prečo vykonať simuláciu namiesto vykonávania experimentov na reálnych systémoch.

 Experimenty sú príliš drahé, príliš nebezpečné, alebo skúmaný systém doposiaľ neexistuje.

 Časová meradlo dynamiky daného systému , nie je kompatibilné so životnosťou experimentátora. Napríklad, zaberie milióny rokov sledovať malé zmeny vývinu vesmíru, zatiaľ čo podobné zmeny môžu byť sledované v rýchlosti pomocou počítačovej simulácie vesmíru.

 Premenné veličiny môžu byť nedostupné. V simulácii všetky premenné môžu byť študované a kontrolované, a to aj tie ktoré sú nedostupné v reálnom systéme.

 Jednoduchá manipulácia modelov. Pomocou simulácie je jednoduché manipulovať s parametrami modelu systému. Napríklad, môže telesnú hmotnosť osoby v počítačovej simulácii modelu jednoducho zvýšiť zo 40 na 500kg stlačením jedného tlačidla, a to by mohlo byť len veľmi ťažko realizované na fyzickom systéme.

 Potlačenie porúch. V simulácii modelu je možné potlačiť poruchy, ktoré by boli neodvratné pri meraniach reálnych systémov. To nám umožní izolovať jednotlivé účinky, a tým získať lepšie porozumenie týchto účinkov.

 Potlačenie druhoradých účinkov. Často sú simulácie vykonávané, pretože umožňujú potlačenie druhoradých účinkov, ako sú malé nelinearity alebo iné detaily niektorých systémových častí. Čo môže dopomôcť k lepšiemu porozumeniu primárnych účinky systému. [2]

11

2.5. Oblasti použitia simulácie v praxi

Oblastí použitia je obrovské množstvo. Pri nahliadnutí do odbornej literatúry je zrejmé, že ani autori týchto diel si netrúfajú vymenovať všetky oblasti, v ktorých je simulácia použiteľná a používaná. Namiesto toho poskytujú hrubý prehľad oblastí, kde manažéri siahajú po simulačných modeloch, ako po nástroji na podporu pri rozhodovaní, vizualizácii, analýze a predpovedi správania sa systému alebo na riešenie konkrétnych úloh. Typickými oblasťami použitia simulácie sú:  optimalizácia obchodných procesov o stanovenie optimálnej výrobnej stratégie o predpoveď nákladov  Plánovanie a riadenie výroby o plánovanie celopodnikových zdrojov o priradzovanie zákaziek jednotlivým výrobným celkom o dielenské riadenie výroby  Zlepšenie logistických koncepcií o minimalizácia skladov a zásob o redukcia rozpracovanej výroby a priebežných dôb o určovanie výrobných a transportných dodávok o zladenie dodávok surovín a polotovarov s výrobou o zabezpečenie expedície  Projektovanie výrobných systémov o projektovanie inovačných zmien stávajúcich výrobných systémov o zaistenie požiadaviek na kapacity pre zaistenie plynulosti výroby o návrh dispozičného usporiadania o optimalizácia usporiadania jednotlivých prvkov celku o skúšobná prevádzka  Analýzy výrobných systémov o identifikácia a odstránenie úzkych miest o odhalenie rezerv dôkladným rozborom najrôznejších činností o „čo ak“ analýzy  Školenie pracovníkov v oblasti

12

o Stanovovania výrobnej stratégie o projektovania a plánovania výroby o analýz a zlepšovanie výrobných procesov o zaškoľovania nových pracovníkov  Aplikácie vo verejnom sektore o systémy v zdravotníctve o vojenské systémy o prírodné zdroje o verejné služby  Aplikácia u obslužných systémoch o doprava o počítačové systémy o komunikačné systémy [19]

2.5.1. Príklady aplikovania simulácie

 simulátory lietadiel, ponoriek, áut, tankov

 systém hromadnej dopravy

 oceňovanie derivátov

 hodnotenie investičných projektov

 populačná dynamika

 predpoveď počasia (meteorológia)

 pevnosť konštrukcií lietadiel

 počítačové hry

 vojenské simulátory (virtuálna realita)

 analýza elektrických obvodov

 numerické výpočty riešenia diferenciálnych rovníc

 simulácia robotov

13

3 Systém počítačovej algebry

Systém počítačovej algebry (alebo taktiež nazývaný počítačový algebraický systém) v skratke CAS (Computer Algebra System) je používaný názov reprezentujúci špeciálny matematický softvér disponujúci širokým aparátom matematických metód. CAS je určený na numerické výpočty s veľkou presnosťou, symbolickú manipuláciu údajov a okrem numerických a symbolických výpočtov sa využíva aj na editáciu matematických textov, vizualizáciu pomocou matematických modelov, prípadne pomocou ich vlastných programovacích jazykov na vývoj vlastných aplikácií. Cena takéhoto softvéru bola v minulosti obrovská, ale v súčasnosti sú cenovo dostupnejšie. Prípadne je možnosť využiť aj alebo open source1 softvér, ktorý v mnohých prípadoch má zrovnateľné funkcie s profesionálnym značkovým softvérom. Napr. AXIOM, , SAGE a pod.

Medzi najznámejšie profesionálne CAS systémy určite patria: MAPLE a MATHEMATICA.

Ale okrem týchto dvoch profesionálnych systémov existuje ešte množstvo nástrojov počítačovej algebry. Väčšina z nich sa dá rozdeliť na všeobecné nástroje (v princípe fungujúce na podobnej myšlienke a to, že všetky pracujú s numerickými a symbolickými výpočtami, ale každý má svoje výhody) a špecializované nástroje (zameranie majú na konkrétnu oblasť, napr.: obyčajné diferenciálne rovnice, štatistika, algebra, fyzika, a pod. ). [4], [5]

V nasledujúcej kapitole bude predstavená väčšina zo súčasných a naďalej sa vyvíjajúcich systémov počítačovej algebry.

1 Open Source – zdrojový kód takéhoto softvéru je sprístupnený, pod licenciou ktorá umožňuje jeho štúdium prípadne vylepšenia.

14

3.1. Výber dostupného CAS softvéru

V tejto kapitole uvediem abecedný zoznam momentálne dostupného a používaného CAS softvéru. Ten by mal pomôcť pri rozhodovaní sa, ktorý systém počítačovej algebry je vhodný na riešenie potenciálneho problému, prípadne či pre daný problém je potrebný drahý platený softvér, alebo či si vystačíme aj s niektorou voľne dostupnou verziou. Zoznam obsahuje prevažne informácie z oficiálnych stránok výrobcu. Ku každému CAS softvéru, bude uvedený stručný popis, aktuálna verzia (adekvátna k dátumu písania tejto práce), platformy podporujúce daný softvér a oficiálna webová stránka, odkiaľ je možné program stiahnuť prípadne zakúpiť a vyskúšať. Z dôvodu, že niektoré systémy nie je možné jednoznačne zaradiť do jednej z kategórie uvedenej v predchádzajúcej kapitole, daný zoznam nebude rozdelený na špecializované a všeobecné nástroje.

Jedná sa o spoplatnený nástroj od firmy Softmath zameraný na výučbu matematiky. Rieši širokú škálu problémov zadaných užívateľmi programu. Rozklad základných aritmetických operácií na jednotlivé kroky je vhodný pre žiakov základných škôl a pokročilá matematika nájde uplatnenie aj u vysokoškolských študentov. Prípadne sa môže jednať o vhodný doplnok pre učiteľov matematiky a štatistiky. [20] aktuálna verzia: 5.0 (2010) web: http://www.softmath.com/ platformy: Windows, Mac OS X

 Axiom Kvalitný Open Source CAS systém, užitočný pre výskum a vývoj matematických algoritmov. Definuje silno typovú, matematicky správnu hierarchiu typov. Obsahuje programovací jazyk a vstavaný kompilátor. [21] aktuálna verzia: 8.1 (2012) web: http://www.axiom-developer.org/ platformy: Windows,

15

 Cadabra CAS špeciálne navrhnutý na riešenie problémov v teórii polí. Jedná sa o Open Source systém. [22] aktuálna verzia: 1.29 (2011) web: http://cadabra.phi-sci.com/ platformy: Linux, Mac OS X

 CoCoA Voľne dostupný systém určený na výpočet s číslami a polynómami. Využitie nájde pre vedecké, ale aj pre „jednoduchšie“ výpočty. Obsiahnutý programovací jazyk umožňuje vytvárať vlastné efektívne algoritmy. [23] aktuálna verzia: 5.0 (2012) web: http://cocoa.dima.unige.it/ platformy: Macintosh, Unix/Linux, Windows

 Fermat Voľne dostupný CAS softvér, ktorý poskytuje aritmetiku ľubovoľne dlhých čísiel a zlomkov, viacrozmerné polynómy, symbolické výpočty, matice cez polynomiálne krúžky, grafiku a ďalšie numerické výpočty. Najzaujímavejšia je polynómiálna a maticová algebra nad Q (množina racionálnych čísel) a konečným poľom. Veľmi rýchly a s nízkymi nárokmi na pamäť. [24] aktuálna verzia: 3.9.9x (2012) web: http://home.bway.net/lewis/ platformy: Mac OS X, Mac OS, Linux, Unix, Windows

 FriCAS 1.1.8 (2012) Jedná sa o voľne stiahnuteľný pokročilý systém počítačovej algebry. Jeho funkcie sa pohybujú od výpočtov (integrály a derivácie) až po abstraktnú algebru. Umožňuje vykresľovať funkcie a má integrovaný systém pomocníka. FriCAS je odnož projektu Axiom – východiskom bola jeho časť wh-sandbox. [25] aktuálna verzia: 1.1.8 (2012) web: http://fricas.sourceforge.net/ platformy: Windows (Cygwin), Linux

16

 GAMS GAMS (General Algebraic Modeling Sytems) je špeciálne navrhnutý pre modelovanie lineárnych, nelineárnych a zmiešaných celočíselných optimalizačných problémov. Systém je zvlášť užitočný pre prácu s veľkými, komplexnými a jednorazovými problémami, ktoré môžu vyžadovať množstvo revízií k vytvoreniu presného modelu. [26] aktuálna verzia: 24.0.1 (2012) web: http://www.gams.com/ platformy: Windows, Unix, Linux, Mac OS X, Solaris, Linux/Wine, AIX

 GAP 4.5.6 (2012) GAP (Groups, Algorithms and Programming) je systém počítačovej algebry pre výpočty diskrétnej algebry, s čiastočným dôrazom na teóriu grúp. Je dostupný zdarma, vrátane manuálov a zdrojových súborov. [27] aktuálna verzia: 4.5.7 (2012) web: http://www.gap-system.org/ platformy: Unix, Mac OS X, Windows

 GiNaC Jedná sa o C++ knižnicu. Vyvinutý bol za účelom aby nahradil engine pre xloops, ktorý bol v minulosti poháňaný pomocou CAS Maple. Jeho dizajn je revolučný v tom, že na rozdiel od iných CAS neposkytuje rozsiahle algebrické funkcie a jednoduchý programovací jazyk, ale namiesto toho pracuje za pomoci jazyka C++ a rozširuje ho o súbor algebrických funkcií. Je dostupný zdarma. [28] aktuálna verzia: 1.6.2 (2011) web: http://www.ginac.de/ platformy: akýkoľvek systém kde je nainštalovaný GCC2 (najčastejšie Unix, Linux, BSD, Solaris, Windows ...)

2 GCC – (GNU Compiler Collection) jedná sa o sada jazykových prekladačov vytvorených v rámci projektu GNU. Ide o freeware poskytovaný organizáciou Fundation pod licenciou GNU GPL.

17

 LiveMath CAS systém zameraný na riešenie matematických problémov, ale výhodou tohto programu je, že užívateľ nemusí byť nutne programátor. Nie je založený na písaní príkazov prísnej syntaxi programovacích jazykov. Dostupná je 30 dňová skúšobná verzia. [29] aktuálna verzia: 3.5.9 (2012) web: http://www.livemath.com/ platformy: Macintosh, Mac OS X, Windows, Linux, Solaris

Zdarma dostupný CAS vyvinutý za účelom výpočtov v komutatívnej algebre a algebrickej geometrii. Používa vlastný vysoko úrovňový programovací jazyk. [30] aktuálna verzia: 1.4 (2010) web: http://www.math.uiuc.edu/Macaulay2/ platformy: FreeBSD, Linux, Mac OS X, Windows

 Magma Systém určený pre výpočty v algebre, teórii čísel, algebrickej geometrii a algebrickej kombinatoriky. Obsahuje množstvo nástrojov pre prácu s objektmi v tejto oblasti na detailnejšej úrovni. [31] aktuálna verzia: 2.19-2 (2012) web: http://magma.maths.usyd.edu.au/magma/ platformy: Linux, Mac OS X, Windows, Solaris

 Maple Podrobnosti v kapitole 4.

Kvalitný CAS systém od firmy PTC. Ide o priemyselný výpočtový softvér pre konštrukčné výpočty. Výpočty sa namiesto programovania zadávajú priamo matematickým zápisom. Výpočty sú následne doplnené o profesionálnu grafiku. Použitie sa nájde od technických výpočtov, cez vedu, výskum a výučbu až po prírodovedné a humanitné obory. Dostupná 30 dňová skúšobná verzia. [32]

18

aktuálna verzia: 15.0 (2012) web: http://www.ptc.com/product/mathcad/ platformy: Windows

 Mathematica Jeden z najznámejších systémov, pre prácu s numerickými a symbolickými výpočtami a vizualizáciou dát. Umožňuje riešiť projekty ľubovoľného rozsahu od rutinných výpočtov, až po veľké systémové riešenia. Hlavnými rysmi sú automatizované numerické a symbolické výpočty, účinná adaptívna vizualizácia, dynamická interaktivita a vysoko výkonné programovacie prostredie. [33] aktuálna verzia: 8.0.4 (2011) web: http://www.wolfram.com/mathematica/ platformy: Linux, Mac OS X, Windows (do verzie 6.0.3 podpora aj pre Solaris, AIX, Convex, HP-UX, IRIX, MS-DOS, NeXTSTEP, OS/2)

Jedná sa o malý, všeobecne použiteľný matematický softvér určený na riešenie algebrických rovníc, štandardných komplexných čísiel a riešenie polynómov. Ide o Open Source systém napísaný v jazyku C. [34] aktuálna verzia: 16.0.5 (2012) web: http://www.mathomatic.org/math/ platformy: Linux, Unix, Mac OS X, Windows (používajúci MinGW alebo CygWin)3

 Matlab Systém využívaný najmä pre vedecké a výskumné účely v súkromnom sektore aj v akademických radách. Umožňuje počítanie s maticami, vykresľovanie 2D aj 3D grafov funkcií, implementáciu algoritmov, počítačovú simuláciu, analýzu a prezentáciu dát a vytváranie aplikácií vrátane užívateľského rozhrania. Nadstavbou Matlabu je Simulink, určený pre simuláciu a modelovanie dynamických systémov, ktorý využíva algoritmu Matlabu pre numerické

3 MinGW a CygWin – kompilátory umožňujúce OS Windows správať sa podobne ako Unix systémy.

19

riešenia predovšetkým nelineárnych diferenciálnych rovníc. Systém Matlab je niektorými odborníkmi považovaný aj za programovací jazyk. [35] aktuálna verzia: R2012B (2012) web: http://www.mathworks.com/ platformy: Windows, Mac OS X, Linux, Android (MATLAB Mobile)

 Maxima Systém pre manipuláciu so symbolickými a numerickými vyjadreniami, vrátane derivovania, integrovania, Taylorov rád, Laplacova transformácia, obyčajné diferenciálne rovnice, sústavy lineárnych rovníc, polynómy, vektory, matice atď. Umožňuje vykresľovať funkcie a dáta v 2D aj 3D. Dostupný ako Open Source softvér. [36] aktuálna verzia: 5.28.0 (2012) web: http://maxima.sourceforge.net/ platformy: Mac OS X, Unix, BSD, Linux, Windows

 PARI/GP Open Source CAS systém používaný pre rýchle výpočty v teórii čísiel, ale taktiež obsahuje užitočné funkcie pre prácu s maticami, polynómami, mocninovým radom, algebrické čísla atď. Dostupný ako knižnica jazyka C. [37] aktuálna verzia: 2.5.3 (2012) web: http://pari.math.u-bordeaux.fr/ platformy: Linux, Unix, Mac OS X, Windows

 Reduce Všeobecne zameraný systém, podporuje prácu s polynómami, zjednodušovanie výrazov, derivovanie a integrovanie funkcií, atď. Dostupné je množstvo rozširujúcich balíkov umožňujúce široko spektrálnejšie využitie tohto CAS systému. [38] aktuálna verzia: 3.8 (2009) web: http://www.reduce-algebra.com/ platformy: Linux, Unix, Mac OS X, Windows

20

 Sage Open Source systém podporujúci výpočty v množstve matematických oboroch vrátane algebry, kombinatoriky, numerickej matematiky a kalkulu. Jeho cieľom je poskytnúť voľnú alternatívu ku komerčným systémom ako Magma, Maple, Mathematica a Matlab. [39] aktuálna verzia: 5.5 (2012) web: http://www.sagemath.org/ platformy: Linux, Solaris, Mac OS X, Windows

Počítačový algebraický systém, pre polynomiálne výpočty, so špeciálnym dôrazom na komutatívnu a nekomutatívnu algebru, algebrickú geometriu a teóriu singularity. Dostupný ako Open Source. [40] aktuálna verzia: 3.1.6 (2012) web: http://www.singular.uni-kl.de/ platformy: Linux/Unix, Windows, Mac OS X

 SMath Studio Voľne stiahnuteľný systém podporujúci riešenie diferenciálnych rovníc, 2D/3D grafy funkcií, symbolické výpočty, maticové operácie, polynómy, atď. [41] aktuálna verzia: 0.95.4594 (2012) web: http://www.smathstudio.com/ platformy: Windows, Windows mobile, Linux

 SymPy CAS systém kompletne napísaný v programovacom jazyku Python, zameraný na symbolické výpočty. [42] aktuálna verzia: 0.7.2 (2012) web: http://sympy.org/ platformy: Linux, Windows, BSD, Mac OS X

21

Počítačový algebraický systém podporujúci grafy funkcií, interaktívnu geometriu (2D/3D), štatistiku, programovanie. Systém je dostupný ako Open Source. [43] aktuálna verzia: 0.9.9 (2012) web: http://www-fourier.ujf-grenoble.fr/~parisse/giac.html platformy: Linux, Windows, Mac OS X

YACAS (Yet Another Computer Algebra System) je obecný CAS systém určený pre symbolickú manipuláciu s matematickými výrazmi. Využíva svoj programovací jazyk pre symbolické aj numerické výpočty. Súčasťou systému je aj knižnica skriptov implementujúca množstvo symbolických algebrických operácií. Jednoducho môžu byť pridané algoritmy implementujúce ďalšie operácie. [44] aktuálna verzia: 1.3.3 (2012) web: http://yacas.sourceforge.net platformy: Linux, Mac OS X, EPOC32, Ipaq, Windows (32bit), prípadne spustiteľné aj priamo na web stránke ako Java aplikácia

Táto kapitola predstavila abecedný zoznam momentálne dostupného a používaného CAS softvéru. Cieľom kapitoly bolo pomôcť pri rozhodovaní sa, ktorý systém počítačovej algebry je vhodný na riešenie určitého problému, prípadne či pre daný problém je potrebné platiť za drahý softvér, alebo či by bola dostačujúca aj niektorá voľne dostupná verzia.

V nasledujúcich kapitolách bude predstavený CAS systém Maple.

22

4 Maple systém

V nasledujúcich kapitolách bude predstavený systém Maple. Konkrétne verzia Maple 16, ktorá je momentálne dostupná, ako najnovšie vydanie tohto CAS systému. V kapitolách sa nachádza úvodné zoznámenie s týmto systémom a novinky v najnovšej verzii.

4.1. Základy o Maple systéme

Maple je výkonný systém počítačovej algebry (CAS) vyvinutý v roku 1980 na Univerzite Waterloo v Kanade. Systém Maple má výkonné, interaktívne prostredie pre vedecké výpočty a ich vizualizáciu. Využitie nájde vo výučbe a práci s matematikou (diferenciálne a integrálne výpočty, lineárna algebra, riešenie rovníc, diferenciálne rovnice, geometria a logika) v prírodovedných, technických a ekonomických oboroch.

Maple integruje symbolické výpočty prakticky vo všetkých oblastiach matematiky s numerickými výpočtami a ich počítačovú vizualizáciu, dokumentáciu a publikáciu. Užívateľom ponúka pre túto prácu prívetivé prostredie, v ktorom možno jednoducho pracovať s matematikou bez nutnosti programovania. Maple podporuje možnosť vykresľovania grafov, a to buď 2D alebo aj 3D. Jednotlivé grafy poskytujú množstvo estetických a interaktívnych úprav pre jednotlivé grafy a taktiež umožňuje doplňovať k nim vlastný text, a tak vytvárať tzv. hypertextové zápisníky.

Maple je interaktívny systém, ktorý umožňuje riešiť množstvo matematických problémov omnoho rýchlejšie, ako pri použití klasických numerických metód. Tento systém používa vlastný programovací jazyk štvrtej generácie podobný Pascalu s množstvom preddefinovaných funkcií a procedúr. Maple taktiež podporuje transformáciu kódu do programovacích jazykov C, C++, Fortran, Java, Visual Basic a MATLAB. Taktiež podporuje prepojenie s MS Excel. Veľkou výhodou tohto systému je zaiste aj jeho rozsiahla knižnica pomocníka. Maple je podporovaný platformami Windows, Linux, Macintosh a Sun Solaris (študentská verzia nepodporuje platformu Sun Solaris). [6], [7], [8], [17]

23

4.2. Novinky v Maple 16

Systém Maple 16 poskytuje interaktívnych asistentov, kontextové menu závislé na objektoch aplikácie, Drag-to-Solve (chyť a vyrieš) a tzv. Smart Popups (múdre kontextové palety) a ostatné nástroje interaktívnej matematiky (Clickable Math), ktoré slúžia pre pochopenie, riešenie a vizualizáciu matematických problémov. Pomocou Drag-to-Solve môžu užívatelia riešiť rovnice krok za krokom, a to jednoducho pomocou pretiahnutia rovnicových častí na nové miesto. Smart Popups ukazujú matematické identity, grafy a ďalšie úpravy, pomocou ktorých Maple poskytuje užívateľovi ďalšie možné kroky riešenia.

Užívateľské rozhranie je iba jedna z oblastí systému Maple, ktoré sú v novej verzii významne vylepšené. Vylepšenia je možné nájsť v celom produkte a to ako na úrovni matematických algoritmov, vizualizácií, programovacieho jazyka, inžinierskych nástrojov, dokumentácie, nástrojov pre výučbu a ďalšie. Dôležité vylepšenia sú aj v oblasti vizualizácie, ako automatické pohľady chybných grafov na dôležité body vizualizácie. Boli zrýchlené operácie v jadre systému Maple aj výpočty na viacerých jadrách a vo viacerých vláknach. Pribudli vylepšenia vo svetovo uznávaných algoritmoch pre diferenciálne rovnice a výpočet fyzikálnych problémov. Bolo doplnených cez 100 nových matematických aplikácií, ktoré poskytujú pohľad do matematického myslenia, štatistiky, fyziky alebo financií. Taktiež pribudli nové štatistické algoritmy a vizualizácie a je dostupná nová funkcionalita v programovaní a vytváraní aplikácií. [18]

24

5 MapleSim

V nasledujúcich kapitolách bude predstavený systém MapleSim, nadstavba systému Maple. V kapitolách sa nachádza úvodné zoznámenie s týmto systémom a možnosti ktoré poskytuje, novinky v najnovšej verzii MapleSim 6, fyzikálne modelovanie a predstavenie užívateľského prostredia.

5.1. Úvod do MapleSim

MapleSim je viac odborový výkonný modelovací a simulačný nástroj, vyvinutý spoločnosťou MapleSoft. Poskytuje možnosti vytvárať zložité viacdoménové fyzikálne systémy. Umožňuje vytvárať tzv. „súčiastkové diagramy“, ktoré predstavujú fyzické systémy v grafickej podobe. MapleSim vytvára modelové rovnice, spúšťa simulácie a vykonáva analýzy, za použitia matematického (symbolického a numerického) jadra zo systému Maple. V súčasnosti je dostupný vo verzii Maple 6 (vyžaduje Maple16). [9], [10]

5.1.1. Vlastnosti MapleSim

 tvorba komplexných multidoménových modelov MapleSim umožňuje vytvárať modely, ktoré obsahujú komponenty z rôznych technických odvetví do komplexného systému. MapleSim ponúka knižnicu s približne 550 modelovacími komponentmi, vrátane elektrických, hydraulických, mechanických a tepelných zariadení, senzorov, zdrojov a signálnych blokov. Taktiež je tu možnosť vytvorenia vlastných komponentov.

 pokročilé symbolické a numerické vlastnosti MapleSim využíva pokročilých symbolických a numerických schopností systému Maple, ku generovaniu matematických modelov, ktoré simulujú správanie sa fyzického systému.

 Vstavané analytické nástroje a šablóny MapleSim poskytuje rôzne vstavané šablóny, ako Maple pracovné hárky (worksheets) pre zobrazenie modelových rovníc a prevádzania rozšírených

25

analytických úloh, ako optimalizácia parametrov. Pre analýzu modelu a predvedenie simulačných výsledkov do interaktívnych formátov možno použiť Maple doplnky, ako napríklad vnorené komponenty, vyhodnocovacie nástroje a vytváranie dokumentov. Taktiež možno preložiť modely do kódu jazyka C a pracovať s nimi v iných aplikáciách a nástrojoch, vrátane aplikácií, ktoré dovoľujú simuláciu v reálnom čase.

 Interaktívne 3D vizualizačné nástroje 3D vizualizačné prostredie umožňuje vytvárať a animovať 3D telesá mechanických modelov systému. Toto prostredie môže slúžiť k overeniu modelu a vizuálne analyzovať správanie systému v rôznych podmienkach a v rôznych fázach simulácie. [10]

5.2. Novinky v MapleSim 6

V nasledujúcej kapitole uvediem novinky obsiahnuté v novej verzii systému MapleSim.

5.2.1. Modelica – rozšírená podpora

MapleSim je postavený na otvorenom štandarde Modelica, modelovacom jazyku pre popis fyzických modelov a komponentov. V MapleSim 6 je zvýšená podpora Modelica v mnohých smeroch, čo má za následok uľahčenie kontroly pre užívateľov pri práci s modelmi a analýzami.

 Nové zobrazenie okamžite ukazuje príslušný Modelica kód, pre akýkoľvek podsystém alebo komponent, čo dovoľuje užívateľom kombinovať drag-and- drop modelové paradigma MapleSim s prísnosťou Modelica modelovania. Užívatelia môžu použiť toto zobrazenie, pre lepšie pochopenie dôvodov správania sa modelu preskúmaním kódu pridaného k modelu diagramu. Modelica kód môže byť taktiež použitý, ako základ pre vytvorenie modifikovanej verzie modelu.

 Modelica súbory môžu byť otvorené a používané v prostredí MapleSim bez zbytočných doplňujúcich krokov.

26

 Široká rozmanitosť Modelica modelov môže byť ľahko prenesená do MapleSim, vďaka tomu, že Modelica funkčné volania a jazykové doplnky sú priamo podporované v MapleSim. Prídavky obsahujú podporu viacerých vstupov/výstupov, re-deklarovanie výrokov a volania externých funkcií jazyka C v modelovom kóde.

 Všetky MapleSim modely vrátane zložených modelov môžu byť uložené priamo ako Modelica súbory a modelová topológia a prezentačná informácia je zachovaná, ako aj rovnice. Takto modelový diagram, môže byť zobrazený v iných Modelica nástrojoch.

 Používaním nového MapleSim prepojovača pre FMI4 doplnok, môže byť MapleSim model exportovaný ako štandardný formát stanovený Modelica Asociáciou, ktorý je ľahko zrozumiteľný ostatnými nástrojmi podporujúcimi FMI. [12]

5.2.2. Efektívne testovanie a experimentovanie

MapleSim6 taktiež ponúka zopár funkcionalít, ktoré redukujú čas vývoja tým, že zrýchlia testovacie a experimentálne procesy.

 MapleSim 6 si môže zavolať externý kód, ako súčasť simulácie. Napríklad, užívatelia si môžu zjednodušiť testovanie tým, že zavolajú externú kontrolu kódu priamo z MapleSim, namiesto toho, aby exportovali MapleSim model do iného systému.

 Nová funkcionalita snapshots („momentka“) dovoľuje užívateľom začať experimentovanie z ktoréhokoľvek časového kroku, aj po tom, ako bol model upravený pred spravením momentky. Napríklad, možno urobiť snapshot a potom pridať ďalšie komponenty alebo zmeniť hodnoty modelu a pokračovať v simulácií v upravenom modeli. Taktiež možno spraviť snapshot simulácie, keď dosiahne stabilného štádia a potom spúšťať dodatočné simulácie z tohto bodu.

4 FUNCTIONAL MOCK-UP INTERFACE (FMI) – otvorený štandard pre výmenu zostavených modelov a ich opätovné použitie. Technológia FMI je podporovaná veľkým množstvom open source a komerčných nástrojov. [11]

27

 MapleSim ponúka možnosť spúšťať skupinové simulácie a optimalizácie paralelne. Na ukončenie testovania v oveľa rýchlejšom čase alebo použitie clustera, využíva výhodu viac jadrových procesorov, použitím Maple Grid Computing Toolbox. Pre lepšie využitie všetkej výpočtovej sily počítača bol MapleSim API rozšírený o funkciu volania vlákien, ktorá môže byť skombinovaná s programovacím modelom Task Programming Model systému Maple.[12]

5.2.3. Doplnky konektivity

Vylepšené doplnky konektivity, poskytujú viacej možností integrácie MapleSim do používaných programov.

 MapleSim Connector for B&R Automation Studio - dovoľuje rozšíriť B&R tým, že integruje vysoko výkonové, viac doménové systémové modely z MapleSim do B&R Automation Studio.

 MapleSim Connector for VI-CarRealTime - umožňuje zväčšiť presnosť, viacdoménových modelov vytvorených v MapleSim, vďaka real-time automobilovej simulácii v VI-CarRealTime.

 MapleSim Connector for FMI - poskytuje možnosť exportovať MapleSim modely v štandardnom formáte (stanovené Modelica asociáciou), ktorý je kompatibilný s inými systémami podporujúce FMI.

 Nástroje konektivity pre Simulink, LabVIEW, NI VeriStand a dSPACE systems majú lepšie spracovanie a podporu posledných verzií uvedených produktov. [12]

5.2.4. Dodatočné funkcionality a zlepšenia

MapleSim 6 obsahuje množstvo nových a zlepšených vlastností v simulačnom aj užívateľskom prostredí.

Zlepšenia simulačného prostredia

 Zlepšenia MapleSim API uľahčujú načítať modely, stanoviť parametre a nastaviť simulácie priamo zo systému Maple. Takže možno analyzovať daný

28

systém pomocou Maple technical document a programovacieho prostredia. Bol skrátený API procesný čas, takže načítanie modelov je do systému Maple oveľa rýchlejšie.

 Nová funkcia GetCompiledProc, môže pristupovať ku všetkým MapleSim riešeniam. To umožňuje kontrolovať simuláciu zo systému Maple, v ktorom možno vykonať optimalizáciu parametrov.

 Do kolekcie riešení bol pridaný Implicit Euler (numerická metóda pre riešenie obyčajných diferenciálnych rovníc).

 Viacero riešiteľských možností, dáva väčšiu kontrolu nad systémovým riešením. Napríklad, ovládanie pomeru medzi časom spracovania a simulačným časom, zvýšenie iteračného limitu v prípade potreby a výber zladenia rôznych obmedzení systému. Nové nastavenia obsahujú:

o Kontrolu nad naplánovanou iteráciou

o Schopnosť zapnúť/vypnúť mierku

o Redukciu všeobecných udalostí

o Numerický alebo symbolický Jacobiho determinant

o obmedzenia stabilizácie Baumgarte

 V MapleSim možno plne otestovať exportovaný kód.

 Symbolický predspracovaný krok bol zjednodušený, takže simulácie vyžadujú menej času.

Zlepšenia užívateľského rozhrania

 Možno znížiť modelovú neprehľadnosť v komplexných modeloch, špecifikovaním prepojení medzi blokmi, bez viditeľných čiar v diagrame.

 Spravovanie používateľských knižníc je podstatne ľahšie.

 Vylepšenia 3-D vizualizácie obsahujú automatickú úpravu uhľa pohľadu, aby celé 3D animácie boli vo viditeľnej perspektíve. A kvalitnejšie zobrazenie animácie pomáha udržať orientačný zmysel pri zmene zobrazenia.

 MapleSim obsahuje nový rozšírený manuál, vylepšené príklady, nové výukové videá a vylepšené návody. [12] 29

5.3. Fyzikálne modelovanie v MapleSim

Fyzikálne modelovanie (modelovanie založené na fyzike), zahŕňa matematické a fyzikálne zákony k opisu správania sa konštrukčných komponent alebo systému vzájomne prepojených súčastí. Vzhľadom k tomu, že väčšina konštrukčných systémov je spojená aj s dynamikou, ich správanie je typicky definované obyčajnými diferenciálnymi rovnicami (ODR).

MapleSim pomocou nasledujúcich vlastností zabezpečuje, že tvorba modelov by mala byť jednoduchá a rýchla:

5.3.1. Topologické vyjadrenie systému

Tradičné modelovacie nástroje využívajú prístup toku signálu, a ten vyžaduje, aby systémové vstupy a výstupy boli definované explicitne. Napríklad, MapleSim umožňuje využiť topologickú reprezentáciu k prepojeniu súvisiacich komponent, bez nutnosti poznania, ako medzi nimi prebieha tok signálu. [10]

5.3.2. Formulácia a zjednodušenie matematického modelu

Topologická reprezentácia jednoducho mapuje matematickú reprezentáciu a symbolické funkcie v MapleSim automaticky generujú systémové rovnice. Keď MapleSim koncipuje systémové rovnice, tak je použitých viacero matematických nástrojov určených k odstráneniu nadbytočných rovníc a násobkov nulou a jednotkou. Tieto nástroje určené k zjednodušovaniu na konci zminimalizujú počet rovníc, a to bez zníženia presnosti daného systému. [10]

5.3.3. Riešenie pokročilých diferenciálnych algebrických rovníc

Algebrické obmedzenia sú zavedené v topologickom prístupe do definície modelu. Problémy, ktoré kombinujú obyčajné diferenciálne rovnice s týmito algebrickými obmedzeniami, sú nazývané diferenciálne algebrické rovnice. Zložitosť diferenciálnych algebrických rovníc sa môže meniť v závislosti na obmedzujúcich podmienkach. Zložitosť sa zvyšuje s indexom daných diferenciálnych algebrických rovníc. Vývoj všeobecných riešení pre komplexné diferenciálne algebrické rovnice je 30

predmetom mnohých výskumov v oblasti symbolických výpočtov. S využitím Maple engine-u, využíva MapleSim pokročilé riešenia, ktoré obsahujú špičkové symbolické a numerické metódy, pre riešenia s vysokým indexom zložitosti diferenciálnych algebrických rovníc. [10]

5.3.4. Akauzálne a kauzálne modelovanie

Reálne konštrukčné zostavy, ako sú motory a pohonné jednotky sa skladajú zo vzájomne spolupracujúcich fyzických komponentov. Takéto zostavy zvyknú byť modelované v programoch pomocou tzv. blokových diagramov. Prepojenie súčiastok je indikované pomocou čiar ktoré musia dodržiavať fyzikálne zákony. Ak simulácia prebieha pomocou softvéru, môže sa modelovanie riešiť kauzálne alebo akauzálne. MapleSim umožňuje použitie oboch prístupov k modelovaniu.

 Kauzálne modelovanie: Veľké množstvo simulačných nástrojov je určené len na kauzálne (alebo tzv. signal-flow) modelovanie. V týchto nástrojoch prúdi nereverzibilný signál (ktorý je v podstate časovo premenné číslo) priamo do blokov. Daný blok následne vykoná presne definovanú matematickú operáciu na signáli a výsledok sa dostane na výstup bloku. Tento postup je vhodný pre modelovanie systémov, v ktorých signál prúdi len v jednom smere (napr. kontrolné systémy a digitálne filtre). Na obr. 2 je uvedený kauzálny model blokového diagramu pre výpočet y:=f(x) (známa premenná na pravej strane a výsledok je priradený k premennej na ľavej strane).

x y f(x)

obr. 2 Kauzálny model blokového diagramu [10]

 Akauzálne modelovanie: Reálne fyzické komponenty vyžadujú odlišný spôsob. Signál neprúdi iba jedným smerom. Modelovanie týmto spôsobom možno docieliť pomocou akauzálneho modelovania. Signál obsahuje informácie o fyzikálnych veličinách, ktoré musia byť zachovalé (napr. energia, prúd,

31

krútiaci moment, teplota a hmotnosť a pod.) Bloky majú informáciu o tom, akými fyzikálnymi zákonmi sa majú riadiť. Na obr. 3 je uvedený akauzálny model blokového diagramu pre výpočet y=f(x).

x y f(x)

obr. 3 Akauzálny model blokového diagramu [10]

Pri použití akauzálneho prístupu je vhodné identifikovať typ premennej. Premenné sa rozdeľujú sa na typy „through“ (priechodná) a „across“ (priečna), ktorých hodnoty sú určené meraním dvoch extrémov určitého komponentu. Obecne premenná „across“ reprezentuje hnaciu silu a „through“ predstavuje objemový prietok. Na obr. 4 je zobrazený jednoduchý model s týmito premennými. [10]

„through“ a b „through“ Komponent

„across“ obr. 4 Jednoduchý model s premennými „through“ a „across“ [10]

32

5.4. Užívateľské prostredie MapleSim 6

Na obr. 5 je možné vidieť užívateľské prostredie v systéme MapleSim 6. Prostredie je logicky rozvrhnuté a vysoko prehľadné. Pozostáva z hlavnej modelovacej plochy, 3D vizualizačného poľa, konzoly a ich líšt, panelu komponent v ktorom sa nachádza knižnica s približne 550 súčiastkami na tvorbu modelov, panelu parametrov v ktorom môžeme každému komponentu, prípadne celému modelu nastaviť vlastné hodnoty a hlavnej lišty. Jednotlivé časti sú popísané v nasledujúcej podkapitole.

lišta

modelovacej Panel modelovacia hlavná lišta navigačná lišta plochy parametrov plocha

panel lišta 3D poľa konzolová konzola 3D komponentov lišta vizualizačné pole obr. 5 Užívateľské prostredie MapleSim 6 33

5.4.1. Popis jednotlivých častí užívateľského prostredia

 hlavná lišta: Obsahuje ikonu pre spustenie simulácie, ďalej na otvorenie, uloženie MapleSim projektov a iné bežné úlohy.

 navigačná lišta: Obsahuje nástroje pre prezeranie svojho modelu a hierarchické prezeranie subsystémov, zmenu pohľadu na model a náhľad na príslušný Modelica kód.

 lišta modelovacej plochy: Obsahuje nástroje pre rozloženie a výber objektov, pridávanie komponentov (poznámky a sondy).

 modelovacia plocha: Oblasť, v ktorej sa stavajú a upravujú modely z pohľadu blokových diagramov.

 panel komponentov: Obsahuje rozvinutelné menu s nástrojmi, ktoré možno použiť na vytvorenie modelu a riadenia projektu. Tento panel obsahuje dve časti:

o Knižnice: Obsahuje palety so vzorkami modelov a komponenty špecifické pre dané domény, ktoré môžu byť pridané do modelov.

o Projekt: Obsahuje paletu s nástrojmi umožňujúce prezerať a vytvárať modely a spravovať výsledky simulácie, sondy a dokumenty ktoré budú viazané k modelu.

 konzola: obsahuje tri hlavné panely: o Help: zobrazí pomocníka súvisiaceho s modelovacími komponentmi. o Message Console: zobrazuje hlásenia pokroku, indikujúce stav MapleSim engine-u v priebehu simulácie. Vymazanie konzoly je možné tlačidlom Clear Console. o Debugging: zobrazuje diagnostické správy počas stavania modelu, identifikujúc podsystémy v ktorých sa nachádzajú chyby.

 konzolová lišta: Obsahuje ovládacie prvky pre výber a kontrolu druhov správ uvedených v konzole a typ zobrazenia v ktorom chceme pracovať.

 lišta 3D poľa: Obsahuje nástroje pre budovanie „multibody“ modelov a prehrávanie 3D simulácie.

34

 3D vizualizačné pole: V Construct móde, umožňuje budovať a analyzovať 3D grafickú reprezentáciu „multibody“ systémov. V Playback móde umožňuje prehrávanie 3D grafických znázornení „multibody“ systémov. Zmeny modelu vykonané v modelovacej ploche sa automaticky prejavia v 3D vizualizačnom poli.

 panel parametrov: Obsahuje nasledujúce záložky:

o Inspector: umožňuje prezerať a upravovať vlastnosti modelovaných komponentov, ako sú názvy a hodnoty parametrov. A určiť simulačné možnosti a merané hodnoty.

o Settings: umožňuje určiť možnosti simulácie, ako napríklad dobu trvania simulácie, nepovinné parametre pre získanie riešenia, simulačný engine a 3D vizualizáciu.

o Plots: umožňuje definovať rozloženie pre grafy simulácií. [13]

35

6 Ukážkové príklady simulácie v MapleSim 6

V tejto kapitole uvediem názorné príklady, ktoré prispejú k porozumeniu práce so systémom MapleSim. Budú zoradené od jednoduchých ku komplikovanejším. Postupy v jednotlivých príkladoch na seba nadväzujú, a tým umožňujú porozumieť tvorbe zložitých systémov. Na začiatok, bude vysvetlená tvorba modelu základného kyvadla a na konci vysvetlím postup, ktorým som vytvoril simuláciu robotického ramena.

6.1. Kľukový mechanizmus

V tomto príklade predvediem jednoduchú simuláciu kľukového mechanizmu poháňaného hydraulickým motorom. Kľukový mechanizmus je určený na zmenu priamočiareho pohybu piesta na otáčavý pohyb kľuky (napr. v spaľovacích motoroch, pohon kolies lokomotív atď.), alebo naopak otáčavý na priamočiary pohyb (pri piestových čerpadlách, kompresoroch atď. ). Predvedený príklad prevádza druhú alternatívu, čiže prevod otáčavého na priamočiary pohyb. Postup vytvorenia takéhoto mechanizmu bude uvedený od úplných základov. Takže, začnem od základného kyvadla, aby pol postup porozumiteľný aj tým, ktorý s MapleSim pracujú po prvý krát.

6.1.1. Základné kyvadlo

Ako som vravel, nasledovný postup je úplný základ, ale dá sa na ňom predviesť, ako uviesť určité rameno do pohybu. Z príslušných knižníc budeme potrebovať nasledovné komponenty, ktoré si pretiahneme na modelovaciu plochu:

 Multibody/Bodies and Frames/Fixed Frame

 Multibody/Bodies and Frames/Rigid Body

 Multibody/Bodies and Frames/ Rigid Body Frame

 Multibody/Joints and Motions/ Revolute

Fixed Frame slúži ako stacionárny rám, ktorý je pripevnený pevne k zemi. Rigid Body je podobné, ako závažie s možnosťou nastavenia ľubovoľnej váhy. Z Rigid Body Frame zostavíme kyvadlové rameno a Revolute je kĺb s jednoosovým pohybom. Vybrané 36

komponenty spolu prepojíme podľa obrázku (obr.6). Rigid Body otočíme horizontálne pomocou kontextového menu (prípadne klávesovou skratkou ctrl+H). Z lišty modelovacej plochy vyberieme sondu (Attach probe) a pripojíme ju k bodu frange_b nachádzajúcom sa na komponente Revolute (biely krúžok). Aby nám sonda merala údaje ktoré potrebujeme, musíme na paneli parametrov zaškrknúť požadované údaje. V našom prípade budeme merať uhol a rýchlosť ramena, čiže zaškrkneme Angle a Speed.

obr. 6 Spojené komponenty základného kyvadla

Jednotlivým komponentom sa dajú nastaviť na paneli parametrov rôzne vlastnosti. Napríklad môžeme zmeniť hmotnosť Rigid Body , alebo upraviť dĺžku Rigid Body Frame, prípadne uhol (ramena) pod akým sa má začať simulácia atď. Simuláciu spustíme pomocou Run Simulation umiestnenom na hlavnej lište. Pripojená sonda nám zmeria rýchlosť a uhol modelu, a následne nám systém vykreslí grafy týchto hodnôt. Grafy môžeme vidieť na obr.7.

obr. 7 Grafy simulácie základného kyvadla 37

Ako je možné vidieť čas simulácie bol nastavený na 10 sekúnd. Túto dobu samozrejme môžeme zmeniť a to v paneli parametrov v záložke settings. Na nasledujúcom obrázku (obr. 8) je zobrazená 3D vizualizácia vytvoreného kyvadla v konštrukčnom režime.

obr. 8 3D vizualizácia základného kyvadla

6.1.2. Postup modelovania kľukového mechanizmu

Po predvedení základnej práce v systéme MapleSim, uvediem postup tvorby kľukového mechanizmu poháňaného hydraulickým motorom. Tento postup intuitívne nadväzuje na predchádzajúci príklad. Ako som vravel v úvode tejto kapitoly, vytvorím kľukový mechanizmus na prevod otáčavého na priamočiary pohyb. Zobrazenie takéhoto mechanizmus, môže byť ako na obr.9.

A – otáčavý pohyb, B – priamočiary pohyb.

obr. 9 Kľukový mechanizmus [14]

K vytvoreniu kľukového mechanizmu poháňaného hydraulickým motorom budeme potrebovať nasledujúce súčiastky:

 Multibody/Bodies and Frames/Fixed Frame

 Multibody/Bodies and Frames/Rigid Body (2x) 38

 Multibody/Bodies and Frames/ Rigid Body Frame (4x)

 Multibody/Joints and Motions/ Revolute (3x)

 Multibody/Joints and Motions/ Prismatic

 1-D Mechanical/Rotational/Common/Rotational Fixed

 Hydraulic/Sources/Fixed Flow Source

 Hydraulic/Reference Components/Atmospheric Pressure

 Hydraulic/Actuators/Hydraulic Motor

Uvedené komponenty vyberieme z knižnice a poukladáme na modelovaciu plochu. Následne ich pootáčame, poprepájame a pridáme sondy, tak ako je uvedené na obr.10.

obr. 10 Schéma prepojených komponentov kľukového mechanizmu

Jednotlivým komponentom je potrebné nastaviť parametre. Pre Fixed Flow Source nastavíme prietok na 1m3/s a výtlak (displacement) Hydraulic Motor-u nastavíme na 3 1m /radian. Ešte je potrebné upraviť dĺžku ramien. Nastavíme ich nasledovne RBF1 -

0.5m, RBF2 0.5m , RBF4 -1m a RBF3 1m , všetky s orientáciou po osi X. Sondu Pohyb nastavíme tak, aby merala hodnoty length a speed.

V ľavej hornej časti môžeme vidieť skonštruovaný hydraulický motor a zvyšok prestavuje kľukový mechanizmus. Pre prehľadnosť modelu je vhodné vytvárať subsystémy do ktorých umiestnime vhodné komponenty. Napríklad, v tomto príklade by bolo vhodné umiestniť do subsystémov hydraulický motor a ramená mechanizmu. 39

Vytvorenie subsystému prebieha nasledovne. Označíme si komponenty ktoré chceme mať pohromade a následne z kontextového menu vyberieme Create Subsystem (klávesová skratka ctrl+G) a pridelíme požadované meno. Pre náhľad do jednotlivými subsystémov poslúži dvojklik na daný podsystém a na návrat na najvyššiu vrstvu slúži tlačidlo Main na navigačnej lište. Pre zvýšenie prehľadnosti, ešte môžeme každému z nich prípadne prideliť vlastnú ikonu. To docielime tak, že vstúpime dvojklikom do subsystému a na navigačnej lište klikneme na tlačidlo Icon a vyberieme jednu z ponúkaných možností, prípadne načítame obrázok z disku počítača.

Pomocou tohto postupu vytvoríme subsystémy z hydraulického motora a jednotlivých ramien kľukového mechanizmu. Následne by mal model vyzerať ako na obr. 11.

obr. 11 Použité subsystémy v komponentoch kľukového mechanizmu

Keď je systém skonštruovaný podľa predchádzajúceho postupu, môžeme spustiť samotnú simuláciu. Pripojené sondy Pohyb a Tlak (nachádzajúca sa v subsystéme hydraulicky motor) vykreslia nasledujúce grafy v časom intervale 10s.

40

obr. 12 Grafy kľukového mechanizmu

Predchádzajúce grafy boli vyhotovené pri produkovanom toku vzduchu 1m3/s. Keď túto hodnotu zmeníme napríklad na hodnotu 5m3/s (v komponente Fixed Flow Source v subsystéme hydraulicky motor ), tak môžeme na nasledujúcom grafe (obr.13) vidieť značný rozdiel vykreslených hodnôt.

obr. 13 Grafy kľukového mechanizmu 2

Pre lepšie porovnanie, systém MapleSim podporuje aj možnosť vzájomného prekrytia vygenerovaných grafov. Vyprodukujeme grafy s hodnotami 1m3/s a následne grafy so zmenenou hodnotou 5m3/s. Hodnoty jednoducho označíme a presunieme do predchádzajúceho grafu. Systém automaticky zarovná a porovná jednotlivé hodnoty. Modrou farbou sú zobrazené hodnoty s tokom 1m3/s a červenou 5m3/s.

41

obr. 14 Porovnanie grafov kľukového mechanizmu

Pripojením komponentu Multibody/Visualization/Path Trace na výstup subsystému rameno1, môžeme v Playback mode 3D vizualizačného poľa vykresliť kruhový pohyb, ktorý je vykonávaný týmto ramenom, poháňaným hydraulickým motorom. Na obr.15 je zobrazené dané vykreslenie, vrátane 3D grafickej podoby vytvoreného kľukového mechanizmu z playback módu.

obr. 15 3D zobrazene kľukového mechanizmu, vrátanie zobrazenej stopy pohybu

V tejto kapitole bol vysvetlený postup práce v MapleSim na jednoduchých príkladoch. Na tieto základy možno nadviazať nasledujúce kapitoly, v ktorých už nebude potrebné dopodrobna vysvetľovať každý krok, pomocou ktorého model vznikol. V nasledujúcej kapitole predvediem, ako sa vytvorí základný model ovládateľného mechanického ramena. 42

6.2. Základné mechanické rameno

Táto kapitola je zameraná na vytvorenie základného modelu mechanického ramena a predvediem ovládanie ramena pomocou riadiacich signálov. Rameno bude podporovať horizontálny aj vertikálny pohyb. Podľa uvedeného zoznamu vyberieme komponenty z knižnice systému MapleSim a rozmiestnime ich na modelovaciu plochu.

 Multibody/Bodies and Frames/Fixed Frame

 Multibody/Bodies and Frames/Rigid Body (2x)

 Multibody/Bodies and Frames/ Rigid Body Frame (4x)

 Multibody/Joints and Motions/ Revolute (2x)

 1-D Mechanical/Rotional/Motion Drivers/Rotational Position (2x)

 Signal Blocks/Mathematical/Operators/Add

 Signal Blocks/Mathematical/Operators/Add 3

 Sources/Real/Ramp (5x)

Pripravené komponenty následne pootočíme a poprepájame podľa obr.16.

obr. 16 Prepojené komponenty základného mechanického ramena

43

Prepojeným komponentom je potrebné nastaviť príslušné hodnoty. Na zostavenie ramena v tvare obráteného písmena „L“ je potrebné priradiť dĺžku a orientáciu jednotlivým ramenám. Hodnoty budú nasledovné: RBF1 -1m v osi Y, RBF2 1m v osi Y,

RBF3 0.5m v osi X a RBF4 v osi X. Jednotlivé kĺby majú rotačnú os nastavenú nasledovne: R1 [0,0,1] a R2 [0,1,0]. Takto nastavené hodnoty rámov a kĺbov budú reprezentovať mechanické rameno. Pre prehľadnosť modelu je vhodné vytvoriť subsystémy, podľa postupu v predchádzajúcej kapitole. Obr. 17 zobrazuje model s použitím subsystémov.

obr. 17 Komponenty mechanického ramena zoradené v subsystémoch

Takto pripravenému modelu môžeme nastaviť jednotlivé hodnoty signálov, pre docielenie požadovaného pohybu. Povedzme, že chceme trajektóriu napríklad „obráteného prehnutého trojuholníku“. V tomto prípade budeme potrebovať, aby sa rameno pootočilo o - 90° po osi X a v priebehu tohto pohybu zdvíhalo druhé rameno na úroveň 45° po osi Y. Ďalší pohyb bude pozostávať z horizontálneho presunu ramena o 180°(os X). Tretí, a zároveň posledný pohyb opäť bude pozostávať zo súčasného horizontálneho posunu o -90° (os X) a vertikálneho posunu o -45°(os Y). Tieto parametre a ich načasovanie je potrebné zadať do blokov vysielajúce signály pre daný pohyb. Konkrétne do komponentov Ramp.

44

6.2.1. Nastavenia komponentu Ramp

Komponent Ramp, slúži na vytvorenie reálneho lineárne stúpajúceho signálu do požadovaných hodnôt. Na obr. 18 je zobrazený postup signálu a názov hodnôt podľa ktorých sa komponent riadi a vysiela signál.

Komponent Ramp začína od offset (odchýlka). Pomocou tejto hodnoty je možné nastaviť napríklad počiatočné odchýlenie ramena pod určitým uhlom. Prednastavená hodnota je rovná 0.

Starttime (t0), určuje v akom čase má komponent začať vysielať signál. Prednastavená hodnota je rovná 0. Height je vrchol signálu. Prednastavená hodnota je rovná 1. Zmenou tejto

obr. 18 Komponent Ramp hodnoty možno nastaviť uhol, ktorý chceme s objektom docieliť.

A duration (tr) predstavuje čas, za ktorý chceme dosiahnuť požadovaný vrchol. Prednastavená hodnota je rovná 2. Matematické vyjadrenie komponentu Ramp je znázornené nasledujúcou rovnicou. [15]

obr. 19 Rovnica komponentu Ramp [15]

Po kliknutí na komponent Ramp možno nastaviť jednotlivé hodnoty v sekcii panelu parametrov.

45

6.2.2. Simulácia základného mechanického ramena

Pre našu simuláciu modelu a docielenie vyššie popísaných pohybov nastavíme jednotlivé hodnoty komponentu Ramp nasledovne: R3 (height=π/4, tr=2s, offset=0, t0=0s), R4 (height=-π/4, tr=2s, offset=0, t0=6s), R5 (height=-π/2, tr=2s, offset=0, t0=0s), 5 R6 (height=π, tr=4s, offset=0, t0=2s), R7 (height=-π/2, tr=2s, offset=0, t0=6s). Model simulácie je týmto nastavený. Pre vykreslenie trajektórie pohybu, možno na koniec ramena pripevniť Path Trace. (Multibody/Visualization/Path Trace). Na obr. 20 je zobrazené mechanické rameno v pohybe (pomocou 3 obrázkov rozdielnych polôh ramena) spolu s vykreslenou trajektóriou pohybu.

obr. 20 3D zobrazenie základného mechanického ramena s trajektóriou pohybu

Na nasledujúcom obrázku uvádzam grafy, ktoré vznikli pripojením sondy Probe na Revolute. Grafy vykresľujú uhol ramien, cez ktoré prechádzali počas trvania simulácie. Probe1 je pripojená na R1 a Probe2 na R2.

obr. 21 Grafy uhlov základného mechanického ramena

5 Pre vloženie znamienka π je potrebné v systéme MapleSim napísať „pi“ a následne použiť klávesovú skratku ctrl+space.

46

V tejto kapitole som predviedol, ako vytvoriť základné mechanické rameno, a ako nastaviť komponent Ramp určujúci horizontálny a vertikálny pohyb ramena. Tento postup je možné brať, ako základ od ktorého som rozvíjal nasledujúci príklad. V ďalšej kapitole popíšem postup, ako som vytvoril model pokročilej robotickej ruky.

7 Robotická ruka

V tejto kapitole rozvediem, ako som postupoval pri vytvorení robotickej ruky, ktorá umožňuje 6 osový pohyb a priestorový pohyb po rovine XZ. Pochopenie predchádzajúcich príkladov mi bolo základom, od ktorého som sa odvíjal a porozumel práci v systéme MapleSim. Vďaka tomuto porozumeniu, som mohol svojpomocne vytvoriť nasledujúcu robotickú ruku. Pre grafickú časť som pôvodne použil základnú grafiku ponúknutú systémom, ale neskôr som sa rozhodol pre použitie externej CAD grafiky. Skombinovaním simulácie pohybu a CAD grafiky som dosiahol reálneho vzhľadu a správania sa modelu, ktorému môže byť nastavená ľubovoľná trajektória pohybu. Tento model poskytuje široké možnosti využitia. Môže byť na ňom nasimulovaný pohyb a správanie sa robotickej ruky, a následne sa môžu tieto vlastnosti previesť do reálneho systému. Napríklad sa týmto spôsobom môže nastaviť robot, ktorý je využitý v automobilových priemysloch k zváraniu alebo lakovaniu karosérií a tým predísť prípadným škodám zle nastavenej robotickej ruky. V nasledujúcich podkapitolách uvediem postup, pomocou ktorého je možné vytvoriť daného robota. Model samozrejme umožňuje naďalej ho vylepšovať, prípadne po malých úpravách meniť jeho spôsob využitia.

Na obr. 22 je zobrazený nákres, podľa ktorého som model odvíjal a určil mu osi pohybu.

47

obr. 22 Nákres robotickej ruky [16]

7.1. Komponenty modelu a schémy ich prepojenia

Na vytvorenie modelu robotickej ruky bolo použité značné množstvo komponentov. Veľa krát som mal problém určiť, ktorý komponent bude najvhodnejší pre riešenie určitého problému. Skúšaním, testovaním a štúdiom manuálov jednotlivých komponentov som sa rozhodol použiť súčiastky, ktoré uvediem v nasledujúcom zozname.

 Multibody/Bodies and Frames/Fixed Frame (2x)

 Multibody/Bodies and Frames/Rigid Body (10x)

 Multibody/Bodies and Frames/ Rigid Body Frame (33x)

 Multibody/Joints and Motions/ Revolute (6x)

 1-D Mechanical/Rotional/Motion Drivers/Rotational Position (8x)

 Signal Blocks/Mathematical/Operators/Add (9x)

 Signal Blocks/Mathematical/Operators/Add 3 (3x)

 Sources/Real/Ramp (23x)

 Multibody/Visualization/CAD Geometry (10x)

 Multibody/Joints and Motions/Prismatic (2x)

48

 Multibody/Visualization/Path Trace

Z uvedených komponentov som vytvoril kostru, grafiku a ovládanie robotickej ruky. Na nasledujúcom obrázku je možné vidieť ako sú jednotlivé komponenty poprepájané. Obrázok má skôr informatívny charakter, pretože v takomto rozložení je schéma modelu veľmi neprehľadná. Obrázok (obr. 22) slúži skôr na predstavu o kompletnej veľkosti schémy, bez použitia subsystémov.

obr. 23 Kompletná schéma modelu robotickej ruky bez použitia subsystémov

49

Pre prehľadnosť modelu som použil subsystémy. Tie som rozdelil podľa zamerania. Vytvoril som subsystémy určené na ovládanie pohybu, subsystémy jednotlivých častí modelu a subsystém karosérie. Na nasledujúcom obrázku (obr.23) možno vidieť schému modelu so zvýšenou prehľadnosťou pomocou týchto subsystémov.

obr. 24 Schéma modelu robotickej ruky s použitím subsystémov

50

7.1.1. Prehľad subsystémov robotickej ruky

Nasleduje prehľad obsahu jednotlivých subsystémov robotickej ruky. Tento prehľad umožní detailnejší náhľad na prepojenie jednotlivých komponentov a ovládanie pohybu konkrétnych ramien modelu. Najskôr uvediem subsystémy tvoriace jednotlivé časti robotickej ruky a pohyb v rovine XZ, a následne riadiace subsystémy zaisťujúce samotné pohyby jednotlivých ramien a ich načasovanie.

Subsystém pohybXZ, slúži na kontrolu ovládania pohybu po rovine XZ. Pripojenie a1 je spojené s uzemnením Fixed Frame

a pripojenie b1 je prepojené RBF1. Komponenty R10 a R2 vysielajú načasovaný signál určujúcu dĺžku trajektórie po ose X a pre os Z je signál vysielaný z R1 a R11. Pohyb

obr. 25 subsystém pohybXZ zaručujú komponenty Prismatic.

Subsystém zakladna1 cez výstup F3 je pripojený ku

komponentu R3, na ktorý je napojený

subsystém Riadenie1, pomocou ktorého je modelu zaistený pohyb AXIS1 zobrazený na obr. 22. Výstup F4 je

pripojený k RBF2.

obr. 26 subsystém zakladna1 51

Subsystém rameno1, rameno určené k pohybu AXIS2 (obr.22). Do pohybu sa dostáva

za pomoci subsystému riadenie2, ku ktorému je pripojený cez konektor b1. Konektor F1 je pripojenie k subsystému

rameno2. Výstup a1 je napojený na RBF3. obr. 27 Subsystém rameno1

obr. 28 Subsystém rameno2

Subsystém rameno2, predstavuje rameno umožňujúce kombináciu vertikálneho a rotačného pohybu. Podľa obr.22 sa jedná o pohyby AXIS3 a AXIS4. Cez výstup a1 je pripojený k subsystému rameno1 a cez F5 k subsystému rameno3.Jednotlivé pohyby sú zaistené a načasované riadiacimi subsystémami Riadenie3 (pripojené cez b1) a Riadenierotacie1(pripojené cez F7).

52

obr. 29 Subsystém rameno3

Subsystém rameno3, reprezentujúci posledné rameno, ktoré taktiež umožňuje vertikálny a rotačný pohyb. Podľa obr.22 ide o pohyb AXIS5 a AXIS6. Riadenie a načasovanie pohybov je zaistené vďaka subsystémom Riadenie4 (pripojené cez b1) a Riadenierotacie2

(pripojené cez F9). Výstup a1 je pripojený k subsystému rameno2. Ku koncu tohto ramena je pripojený komponent Path Trace ktorý umožňuje vykresliť trajektóriu pohybu.

Nasledujúce subsystémy zaisťujú samotné pohyby jednotlivých ramien a základne a ich načasovanie. Pohyb je zabezpečený pomocou komponentu Rotational Position.

Trojica zdrojov signálu (Ramp) vysielajúca z tohto subsystému zabezpečuje rotačný pohyb základne robota. Subsystém je pripojený ku komponentu R3, ktorý predstavuje kĺb na ktorom sa celý robot otáča. Pohyb je zabezpečený

pomocou komponentu P1. Jedná sa o pohyb AXIS1.

obr. 30 Subsystém Riadenie1 53

V tomto subsystéme taktiež trojica zdrojov signálu určuje správanie sa pohybu ramena. Pripojený je na

subsystém rameno1. Toto rameno umožňuje vertikálny pohyb. Ide o pohyb AXIS2. Súčet vstupných signálov je ako v predchádzajúcom subsystéme spracovaný skrz komponent Add3.

obr. 31 Subsystém Riadenie2

obr. 32 Subsystémy Riadenie3 a Riadenierotacie1

Dvojica subsystémov Riadenie3 (vľavo) a Riadenierotacie1 (vpravo) zabezpečujúca vertikálny a rotačný pohyb druhého ramena. Pri pretočení ramena o 90°možno docieliť horizontálny pohyb. Oba sú pripojené k subsystému rameno2. Poskytujú ovládanie pohybu AXIS3 a AXIS4.

54

obr. 33 Subsystémy Riadenie4 a Riadenierotacie2

Dvojica subsystémov Riadenie4 (vľavo) a Riadenierotacie2 (vpravo) ovládajú vertikálny a rotačný pohyb tretieho ramena. Taktiež pri pretočení ramena o 90° možno docieliť horizontálny pohyb. Oba sú pripojené k subsystému rameno3. Poskytujú ovládanie pohybu AXIS5 a AXIS6.

Subsystém karoséria nemá žiadny špeciálny vplyv na správanie sa modelu. Ide o pridanie CAD grafického modelu karosérie vozidla do 3D simulácie, aby názorný príklad práce robotickej ruky pôsobil reálnejším dojmom. Grafický model bol prevzatý z nesledujúcej stránky: grabcad.com/library/chassis-for-buggy-or-speedster .

Cieľom tohto prehľadu jednotlivých subsystémov bolo umožniť detailnejší a prehľadnejší náhľad, akým spôsobom som prepojil komponenty a vytvoril danú robotickú ruku, a ktoré subsystémy slúžia na riadenie jednotlivých pohybov. Nastavenie komponentu Ramp a spôsob určenia jednotlivých pohybov som uviedol v kapitole 6.2.1. Nastavenie veľkosti, orientácie a prepojenie komponentov Rigid Body Frame bolo taktiež predvedené na predchádzajúcich jednoduchých príkladoch. Pokladám za zbytočné, vypísať všetky presné hodnoty každého jedného komponentu, ktorý som použil. Tieto konkrétne hodnoty je možné zhliadnuť v priloženom súbore roboticka_ruka.msim, po jeho spustení v systéme MapleSim.

55

7.2. Dizajn modelu so základnou grafikou

Systém MapleSim poskytuje možnosť použitia systémovej alebo externej CAD grafiky. Výber typu grafiky sa určí v knižnici komponentov Multibody/Visualization. Základná systémová grafika poskytuje nasledujúce grafické prvky:

 Box Geometry

 Cylinrical Geometry

 Spherical Geometry

 Tapered Cylinder Geometry

 Spring Geometry

Pomocou uvedených prvkov sa dá dosiahnuť grafická podoba modelu v 3D vizualizácii na základnej úrovni. Jednotlivé prvky sa priradia komponentom ktoré chceme mať v 3D vizualizácii reprezentované určitou grafickou podobou. Túto grafiku som povodne použil na model robotickej ruky. Na nasledujúcom obrázku (obr.34) vidieť, aké výsledky možno dosiahnuť použitím tejto základnej systémovej grafiky.

obr. 34 3D vizualizácia robotickej ruky s použitím základnej grafiky

56

S dosiahnutým výsledkom použitej základnej grafiky som nebol spokojný, a preto som sa rozhodol využiť druhú možnosť, ktorou je použitie externej CAD grafiky, pomocou ktorej sa dajú dosiahnuť modely, ktoré okrem reálneho správania ponúkajú aj reálny vzhľad.

7.2.1. CAD grafika

V tejto podkapitole stručne vysvetlím, ako sa externá CAD grafika priradí k modelu. K pripojeniu takejto grafiky je potrebné do knižnice pridať externé súbory, ktoré danú grafiku v sebe obsahujú. Tieto súbory musia byt vo formáte *.stl. Súbory pripojíme do modelu nasledovne.

V panely komponentov vyberieme záložku Project, v ponuke Attachment pravým kliknutím na CAD Images vyberieme stl súbor z disku a pripojíme ho k projektu. Týmto spôsobom je externá grafika pripravená k použitiu. K modelu ju pripojíme nasledujúcim spôsobom. V knižnici komponentov Multibody/Visualization vyberieme prvok CAD Geometry. Ten pripojíme na komponent modelu, ktorému chceme externú grafiku priradiť. V paneli parametrov následne prvku priradíme grafiku, ktorú sme predtým nahrali do knižnice. Pomocou ponúkaných parametrov nastavíme uhol, polohu a farbu pripojenej 3D grafiky. Pri práci s touto grafikou bol občas problém správne ju pripojiť k modelu. Ale pri troche trpezlivosti sa dá grafika pripojiť k modelu s presnosťou milimetrov. Na nasledujúcom obrázku vidieť postup pripojenia CAD grafiky.

1. Pripojenie stl súboru z disku, 2. Pripojenie CAD Geometry do modelu, 3. Priradenie stl súboru do CAD Geometry, 4. Nastavenie orientácie, polohy a farby vloženej grafiky.

obr. 35 Pridanie CAD grafiky 57

7.3. Dizajn modelu s použitím CAD grafiky

Podľa predchádzajúceho návodu som do môjho modelu robotickej ruky popridával grafiku jednotlivých častí modelu. Jednotlivé *.stl súbory som získal výberom konkrétnych komponentov z vytvoreného grafického modelu v programe AutoCAD. Súbor roboticka_ruka_autocad_original.dwg je priložená k tejto práci. Tento grafický model bol povodne prevzatý z webovej stránky grabcad.com. Stránka je združením komunity ľudí, ponúkajúcich obrovské množstvá grafických modelov, vytvorených v najrôznejších modelovacích grafických programoch. Konkrétne mnou použitý grafický model vytvoril Ing. Bouwkunde (http://grabcad.com/a3ncad/about) v programe AutoCAD. Za pomoci programu AutoCAD, som vybral žiadané časti z grafického modelu a následne ich prekonvertoval na jednotlivé *.stl súbory, aby boli podporované systémom MapleSim. Tie som potom pripojil ku kostre modelu. Na nasledujúcich obrázkoch je zobrazená 3D vizualizácia modelu bez použitej grafiky (kostra modelu) a s ňou.

obr. 36 Kostra modelu robotickej ruky

58

Na obr. 36 je zobrazená 3D kostra modelu robotickej ruky bez grafického doplnenia. Na nasledujúcom obrázku (obr. 37) bola kostre pridaná CAD grafika a je možné vidieť konečnú úpravu vytvoreného modelu.

obr. 37 CAD grafika modelu robotickej ruky

7.4. Simulácia pohybu robotickej ruky

Model poskytuje 6 osí pohybu, ako bolo zobrazené na obr. 22, plus posun po rovine XZ. Ovládanie jednotlivých pohybov je zaistené pomocou riadiacich subsystémov v ktorých sú zdroje signálov (Ramp). Modelu sa tým pádom dá nastaviť ľubovoľná trajektória pohybu. Na ukážku som vytvoril 15s pohyb, pri ktorom sa vykonáva určité opracovanie karosérie vozidla. Tento pohyb je možné zhliadnuť na priloženom videu alebo po načítaní súboru roboticka_ruka.msim systémom MapleSim a spustením simulácie. Na ukážku uvediem obrázok zložený zo šiestich fáz tohto pohybu s vyznačenou trajektóriou, po ktorej sa koniec ramena posúva a sekundu v ktorej bol snímok vytvorený.

59

obr. 38 3D vizualizácia modelu robotickej ruky s vyznačenou trajektóriou pohybu

Pridaním sondy (Probe) na jednotlivé kĺby ramien (Revolute), je možné pomocou vygenerovaného grafu sledovať vysielanie signálu zo subsystémov v jednotlivých fázach pohybu. Tieto grafy uvediem na nasledujúcom obrázku. Priradenie grafu ku určitému pohybu je možné rozoznať, podľa názvu uvedenom vo vrchnej časti grafu.

60

obr. 39 Grafy pohybu robotickej ruky

61

7.5. Modelica kód

Ako bolo spomenuté v kapitole 5.2.1 systém MapleSim je postavený na otvorenom štandarde Modelica, modelovacom jazyku pre popis fyzických modelov a komponentov. V MapleSim pribudlo zobrazenie, ktoré okamžite zobrazí príslušný Modelica kód, pre akýkoľvek podsystém alebo komponent. Pre mnou vytvorenú robotickú ruku je tento kód približne o veľkosti 70 000 znakov (pri zapnutých annotations). Na nasledujúcom obrázku je zvýraznené tlačidlo na navigačnej lište pre vypísanie toho kódu a náhľad na tento vygenerovaný kód.

obr. 40 Náhľad na Modelica kód robotickej ruky

62

8 Záver

Cieľom mojej diplomovej práce bolo spraviť prieskum v oblasti súčasného stavu informačných a komunikačných technológií určených na modelovanie a simulácie v praxi. Z prieskumu som vybral vhodnú ICT, konkrétne systém Maple a jeho nadstavbu MapleSim, ktorú som preskúmal a popísal jej vlastnosti. Práca bola viac zameraná na nadstavbu MapleSim, kvôli tomu, že som za jej pomoci riešil konkrétny problém. Ten bol vyriešený na základe počítačovej simulácie a poskytol som analýzu postupu, ktorým som dospel k vyriešeniu daného problému.

V úvodnej kapitole som sa zameral na objasnenie pojmov z oblasti teórie simulácie a modelovania. Bližšie som vysvetlil pojmy z oblasti simulácie a jej využitia v reálnom svete. V druhej kapitole som sa venoval systému počítačovej algebry, kde som vytvoril zoznam dostupných softvérov pracujúcich na tomto systéme. Dospel som k tomu, že vytvorený zoznam je prínosný pri výbere softvéru pre riešenie potenciálneho problému. Na riešenie mnou vybraného problému som sa rozhodol použiť systém Maple, konkrétne jeho nadstavbu MapleSim. V štvrtej kapitole som predstavil Maple a jeho nové možnosti využitia. V nasledujúcej časti som sa podrobne venoval nadstavbe modelovaciemu a simulačnému nástroju MapleSim. Pomocou tohto programu som predviedol ukážkové príklady, ktoré viedli k pochopeniu spôsobu práce a tvorbe simulácií na danom systéme. V poslednej siedmej kapitole som sa venoval k riešeniu konkrétneho problému z praxe. Vytvoril som simuláciu robotickej ruky, ktorá má rozsiahle možnosti uplatnenia v reálnom svete. V práci som popísal postup, ako bol problém vyriešený.

Prínosom práce je uľahčiť výber modelovacieho a simulačného nástroju na riešenie potenciálneho problému. V prípade rozhodnutia sa pre systém MapleSim, nadstavbu systému Maple, som vysvetlil postup, pomocou ktorého je možné zvládnuť základy práce s týmto softvérom, od ktorého je možné odvíjať väčšie projekty. Vďaka porozumeniu základov, som sa rozhodol vyriešiť problém vytvorenia simulácie robotickej ruky. Mnou vytvorený model robotickej ruky, ktorý podporuje 6 osový pohyb a priestorový pohyb po rovine XZ má široké možnosti uplatnenia. Môže byť na ňom nasimulovaný určitý pohyb a správanie sa, a následne tieto vlastnosti možno previesť do reálneho systému. Po menších úpravách na ňom, môže byť nastavená simulácia využiteľná v automobilovom priemysle (zváranie, lakovanie karosérie), 63

elektrotechnickom priemysle (spájkovanie elektrických obvodov), drevárskom priemysle, pásovej výrobe, medicíne, a podobne.

64

9 Zoznam bibliografických odkazov

[1] ROBINSON, S. : Simulation: The Practice of Model Development and

Use. West Sussex, England: John Wiley & Sons Ltd, 2004, 316s. ISBN 0-470-84772-7

[2] FRITZSON, P. : Introduction to Modeling and Simulation of Technical and Physical Systems with Modelica. New Jersey, United States: John Wiley & Sons, Inc., 2011, 211s. ISBN 978-1-118-09424-2

[3] CHOVANEC, A.: Modelovanie a simulácia diskrétnych stochastických procesov. Trenčianska Univerzita Alexandra Dubčeka v Trenčíne, Trenčín 2004, 125s. ISBN 80-8075-009-2

[4] KÖRTESI, P. : Počítačové algebrické systémy [online], 2008, [2012-12- 11]. URL:

[5] KRASLANOVÁ, I. : Využitie matematického softvéru Derive vo vyučovaní goniometrie na stredných školách [online],2005,[2012-12-11]. URL:

[6] HŘEBÍČEK J., KUBÁSEK M., KOHÚT L., MATYSKA L., TOKÁROVÁ L., URBÁNEK J. : Vědecké výpočty v matematické biologii. Brno: AKADEMICKÉ NAKLADATELSTVÝ CERM, s.r.o., 2012, 117s. ISBN 978-80-7204-781-9

[7] MAPLESOFT [online]. MAPLE, 2012, [2012-04-12]. URL:

[8] URBÁNEK, J. : Matematika s programem Maple, Masarykova Univerzita, Brno, 2012, 199s.

65

[9] MAPLESOFT [online]. MAPLESIM, 2012, [2012-10-12]. URL:

[10] MAPLESOFT [online]. MapleSim User`s Guide. Canada, 2012, 236s. ISBN 978-1-926902-32-6, [2012-10-12]. URL:

[11] FMI STANDART [online]. Functional Mock-up Interface. 2012, [2012- 12-12]. URL:

[12] MAPLESOFT [online]. What`s New in MapleSim 6, 2012, [2012-12- 12].URL:

[13] MAPLESOFT [online]. The MapleSoft Window, 2012, [2012-12-12]. URL:

[14] CHEGG [online]. Method of Relative Velocity, 2012, [2012-18-12], URL:

[15] MAPLESOFT [online]. OnlineHelp-Ramp, 2012, [2012-19-12]. URL:

[16] SCHULZE K. [online]. Fanuc-430 robot, 2013,[2012-13-12].URL:

[17] MAPLESOFT [online]. Maple 16 – Systémové požiadavky, 2012, [2012- 25-12].URL:

[18] MAPLESOFT [online]. Novinky v Maple 16, 2012, [2012-25-12].URL:

66

[19] BANKS, J. : Handbook of Simulation: Principles, Methodology, Advances, Applications, and Practice. New York,USA: John Wiley & Sons, Inc., 1998, 864s. ISBN 0-471-13403-1

[20] SOFTMATH [online]. Algebrator, 2012, [2012-11-11]. URL:

[21] DALY, T. [online]. Axiom – The Scientific Computation System, 2010, [2012-5-11]. URL:

[22] PEETERS, K. [online]. What is Cadabra, 2012, [2012-6-11]. URL:

[23] BIGATTI, A. [online]. What is CoCoA, 2011, [2012-6-11]. URL:

[24] LEWIS, R. [online]. Fermat A Computer Algebra System for Polynomial and Matrix Computation, 2012, [2012-8-11]. URL:

[25] RIOBOO, R., LAMPORT L. [online]. FriCAS – an advanced computer algebra system, 2012, [2012-11-8]. URL:

[26] GAMS [online]. The GAMS system, 2012, [2012-11-11]. URL:

[27] GAP GROUP [online]. What is GAP, 2012, [2012-8-11]. URL:

[28] BAUER, Ch., FRINK, A., KISIL, V., KROCKEL, R., SHEPLYAKOV, A., VOLLINGA, J. [online]. About GiNaC, 2011, [2012-15-11], URL:

[29] MATHMONKEYS [online]. LiveMath Maker, 2012 [2012-15-11], URL:

[30] GRAYSON, D., STILLMAN, M., EISENBUD, D. [online]. Macaulay 2, 2010, [2012-5-11], URL: 67

[31] UNIVERSITY OF SYDNEY [online]. Magma Computational Algebra System, 2012, [2012-15-11], URL:

[32] PTC [online]. About Mathcad, 2012, [2012-15-11], URL:

[33] WOLFRAM [online]. What Is Mathematica, 2012, [2012-23-11], URL:

[34] GESSLEIN, G. [online]. Welcome to The World of Mathomatic, 2012, [2012-23-11], URL:

[35] MATHEORKS [online]. Matlab overview, 2012, [2012-23-11], URL:

[36] BESHENOV, L. [online]. Maxima, a Computer Algebra System, 2012, [2012-23-11], URL:

[37] COHEN, H., BALABAS, K. [online]. PARI/GP development center, 2012, [2012-23-11], URL:

[38] HEARN, A. [online]. Reduce, 2012, [2012-23-11], URL:

[39] STEIN, W., SCHILLY, H., NGUYER, M. [online]. Sage Feature Tour, 2012, [2012-24-11], URL:

[40] DECKER, W., GREUEL, G., PFISTER, G., SCHÖNEMANN, H. [online]. Singular, 2012, [2012-24-11], URL:

[41] SMATH [online]. SMath Studio, 2009, [2012-24-11], URL:

[42] SYMPY [online]. About SymPy, 2012, [2012-24-11], URL:

68

[43] PARISSE, B., GRAEVE, R. [online], Presentation of Xcas, the swiss knife for mathematics, 2012, [2012-24-11], URL:

[44] PINKUS, A. [online], Introduction to Yacas: tutorial and examples, 2012, [2012-24-11], URL:

69