Pingpongový míček
Petr Školník, Michal Menkina
TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií
Tento materiál vznikl v rámci projektu ESF CZ.1.07/2.2.00/07.0247 Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR
Pingpongový míček Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření
Cíl cvičení: Prvním úkolem cvičení je seznámit se s možnostmi nastavení bloku integrátor. Spolu s tím je vyzkoušena simulace systému, který je po částech spojitá a lineární, ale u kterého v určitých dobách dochází ke skokovým změnám.
Příklad: Úkolem je vytvořit simulační model pingpongového míčku, který dopadá na podložku a odráží se od ní dokud na ní nezůstane ležet. Výsledkem by pak měl být graficky znázorněný průběh polohy míčku, respektive jeho vzdálenosti nad podložkou v čase.
Pingpongový míček Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření
Řešení: Stejně jako v předchozí úloze je v první řadě nutno sestavit pohybovou rovnici padajícího míčku. Ta v případě že zanedbáme odpor vzduch je ve velmi jednoduchém tvaru.
y(t) g
Vytvoření simulačního modelu v Simulinku bude velmi jednoduché, jelikož bude tvořen pouze dvěma integrátory. Počáteční výšku ze které je míček vypuštěn pak můžeme nastavit ve druhém integrátoru, který má na výstupu Pad micku výchylku y(t). 10 8 6 4
1 y(t) g t 2 v(0) y(0) 2
y(t)
Výsledek je pak ve tvaru paraboly, jak je vidět na obrázku a což si můžeme ověřit analytickým řešením pohybové rovnice.
2 0 -2 -4 -6 -8 -10
0
0.2
0.4
0.6
0.8
1 t[s]
1.2
1.4
1.6
1.8
2
Pingpongový míček Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření
Řešení: V další části řešení je třeba se zamyslet jak budeme realizovat reakci podložky. To je samozřejmě možno realizovat hned několika způsoby. Nejdříve se budeme zabývat možností, kterou nám dává samotný blok integrátoru. Budeme předpokládat že při odrazu míčku dojde ke ztrátě části kinetické energie do podložky a zbývající část bude míček nést opačným směrem. To lze realizovat tak že v okamžiku, kdy bude poloha míčku nad podložkou nulová nebo záporná, tedy
y(t) 0
bude integrátor, na jehož výstupu je rychlost padajícího míčku vynulován a jako nová počáteční podmínka na něj bude přivedena rychlost dopadová vynásobená konstantou k.
1 k 0
To lze poměrně jednoduše realizovat, jelikož blok integrátoru má možnost nastavení počátečních podmínek na vnější a je také možno zvolit typ vnějšího resetu integrátoru. Ten se následně rozšíří o další dva vstupy (resetovací a počáteční podmínku).
Pingpongový míček Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření
Řešení:
y(t)
Pro vytvoření resetovacího signálu, který provede reset integrátoru při dopadu míčku na podložku, pak můžeme použít například bloku Relational Operator (Simulink/Math) na jeho výstupu je buď 0 nebo 1, podle toho zda je podmínka splněna nebo ne. Z obrázku je pak vidět, že po dopadu míčku na podložku se integrátor vynuloval, ale nedošlo k odrazu, jelikož nebyla správně nastavena počáteční podmínka. Můžeme si všimnout, že i Pad micku Matlab v hlavním okně upozorňuje na nalezení 10 algebraické smyčky. Určitá nelogičnost spočívá 8 v tom, že chceme na jako počáteční podmínku přivést právě vynulovaný signál (ten byl 6 vynulován v minulém kroku). Toto pak lze řešit 4 následujícími způsoby: • Přidáním paměti do algebraické smyčky
2
• Použitím State portu.
0 -2
0
0.5
1 t[s]
1.5
2
Pingpongový míček Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření
Řešení: •Přidáním paměti do algebraické smyčky Jedním poněkud nesystémovým řešením je vložení bloku Memory do smyčky vstupující do bloku integrátoru jako počáteční podmínka. Ten zajistí, že v kroku po resetu integrátoru na výstupu bloku Memory bude hodnota z okamžiku vynulování integrátoru. • Použitím State portu. Další možnost odstranění algebraické smyčky je uvedena na konci chybového hlášení v hlavním okně Matlabu. Blok integrátoru totiž umožňuje použít výstup State port, který má na výstupu hodnotu jakou by měl standardní výstup, kdyby nebyl resetován.
Pingpongový míček Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření
Řešení: Jak je vidět, tak teď již dochází k odrazu míčku a s každým jeho odrazem klesá odrazová rychlost a také výška do které se odrazí. Je tu ovšem problém, že po nějaké době jakoby propadl podložkou. Jak je vidět na detailu, tak Matlab provádí výpočet v diskrétních krocích. V jednom okamžiku už pak není rychlost dopadajícího míčku dostatečná, aby na konci dalšího kroku byla jeho poloha nad podložkou. To způsobí, že nedojde k dalšímu potřebnému vynulování integrátoru (mělo by k němu dojít cca v půlce kroku při průchodu míčku nulou) a míček pak „propadne“ podložkou. -4
Odraz micku (Reset)
Odraz micku (Reset)
x 10
10
2
1
y(t)
y(t)
5
0 0
-1 -5
0
2
4
6
8 t[s]
10
12
14
12.665
12.67
12.675
12.68 t[s]
12.685
12.69
12.695
Pingpongový míček Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření
Řešení: Tento problém je pak možno řešit několika způsoby: • Jednak je možno použít vhodných bloků, které nám zajistí vyresetování integrátoru a ustálení míčku. • Druhé ale nepříliš elegantní řešení je použití limitace výstupu integrátoru na jehož výstupu je výchylka. • Třetí a zřejmě nejelegantnějším řešením takovéto situace je zpřesnit celý model. Tedy můžeme uvažovat, že v okamžiku kdy se míček dotýká podložky, tedy jeho poloha je
y(t) 0 působí na míček síla, která je způsobena pružností míčku a podložky. Tedy můžeme si představit že míček dopadá na jakousi sedačku a znovu se od ní odráží. Tlumič pak představuje přeměnu kinetické energie na deformační. Pohybová rovnice je pak popsána následovně:
m y(t) L(t) ky(t) cy(t) m g y(t) 0 L(t) 0 y(t) 0 L(t) 1
Pingpongový míček Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření
Řešení: Pro model v simulinku je pak možno pro realizaci pomocné proměnné L(t) použít blok Relation Operator jako na minulém cvičení. Pro násobení signálu pomocnou proměnou L je pak možno použít blok Product.
Odraz micku (Odraz pruzností) 10
8
y(t)
6
4
2
0
-2
0
2
4
6 t[s]
8
10
12