Simulace - 8. díl
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Simulace - 8. dílSimulace - 8. díl

 

Simulace - 8. díl

Google       Google       2. 9. 2006       18 304×

Osmý díl seriálu se zabývá nejjednodušší simulací z mechaniky – simulací pružiny.

V minulých dílech jsme se zabývali výlučně elektrotechnickými záležitostmi. Není na škodu si udělat malou exkurzi do mechaniky a nasimulovat např. chování pružiny.

Opět teorie

Jak jsem psal v jednom z minulých dílů, základem simulace je vždy teorie. Vycházíme z matematických opisů skutečných jevů, jejichž chování v simulaci odpovídá skutečnosti. Naší soustavou skutečných jevů bude břemeno zavěšené na pružině, k čemuž budeme hledat matematický opis.

Na naše břemeno, kromě síly pružiny, působí i gravitační síla vlivem vlastní hmotnosti umístěné v gravitačním poli Země (na Měsíci by se soustava chovala jinak). Jelikož se jedná pouze o exkurzi, bude nám to prozatím stačit a zapomeneme na jevy v materiálu pružiny, jako i na její vlastní hmotnost, a na další drobné jevy. Bude nám stačit tvrzení známé z mechaniky, že síla pružiny je úměrná jejímu stlačení nebo roztažení (deformaci):

kde „k“ je parametrem pružiny, nazývaný též tuhost pružiny. Proměnná „x“ je délková deformace pružiny buď ve směru tažném nebo tlačném, přičemž výchozím bodem (x = 0) je klidový stav pružiny, kdy nepůsobí žádné síly (ani vlastní hmotnost pružiny). Abychom se alespoň trochu přiblížili reálnému světu, budeme uvažovat tlumení pružiny, které zabrání tomu, abychom získali harmonický oscilátor. Tlumení je způsobeno chováním materiálu při pružné deformaci a je závislé na její rychlosti, tedy:

Gravitační síla je vyvolána polem Země, jehož projevem je gravitační zrychlení, často označovaném „g“, v dané zeměpisné šířce konstantní (9,81 m/sˆ2). Síla vyvolaná gravitačním zrychlením je podle Newtonova zákona:

kde „m“ je hmotnost břemene v kilogramech. A protože Newton byl chytrý pán, použijeme další jeho zákon, o rovnováze sil:

Získali jsme tedy výslednici zúčastněných sil. Z této výslednice bychom měli získat polohu břemene a tedy i deformaci pružiny, ze které budeme odvozovat sílu pružiny. Nezbývá nám, než se opět obrátit na Newtonův zákon:

Poslední rovnice je úpravou do tvaru lineární diferenciální rovnice druhého řádu s konstantní pravou stranou. Řečeno srozumitelnější formou: jsme opět u podobného problému jako v předchozích dvou dílech. Danou rovnici si tedy upravíme na dvě diferenciální rovnice prvního řádu a poté i do tvaru pro numerické řešení, na diferenční rovnice. Níže uvedená substituce dx/dt = v není náhodná, protože popisuje definici rychlosti. Můžeme si tedy vykreslit i průběh rychlosti pohybu tělěsa v čase.

Rutina…

Poslední dvě rovnice stačí jen naprogramovat, uvést počáteční podmínky a parametry systému a můžeme „pružit“. Ještě je nutné poznamenat, že tak jak jsme zavedli konvenci směru působení sil, tak musíme počítat s určováním parametrů systému. V našem konkrétním případě z fyziky víme, že síla pružiny působí proti gravitační síle břemene. Tento fakt musíme zahrnout i do rovnic a koeficient „k“ pružiny (tuhost) definovat se záporným znaménkem, protože jsme v rovnici definovali směr všech sil shodný. Stejným způsobem definujeme i koeficient tlumení B, který působí ve stejném směru jako síla pružiny, tedy záporný.

Výpis programu považuji za zbytečný, protože se od toho v minulém díle prakticky neliší, ale přesto ho zde uvedu. Parametry jsem volil odhadem.

// Simulace tělesa zavěšeného na pružině
// www.programujte.com 2006 - Matěj Pácha
// Visual C++ 2005 Express Edition
// Výsledek ukládá do souboru "sim.txt"

#include "stdafx.h"
#include <fstream>
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	ofstream fout;
	fout.open("sim.txt");

	double t,h,x,v,g,m,k,b,konec;
	
	t=0;			//proměnná času
	x=0;			//nastavíme počáteční podmínky
	v=0;			//
	g=9.81;			//gravitační zrychlení
	h=0.01;			//krok, se kterým počítáme
	konec=10;		//čas konce simulace
	m=1;			//Hmotnost tělesa m = 1 kg
	k=-100;			//Tuhost pružiny k = -100
	b=-10;			//Tlumení pružiny B = -10
	
	for(t = 0; t < konec ; t += h)
	{
					//simulační rovnice
		v += h*(g + k/m*x + b*v/m);
		x += h*v;
					//výstup do souboru
		fout << t << "\t" << x << "\t" << v << "\n";
	}
	fout.close();
	return 0;
}

Interpretace polohy x v prvním grafu je kladná (v kladném směru), tj. ve směru gravitační síly (dolů). Druhý graf znázorňuje průběh rychlosti v čase.

Pokud by se někomu nelíbila představa záporných koeficientů k a B, není nic jednoduššího, než změnit znaménka příslušných sil v rovnici. Vše je pouze ve zvolené konvenci, ale je nutné tuto konvenci dodržovat (podobně jako jazyk a význam jeho slov).

Závěr

Při pohledu na tento díl je opět patrné, že většinu času zabírá teoretický rozbor dané problematiky. Se základním matematickým aparátem a znalostí programovacího jazyka je sestavení simulačního programu otázkou několika minut. Každopádně je ale nutné si uvědomit všechny souvislosti a výsledek simulace správně vyhodnotit. Nemluvím zde jen o různých případech divergence výsledku, zaokrouhlovacích chybách a chybách z volby kroku. V simulaci i tak dost jednoduché soustavy jsme zanedbali spoustu vlivů, které se v reálném světě vyskytují. Přesný simulační model, i kdyby existoval, by byl značně složitý a na numerické řešení značně nestabilní, což je i důvod, proč zjednodušení zavádíme. Musíme ale nést tíhu důsledků zjednodušení a brát výsledky simulace s přiměřenou rezervou.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

2 názory  —  2 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Ing. Matěj PáchaAutor je studentem doktorského studia na Elektrotechnické fakultě Žilinské univerzity, obor Elektrická trakce. Mezi koníčky patří hudba a hra na baskytaru.
Web    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý