Université Kasdi Merbah -Ouargla-
Faculté des Nouvelles Technologie de l’informatique et de la
communication
Département de l’électronique et de télécommunications
Filière : Génie électrique
Spécialiste : Master Automatique et Système
Module : Système Multi-Variable
TP Numéro 01
TP Numéro 02
TP Numéro 03
HOME WORK
TP Numéro 01 /
CALCULES MATRICIELES
Clc
close all
clear all
a=[0,1,0;0,0,1;0,-2,-3];
SysName =
a =
x1 x2 x3
x1 0 1 0
x2 0 0 1
x3 0 -2 -3
b=[0;0;2];
b =
u1
x1 0
x2 0
x3 2
c=[1,1,1];
c =
x1 x2 x3
y1 1 1 1
d=[0]
d =
u1
y1 0
1
SysName=ss(a,b,c,d)
qc=ctrb(SysName)
qc =
0 0 2
0 2 -6
2 -6 14
rank(qc)
ans =
3
det(qc)
ans =
-8
size(a,1)
ans =
3
T=[1,2,3]
T =
1 2 3
qo=obsv(SysName)
qo =
111
0 -1 -2
045
csys=canon(a,T)
a=
x1 x2 x3 x4
x1 0 1 0 0
x2 0 0 1 0
x3 0 -2 -3 2
x4 1 1 1 0
b=
u1
x1 0
x2 0
x3 0
x4 -1
c=
x1 x2 x3 x4
y1 0 0 0 1
d=
u1
y1 0
e=
x1 x2 x3 x4
x1 1 0 0 0
x2 0 1 0 0
x3 0 0 1 0
x4 0 0 0 0
2
TP Némuro 02 /
REPRÉSENTATION MODÈLE ESPACE D'ÉTAT
sysName = ss(A,B,C,D) : Construire un modèle d’espace d’état ou convertir un modelé en
espace d’état.
sysName = ss(A,B,C,D) : Cree une fonction de transfert ou convertir un modèle en fonction
de transfert.
sysName = ss(A,B,C,D) : Cree un modèle zéro-pole-gain ou convertir un modèle en zéro-
pole-gain.
[num, den] = tfdata(SysName) : Accès rapide au data de fonction de transfert.
[z,p,k] = zpkdata(SysName) : Accès rapide au data de modèle zéro-pole-gain.
[A,B,C,D] = ssdata(SysName): Accès rapide au data de modèle d’espace d’état.
eig(A): produire un vecteur contenant les valeurs propres d’une matrice carrée.
poly(A) : Convertir les racines en polynôme.
roots(den) : calculer les racines d’un polynôme.
damp(A): fréquence propre et amortissement de la dynamique du système linéaire.
damp(den): fréquence propre et amortissement de la dynamique du système linéaire.
Impulse(SysName) : calculer la réponse impulsionnel du system.
Step(SysName) : Calculer la réponse indicielle du system.
Lsim(SysName, u, t, x0) : simuler la réponse temporelle de systèmes dynamiques a des
entrées arbitraires.
Expm(A*t) : crée une matrice exponentielle.
Plot(x,y) : dessiner un graph.
Csys = canon(SysName, type) : calcule un espace d’état canonique.
sysT = ss2ss(SysName, T) : changer les coordonnées d’état du modelé d’espace d’état.
clc; clear all; close all;
%les matrice d'espase d'etat
a=[0 1 ; -40 -4];
b=[0 ; 1];
c=[1 0];
d=0;
%Crée une modele d'espace d'etat
sys= ss(a,b,c,d);
%Transformée le systeme en fonction de tranfert
[num,den] = tfdata(sys,'v');
trf = tf(num,den);
%Transformée le systeme en modele zero-pole-gain
[z, p, k] = zpkdata(sys);
h = poly (a);
%L'affichage des resultats
disp('fonction de tranfert: ')
trf
disp('les racine sont: ')
disp(roots(den))
disp('les valuer propres sont: ')
disp(eig(sys))
disp('---------------------')
3
damp(a)
TP Numéro 03 /
Commandabilité/observabilité
Qc = ctrb(SysName) : Calculez la matrice de contrôlabilité.
rank(Qc) : fournit une estimation du nombre de lignes ou colonnes indépendantes d'une
matrice.
det(Qc) : calculer le déterminant d’une matrice.
size(A,1) : calculer le nombre de lignes d'une matrice.
Qo = obsv(SysName) : Calculez la matrice d'observabilité.
Csys = cannon(SysName,type) : calcule un espace d'états canonique.
sysT = ss2ss(SysName, T) : Changer les coordonnées d'état pour les modèles d'espace d'états.
clc;clear all;close all;
%model espace d'etat
a=[0 1 0;0 0 1;0 -2 -3];
b=[0;0;2];c=[1 0 0];d=[0];
sys=ss(a,b,c,d);
%la réponse du système pour une entre échlon
%le déplacement
t=0:0.01:7;
u=ones(size(t));
subplot(3,1,1);
[y,t,x]=lsim(sys,u,t);
plot(t,x(:,1));
title('déplacement');
%la vitesse
subplot(3,1,2);
plot(t,x(:,2));
title('vitesse');
4
%l’accélération angulaire
subplot(3,1,3);
plot(t,x(:,3));
title('accéliration angulaire');
%Matrice de commandabilite
Qc = ctrb(sys) ;
%form cannonique de commandabilite
Csys = canon(sys);
%Matrice d'observabilite
Qo = obsv(sys);
%Matrice de commandabilite
Csys = canon(sys);
5
HOME WORK /