Vous êtes sur la page 1sur 7

UNIVERSITÉ DE GABES

INSTITUT SUPÉRIEUR DES SYSTÈMES INDUSTRIELS DE


GABES

Travaux pratiques
TP2 : Identification des
systèmes par les méthodes
moindres carrés
Compte Rendu

Fehd Othman
Wissem rebei
CSE1
2022-2023
I. Objectifs
Un contrôleur conçu sur la base d'un modèle fonctionne souvent mieux que
celui conçu sans modèle. Le développement de modèles est une tâche difficile et
coûteuse nécessitant la participation d'experts. Des techniques de
dééveloppement de modèles statistiques ont été développées pour répondre auy
deux problèmes, de la détermination rapide de modèles. Dans ce TP, nous allons
étudier la méthode des moindres carrés non récursifs et récursifs pour estimer les
paramètres du système à partir de données mesurées.
II. Algorithme des moindres carrés
II.1. Etudes théoriques
La conception d'un système de contrôle nécessite un modèle mathémat ique de
la dynamique du processus. Souvent, un modèle dynamique peut être difficile à
obtenir en raison de la complexité du processus, dont la dynamique peut mėme
être (partiellement ou complètement) inconnue. L'identification du système est
une procédure pour construire un modèle mathématique de la dynamique d’un
système à partir de données mesurées comme le montre la figure 1 :  

Entrée Sortie

(mesurée) (mesurée)
U(t) ? y(t)

Modèle
Algorithme estimé
D’identification G(z)

figure 1 : identification du modèle


soit un modèle discrète d’un procédé :

y(k)=-a1y(k-1)- a2y(k-1)-……+b0u(k)+ b0u(k-1)+ b2u(k-2)+…..=’∅ ( k) (1)

avec ∅ ( k ) est le vecteur d’observation

∅ ( k ) = [y(k-1)y(k-2)…u(k) u(k-1) u(k-2)…] (2)

Et  est le vecteur de paramètres

’=[-a 1 –a 2 –a 3 … b 0 b 1 b 2..] (3)

Pour calculer le paramètre de système inconnus θ, on applique de moindre


carrée non récursif et on obtient :

^(k) = [∅ (k )T ∅ ( k ) ]−1 ∅ (k )T y ( k ) (4)

Mais (4) n’est pas récursif .elle nécessite :

 La méùorisation de toutes les mesures


 L’inversion de la matrice ∅ ( k)T ∅ ( k )

Pour surmonter ces limites, la méthode de moindres carré récursif permet


d’obtenir un modèle basé sur les informations passé (résume en ^(k-1)) est
utilisé pour obtenir une estimation y^(k) de la production actuelle.

Un pseudo-code de l’algorithme de moindre carré récursif est donné dans


l’algorithme 1.

1. A l'instant t+1, on lit les valeurs de y(k+1) et de u (k+1)

2. A chaque pas de temps (1+1), on calcule successivement:


(a) L'erreur de prédiction en utilisant:  (k+1) = y(k+1)-(k+1) ^ (k)
(b) Le vecteur de gain k(t+1) pour l'algorithme en utilisant:

F ( k ) ❑T (k +1)
K(k+1)= 1+(k + 1) F ( k ) ❑T ( k +1)
où F(k) est la matrice de covariance = [❑T ]−1
(c) les nouveaux paramètres en utilisant : ^ (k+1)= ^ (k)+ K(k+1)  (k+1)
(d) une nouvelle matrice de covariance en utilisant:
F(k+1)=F(k)-K(k+1)|[ F(k)❑T ( k +1) ¿ ¿−T
3. Attendez que le pas de temps suivant se soit écoulé et revenez à l'étape 1

II.2. Travail demandé :

on considère le système décrit par la fonction de transfert échantillonnée


suivant :
−1
bq
G(q ¿¿−1) ¿=
1−a q−1

b q−1 y (k )
1) G(q ¿¿−1)¿= −1 =
u (k )
1−a q

y (k )(1−a q−1 ¿=u(k )b q−1

y (k )−ay (k −1)=bu( k−1)


y ( k )=ay ( k−1 ) +by ( k −1 )
y ( k )=¿^(k)∅ ( k )


T
=[a b]
y ( k−1 )
∅=¿
y ( k−1 )]

2) L’estimateur des moindres carrés récursifs


^(k) = [∅ (k )T ∅ ( k ) ]−1 ∅ (k )T y ( k )
y ( k−1 )

T
=[a b] ; ∅=¿ y ( k−1 )]

3)
k 1 2 3 4
U(k) 1 -1 -1 1
Y(k) 12 4 -12 -4

a) Méthode des moindres carrés non récursifs

{
T
❑ (0 )
T
❑ (1) 12 1
∅ ( k ) = ❑T ( 2 ) = 4 −1
❑ ( 3 ) −12 −1
T

T
❑ (4 )

Y=[4 ;-12 ;-4]

 Programme MATLAB
clear all
close all
clc
phi=[12 1;4 -1; -12 -1];
Y=[4; -12; -4];
F=inv(phi'*phi);
Theta=F*phi'*Y

b) Méthode des moindres carrés récursifs


 Programme MATLAB

 Functions
function [a,b,F,Theta,phi,K] =
RecursiveLeastSquares(U,Y,nb,na,F,Theta,phi,n)
% This function Identify the system parameters for a known system
input and
% output.
% The system Transfer Function is as in the following form:
%
% bo + b1*z^-1 + b2*z^-2 + ... + b_nb*z^-nb
% G(z) = ---------------------------------------------------
% 1 + a1*z^-1 + ... + a_na*z^-na
%
% OUTPUTS:
% a and b are vectors of the system estimated parameters.
% INPUTS:
% u : is the system input raw vector, y is the system output raw
vector.
% nb: is the number of zeros of the equired system model.
% na: is the number of poles of the equired system model.
% k : is the instant of time at which parameters are to be
calculated.
% P,Theta,phi: are the last calculated ones.
nu = na+nb; % Number of unknowns
for j = 1:nu
if j <= na % terms of y
if (n-j)<=0
phi(n,j) = 0;
else
phi(n,j) = -Y(n-j);
end
else % terms of u
if (n-(j-(na+1)))<=0
phi(n,j) = 0;
else
phi(n,j) = U(n-(j-(na+1)));
end
end
end
% Estimation
E=Y(n)-phi(n,:)*Theta;
K = F*phi(n,:)'*inv(1+phi(n,:)*F*phi(n,:)');
Theta = Theta+K*E;
F = F-
F*phi(n,:)'*inv(1+phi(n,:)*F*phi(n,:)')*phi(n,:)*F;
% Estimated System Parameters
a = Theta(1:na);
b = Theta(na+1:end);
end

 Main :
%% Example Recursive Least Squares %%
clc
close all
clear all

%% Estimation (simulated as online, where i represents time)


U=[1 -1 -1 1];
Y=[12 4 -12 -4];
nb=1;na=1;nu = na+nb;
Theta = zeros(nu,1); % Initial Parameters
F = 10^6 * eye(nu,nu); % Initial Covariance
Matrix
Phi = zeros(1,nu); % Initial phi
for i = 1 : length(U)
[a(:,i),b(:,i),F,Theta,Phi,K(:,i)] =
RecursiveLeastSquares(U(1:i),Y(1:i),nb,na,F,Theta,Phi,i);
end
Theta

Vous aimerez peut-être aussi