Professional Documents
Culture Documents
STROJNÍCKA FAKULTA
Bakalárska práca
SjF-13432-57863
Juraj Janík
Poďakovanie
Úvod ............................................................................................................................7
1 Nelineárne mechatronické systémy ......................................................................8
1.1 Kyvadlo na vozíku ...........................................................................................9
1.2 Pendubot ...........................................................................................................9
1.3 Rotačné kyvadlo .............................................................................................10
1.4 Dvojité kyvadlo ..............................................................................................11
1.5 Inverzné kyvadlá v praxi ..............................................................................11
1.5.1 Dopravný prostriedok SEGWAY ..........................................................11
1.5.2 Raketa .......................................................................................................12
2 SimMechanics ........................................................................................................13
2.1 Prehľad blokov v SimMechanics ..................................................................13
2.1.1Bodies (telesá) ...........................................................................................13
2.1.2 Constraints & drivers (obmedzenia a ovládače) ..................................14
2.1.3 Force elements (silové prvky) ................................................................15
2.1.4 Joints (väzby) ...........................................................................................15
2.1.5 Sensors & Actuators (senzory a akčné členy) .......................................17
2.1.6 Interface elements (prvky rozhrania) ....................................................18
2.1.7 Utilities (pomocné prvky) ......................................................................18
2.2 Postup pri modelovaní ..................................................................................18
3 Tvorba modelu kyvadla .......................................................................................20
3.1 SimMechanics model .....................................................................................22
3.2 Analytický model ...........................................................................................29
3.3 Linearizácia modelov.....................................................................................33
3.4 Porovnanie modelov ......................................................................................37
Záver..........................................................................................................................42
Bibliografické odkazy .............................................................................................43
6
Úvod
7
1 Nelineárne mechatronické systémy
8
1.1 Kyvadlo na vozíku
1.2 Pendubot
9
Obr. 3 Pendubot
10
1.4 Dvojité kyvadlo
11
jazdy. Segway možno prirovnať k systému kyvadlo na vozíku (1.1) s tým, že na
rozdiel od tohto kyvadla, ktoré sa pohybuje len v jednej osi, segway riadi pohyb
aj do strán.
1.5.2 Raketa
12
2 SimMechanics
2.1.1Bodies (telesá)
13
Obr. 8 Bodies
14
Obr. 9 Constraints and Drivers
Body Spring & Damper (pružina a tlmič telesa): modeluje silu tlmenia
a lineárneho oscilátora medzi dvomi telesami.[2]
Joint Spring & Damper (pružina a tlmič vo väzbe): sila alebo moment tlmenia
a lineárneho oscilátora v posuvnej alebo rotačnej väzbe.[2]
16
Obr. 12 Disassembled joints
Bloky Sensors (Body Sensor, Joint Sensor, Constraint and Driver Sensor)
umožňujú snímanie stavových veličín z niektorých iných blokov a bloky
Actuators (Body Actuator, Joint Actuator, Driver Actuator) naopak pôsobia silou
alebo momentom na telesá alebo väzby. Joint Stiction Actuator slúži na
simuláciu trenia vo väzbe.
Blok Joint Initial Condition slúži na nastavenie počiatočných podmienok
(polohy, rýchlosti, zrýchlenia) vo väzbe.
Blok Variable Mass and Inertia Actuator pripojený na teleso dokáže meniť
v závislosti na čase jeho hmotnosť a moment zotrvačnosti.
17
2.1.6 Interface elements (prvky rozhrania)
Obr. 16 Utilities
Pri modelovaní hlavne zložitejších systémov je dobré mať v tom určitý systém.
Odporúča sa postupovať podľa nasledovných bodov.
O akú sústavu ide?
Nie je to tak zbytočná otázka ako by sa mohlo na prvý pohľad zdať. Je dobré
si danú sústavu nakresliť, aby bolo naozaj jasné aká sústava sa bude modelovať.
18
Ak je treba namodelovať nejaký reálny systém, sústava sa musí zjednodušiť tak,
aby išlo o mechanickú úlohu a bolo ju možné modelovať nástrojom
SimMechanics. Častokrát sa to robí podvedome a automaticky. V modeloch sa
zanedbávajú niektoré faktory, ako napr. odpor vzduchu, niektoré druhy trenia,
uvažujeme o dokonale tuhých telesách a pod., treba si uvedomiť, že model sa
nikdy nebude správať úplne rovnako ako reálna sústava. Tieto rozdiely sa môžu
prejavovať najmä po dlhšom čase simulácie.
Bude možné sústavu modelovať v SimMechanics?
V SimMechanics možno riešiť klasické úlohy dynamiky, kinematiky alebo
statiky. Nie je možné riešiť problémy pružnosti a pevnosti. Ráta sa teda so
zidealizovanými podmienkami. Treba si uvedomiť koľko telies obsahuje daná
sústava a aké väzby medzi nimi sú. Podľa toho sa určí počet stupňov voľnosti.
Modelovanie telies, geometria
Do nového modelového súboru sa vložia telesá a definuje sa poloha ich
prípojných bodov. Je dobré používať relatívnu polohu bodov na jednom telese
k jednému bodu (Adjoining). Telesá sa potom prepoja väzbami joints. Otestuje
sa, či je možné spustiť simuláciu.
Bloky Constraints a Drivers
Ak je treba pridajú sa do modelu aj väzby typu Constraints a Drivers, ktorými
sa odoberú ďalšie stupne voľnosti. Otestuje sa, či model funguje aj teraz.
Ďalšie bloky
Pridajú sa ďalšie potrebné bloky na simuláciu budenia väzieb, snímanie
veličín, silové pôsobenie na telesá atď.
Zadanie podstatných parametrov
Doteraz sa pri modelovaní zadávali len parametre nevyhnutné pre spustenie
modelu (poloha dôležitých bodov telies) a keď sa po predchádzajúcich krokoch
overila správnosť modelu, môžu sa presne nadefinovať aj ostatné požadované
parametre podstatné pre výpočet dynamiky sústavy (poloha ťažísk telies,
hmotnosti telies a ich momenty zotrvačnosti vzhľadom k ťažisku).
19
Nástroj SimMechanics je teda veľmi vhodný prostriedok na modelovanie
jednoduchých, ale aj zložitejších mechanických systémov. Invertované kyvadlá
spomínané v prvej kapitole sa dajú v prostredí SimMechanics namodelovať
veľmi jednoducho, rýchlo a efektívne.
Model kyvadla bol vytvorený dvoma spôsobmi. Prvý využíva na získanie modelu
nástroj SimMechanics prostredia MATLAB. Druhým bolo vytvorenie modelu
kyvadla na základe pohybových rovníc. Toto je bežne zaužívaný spôsob, pri
ktorom sa z pohybových rovníc vyjadria najvyššie derivácie premenných,
charakterizujúcich jednotlivé stupne voľnosti, ktoré popisujú správanie systému.
V tomto prípade sú to uhlové zrýchlenia 𝜑 a 𝜃 . [6]
Systém je totožný pre oba prístupy:
Obr. 17 Pendubot
20
Z obrázku 14 vidieť, že uhly sú zvolené tak, že keď sú nulové, sústava je vo
vodorovnej polohe.
V oboch prípadoch bolo použité rovnaké značenie všetkých veličín
popisujúcich systém a taktiež rovnaké číselné hodnoty konštantných parametrov
sústavy:
Tabuľka 1 Konštantné parametre
Tabuľka 2 Premenné
21
3.1 SimMechanics model
Model pendubota bol zostavený ako vidieť na obrázku 15. Skladá sa z dvoch
blokov body, ktoré predstavujú rameno a kyvadlo pendubota. Ďalej boli použité
dva bloky Revolute, ktoré predstavujú kĺby medzi telesami a medzi ramenom
a nehybnou podložkou (blok Ground). Na blok Ground je pripojený blok
Machine environment, ktorý udáva okrem iného veľkosť a smer gravitačného
zrýchlenia. Počiatočné podmienky sú zadané pomocou blokov Initial condition.
Požadované veličiny boli snímané blokmi Joint Sensor, trenie je realizované
pomocou blokov Gain, ktoré ďalej vstupovali do blokov Joint Actuator, ktoré
pôsobia na kĺby. Do aktuátora ramena vstupuje zároveň aj budiaci moment 𝜏.
Spojenie signálov z trenia a momentu 𝜏 bolo realizované blokom Sum. Blok In
predstavuje vstupný vonkajší budiaci moment 𝜏, a výstupné veličiny (uhly
a uhlové rýchlosti) predstavujú štyri bloky Out.
22
Machine environment:
Ground:
Tento blok definuje súradnice nepohyblivého bodu, teda rámu sústavy. V tomto
prípade sú zadané súradnice [0 0 0], Na tento blok sa priamo napája blok, ktorý
23
predstavuje kĺb ramena, a teda začiaok súradnicovej sústavy je v tomto kĺbe, a
ten je nepohyblivý.
Revolute:
Obr. 20 Revolute
Blok Revolute predstavuje rotačnú väzbu, v tomto prípade kĺb ramena a aj kĺb
kyvadla. Oba bloky majú aj rovnaké nastavenia. Nastavuje sa tu os, okolo ktorej
bude umožnená rotácia , v tomto prípade okolo osi z vzhľadom na nehybný rám,
teda world. Ďalej bolo nastavené koľko portov na spojenie so senzormi
a aktuátormi sa má vytvoriť. V tomto prípade 3 (dva základne porty na
pripojenie samotných telies base a follower sa nerátajú).
24
Body:
Obr. 21 Body
25
Position Vector). Udávané sú v metroch (Units). Súradnice sú merané vzhľadom
na komponent napojený na tento bod, čiže kĺb ramena (možnosť Adjoining).
Ďalej je zaškrtnuté, že má byť viditeľný port pre tento bod (Show port) a že má
byť na ľavej strane bloku.
Ťažisko CG má súradnice [lg1 0 0], ale teraz vzhľadom na bod CS1. (možnosť
CS1) Vzdialenosť ťažiska od kĺbu je na mieste x-ovej súradnice, teda rameno
bude naozaj umiestnené vodorovne. Port pre ťažisko nie je potrebný, keďže naň
nie je napojený žiadny ďalší komponent. Obdobne boli nastavené súradnice pre
bod CS2, ktorý predstavuje koncový bod ramena, kde sa napája druhý kĺb. Port
pre tento bod je zviditeľnený a nastavený vpravo.
Obdobne bol nastavený aj druhý blok body ktorý predstavuje kyvadlo, s tým,
že už ani na koncový bod kyvadla CS2 nie je nič napojené, a preto nie je
zobrazený príslušný port.
Joint Sensor:
26
Blok Joint Sensor slúži na zaznamenávanie daných stavových veličín. V tomto
prípade boli použité dva bloky Joint Sensor, každý napojený na jeden
z rotačných kĺbov (bloky Revolute). Merať sa budú uhly a uhlové rýchlosti.
V nastaveniach sú teda zaškrtnuté možnosti Angle (uhol) a Angular velocity
(uhlová rýchlosť). Zvolené sú tiež jednotky, rad pre uhol a rad/s pre uhlovú
rýchlosť. Z blokov Joint Sensor teda vystupujú dva signály, ktoré sú vlastne
výstupné údaje modelu, a preto vystupujú do blokov Out. Signály možno spojiť
tiež s blokom Scope, aby mohli byť sledované priebehy daných veličín.
Joint Actuator:
V týchto blokoch sú v podstate ponechané všetky prednastavené nastavenia.
Do blokov vstupujú signály o veľkosti momentov (v prípade bloku pre rameno
je to suma vonkajšieho budiaceho momentu 𝜏 a trecieho momentu, v prípade
27
bloku prislúchajúcemu kyvadlu je to len trecí moment), a tie ich posielajú ďalej
do rotačných väzieb ako budiace momenty.
Gain:
Bloky Gain sú štandardné bloky knižnice Simulinku, v modeli ich využívame
na prenásobenie uhlových rýchlostí koeficientmi trenia v kĺboch Br a Bk.
Z blokov teda vystupujú tlmiace momenty, ktoré sú pridané do väzieb. Keďže
momenty pôsobia opačným smerom ako je pohyb telies pripojených na kĺby,
v blokoch Gain sú zadané koeficienty Br a B k so záporným znamienkom.
Obr. 24 Vizualizácia
28
3.2 Analytický model
𝑑 𝜕𝐿 𝜕𝐿
− = 𝑄𝑖
𝑑𝑡 𝜕𝑞𝑖 𝜕𝑞𝑖 (1)
𝑑 𝜕𝐿 𝜕𝐿
− =𝜏
𝑑𝑡 𝜕𝜑 𝜕𝜑 (2)
𝑑 𝜕𝐿 𝜕𝐿
− =0
𝑑𝑡 𝜕𝜃 𝜕𝜃 (3)
𝐿 = 𝐾1 +𝐾2 − 𝑃1 +𝑃2
(4)
1
𝐾1 = 𝐼1 + 𝑚1 𝑙𝑔1 2 𝜑2 (5)
2
29
Pre kinetickú energiu kyvadla platí:
1
𝐾2 = 𝐼2 +𝑚2 𝑙1 𝑙𝑔2 cos 𝜃 + 𝑚2 𝑙𝑔2 2 + 𝑚2 𝑙1 2 𝜑2
2
+ 𝐼2 + 𝑚2 𝑙1 𝑙𝑔2 cos 𝜃 + 𝑚2 𝑙𝑔2 2 𝜑𝜃
(6)
1
+ 𝐼2 + 𝑚2 𝑙𝑔2 2 𝜃 2
2
𝑃1 = 𝑚1 𝑔𝑙𝑔1 sin 𝜑
(7)
1
𝐿= (𝐼 +𝑚2 𝑙1 𝑙𝑔2 cos 𝜃 + 𝑚2 𝑙𝑔2 2 + 𝑚2 𝑙1 2 + 𝐼1
2 2
+ 𝑚1 𝑙𝑔1 2 )𝜑2 + (𝐼2 + 𝑚2 𝑙1 𝑙𝑔2 cos 𝜃 + 𝑚2 𝑙𝑔2 2 )𝜑𝜃
1 (9)
+ (𝐼2 + 𝑚2 𝑙𝑔2 2 )𝜃 2
2
− (𝑚1 𝑔𝑙𝑔1 + 𝑚2 𝑙1 𝑔 sin 𝜑 + 𝑚2 𝑙𝑔2 𝑔 sin 𝜑 + 𝜃
30
0 = 𝐵𝜃 + 𝐵 + 𝐶 cos 𝜃 𝜑 + 𝐶 sin 𝜃 𝜑2 + 𝐸𝑔 cos(𝜑 + 𝜃) (11)
𝐴 = 𝑚1 𝑙𝑔1 2 + 𝑚2 𝑙1 2 + 𝐼1 (12)
𝐵 = 𝑚2 𝑙𝑔2 2 + 𝐼2 (13)
𝐶 = 𝑚2 𝑙1 𝑙𝑔2 (14)
𝐷 = 𝑚1 𝑔𝑙𝑔1 + 𝑚2 𝑙1 (15)
𝐸 = 𝑚2 𝑙𝑔2 (16)
𝜏 − 𝐵𝑟 𝜑 = 𝐴 + 𝐵 + 2𝐶 cos 𝜃 𝜑 + 𝐵 + 𝐶 cos 𝜃 𝜃 −
𝐶 sin 𝜃 𝜃 2 − 2𝐶 sin 𝜃 𝜑𝜃 + 𝐷𝑔 cos 𝜑 + 𝐸𝑔 cos(𝜑 + 𝜃) (17)
31
𝑔 𝑐𝑜𝑠 𝜃 𝑐𝑜𝑠 𝜑 + 𝜃 𝐶 + 𝑔 𝑐𝑜𝑠 𝜑 + 𝜃 𝐴 𝐸 +
𝜃= …
𝑐𝑜𝑠 2 𝜃 𝐶 2
𝐵𝑘 𝜃 + 𝜏 − 𝐵𝑟 𝜑 𝐵 + 𝐵𝑘 𝜃 𝐴
+
𝑐𝑜𝑠 2 𝜃 𝐶 2 − 𝐴𝐵
Model bol zostavený pomocou blokov Fcn, Integrator, Mux, In, Out. Do
dvoch blokov Fcn s názvami Phidd a Thetadd boli zadané vyššie uvedené
32
rovnice (19) a (20). Z blokov teda vystupujú uhlové zrýchlenia 𝜑 a 𝜃 . Za nimi sú
umiestnené bloky integrator s názvami Phid a Thetad, ktoré hodnoty zrýchlení
zintegrujú a teda z blokov vychádzajú uhlové rýchlosti 𝜑 a 𝜃 , po ďalších
integráciách pomocou blokov Phi a Theta dostávame uhly 𝜑 a 𝜃. Uhly a uhlové
rýchlosti potom pomocou blokov Mux spolu s budiacim momentom 𝜏, ktorý
predstavuje vstupnú hodnotu (blok In) opäť vstupujú do blokov Phidd
a Thetadd. Tým sa vytvorí slučka a v týchto blokoch sa preto vždy počíta
s aktuálnymi hodnotami. Uhly a rýchlosti vstupujú tiež do blokov Out ako
výstupné hodnoty. Pre zobrazenie priebehov uhlov boli použité dva bloky
Scope.
Pre účely riadenia sa nelineárne modely linearizujú. Keďže v tomto prípade ale
ide o nelineárny systém, bude sa správať približne lineárne len v určitom malom
rozsahu polôh okolo daného bodu. V tomto prípade je to rovnovážny bod
𝜋
v nestabilnej zvislej polohe, čiže 𝜑 = (uhol má kladné hodnoty proti smeru
2
33
Pre SimMechanics model bol zadaný príkaz:
[A_sm,B_sm,C_sm,D_sm]=linmod('sm_model')
Na to, aby bol model linearizovaný v zvislej polohe bolo nutné ešte pred
použitím príkazu nastaviť počiatočné podmienky v blokoch Initial Condition do
𝜋
zvislej polohy, čiže 𝜑 = a 𝜑, 𝜃, 𝜃 = 0.
2
Výpis:
'sm_model/simmechanics_model/Revolute1:R1:Position'
'sm_model/simmechanics_model/Revolute:R1:Position'
'sm_model/simmechanics_model/Revolute1:R1:Velocity'
'sm_model/simmechanics_model/Revolute:R1:Velocity'
34
Vektor x(t) prislúchajúci k maticiam A_sm,B_sm,C_sm,D_sm je stĺpcový vektor a
má teda tvar: 𝑥 𝑡 = (𝜃, 𝜑, 𝜃 , 𝜑)𝑇 . Na základe toho bol zostavená stavová rovnica
v maticovom tvare:
𝜃 0 0 1 0 𝜃 0
𝜑 0 0 0 1 𝜑 0
= + (𝜏)
𝜃 47.3996 −23.0402 −0.4692 0.6363 𝜃 −79.5349 (23)
𝜑 −5.7779 22.5955 0.0795 −0.2563 𝜑 32.0368
[A_a,B_a,C_a,D_a]=linmod('a_model',[pi/2;0;0;0],0)
0 1 0 0
A_a = 22.5955 −0.2563 −5.7779 0.0795
0 0 0 1
−23.0402 0.6363 47.3996 −0.4692
0
B_a = 32.0368
0
−79.5349
1 0 0 0
C_a = 0 1 0 0
0 0 1 0
0 0 0 1
0
D_a = 0
0
0
Poradie prvkov vektoru x(t) prislúchajúceho k maticiam A_a,B_a,C_a,D_a
vyplýva z modelu a vektor má tvar: 𝑥 𝑡 = (𝜑, 𝜑, 𝜃, 𝜃 )𝑇 . Na základe toho bol
zostavená stavová rovnica v maticovom tvare:
35
𝜑 0 1 0 0 𝜑 0
𝜑 𝜑
= 22.5955 −0.2563 −5.7779 0.0795 + 32.0368 (𝜏) (24)
𝜃 0 0 0 1 𝜃 0
𝜃 −23.0402 0.6363 47.3996 −0.4692 𝜃 −79.5349
36
3.4 Porovnanie modelov
37
Obr. 27 Uhol ramena
38
Obr. 29 Uhol kyvadla
39
Modrou farbou sú zobrazené grafy zo SimMechanics modelu a červenou
farbou grafy z analytického modelu. Na prvom, druhom a štvrtom grafe je vidieť
len modrú krivku. Červená je ale v presnom zákryte pod ňou, preto je vidieť len
modrú krivku. Jedine v prípade tretieho grafu, ktorý ukazuje priebeh uhla medzi
ramenom a kyvadlom 𝜃, sa začnú krivky rozchádzať. Je to spôsobené tým, že
v SimMechanics modeli je blok Joint sensor, ktorý tento uhol meria len v rozsahu
od –π po π, preto funkcia uhla nie je spojitá a naopak analytický model ráta
s uhlom aj mimo týchto hraníc, teda funkcia je spojitá.
Aby bolo možné merať uhol na väčšom rozsahu aj v SimMechanics modeli, dá
sa vyrobiť viacotáčkový snímač pomocou bloku Continuous Angle ako je vidno
na obrázku 25. Blok je v knižnici SimMechanics v skupine Utilities.
40
Obr. 32 Priebeh spojitého uhla
Blok Continuous Angle bol použitý aj v pre uhol 𝜑 aj keď to v tomto prípade
nebolo nutné, keďže neboli namerané v priebehu uhla 𝜑 hodnoty za hranicami
intervalu [–π , π].
Po opätovnom porovnaní grafov z analytického modelu a SimMechanics
modelu s pridaným blokom Continuous Angle sa už všetky priebehy absolútne
zhodovali.
41
Záver
42
Bibliografické odkazy
[4] BLAHÚT, L. 2009. Aplikace matematických softwar při numerickém řešení úloh
mechaniky : bakalárska práca. Brno: Vysoké učení technické v Brně, 2009. 47 s
[6] SEMAN P., JUHÁS M. 2008. Modelling and LQ control of furuta pendulum,
Bratislava: 2008. 10 s
[8] <http://sk.wikipedia.org/wiki/Mechatronika>
[9] <http://aliensandthegang.blogspot.com/2010/11/segway.html>
43