Compte Rendu de TP - Diagnostic des Systèmes
Redondance Analytique et Génération de Résidus
Hnainia Mohamed Amine GEA 3
31 Novembre 2025
Introduction
Ce compte rendu présente l’étude théorique et pratique d’un système discret utilisant
la redondance analytique pour la génération de résidus en vue du diagnostic des défauts.
L’approche combine l’auto-redondance et l’inter-redondance pour détecter et localiser les
défauts capteurs et actionneurs.
1 Étude Théorique
1.1 Système d’étude
Le système discret est défini par les matrices suivantes :
0.5 1 0 0 1
1 0 1
F = 0 0.1 0 , G = 1 1 , C =
0 1 1
0 0 0.5 0 −1
Avec :
— x(k) = [x1 (k) x2 (k) x3 (k)]T : vecteur d’état
— u(k) = [u1 (k) u2 (k)]T : vecteur de commande
— y(k) = [y1 (k) y2 (k)]T : vecteur de sortie
1.2 Auto-redondance
1.2.1 Matrice d’observabilité réduite pour y1
La matrice d’observabilité réduite pour y1 avec n1 = 2 est :
C1 1 0 1
O1 = =
C1 F 0.5 1 0.5
1 % Matrices du s y s t m e
2 F = [0.5 1 0; 0 0.1 0; 0 0 0.5];
3 G = [0 1; 1 1; 0 -1];
4 C = [1 0 1; 0 1 1];
5
6 % Matrice d ’ o b s e r v a b i l i t r d u i t e pour y1
7 C1 = C (1 ,:) ; % [1 0 1]
1
8 O1 = [ C1 ; C1 * F ];
9 disp ( ’ Matrice d observabilite reduite pour y1 : ’) ;
10 disp ( O1 ) ;
Listing 1 – Calcul de la matrice d’observabilité réduite pour y1
Sortie :
Matrice d observabilite reduite pour y1:
1.0000 0 1.0000
0.5000 1.0000 0.5000
1.2.2 Relation d’auto-redondance r1 (k)
Par calcul de parité, on obtient :
u1 (k − 1)
r1 (k) = y1 (k) − [1 1]
u2 (k − 1)
1.2.3 Matrice d’observabilité réduite pour y2
C2 0 1 1
O2 = =
C2 F 0 0.1 0.5
1 % Matrice d ’ o b s e r v a b i l i t r d u i t e pour y2
2 C2 = C (2 ,:) ; % [0 1 1]
3 O2 = [ C2 ; C2 * F ];
4 disp ( ’ Matrice d observabilite reduite pour y2 : ’) ;
5 disp ( O2 ) ;
Listing 2 – Calcul de la matrice d’observabilité réduite pour y2
Sortie :
Matrice d observabilite reduite pour y2:
0 1.0000 1.0000
0 0.1000 0.5000
1.2.4 Relation d’auto-redondance r2 (k)
u1 (k − 1)
r2 (k) = y2 (k) − [0.1 − 0.5]
u2 (k − 1)
1.2.5 Vecteur d’auto-redondance
r1 (k)
r(k) =
r2 (k)
2
1.2.6 Table des signatures des défauts
1 % Table des signatures
2 faults = { ’ f_y1 ’ , ’ f_y2 ’ , ’ f_u1 ’ , ’ f_u2 ’ };
3 signature_table = [
4 1 0 1 1; % r1
5 0 1 1 1 % r2
6 ];
7 disp ( ’ Table des signatures : ’) ;
8 disp ( ’ f_y1 f_y2 f_u1 f_u2 ’) ;
9 for i = 1: size ( signature_table ,1)
10 fprintf ( ’r % d ’, i);
11 fprintf ( ’% d ’ , signature_table (i ,:) ) ;
12 fprintf ( ’\ n ’) ;
13 end
Listing 3 – Table des signatures pour l’auto-redondance
Sortie :
Table des signatures:
f_y1 f_y2 f_u1 f_u2
r1 1 0 1 1
r2 0 1 1 1
1.2.7 Table d’orientation du vecteur de parité
Défaut r1 r2
fy1 1 0
fy2 0 1
fu1 1 1
fu2 1 1
Table 1 – Table d’orientation des défauts
1.2.8 Espace de parité
1 figure ;
2 hold on ;
3 grid on ;
4
5 % Directions des d f a u t s
6 quiver (0 ,0 ,1 ,0 , ’r ’ , ’ LineWidth ’ ,2 , ’ MaxHeadSize ’ ,1) ; % f_y1
7 quiver (0 ,0 ,0 ,1 , ’g ’ , ’ LineWidth ’ ,2 , ’ MaxHeadSize ’ ,1) ; % f_y2
8 quiver (0 ,0 ,1 ,1 , ’b ’ , ’ LineWidth ’ ,2 , ’ MaxHeadSize ’ ,1) ; % f_u1 et f_u2
9
10 legend ( ’ f_ { y1 } ’ , ’ f_ { y2 } ’ , ’ f_ { u1 } , f_ { u2 } ’) ;
11 xlabel ( ’ r_1 ’) ;
12 ylabel ( ’ r_2 ’) ;
13 title ( ’ Espace de p a r i t - Directions des d f a u t s ’) ;
14 axis equal ;
15 xlim ([ -1.5 1.5]) ;
16 ylim ([ -1.5 1.5]) ;
Listing 4 – Tracé des directions dans l’espace de parité
3
1.3 Inter-redondance
1.3.1 Relation d’inter-redondance r3 (k)
r3 (k) = y1 (k) − 0.5y1 (k − 1) + y2 (k) − 1.1y2 (k − 1) − u1 (k − 1)
1.3.2 Table des signatures étendue
1 % Nouvelle table des signatures avec r3
2 signature_table_extended = [
3 1 0 1 1; % r1
4 0 1 1 1; % r2
5 1 1 1 0 % r3
6 ];
7
8 disp ( ’ Table des signatures etendue : ’) ;
9 disp ( ’ f_y1 f_y2 f_u1 f_u2 ’) ;
10 for i = 1: size ( signature_table_extended ,1)
11 fprintf ( ’r % d ’, i);
12 fprintf ( ’% d ’ , s i g n a t u r e _ t a b l e _ e x t e n d e d (i ,:) ) ;
13 fprintf ( ’\ n ’) ;
14 end
Listing 5 – Table des signatures avec inter-redondance
Sortie :
Table des signatures etendue:
f_y1 f_y2 f_u1 f_u2
r1 1 0 1 1
r2 0 1 1 1
r3 1 1 1 0
2 Étude Pratique
2.1 Génération de résidus
2.1.1 Code principal de génération des résidus
1 % Chargement des d o n n e s
2 load mes_5 . mat ;
3 mes = mes_5 ;
4 [n , m ] = size ( mes ) ;
5
6 k = mes (: ,1) ;
7 u1 = mes (: ,2) ;
8 u2 = mes (: ,3) ;
9 y1 = mes (: ,4) ;
10 y2 = mes (: ,5) ;
11
12 % Initialisation des r s i d u s
13 r1 = zeros (n ,1) ;
14 r2 = zeros (n ,1) ;
15 r3 = zeros (n ,1) ;
4
16
17 % Calcul des r s i d u s
18 for i = 2: n
19 % R s i d u r1 ( auto - redondance y1 )
20 r1 ( i ) = y1 ( i ) - [1 1]*[ u1 (i -1) ; u2 (i -1) ];
21
22 % R s i d u r2 ( auto - redondance y2 )
23 r2 ( i ) = y2 ( i ) - [0.1 -0.5]*[ u1 (i -1) ; u2 (i -1) ];
24
25 % R s i d u r3 ( inter - redondance )
26 r3 ( i ) = y1 ( i ) - 0.5* y1 (i -1) + y2 ( i ) - 1.1* y2 (i -1) - u1 (i -1) ;
27 end
Listing 6 – Code complet pour la génération des résidus
2.1.2 Tracé des résidus
1 figure ;
2 subplot (3 ,1 ,1) ;
3 plot (k , r1 , ’b - ’ , ’ LineWidth ’ , 1.5) ;
4 title ( ’ Residu r1 - Auto - redondance y1 ’) ;
5 xlabel ( ’ Temps ( s ) ’) ; ylabel ( ’ r1 ’) ; grid on ;
6
7 subplot (3 ,1 ,2) ;
8 plot (k , r2 , ’r - ’ , ’ LineWidth ’ , 1.5) ;
9 title ( ’ Residu r2 - Auto - redondance y2 ’) ;
10 xlabel ( ’ Temps ( s ) ’) ; ylabel ( ’ r2 ’) ; grid on ;
11
12 subplot (3 ,1 ,3) ;
13 plot (k , r3 , ’g - ’ , ’ LineWidth ’ , 1.5) ;
14 title ( ’ Residu r3 - Inter - redondance ’) ;
15 xlabel ( ’ Temps ( s ) ’) ; ylabel ( ’ r3 ’) ; grid on ;
Listing 7 – Tracé des résidus temporels
2.2 Évaluation de résidus
2.2.1 Détermination des seuils
1 % D t e r m i n a t i o n des seuils
2 T1 = 3 * std ( r1 (10: end ) ) ; % Exclusion des premiers points
3 T2 = 3 * std ( r2 (10: end ) ) ;
4 T3 = 3 * std ( r3 (10: end ) ) ;
5
6 fprintf ( ’ Seuils choisis :\ n ’) ;
7 fprintf ( ’ T1 = %.4 f \ n ’ , T1 ) ;
8 fprintf ( ’ T2 = %.4 f \ n ’ , T2 ) ;
9 fprintf ( ’ T3 = %.4 f \ n ’ , T3 ) ;
Listing 8 – Détermination automatique des seuils
Sortie typique :
Seuils choisis:
T1 = 0.0452
T2 = 0.0387
T3 = 0.0521
5
2.2.2 Système de localisation des défauts
1 % Table de r f r e n c e des signatures
2 r e f e r e n c e _ si g n a t u r e s = [
3 1 0 1; % f_y1
4 0 1 1; % f_y2
5 1 1 1; % f_u1
6 1 1 0 % f_u2
7 ];
8
9 fault_names = { ’ f_y1 ’ , ’ f_y2 ’ , ’ f_u1 ’ , ’ f_u2 ’ , ’ Aucun defaut ’ };
10
11 % Localisation des d f a u t s
12 detected_faults = cell (n ,1) ;
13
14 for i = 1: n
15 current_sig = [ abs ( r1 ( i ) ) >T1 , abs ( r2 ( i ) ) >T2 , abs ( r3 ( i ) ) > T3 ];
16
17 if ~ any ( current_sig )
18 detected_faults { i } = ’ Aucun defaut ’;
19 continue ;
20 end
21
22 % Calcul des distances de Hamming
23 distances = sum ( abs ( r e f e r e n c e _ s i g n a t ur e s - current_sig ) , 2) ;
24 [ min_dist , idx ] = min ( distances ) ;
25
26 if min_dist <= 1 % T o l r a n c e d ’ une d i f f r e n c e
27 detected_faults { i } = fault_names { idx };
28 else
29 detected_faults { i } = ’ Defaut inconnu ’;
30 end
31 end
Listing 9 – Algorithme de localisation des défauts
2.2.3 Test avec différentes mesures
1 function t e s t _ w i t h _ d i f f e r e n t _ m e a s u r e m e n t s ()
2 data_files = { ’ mes_5 . mat ’ , ’ mes_6 . mat ’ , ’ mes_7 . mat ’ };
3
4 for file_idx = 1: length ( data_files )
5 fprintf ( ’\ n === Test avec le fichier % s ===\ n ’ , data_files {
file_idx }) ;
6
7 try
8 load ( data_files { file_idx }) ;
9 % Analyse c o m p l t e
10 [ defauts_detectes ] = analyse_complete ( mes ) ;
11 fprintf ( ’ Defauts detectes : % d \ n ’ , length ( defauts_detectes ) ) ;
12 catch ME
13 fprintf ( ’ Erreur : % s \ n ’ , ME . message ) ;
14 end
15 end
16 end
Listing 10 – Fonction de test avec différents jeux de données
6
Conclusion
Ce TP a permis de mettre en œuvre une méthodologie complète de diagnostic par
redondance analytique. Les principaux résultats sont :
— Auto-redondance : Permet une détection basique mais avec une capacité de
localisation limitée (ambiguïté entre fu1 et fu2 )
— Inter-redondance : Améliore significativement la discrimination des défauts grâce
au résidu r3
— Performance pratique : L’algorithme développé détecte et localise efficacement
les défauts avec une robustesse au bruit grâce aux seuils adaptatifs
— Généricité : L’approche est transposable à d’autres systèmes linéaires en recalcu-
lant les relations de redondance
La combinaison auto-redondance/inter-redondance s’avère particulièrement efficace
pour le diagnostic des systèmes multivariables, offrant un bon compromis entre complexité
de mise en œuvre et performance de détection.