otazky_kšičus Flashcards
Stručně popište proces modelování soustavy s jedním stupněm volnosti v prostředí Simscape. V čem se liší oproti modelování stejné úlohy v Matlabu či Simulinku?
Při modelování v Simscapu modelujeme přímo fyzický model, nesestavujeme žádné diferenciální rovnice -> Rozdíl od Matlabu a Simulinku (tam rovnice)
Musíme používat speciální knihovnu
Buzení většinou potřebuji z prostředí Simulink, použiju speciální bloček na převod simulink bločku do Simscape
Do modelu vložím hmotičku, tlumič, pružinku a bloček solver configuration
Výsledky zobrazují pomocí Scopu
Parametry z vnějšího skriptu se do simscapu zavádějí pomocí “InitFcn” (nebo se parametry soustavy zadávají přímo do bločků)
Stručně popište proces řešení pohybové rovnice (ODR 2. řádu) pro soustavu s jedním stupněm volnosti pomocí Simulinku.
Musím sestavit pohybovou rovnici pro soustavu a na levé straně osamostatnit člen v druhé derivaci (zrychlení) - nemusím sestavovat soustavu 2 rovnic s derivací 1. Řádu jako při řešení ve workspacu
Jelikož se vyskytuji v druhé derivaci, v řešení musí být dva integrační bločky 1/s, které představují Laplaceův obraz integrace
Po provedení integrace vždy vynásobím signál příslušnou konstantou
Stavovým proměnným přiřazuji počáteční podmínky
Výsledky potom můžu nahrát do Workspacu pomocí:
funkce v bločku scope
Vytvořím např. Simout=sim(“…”), potom použiju Simout.get(“promenna ze Simulinku”)
Propojení s workspacem pomocí funkce sim
Soustava s jedním stupněm volnosti typu hmotnost / tuhost / tlumič má následující parametry: m = 350 g, k = 138000 N/m, b = 0 Ns/m. Časový krok výpočtu je nastaven na 100 ms. Při simulaci odezvy po vybuzení jednotkovovým skokem síly soustava nekmitá a program hlásí chybu. Vysvětlete, proč tomu tak je.
Moc hrubý časový krok (časový krok s frekvenci 10 Hz, soustava chce kmitat na frekvenci cca 630 Hz) -> soustava nekonverguje, výpočet havaruje
Uveďte, jak se může projevit příliš velký, nevhodně zvolený, časový krok simulace v prostředí Simulink.
Může odporovat Nyquistovu teorému - při počítání hodnot, které by měly vytvářet sinusovku, je zvolen krok, který odpovídá periodě - místo sinusovky dostaneme rovnou čáru.
Sinusovka nebude třeba pěkně hladká, bude zubatá
Výpočet nekonverguje, může havarovat
Uveďte alespoň dva způsoby, jak lze získat amplitudo-frekvenční charakteristiku systému v prostředí Matlab/Simulink.
1) Simulink - bloček sweep (chirp) - změna frekvence budící síly v čase (změna frekvence sinusovky)
2) Stavový prostor se převede do přenosové funkce -> příkaz BODE
Jak lze do modelu soustavy s jedním stupněm volnosti v prostředí Simulink zavést nenulové počáteční podmínky?
Bločky v simulinku s počátečními podmínkami pro stavové proměnné (zadáno interně nebo externě)
Řešení pomocí stace-space, zde lze počáteční podmínky zahrnout
Lze do modelu systému s jedním stupněm volnosti pomocí přenosové funkce zahrnout počáteční podmínky? Ano / ne, vysvětlete.
Umožňuje pouze nulové počáteční podmínky
Pro nenulové musím použít např. stavový model, funkci tf2ss/ss2tf
V bločku v Simulinku prostě není kolonka, kam ty počáteční podmínky napsat…
Laplaceova transformace to neumožňuje
Uveďte alespoň jeden způsob, jak lze výsledky simulací v prostředí Simulink automaticky načíst do Workspace v Matlabu
Pomocí funkce sim - Pojmenuji proměnnou např. Simout=sim(“..”), potom použiju Simout.get(“t_sim”)
Ve scopu v Simulinku zakliknu “log data to workspace”
K čemu v Matlabu slouží příkaz eig?
Řeší problém vlastních - získáme vlastní čísla (vlastní frekvence v druhé mocnině) a vlastní vektory (jak se to chová při rezonanci)
e = eig(A) navrací vektor obsahující vlastní čísla čtvercové matice A
K čemu v Matlabu slouží příkaz sim?
Spustí simulaci (můj nadefinovaný model) v Simulinku
Potom pomocí .get můžu dostat zase data ze Simulinku do workspace
K čemu v Matlabu slouží příkaz bode?
Vykreslení odezvy ve frekvenční oblasti
AF charakteristika, fázovo-frekvenční charakteristika
K čemu v Matlabu slouží příkaz ode45?
Řešič diferenciálních rovnic (medium order), umí řešit pouze DR 1. Řádu
Pokud chceme řešit rovnice řádu N, musíme to převést na soustavu N rovnic 1. Řádu
(Runge-Kutta 4. Řádu s chybou na 5. místě)
K čemu v Matlabu slouží příkaz ode23?
Řešič diferenciálních rovnic (low order), umí řešit pouze DR 1. Řádu
Pokud chceme řešit rovnice řádu N, musíme to převést na soustavu N rovnic 1. Řádu
(Řešič 2. Řádu s chybou na 3. místě)
Mějme příkaz SS1DOF = ss(A,B,C,D). K čemu tento příkaz slouží a co v něm představují symboly A, B, C a D?
Vytvoří to model stavového prostoru A - stavová matice (state matrix) B - matice vstupů (input matrix) C - matice výstupů (output matrix) D - matice přímých vazeb (často 0, feedforward matrix)
Mějme příkaz [X,Y]=eig(A). Co budou prvky matic X, Y?
X matice, jejíž sloupce odpovídají vlastním vektorům
Y diagonální matice vlastních čísel (vlastní frekvence v druhé mocnině)
AX = XY