Extras din laborator
Model Continuu
1. - ecuaţia de dinamică a sistemului;
2. - condiţiile iniţiale, ce semnifică momentul iniţial de timp şi starea sistemului în momentul iniţial, corespunzător;
3. condiţii terminale (sau finale) care indică momentul final de timp şi - mulţimea stărilor „dorite ” pentru sistemul dat în momentul final (numită dealtfel şi ţinta economică, dacă s-ar avea în vedere sistemele cibernetico-economice) ;
4. politici de conducere (comenzi), notate cu u(t), ce iau valori într-o mulţime U (sau U(t)).
5. funcţionala obiectiv (performanţa sistemului) ce urmează a fi „maximizată” sau „minimizată” în raport cu funcţiile de comandă, „acceptate” de sitem, pe mulţimea U. este funcţia de efect „terminal”.
Este necesar de indicat:
1. numărul total de comenzi admisibile (din numărul L de comenzi simulate);
2. valoarea maximă (l corespunde doar comenzilor admisibile ), comanda şi traiectoria “optimă” corespunzătoare;
3. valoarea minimă (l de asemenea corespunde doar comenzilor admisibile), comanda şi traiectoria respectivă;
4. dacă e posibil, de soluţionat modelul iniţial folosind metodele analitice şi de comparat cu rezultatele numerice obţinute prin metoda simulării;
5. anumite concluzii cu privire la model şi la rezultatele obţinute.
Remarca 1:
Metoda Euler, ca regulă, admite erori considerabile şi poartă un caracter instabil – o mică eroare (condiţionată de rotunjire sau ce se conţine în datele iniţiale) poate creşte esenţial la creşterea lui t. De aceea, deseori, pentru a obţine rezultate mai exacte (valide) la rezolvarea numerică a ecuaţiilor de dinamică (cazul continuu) pot fi aplicate metodele Runge – Kutta. Pentru realizarea lucrării date de laborator se propune metoda Runge – Kutta de ordinul patru, descrisă prin următoarele cinci relaţii:
1. ;
2. ;
3. ;
4. ;
5. .
Subiect pentru rezolvarea analitică şi numerică
(pentru testarea programului elaborat)
1)xt+1=x+ut; 2)t0=0, x0=0;
3)tf=4; XF=XN={xf->[12;16]};
4)ut=v1+v2/2; 0<=v1<=5 0<=v2<=4
5)R{u0,u1,u2,u3}=suma de la t=0 la 3 (t+1)*u + (1/3)*x4;
Anexa:
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
double xcalc(double x, double u)
{
return (x+u);
}
double utcalc(double v1, double v2)
{
return (v1+v2.0);
}
double calcJ(int t, double *u, double *x)
{
double temp=0.0;
return (temp+x[t]/3);
}
Preview document
Conținut arhivă zip
- Simularea Comportamentului Sistemelor Cibernetice Dinamice.docx