FyDiK

 
Since 2007   
 menu  tutorials/spatialbridge                        
 main
 examples  
 docs  
 movies  
 references  
 tutorials  
 author

Prostorový model mostu

Tento návod slouží ke zvládnutí automatického generování prostorových modelů konstrukcí složených z prutů. Model, který zde vytvoříme, je navržen na soutěž v rámci Bridge Builder Contest, kde je třeba přemostit rozpětí 75 cm a unést co největší zátěž současně při co nejnižší hmotnosti mostu, viz obr. 1.

Obr. 1 Schéma modelu mostu

FyDiK model prutu je složen ze tří typů FyDiK objektů, jejichž vlastnosti jsou detailněji popsány v návodu Simple supported beam. Pomocí tohoto modelu jsme schopni velmi přesně vystihnout ztrátu stability i pokritické působení. Dodejme, že FyDiK model prutu nepřenáší kroucení.

Automatické generování

FyDiK3D nabízí generátor trojrozměrných prutových konstrukcí řízený obsahem datového souboru typu XML. V tomto souboru je předepsáno, jak se má model konstrukce sestavit.

Vytvořte si nejprve na disku svého počítače soubor jménem points.xml v dobře přístupném adresáři (např. D:/fydik). K vytvoření souboru můžete použít například aplikaci Notepad, popřípadě si stáhněte volně dostupný PSPad, který datový XML soubor i obarví podle syntaxe.

Hmotné body

Nejprve vytvoříme počáteční a koncový bod jednoho budoucího prutu délky 0.8 m. Prut bude začínat v bodě x=-0.4 m, y=-0.04 m a bude končit v bodě x=0.4 m, y=-0.04 m. Do datového souboru uložíme následující údaje:

<Container package="cz.kitnarf.io.xml">
  <MassPoint package="cz.kitnarf.fydik3dapplication" m0="0" c="0.1" x0="-0.4" y0="-0.04" z0="0" />
  <MassPoint package="cz.kitnarf.fydik3dapplication" m0="0" c="0.1" x0="0.4" y0="-0.04" z0="0" />
</Container>

Řádek se značkou MassPoint vyvolá vytvoření jednoho hmotného bodu o přidané hmotnosti m0 [kg], koeficientu tlumení c [Ns/m] na daných (počátečních) souřadnicích. Poznamenejme, že všechny tyto údaje bude možno později v rámci aplikace FyDiK změnit. Zkopírujte nebo přepište tyto údaje do svého souboru a uložte jej. Spusťte aplikaci FyDiK3D a použijte menu Soubor--Importovat XML a vyberte váš datový soubor. Pokud import proběhne bez chyby, vytvoří se dva hmotné body dle zadání. V případě chyby se objeví chybový dialog. Podrobnosti o chybě se zobrazí pouze pokud jste aplikaci spustili z příkazového řádku.

Prut

Vytvoření modelu přímého prutu vyžaduje existenci dvojice hmotných bodů, určení vlastností jeho materiálu a průřezu. Vytvořme si nový datový soubor jménem beam.xml, který doplníme údaji:

<Container package="cz.kitnarf.io.xml">
  <!--MASS POINTS-->
  <MassPoint package="cz.kitnarf.fydik3dapplication" m0="0" c="0.1" x0="-0.4" y0="-0.04" z0="0" />
  <MassPoint package="cz.kitnarf.fydik3dapplication" m0="0" c="0.1" x0="0.4" y0="-0.04" z0="0" />
  <!--BEAM PROPERTIES-->
  <Wood package="cz.kitnarf.materials.wood" type="linden"/>
  <Disc package="cz.kitnarf.crosssection.known" diameter="0.015" />
  <!--BEAMS-->
  <Beam package="cz.kitnarf.fydik3dapplication.beam" firstNode="container[0]" secondNode="container[1]" segmentCount="40" material="container[2]" crosssection="container[3]" name="beam"/>
</Container>

Tyto údaje způsobí spojení dříve definovaných hmotných bodů modelem prutu o 40 segmentech (atribut segmentCount) z vybraného materiálu a průřezu. Počet segmentů prutu lze rovněž určit volitelným atributem segmentLength (i v kombinaci se segmentCount). Hmotné body a vlastnosti průřezu jsou zadány pomocí odkazů na značky v souboru XML. Tyto odkazy obsahují řetězec container[index] s číselným indexem, který má význam pořadí značky v datovém souboru (komentáře uvozené pomocí <!-- se nepočítají). Viz následující přehled indexů:

<Container>
[-]   <!--MASS POINTS-->
[0]   <MassPoint />
[1]   <MassPoint />
[-]   <!--BEAM PROPERTIES-->
[2]   <Wood />
[3]   <Disc />
[-]   <!--BEAMS-->
[4]   <Beam />
</Container>

Průřez prutu je vybrán kruhový (angl. disc) o průměru 0.015 m. Chcete-li použít vlastní průřez, můžete jej nadefinovat následující značkou:

  <NumericCrosssection package="cz.kitnarf.crosssection" area="0.02" secondAreaMoment="1e-4" />

Jelikož model prutu nepřenáší kroucení, není třeba zadávat více parametrů průřezu.

Materiál prutu je definovaný podle přednastavených hodnot. Vybráno je dřevo, konkrétně lípa (angl. linden). Jeho nastavené parametry udává tabulka, uložená uvnitř aplikace FyDiK, převzatá z publikace Mechanické vlastnosti domácích dřevin. V případě potřeby je možno kteroukoliv vlastnost změnit, popřípadě si nadefinovat svůj vlastní materiál:

  <Material package="cz.kitnarf.materials" elasticityModulus="1e9" density="1000" />

Po importu do aplikace FyDiK by mělo zobrazení vypadat jako na obrázku obr. 2.

Obr. 2 Model prutu

Zakřivený prut

Generátor umožňuje rovněž tvorbu zakřivených prutů pomocí kubického splajnu. Jeho zadání je oproti přímému prutu obohaceno o následující atributy:

  <SplineBeam x="x1,...,xn" y="y1,...,yn" z="z1,z2,...,zn"/>

Kromě jména značky, přibyla trojice polí souřadnic vnitřních řídicích bodů splajnu. Prut bude zakřiven tak, aby jeho střednice procházela těmito řídicími body.

Využijme této možnosti a doplňme přímý prut obloukem, který bude tvořit horní pás příhradového nosníku. Datový soubor (flanges.xml) pak může obsahovat následující údaje:

<Container package="cz.kitnarf.io.xml">
  <!--LEFT GIRDER-->
  <!--mass points-->
  <MassPoint package="cz.kitnarf.fydik3dapplication" m0="0" c="0.1" x0="-0.4" y0="-0.04" z0="0" />
  <MassPoint package="cz.kitnarf.fydik3dapplication" m0="0" c="0.1" x0="0.4" y0="-0.04" z0="0" />
  <!--beam properties-->
  <Wood package="cz.kitnarf.materials.wood" type="linden"/>
  <Disc package="cz.kitnarf.crosssection.known" diameter="0.015" />
  <!--beams-->
  <Beam package="cz.kitnarf.fydik3dapplication.beam" firstNode="container[0]" secondNode="container[1]" segmentCount="40" material="container[2]" crosssection="container[3]" name="bl_beam"/>
  <SplineBeam package="cz.kitnarf.fydik3dapplication.beam" firstNode="container[0]" secondNode="container[1]" segmentCount="40" material="container[2]" crosssection="container[3]" name="tl_beam" x="0" y="-0.02" z="0.15"/>
</Container>

Po importu do aplikace FyDiK by mělo zobrazení vypadat jako na obrázku obr. 3.

Obr. 3 Model dvou pásů levého nosníku

Výplet

Abychom nosník dokončili, je třeba provést výplet pomocí příčných stojek a diagonál. K tomuto účelu generátor disponuje nástrojem propojujícím dva pruty. Funguje tak, že podle určené velikosti modulu (počtu po sobě jsoucích segmentů) propojuje body obou nosníků pruty s danými vlastnostmi:

  <ArrayBind package="cz.kitnarf.fydik3dapplication.beam" firstBeam="container[4]" secondBeam="container[5]" moduleLength="4" firstShift="0" secondShift="0" modulCount="11" segmentCount="4" segmentLength="0.03" material="container[2]" crosssection="container[3]" />

linden

Atribut moduleLength určuje počet segmentů spojovaných prutů, které budou ležet mezi jednotlivými body propojení, firstShift a secondShift nastaví počáteční posunutí (v počtu segmentů) bodů propojení a modulCount je počet opakování propojení. Vlastnosti propojovacích prutů budou určeny zbývajícími atributy.

Hotový levý nosník pak může být definován následovně (leftgirder.xml):

<Container package="cz.kitnarf.io.xml">
  <!--LEFT GIRDER-->
  <!--mass points-->
  <MassPoint package="cz.kitnarf.fydik3dapplication" m0="0" c="0.1" x0="-0.4" y0="-0.04" z0="0" />
  <MassPoint package="cz.kitnarf.fydik3dapplication" m0="0" c="0.1" x0="0.4" y0="-0.04" z0="0" />
  <!--beam properties-->
  <Wood package="cz.kitnarf.materials.wood" type="linden"/>
  <Disc package="cz.kitnarf.crosssection.known" diameter="0.015" />
  <!--beams-->
  <Beam package="cz.kitnarf.fydik3dapplication.beam" firstNode="container[0]" secondNode="container[1]" segmentCount="40" material="container[2]" crosssection="container[3]" name="bl_beam"/>
  <SplineBeam package="cz.kitnarf.fydik3dapplication.beam" firstNode="container[0]" secondNode="container[1]" segmentCount="40" material="container[2]" crosssection="container[3]" name="tl_beam" x="0" y="-0.02" z="0.15"/>
  <!--binds-->
  <ArrayBind package="cz.kitnarf.fydik3dapplication.beam" firstBeam="container[4]" secondBeam="container[5]" moduleLength="4" firstShift="4" secondShift="4" modulCount="9" segmentCount="4" segmentLength="0.03" material="container[2]" crosssection="container[3]" />
  <ArrayBind package="cz.kitnarf.fydik3dapplication.beam" firstBeam="container[4]" secondBeam="container[5]" moduleLength="4" firstShift="4" secondShift="8" modulCount="8" segmentCount="4" segmentLength="0.03" material="container[2]" crosssection="container[3]" />
</Container>

Výsledek importu by měl vypadat jako na obr. 4.

Obr. 4 Hotový levý nosník

Celý most

Pro dokončení mostu stačí vytvořit zrcadlový obraz levého nosníku a oba nosníky vzájemně propojit. Výsledný soubor může vypadat například takto: bridge.xml. Doplňme, že oproti dříve uvedenému jsou jednotlivé značky přeuspořádány. Dále je přidán průřez pro příčné prvky. Vytvořená čtveřice hmotných bodů je uložena na podpory (atribut restraintZ) a je užito relativního odkazování v rámci kontejneru pomocí znaménka mínus.

Na obr. 5 je zobrazen záznam simulace mostu zatíženého dvojicí konzervativních sil působících ve směru respektive proti směru osy y na koncích mostu. Jelikož je most podepřen pouze ve směru osy z, dochází k jeho rotaci právě podél osy z (procházející jeho těžištěm).

Obr. 5 Rotace modelu celého mostu, GIF vytvořen pomocí ezgif.com

Hmotnost a únosnost

V soutěži Bridge Builder Contest, hraje roli poměr únosnosti mostu k jeho hmotnosti. Hmotnost mostu je dostupná v příkazovém řádku při provedení importu. Pouze je třeba importovat do aplikace FyDiK ve chvíli, kdy neobsahuje jiné hmotné objekty. Náš vytvořený model, uložený v souboru bridge.xml, má hmotnost 0.45 kg. Únosnost zjistíme zjednodušenou zatěžovací zkouškou, kdy zatížíme bod, nacházející se přesně uprostřed mostu, konstantní rychlostí posunutí ve směru osy z.

Přesný postup celé zkoušky je následující: Importujte vytvořený model načisto buď novým spuštěním aplikace FyDiK, nebo užijte menu File--New. Vyberte zatěžovací bod kliknutím (zobrazí se červenou barvou) a zvolte menu Object--Change. Nastavte rychlost vz0=-0.1 m/s a zvolte restraintVZ=true, čímž zajistíte zatěžování konstantní rychlostí posunutí. Vyvolejte kontrolní panel pomocí menu Simulation--Control Panel a tlačítkem Restart nastavte nové počáteční podmínky. Dále pomocí tlačítka Solve spusťte simulaci. Je téměř jisté, že simulace nebude numericky stabilní, což se projeví explozí modelu. Postupně snižujte parametry step a speed tak dlouho, až se simulace stabilizuje. Po každé změně použujte tlačítko Restart. Simulace bude stabilní pravděpodobně okolo hodnoty step=1E-6 sekundy a dostatečně svižná s parametrem speed=0.001. Stabilita se projeví absencí exploze a svižnost zelenou barvou pole status. Po úspěšném nastavení těchto parametrů simulaci zastavte a restartujte. Nyní by měla simulace zkoušky probíhat tak jak je potřeba.

updated:
16. 11. 2015

counter:
8 this month
7 unique
1966 total

 
author:
Petr Frantík
Institute of Structural Mechanics
Faculty of Civil Engineering
Brno University of Technology
Czech Republic
e-mail: kitnarf at centrum dot cz
www.kitnarf.cz
 

Copyright 2007 Petr Frantík