Rapport TP1 Commande des Systemes
Mécatronique
TP : Synthèse d'un régulateur LQG avec MATLAB
Objectif
Le but de ce TP est de concevoir et de simuler un régulateur LQG (Linear Quadratic Gaussian) pour
contrôler un système dynamique linéaire soumis à des perturbations. Le processus se décompose en
plusieurs étapes:
1. Modélisation du système : Représenter le système sous forme d'équations d'état.
2. Estimation d'état : Utiliser un filtre de Kalman pour estimer les états du système, qui ne sont pas
toujours directement mesurables.
3. Conception du régulateur LQR : Déterminer la loi de commande optimale au sens du critère
quadratique.
4. Synthèse du régulateur LQG : Combiner le filtre de Kalman et le régulateur LQR pour obtenir
le régulateur LQG.
Étape 1 : Définition du système
% Matrices du système
A = [1 -2; -3 2];
B = [0; 1];
C = [1 0];
D = 0;
% Bruits (Covariances)
Q = 0.01*eye(1); % Bruit de processus
R = 0.01; % Bruit de mesure
% Temps de simulation
T = 0:0.01:10;
% Modèle du système en espace d'état
sys = ss(A, B, C, D);
Étape 2 : Synthèse du filtre de Kalman
Rédigé par : TABUEU KAMGUEM Franck Ariel
Objectif : Estimer l'état réel du système (x) à partir des mesures bruitées (y).
%conception du filtre de kalman
[kest, L, ~] = kalman(sys, Q, R);
%observation de la dynamique du filtre seul
sys_kalman = series(kest, sys);
Étape 3 : Synthèse du régulateur LQR
Objectif : Trouver la loi de commande optimale qui minimise un critère quadratique.
% Matrices de pondération LQR
Qx = [10 0; 0 1];
Ru = 1;
% Calcul du gain LQR
K = lqr(A, B, Qx, Ru);
% Boucle fermée avec retour d'état idéal
Acl = A - B*K;
sys_lqr = ss(Acl, B, C, D);
Étape 4 : Régulateur LQG (Combinaison)
Objectif : Combiner le filtre de Kalman et le régulateur LQR pour obtenir le régulateur LQG.
% Temps de simulation
T = 0:0.01:10;
% Entrée au système (signal d'excitation : échelon + sinusoïde)
u = heaviside(T) + sin(2 * pi * 0.5 * T); % Échelon + sinusoïde
% Ajout d'une condition initiale non nulle pour les états
x0 = [1; -0.5]; % Condition initiale pour l'état réel
% Dynamique étendue pour le régulateur LQG
A_cl = [A - B * K, B * K; zeros(size(A)), A - L * C];
B_cl = [B; zeros(size(B))];
C_cl = [C, zeros(1, size(C, 2))];
D_cl = 0;
% Système en boucle fermée
sys_cl = ss(A_cl, B_cl, C_cl, D_cl);
% Simulation avec signal d'excitation
[y, t, x] = lsim(sys_cl, u, T, [x0; zeros(2, 1)]); % États initiaux pour x et estimé
Rédigé par : TABUEU KAMGUEM Franck Ariel
% Affichage de la réponse
figure;
subplot(2, 1, 1);
plot(t, y, 'LineWidth', 1.5);
title('Réponse du système en boucle fermée (LQG)');
xlabel('Temps (s)');
ylabel('Sortie y(t)');
grid on;
subplot(2, 1, 2);
plot(t, u, '--r', 'LineWidth', 1.5);
title('Signal d''excitation (entrée au système)');
xlabel('Temps (s)');
ylabel('Entrée u(t)');
grid on;
Rédigé par : TABUEU KAMGUEM Franck Ariel