Implémentation d’un système du 2nd ordre : y(n)=> {x(n-1), y(n-1), y(n-2)}
Définition de la nouvelle fonction générique Sys2All()
La réponse indicielle d’un système en 2nd ordre
La réponse à une rampe d’un système en 2nd ordre
Etc.
Fonctionnement
On va aborder dans ce tuto l’analyse de plusieurs systèmes du second ordre en boucle ouverte (BO). On va particulièrement utiliser la réponse indicielle et la réponse à une rampe. On fera appel à la nouvelle Sys2All() qui permet de numériser (discrétiser) un système du second ordre caractérisé par sa pulsation propre wn et le coefficient d’amortissement zêta. On verra dans la suite de la vidéo l’effet du zêta et wn sur la rapidité du système ainsi son dépassement.
Les paramètres du système
#define Fn 10.00
#define Zeta 0.7
#define K 1.0
#define T_ms 2
Les paramètres de l’échelon / rampe
#define A_step 10.0 // Amplitude
#define c_step 500 // Période de l'échelon = 2*c_step*T_ms
unsigned long c=0; // Compteur (période)
bool Step=false;
Génération de l’échelon x(n)=constante, ou une rampe x(n)=n
c++; c=c%c_step;
if(!c)
{
Step=!Step;
c=0;
}
//x_nn=A_step*(double)Step; // Réponse à un échelon x(n)=cte
x_nn=(double)c; // Réponse à une rampe x(n)=n
Définition de la fonction Sys2All()
La fonction Sys2All() prend en entrée les paramètres du système et le signal de l’entrée. Puis, elle renvoie la sortie du système (voir le tuto précédent pour plus des détails).
/* * 1. Implémentation d'un système du 2nd ordre * y(n)=> {x(n-1), y(n-1), y(n-2)} * 2. Définition de la fonction Générique Sys2All() * 3. La réponse indicielle d'un système en 2nd ordre * 4. La réponse à une rampe d'un système en 2nd ordre * 5. Etc. * ------------- - - x(n) ---------- SYS2 ---------- y1(n) - - ------------- ------------- - - x(n) ---------- SYS2 ---------- y2(n) - - ------------- ------------- - - x(n) ---------- SYS2 ---------- y3(n) - - -------------