Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Simulace dynamických systémů v Matlabu, Simulink

Podobné prezentace


Prezentace na téma: "Simulace dynamických systémů v Matlabu, Simulink"— Transkript prezentace:

1 Simulace dynamických systémů v Matlabu, Simulink
Runge Kutta metody s adaptací Dt během řešení Využití vnořené (embeded) R-K metody (ode23, ode45) V každém kroku se řeší následující optimalizační úloha: 1. výpočet R-K 5. (3.) řádu s krokem Dt: 2. výpočet vnořenou R-K 4. (2.) řádu s krokem Dt: 3. odhad chyby 4. porovnání odhadu chyby s předepsanout tolerancí etol  výsledek s Dt akceptovánvýpočet v dalším kroku s Dt  výsledek s Dt akceptovánvýpočet v dalším kroku s Dt=2Dt  zkrátit Dt=Dt/2  opakovat výpočet v současném kroku od bodu 1.

2 Simulace dynamických systémů v Matlabu, teorie
Stabilita numerických metod Oblast stability expl. metod Výše uvedené metody byly tak zvaně explicitní metody (neznámá se vyskytuje pouze na levé straně rovnice). Tyto metody jsou jednoduše řešitelné, ale mají poměrně úzkou oblast stability vzhledem k velikosti kroku . Jestliže jsou vlastní čísla matice A systému (popřípadě tzv. Jakobiho matice Jx nelineárního systému), pak pro stabilitu metody je nutné aby body ležely uvnitř oblasti stability. I když oblast stability expl. metod je poměrně malá, k řešení běžných úloh tyto postačují, zvláště, jeli krok adaptován. Obtížně řešitelné jsou tzv. Stiff systémy, u nichž platí, že - vl. číslo s max. modulem - vl. číslo s min. modulem kde

3 Simulace dynamických systémů v Matlabu, teorie
Implicitní metody Neznámá se vyskytuje i na pravé straně rovnice. Př. Impl. Eulerova metoda Obtížně řešitelné, praktická využitelnost pouze pro lineární systémy Široká oblast stability vzhledem ke kroku metody – vhodné pro Stiff systémy. Oblast stability impl. metod Semi-mplicitní metody (ode15s, ode23s) Implicitnost vzorce řešena a) linearizací v každém kroku b) numericky, Newtonovou iterační metodou metody BDF (Backward Differentiation Formula), např. Gearova metoda a její modifikace NDF (Numerical Differentiation Formula) – implementace ode15s, ode23s širší oblast stability spolu s adaptací délky kroku nabízí robustní, velice stabilní metody

4 Simulace dynamických systémů v Matlabu, Simulink
Příklad Porovnejme výsledky simulace odezvy Stiff systému druhého řádu, na počáteční podmínky a to zejména délku kroku jednotlivých solverů. options=simget('stiff'); %stiff.mdl for k=1:5 switch k case 1 options=simset(options,'solver','ode45'); c='r'; case 2 options=simset(options,'solver','ode23'); c='b'; case 3 options=simset(options,'solver','ode15s'); c='g'; case 4 options=simset(options,'solver','ode23s'); c='m'; end [t,x]=sim('stiff',6,options); figure(1) plot(t,x(:,1),c), hold on figure(2) plot(t(2:end)-t(1:end-1),c), hold on end legend('ode45','ode23','ode15s','ode23s') xlabel('t'),ylabel(‘x_1') xlabel('pocet vzorku'),ylabel('\Delta t')

5 Simulace dynamických systémů v Matlabu, Simulink
stiff.mdl V modelu stiff.mdl byla nastavena požadovaná relativní chyba Jak je patrné, Stiffové metody ode15s a ode23s mají výrazně delší krok a kratší dobu simulace než ode45 a ode23.

6 Simulace bez Simulinku
Simulace dynamických systémů v Matlabu, ode45 Simulace bez Simulinku Problém numerického řešení odezvy stavového modelu lze řešit i bez Simulinku, např. pomocí solveru ode45 (ode23, ode15s, ode23s....) s následnou syntaxí Dáno: Hledáme: [t,x] = tmax],x0,options,par1, par2,...) t, x – výsledek řešení, vektory času a stavu fce – funkce, ve které jsou definovány stavové rovnice - povinný parametr) [0 tmax] – rozsah času options – parametry solveru – možno měnit pomocí příkazu odeset par1, par2 – parametry modelu Definice funkce pravých stran function dx=fce(t,x,par1,par2,..) dx(1,1)=f1(x,t) dx(2,1)=f2(x,t)

7 Simulace dynamických systémů v Matlabu, ode45
Příklad Sestavme funkci pro řešení odezvy systému Van der Pole pomocí solveru ode45, v závislosti na parametrech A, u a x(0) function VdPole(A,u,x0) options = odeset('MaxStep',0.1); [t,y] = 100],x0,options,u,A); plot(y(:,1),y(:,2)), grid xlabel('x_1'), ylabel(‘x_2') function dx = fvdp(t,x,u,A) dx(1,1)=x(2); dx(2,1)=A*(1-x(1)^2)*x(2)-x(1)+u; >> VdPole(0.3,-1,[1;1])

8 Nespojité nelinearity v Simulinku – knihovna Discontinuities
Simulace dynamických systémů v Matlabu, Simulink Nespojité nelinearity v Simulinku – knihovna Discontinuities Statický omezovač wmax x w wmin

9 Simulace dynamických systémů v Matlabu, Simulink
Necitlivost w m2 m1 x

10 Simulace dynamických systémů v Matlabu, Simulink
Omezení integrace Odlišnost omezení integrace od statického omezovače spočívá v tom, že toto omezení nemůže být aplikováno až na výsledek integrace, ale vždy už na způsob jejího provedení Příklad Omezení zdvihu pístového pohonu Další příklad: omezení integrační složky regulátoru

11 Simulace dynamických systémů v Matlabu, Simulink
Omezení simultánní integrace Integrace je zastavena, když výstup integrátoru dosáhne omezující hodnoty. Od omezující hodnoty se poté výstup odlepí až když vstup změní znaménko.

12 Simulace dynamických systémů v Matlabu, Simulink
Reset integrátoru V bloku integrátoru lze nastavit nulování výstupní hodnoty na základě vnějšího signálu – a to sice pomocí volby external reset, která je explicitně nastavena na none. Resetovací signál se poté přivede do druhého vstupu integrátoru.

13 Simulace dynamických systémů v Matlabu, Simulink
Coulombovo a vizkózní tření f(v) = 0 pro v = 0, odlehčený stav bez smyku f(v) =  kF0 , pro v = 0, - v zatíženém stavu bez smyku f(v) =  f0(v) , pro vzájemný skluz

14 Simulace dynamických systémů v Matlabu, Simulink
Přepínání platnosti relací V některých případech se pravá strana stavové rovnice, nebo její část mění v závislosti na nějakém paramteru, např. stavové proměnné. Příklad Stavové rovnice

15 Simulace dynamických systémů v Matlabu, Simulink
m1=1000; m2=700;b1=10; b2=5;H=2000; C=2500;L0=7; sim('auta') subplot(3,1,1), plot(tout,v1,'r') hold on, grid plot(tout,v2,'b') xlabel('t'),ylabel('v') legend('v_1', 'v_2') subplot(3,1,2) plot(tout,L),grid xlabel('t'),ylabel('L') subplot(3,1,3) plot(tout,h,'r') plot(tout,S,'b') xlabel('t'),ylabel('H, S') legend('H','S') Přepínání relací je realizováno pomocí bloku Switch

16 Simulace dynamických systémů v Matlabu, Simulink


Stáhnout ppt "Simulace dynamických systémů v Matlabu, Simulink"

Podobné prezentace


Reklamy Google