%%%%%%%%%%%%%%%%%%%%%% %%% Programme lq.m %%% %%%%%%%%%%%%%%%%%%%%%% clear all; close all % Définition d'une représentation d'état du système A=input('matrice A du système?') B=input('matrice B du système?') C=input('matrice C du système?') [n,m]=size(B); [p,n]=size(C); % Représentation d'état du système augmenté Aa=[A zeros(n,p);C zeros(p,p)]; Ba=[B;zeros(p,m)]; % Définition de A_alpha alpha_c=input('Quel est le paramètre alpha_c choisi?'); A_alpha=Aa+alpha_c*eye(n+p,n+p); % Matrices de pondération r=input('Quels poids pour la matrice R? (donner un vecteur ligne contenant les m éléments diagonaux de R)') q=input('Quels poids pour la matrice Q? (donner un vecteur ligne contenant les n+p éléments diagonaux (éventuellement nuls) de Q)') R=diag(r); Q=diag(q); % Calcul de la commande [Ka,P,E] = lqr(A_alpha,Ba,Q,R); Kp=Ka(1:m,1:n); Ki=Ka(1:m,n+1:n+p); % Tracé des diagrammes de Bode multivariables et calcul des marges de module [Mmi,Mmo,Mmci,Mmco]=calcul_marges_1(A,B,C,Kp,Ki,n,m,p)