úterý 12. června 2018

Univerzální mechanismus

Jedním z výpočetních nástrojů, které ve své práci často používám, je Universal Mechanism – software pro simulační výpočty mechanických soustav. Jednoduše řečeno, takový nástroj použijete, když chcete zjistit, jak se bude nějaké mechanické zařízení (například vagón) chovat v daných podmínkách, čili jak se bude pohybovat, jaké síly budou působit na jednotlivé části a podobně. V tomto článku poreferuju o tom, jak Universal Mechanism funguje a jaké s ním mám zkušenosti. Pozor, článek obsahuje velké množství odborných pindů.

Uživatelské rozhraní programu při tvorbě mechanického modelu
Universal Mechanism (UM) komunikuje anglicky, v angličtině jsou internetové stránky i obsáhlá dokumentace, avšak občas uživatel narazí na zapomenutý řetězec v bukvicích nebo na model podvozku 18-100, který připomene ruský původ softwaru. Současná osmá verze UM je výsledkem dlouholetého vývoje na technické univerzitě v Brjansku; my používáme sedmou verzi. Dá se stáhnout časově omezená demoverze. Kromě základní varianty pro obecné mechanické soustavy jsou k dispozici různé doplňky, uzpůsobené zejména pro simulaci vozidel – nejen železničních, ale i silničních, pásových, dokonce monorailů a maglevů.

Software zahrnuje dvě samostatné aplikace: UM Input pro sestavení mechanického modelu (viz snímek obrazovky úplně nahoře) a UM Simulation pro samotný výpočet a vyhodnocení.

Tvorba modelu v UM Input


V Inputu prostě definujete tělesa, jejich vazby, pružiny, tlumiče a další prvky modelu. Hlavní okno zobrazuje vizualizaci modelu, která samozřejmě není podstatná pro výpočet, ale hodí se – nejen na závěr při prezentaci, ale i hned v průběhu tvorby modelu, protože když omylem zadáte špatně nějaké souřadnice, tak to hned vidíte – například pružinu nataženou z jednoho konce podvozku na druhý. Vizualizace je spolehlivá a nedělá problémy.

Užší panely po stranách pak obsahují strom prvků (na snímku obrazovky vlevo nahoře), seznam parametrů (vlevo dole) a vlastnosti právě vybraného prvku (vpravo). Parametry, které zadáte natvrdo číselně na pravém panelu, v UM Simulation už měnit nemůžete; když je ale zadáte symbolicky (nadefinujete název), přidá se vám to do seznamu vlevo dole, a před každým výpočtem můžete hodnoty upravit. Ani v tomto seznamu však nejste omezeni na čísla. Vlastně skoro všude, kde máte do chlívečku zadat číslo, můžete zadat matematickou funkci, která může zahrnovat i jiné parametry. Tak třeba na screenshotu si můžete všimnout odvozování mnoha hodnot od jakéhosi hmotnostního faktoru – onen model je totiž jednoduchým, obecným modelem zhruba vystihujícím modernější britské osobní vozy, v němž se předpokládá, že hmotnosti těles, tuhosti pružin a podobně jsou z principu nebo z vhodné konstrukční volby úměrné hmotnosti celého vozidla.

To ale ještě není všechno. Strom modelu obsahuje další seznam proměnných, které mohou záviset nejen na pevně daných parametrech, ale i na aktuálních hodnotách kinematických veličin (polohách, rychlostech), a lze je zase použít v parametrech prvků soustavy. Takže když řeším podvozek, v němž elektrohydraulický systém natáčí dvojkolí na základě snímače, který měří natočení podvozku pod skříní, nepotřebuju k tomu žádný externí modul, všechno si to jednoduše zadám v Inputu. Pravda, kdybych chtěl do simulace zahrnout nedokonalosti systému (např. zpoždění signálu), už bych si s tímhle nevystačil. To je pak potřeba použít nadstavbu UM Control, která umožní zadat chování silového prvku pomocí rutiny v knihovně DLL, kterou naprogramujete v čemkoli a zkompilujete, anebo ji dostanete i ze Simulinku.

Abych se vrátil k tomu základnímu sestavování modelu v aplikaci UM Input: většinou si nejdřív nadefinujete tělesa a rovnou jim přiřadíte grafické objekty, abyste měli přehled. Grafické objekty se sestavují ze základních těles (kvádry, válce apod.) přímo v Inputu nebo je lze importovat z CADu. Tělesa se však v modelu neukážou, dokud jim nepřiřadíte kinematické vazby.

Kinematická vazba obecně znamená omezení pohyblivosti nějakého tělesa vůči jinému; v modelu reprezentuje třeba dokonale tuhé kluzné vedení, otočné spojení a podobně. Takže jsem na začátku nechápal, k čemu je vazba „6 DOF“, tj. která neodebírá žádný stupeň volnosti. Inu, je to proto, že kinematické vazby v UM jsou prostředkem, který vůbec definuje strom těles a přes který se přepočítávají jejich souřadné systémy. Takže těleso, které není omezeno v pohybu, prostě musíte spojit s tuhým základem vazbou o šesti stupních volnosti.

Potom vytvoříte silové prvky – pružiny, tlumiče, třecí plochy a podobně. Nejjednodušší jsou binární prvky, kteréžto jsou charakterizovány svou délkou a působí silou výhradně ve své ose. Typickým využitím je teleskopický tlumič anebo pružina se zanedbatelným flexi-coil účinkem. Zadání prvku může být různé: lineární, pružina a tlumič v sérii, pružina a třecí prvek v sérii, charakteristika zadaná po bodech a podobně. Pozor, je potřeba zadat správně volnou délku. Jednou jsem takhle něco blbě zadal, hned po spuštění simulace mi to vystřelilo a obrátilo mi to primární vypružení naruby.

Když vám podvozek po dvou metrech jízdy udělá tohle, je asi něco špatně. Díky vizualizaci na to aspoň rychle přijdete. Správně to má vypadat jako na obrázku zde. Anebo koukám, že oni to ještě převzali do nějakých dalších zpráv. A u obrázku píšou „Artist’s impression of the BT 10 bogie“. Jestli teda chtějí umělecké ztvárnění, měli jsme jim poslat tohle! :-D
Pro prvky, které mají působit něčím jiným než osovou silou, musíte použít jiné definice. Z nich je užitečný třeba prvek „bushing“ (pouzdro se třemi silami a třemi momenty) nebo „spring“ (flexi-coil pružina).

Pokud se nějaká sestava v modelu vyskytuje víckrát, je vhodné ji přetvořit na tzv. subsystém, který pak můžete vložit znovu. Speciální prvky z nadstaveb Universal Mechanism, jako třeba právě železniční dvojkolí včetně kontaktů a příslušných segmentů kolejnic, se vkládají jako předdefinované subsystémy.

Výpočet a vyhodnocení v UM Simulation


Výše popsaným způsobem vytvoříte model a zadáte počáteční podmínky. Pak spustíte výpočetní modul UM Simulation.

Okno UM Simulation s otevřenou vizualizací a grafem
V tomto programu pak můžete spustit jeden ze tří druhů výpočtu: obyčejnou jednotlivou simulaci, modální analýzu nebo „skenování“, totiž sadu výpočtů s různými vstupními parametry. Obrázek výše zachycuje jednotlivý výpočet v pozastaveném stavu. Před spuštěním se zadají hodnoty parametrů mechanického modelu a hlavně pak (v případě kolejového vozidla) nastavení kol a kolejnic: trasování koleje, nerovnosti, profily kol a kolejnic, součinitel tření, metoda výpočtu skluzových sil a tak. Lze zadat parametry matematického algoritmu, ve kterých většinou není potřeba se moc vrtat.

Kontakt kola a kolejnice mi připadá dobře udělaný, v takové nejpoužitelnější variantě to předpokládá hertzovský kontakt, zato ale umí dvoubodový kontakt (dvě elipsy v každé dvojici kolo–kolejnice) včetně předstihu dotykového bodu na okolku. V každé elipse se pak tečné síly řeší Fastsimem. Alternativou je polohertzovský kontakt, který teda počítá pomaleji a má občas sklon k numericky nevhodnému chování. Součinitel tření lze nastavit třeba i rozdílný na jízdní ploše a na okolku, navíc lze zadat sestupnou větev adhezní charakteristiky; redukci Kalkerových součinitelů to ale bohužel neumí.

Po odkliknutí parametrů může výpočet hned běžet, ale to by bylo dost marné, neboť by se neukládaly žádné výsledky. Ze začátku mi připadalo, že v UM prakticky chybí postprocesing, jelikož vizualizace i vykreslování grafů probíhá rovnou při výpočtu – což u jednoduchých modelů vlastně ani nebylo na závadu, protože výpočet běžel podstatně rychleji než v reálném čase (tuplem když se vypnula animace).

Ono se to takhle nedá říct, protože zejména v tom skenovacím módu nabízí UM Simulation velice šikovné nástroje pro postprocesing, a také se dají ukládat data, podle kterých pak lze animaci modelu znovu přehrát. Každopádně ale platí, že před spuštěním výpočtu je třeba nastavit, které veličiny se mají zapamatovat (ať už pro průběžné vykreslování grafů, nebo pro pozdější uložení). Co si nenastavíte, už z výsledků později nevydolujete. Můžete si zadat i novou veličinu, která se dá z předdefinovaných veličin spočítat – kupříkladu jsem si tam doplnil výkon skluzových sil v takovém vyjádření, v jakém ho potřebuju. Když ale takovou položku vytvoříte, nelze ji upravit, takže už pak je lepší se pohrabat ve vygenerovaném kódu, který je docela dobře čitelný, a pozměnit ho ručně.

Animace modelu je obecně fajn, avšak u železničních vozidel je dobrá akorát tak k tomu, že poznáte, že to nedělá blbosti (třeba že se primární vypružení neobrátí naruby). Není tam totiž zvýraznění výchylek. Když těleso o šířce tři metry kmitá v rozmezí jednoho centimetru, moc z toho neuvidíte. Jistě že se to dá přiblížit, ale pořád z toho tolik nevynikne ten charakter pohybu, jako to funguje ve vizualizaci ze SJKV.

Ve vykreslovaných grafech se pohybuje snadno, pěkně funguje i export do Excelu – to se hodí. Jsou k dispozici i speciální vizualizační moduly pro kontakt kola a kolejnice, vykreslování nerovností koleje a podobně.

Vizualizace sil v kontaktu kolo–kolejnice pro čtyřnápravové vozidlo
Obzvlášť bych pochválil zmíněný režim skenování, který se využije, když se zkouší víc variant určitých parametrů – třeba počítáte pro několik rychlostí, několik poloměrů oblouku a tak podobně. Anebo pro několik rychlostí krát několik poloměrů oblouku. Pohodlně zadáte skupiny proměnných parametrů, navolíte výstupní veličiny a spustíte program, který se postará o provedení všech výpočtů. Pak si jdete si uvařit kafe, a když se vrátíte s hrnkem, koukáte na uspokojivě přibývající indikátory, jejichž počet závisí na hardwarových zdrojích – např. na osmijádrovém procesoru běží osm variant výpočtu zaráz.

Když výpočet doběhne, můžete pohodlně procházet výstupy všech variant a srovnávat je mezi sebou. Výstupy jde dále zpracovávat. Dám příklad: řeším kvazistatický průjezd obloukem, zajímá mě střední hodnota výkonu třecích sil v ustáleném úseku od 170 do 420 m od začátku trati, a jak závisí na poloměru oblouku. Graf na obrázku níže je na pár kliknutí. Pro prezentaci (např. vložení do zprávy) sám o sobě moc hezký není, ale jedním dalším kliknutím ho dostanu do Excelu a upravím si ho tam.

Šikovné zpracování výsledků simulací s různými variantami parametrů
Pokud máte v projektu dvě sady proměnných parametrů – já jsem měl třeba ty poloměry oblouku a hodnoty nedostatku převýšení – vycházel by z toho trojrozměrný graf. Na to v současné verzi UM chybí vykreslovací modul, ale všechny hodnoty to připraví a odešle do Excelu, kde si lze výsledek hned prohlédnout. Pravdou je, že excelovské ztvárnění map či trojrozměrných grafů je slabé, takže pokud chcete pěkné obrázky, musíte použít ještě něco jiného. Já to dávám do Matlabu.

Závěr


V souhrnu bych ze své dosavadní zkušenosti zhodnotil Universal Mechanism ve verzi 7 asi takhle:
--- Uživatelské rozhraní je přehledné, grafika funguje, program běží plynule.
--- Ovládání je převážně příjemné, až na několik případů, kde je odezva na zadávání vstupů nešikovná a zasloužila by doladit.
--- Dokumentace je na slušné úrovni, i když neanglický původ pisatelů je na ní znát. Jsou k dispozici jednoduché ukázky s postupem, jakož i vzorové modely.
--- Postup práce je smysluplný, člověk s příslušnou odborností se v tom rychle zorientuje.
--- Symbolické zadávání parametrů usnadňuje práci a vůbec rozšiřuje možnosti modelu.
--- Rychlost výpočtu nedokážu porovnat, ale výpočet nikdy netvořil zásadní část celkové doby práce.
--- Nástroje pro řízení a vyhodnocení sestavy výpočtů s různými vstupními parametry jsou na velice dobré úrovni.
--- Veličiny k ukládání je třeba zadat před spuštěním výpočtu. Nemusí to zabrat moc času, protože seznamy odkazů na veličiny lze uložit, ale nesmí se na to zapomenout.
--- Nástroje pro práci s geometrií kontaktu kola a kolejnice by zasloužily vylepšení. Například možnost zadávání obloukových úseků v profilech je fajn, ale jak se program snaží, aby byl oblouk tečný k oběma sousedním úsekům, tak se body rozhodí. Nebo ve spojnicovém diagramu dotykových bodů jsou i zcela zbytečné spojnice na okolku, které zakryjí všechno ostatní.
--- Možnosti zadávání parametrů kol a kolejnic jsou široké (např. zahrnují nekruhovitost kola či proměnné profily kolejnic), ale mohly by být ještě lepší.
--- Jednou jsem strávil spoustu času řešením problému, u nějž jsem přesvědčen, že je to chyba anebo nedokumentované omezení programu (nefungoval správně viskoelastický silový prvek).

Žádné komentáře:

Okomentovat