900 likes | 1.18k Views
Commande en espace d’état. Guy Gauthier ing . Ph.D . SYS-823 - Juillet 2011. Représentation en boucle ouverte. Équation : m entrées, p sorties, n équations d’état linéaires. Commande par retour d’état linéaire. Structure :. Représentation en boucle fermée (retour d’état linéaire).
E N D
Commande en espace d’état Guy Gauthier ing. Ph.D. SYS-823 - Juillet 2011
Représentation en boucle ouverte • Équation : • m entrées, p sorties, n équations d’état linéaires.
Commande par retour d’état linéaire • Structure :
Représentation en boucle fermée (retour d’état linéaire) • Équation en boucle fermée :
Contrôlabilité • Au préalable, il faut vérifier si le système est contrôlable. • Rang(M)=n • Matrice de contrôlabilité M :
Design par placement de pôles • Valeurs propres désirées pour (A-BK) : • Parties réelles négatives; • Choix des gains de la matrice de gains K.
Exemple de design • Soit le système suivant :
Étape 1 • Vérifier si le système est contrôlable: • Matrice de contrôlabilité • Rang(M) = 3 = n contrôlable.
Étape 2(si complètement contrôlable) • Du polynôme caractéristique de la matrice A, déterminer les coefficients a1, a2, ..., an : • Polynôme caractéristique :
Étape 2(si complètement contrôlable) • Ainsi, pour l’exemple : • Donc :
Étape 3 • Construire la matrice de transformation T = MW. • Matrice W :
Étape 3(exemple) • Construire la matrice W :
Étape 3(fin exemple) • Obtenir la matrice de transformation T : • Ici :
Étape 4 • Choisir les valeurs propres désirées: • Pôles en boucle fermée. • Écrire le polynôme caractéristique correspondant. • Ce qui mène au coefficients :
Étape 4(exemple) • Donc, si on choisi les pôles suivants: • Cela mène à : 1 2 3
Étape 5 • Calcul de la matrice de gains K : • Taille : 1 ligne et n colonnes. • Donc :
Étape 5(exemple) • Dans l’exemple :
Exemple sur MATLAB® % Entrée des matrices A et B » A=[0 1 0; 0 0 1; -1 -5 -6]; » B = [0;0;1]; % Déterminer la matrice de contrôlabilité » M=ctrb(A,B); % Déterminer le rang de M » r=rank(M) r = 3 % Puisque le rang est de 3, le placement des pôles est possible
Exemple sur MATLAB®(suite) % Calcul du polynôme caractéristique » JA = poly(A) JA = 1.0000 6.0000 5.0000 1.0000 % Extraction des coefficients » a1 = JA(2); a2 = JA(3); a3 = JA(4); % Définition des matrices W et T » W = [a2 a1 1; a1 1 0 ; 1 0 0]; » T = M*W;
Exemple sur MATLAB®(suite) % Calcul du polynôme caractéristique désiré en définissant la matrice diagonale J » J=[-2-4*j 0 0 ; 0 -2+4*j 0; 0 0 -10]; » JJ=poly(J) JJ = 1 14 60 200 % Extraction des coefficients désirés » aa1 = JJ(2); aa2 = JJ(3); aa3 = JJ(4);
Exemple sur MATLAB®(suite) % Calcul de la matrice de gains K » K=-[aa3-a3 aa2-a2 aa1-a1]*inv(T) K = -199.0000 -55.0000 -8.0000 % Donc les gains k1, k2 et k3 sont: » k1 = K(1) k1 = -199 » k2 = K(2) k2 = -55.0000 » k3 = K(3) k3 = -8.0000
Exemple sur SIMULINK®(résultats) x3 Amplitude x2 x1 Temps (min)
Exemple #2 • Soit un système représenté par les matrices suivantes : » A=[0 1 0 0 ; 20 0 0 0 ; 0 0 0 1 ; -0.5 0 0 0 ]; » B = [0 ; -1 ; 0 ; 0.5]; » C = [1 0 0 0 ; 0 0 1 0]; MATLAB®
Solution – Est-ce contrôlable ? • Vérifions : » M = ctrb(A,B); » r = rank(M) r = 4% Oui MATLAB®
Solution – Équation caractéristique de A • det(sI-A) donne ce polynôme de A : • Conclusion : » JA = poly(A); » a1 = JA(2); a2 = JA(3); a3 = JA(4); a4 = JA(5); MATLAB®
Solution – Équation caractéristique désirée • En choisissant les pôles pour obtenir une dynamique ayant un temps de réponse à 2% de 2 secondes et un amortissement de 0.5. • 2ième ordre. • Puisque :
Solution – Équation caractéristique désirée • Le dépassement maximal étant : • Les pôles désirés sont donc :
Solution – Équation caractéristique désirée • L’équation caractéristique est finalement : • Les coefficients désirés : » J = [-2-2*sqrt(3)*j 0 0 0; 0 -2+2*sqrt(3)*j 0 0; 0 0 -10 0; 0 0 0 -10]; » JJ = poly(J); » aa1 = JJ(2); aa2 = JJ(3); aa3 = JJ(4); aa4 = JJ(5); MATLAB®
Solution – Matrice de transformation T • La matrice W étant déduite des coefficients de A, on peut obtenir la matrice T comme suit : » W = [a3 a2 a1 1; a2 a1 1 0 ; a1 1 0 0 ; 1 0 0 0]; » T=M*W; MATLAB®
Solution – Matrice des gains K • La matrice K est calculée comme suit : » K=-[aa4-a4 aa3-a3 aa2-a2 aa1-a1]*inv(T) K = 300.2105 61.8947 168.4211 75.7895 MATLAB®
Simulation (pendule inversé) • Schéma SIMULINK® : y1 = x1 = angle du pendule (radians) y2 = x3 = position du chariot (mètres)
Simulation (pendule inversé) Conditions initiales : x1 = 0.1; x2 = 0 ; x3 = 0 ; x4 = 0 y2 y1 Temps (min)
Simulation (pendule inversé) Conditions initiales : x1 = 0.1; x2 = 0 ; x3 = 0 ; x4 = 0 x2 x3 x1 x4 Temps (min)
Réservoir de mélange • À contrôler: • Température T • Hauteur h • Commande: • Débit eau froide FC • Débit eau chaude FH
Modèle du réservoir de mélange • Équations :
Paramètres du système • Voici les paramètres du système : • K = 1 m2.5/min • hs = 4 m • Ac = 2 m2 • TH = 65 °C • TC = 15 °C • TS = 35 °C
Matrices du modèle • Donc : » A = [-1/8 0 ; 0 -1/4]; » B = [1/2 1/2 ; 3.75 -2.5]; » C = [1 0 ; 0 1]; MATLAB®
Contrôlabilité • Calcul de M : • Rang de M = 2. » M = ctrb(A,B); » r = rank(M); r = 2 MATLAB®
Équation en boucle fermée • Posant K : • Alors : % En symbolique » syms k11 k12 k21 k22 » S = A+B*[k11 k12; k21 k22]; MATLAB®
Élimination de l’interaction • Il suffit que A+BK soit diagonal, donc : • Il faut donc que :
Élimination de l’interaction • En remplaçant, on trouve que : » S = A+B*[k11 -k22; 3/2*k11 k22] S = [ -1/8+5/4*k11, 0] [ 0, -1/4-25/4*k22] MATLAB®
Placement des pôles • En ajustant les gains k11 et k22, on modifie la dynamique du système. • Indépendance de l’ajustement des 2 gains. • On désire un constante de temps de 2 min pour le niveau et de 5 min pour la température.
Équation caractéristique • L’équation caractéristique de A+BK est : • D’où :
Calcul de la matrice N • Il faut que BN soit une matrice diagonale. • Définissant N : • Alors :
Calcul de la matrice N • Pour BN diagonale, il faut : • Ce qui mène à :
Calcul de la matrice N • Donc la matrice N sera : » syms n11 n12 n21 n22 » U = B*[n11 n12; n21 n22] U = [ 1/2*n11+1/2*n21, 1/2*n12+1/2*n22] [ 15/4*n11-5/2*n21, 15/4*n12-5/2*n22] » U = B*[n11 -n22; 3/2*n11 n22] U = [ 5/4*n11, 0] [ 0, -25/4*n22] MATLAB®
Simulation • Schéma SIMULINK® : y1 = x1 = Δ niveau (mètres) y2 = x2 = Δ température (°C)
Simulation °C ou m y1 = Δh y2 = ΔT Échelons unitaires sur température à 1 min; sur niveau à 10 min. Temps (min)
Simulation u2 = débit d’eau froide Échelons unitaires sur température à 1 min; sur niveau à 10 min. m3/min u1 = débit d’eau chaude Temps (min)