Skriptování v MSC.Marc pomocí prostředí MATLABU
Na této stránce budou rozebrány důvody a prakticky ukázáno, proč se vůbec zabývat skriptováním a parametrickým tvořením MKP modelů.V kapitole, která je věnovaná základům skriptování (zde), jsou použity ukázky velmi zjednodušeného modelu mostu. V této kapitole si ukážeme, jak pomocí Matlabu tvořit .proc soubory, které budeme následně používat k analýzám vlivu parametrů na chování mostu.
Příklad na kterém si ukážeme, jak se mění parametry v cyklu, nebo jak postavit model s téměř libovolnými rozměry, bude velmi zjednoduššený model lávky, nebo chcete-li mostu. Bude to most nad myšleným korytem řeky v určité výšce nad hladinou. Jak je vidět z obrázku níže, most je nad korytem, které se svažuje velmi strmě k hladině řeky. Most je uvažován celý ocelový. Tvoří ho mostovka a dvě podpěry.

Obrázek 1: Obrázek vymeshovaného mostu. Naznačeny jsou směry pohybu některých důležitých míst. Poloha těchto míst je předmětem zkoumaní v této kapitolce. Osa y prochází levým koncem mostovky a osa x prochází přímo na hladině řeky. Stěny jsou nakresleny zeleně a vodu symbolizuje modrá barva.
Rozměry modelu a parametry
V tabulce jsou uvedeny základní rozměry, ty lze samozřejmě, jak uvidíte ve skriptech ke stažení libovolně měnit.
Označení v Matlabu | Rozměr/Parametr úlohy | Význam/vlastnosti/poznámky |
---|---|---|
p.l_left | parametr | Horizontální vzdálenost styku mostovky a levé podpěry od levého konce mostovky. |
p.l_right | parametr | Horizontální vzdálenost styku mostovky a pravé podpěry od pravého konce mostovky. |
p.h_left | parametr | Vertikální vzdálenost styku levé podpěry a levé stěny od hladiny řeky. |
p.h_right | parametr | Vertikální vzdálenost styku pravé podpěry a pravé stěny od hladiny řeky. |
p.b_bridge |
20 m Lze ale snadno upravit skripty, tak aby to byl plnohodnotný parametr. |
Šířka mostovky |
p.h_bridge |
0.5 m Lze ale snadno upravit skripty, tak aby to byl plnohodnotný parametr. |
Výška mostovky |
p.r_left |
2 m Lze ale snadno upravit skripty, tak aby to byl plnohodnotný parametr. |
Poloměr levé podpěry |
p.r_right |
2 m Lze ale snadno upravit skripty, tak aby to byl plnohodnotný parametr. |
Poloměr pravé podpěry |
d.dimensions.l | 125 m | Délka mosotvky |
d.dimensions.h | 45 m | Výška mostovky na hladinou řeky |
d.dimensions.a | 10 m | Horizontální vzdálenost levého konce mostovky od levého břehu řeky. |
d.dimensions.b | 10 m | Horizontální vzdálenost pravého konce mostovky od pravého břehu řeky. |
d.dimensions.rho | 7860 kg/m3 | Hustota oceli (použitý materiál na konstrukci). |
d.dimensions.E | 210 GPa | Modul pružnosti v tahu oceli (použitý materiál na konstrukci). |
d.dimensions.nu | 0.3 | Poissonovo číslo oceli (použitý materiál na konstrukci). |
d.mesh.a_mkp |
5 m Není dodrženo všude. Automesh tento rozměr občas upraví za účelem dodržení umístění uzlů ve styčnících. |
Rozměr MKP prvku. |
d.no_modal_freq | 3 | Počet počítaných vlastních frekvencí. |
Předpřipravené .m soubory
V následující tabulce jsou uvedeny všechny Matlabovské skripty a k nim stručný popis. Doporučujeme si je sáhnout (formát .zip) rozbalit a pozorně přečíst. Je v nich spousta komentářů.
Název souboru .m | Co daný skript dělá? |
---|---|
start.m | Jsou zde zadány hodnoty parametrů, zavolán výpočet a provedeno ukládání výsledků. |
model_data.m | Vytvoří datovou strukturu s rozměry modelu, tu pak uloží do souboru d.mat. |
analysis.m | Zde je provedena analýza. Lze spustit i samostatně pro jednu hodnotu parametrů. Výpočet probíhá v posloupnosti načtení dat pro model → vytištění .proc souboru pro postavení modelu →postavení modelu mentatem → spuštění výpočtu → vytištění .proc souboru pro načtení výsledků a vytištění textového souboru s výsledky → vytištění výsledků do textového souboru mentatem → přečtení textového souboru (tabulky) → předání výsledků do výstupní proměnné z funkce |
built_model.m | Vytiskne .proc soubor pro postavení modelu. |
read_results.m | Vytiskne .proc soubor pro čtení výsledků ze souboru .t16 a vytisknutí textového souboru s výsledky ve formě standardní mentatovské tabulky. |
loadmarctab.m | Přečte standardní mentatovskou tabulku. Funguje obecně i pro více tabulek v jednom souboru. |
fitstr0.m | Šikovný skriptík, který před nebo za libovolný řetězec znaků přidá daný počet nul. |
Skripty lze stáhnout zde.
Systémové příkazy (použité i nepoužité)
V následující kapitole jsou uvedeny jen příklady příkazů, další parametry atd. lze nalézt v manuálu pro instalaci Marca marc_instal_instruct.pdf. Tento .pdf soubor lze nalézt po instalaci MSC.Marc v nabídce start, nebo v adresáři kam jste si MSC.Marc nainstalovali.
Spouštění MSC.Mentatu a otevření vybraného modelu | |
---|---|
Zápis do příkazové řádky windows | mentat model.mud |
Zápisy příkazu v Matlabu |
!mentat model.mud dos(′mentat model.mud′) |
Spouštění MSC.Mentatu na pozadí a tak aby se rovnou provedly příkazy v souboru postav_model.proc | |
Zápis do příkazové řádky windows | mentat postav_model.proc -bg |
Zápisy příkazu v Matlabu |
!mentat postav_model.proc -bg dos(′mentat postav_model.proc -bg′) |
Spouštění MSC.Marc tak aby provedl výpočet modelu model.dat na popředí. | |
Zápis do příkazové řádky windows |
run_marc -j model -b no run_marc -job model -back no |
Zápisy příkazu v Matlabu |
!run_marc -j model -b no dos(′run_marc -j model -b no′) !run_marc -job model -back no dos(′run_marc -job model -back no′) |
Spouštění MSC.Marc tak aby provedl výpočet modelu model.dat na pozadí s knihovnou subroutin sub.f. | |
Zápis do příkazové řádky windows |
run_marc -j model -b yes -u sub run_marc -job model -back yes -user sub |
Zápisy příkazu v Matlabu |
!run_marc -j model -b yes -u sub dos(′run_marc -j model -b yes -u sub′) !run_marc -job model -back yes -user sub dos(′run_marc -job model -back yes -user sub′) |
Ukázka automatického výpočtu
V následujících obrázcích jsou ukázány výsledky z analýzy vlivu umístění styku levé podpěry a mostovky na tvary kmitu a hodnotu první vlastní frekvence. Tato analýza je nastavena v .m souborech, které si můžete stáhnout zde. Ve skriptech se nebojte dělat změny a zkoumat co a jak funguje, jen tak se naučíte principům parametrické tvorby modelů.
Předpokládejme, že výsledky jsou dobře a model je konzistentní s realitou (pozn. autora: To samozřejmě není, protože jde jen o jednoduchý nosníkový model.). Pak lze usuzovat, že nejsou vlastní tvary kmitu příslušné první vlastní frekvenci stejné a typ vlastního tvaru kmitu výrazně závisí na pozici styku dvou částí mostu.