Vous êtes sur la page 1sur 27

Compte rendu du TP :

MATLAB et la représentation d’état

Filière Génie Mécanique et Système


Automatisé
2019-2020

Réalisé par : Encadré par :

Khaoula KRIMAA Pr. Mr ALFIDI


MOHAMMED
Introduction sur MATLAB :
MATLAB (« matrix laboratory ») est un langage de script1 émulé par un
environnement de développement du même nom ; il est utilisé à des fins de
calcul numérique. Développé par la société The MathWorks, MATLAB permet
de manipuler des matrices, d'afficher des courbes et des données, de mettre en
œuvre des algorithmes, de créer des interfaces utilisateurs, et peut s’interfacer
avec d’autres langages comme le C, C++, Java, et Fortran. Les utilisateurs de
MATLAB (environ 4 millions en 20192) sont de milieux très différents comme
l’ingénierie, les sciences et l’économie dans un contexte aussi bien industriel que
pour la recherche. Matlab peut s’utiliser seul ou bien avec des toolboxes (« boîte
à outils »).
Le logiciel MATLAB est construit autour du langage MATLAB. Une interface
en ligne de commande, qui est un des éléments du bureau MATLAB, permet
d’exécuter des commandes simples. Des séquences de commandes peuvent être
sauvegardées dans un fichier texte, typiquement avec l’éditeur MATLAB, sous la
forme d’un « script » ou encapsulées dans une fonction7

Année Universitaire : 2019/2020


Introduction sur la régulation avancée :
Devant la complexité croissante des systèmes, la fonction du transfert peut
parfois sembler ne pas être le modèle le plus approprié pour décrire les
comportements considérés, la recherche de performance toujours plus fine peut
conduire à la même conclusion.
Ceci est particulièrement vrai si l’on sort du cadre de ce cours et si l’on envisage
l’étude des systèmes multi variable, pour cette raison , d’autres modèles sont
utilisés et apparaissent comme alternatives à la FT, le plus célèbre d’entre eux est
la représentation d’état ou l’équation d’état ou encore modèle d’état , c’est un
modèle qui prend en compte la dynamique interne du système et ne se limite pas
à la description d’un comportement entrée/sortie .
Principe général :
Lors de la modélisation dans l’espace d’état, on décrit le système en considérant
sa dynamique interne, et pas seulement une relation entre son entrée et sa sortie.
Ainsi il convient de redonner l’importance à des grandeurs qui ne sont ni l’entrée
ni la sortie, tout en prenant en compte l’ensemble des phénomènes dynamiques et
statiques qui confèrent au système son comportement, une telle préoccupation
conduit les grandeurs suivantes : l’état, variable d’état, vecteur d’état et espace
d’état.
MANIP 1 :

1) Fonctions mathématiques de base :


Comme Matlab est un logiciel de calcul matriciel, l’entité de base est une matrice. Aussi les
vecteurs et les scalaires ne sont vus que comme des matrices particulières.
Dans ce qui suit on va définir un vecteur ligne v de trois composantes :

La première ligne avec le prompt « >> » correspond à l’instruction et les autres correspondent au résultat
affiché par Matlab

Un vecteur colonne peut être généré de 2 façons :

 La première façon fait apparaitre un point virgule entre les composantes pour indiquer un changement de
ligne dans une matrice :

 Et la deuxième façon :
On peut aussi définir un vecteur ou une matrice avec des composantes complexes :

Puis on utilise l’opérateur de transposition conjugaison :

Pour les matrices réelles, il n’y a pas de différence entre l’opérateur ‘ et la transposition simple.

Voici comment on va saisir une matrice réelle :

Et sa transposer :
Il existe d’autre fonctions spéciales par lesquelles o peut saisir certaines matrices particulières, comme :

 eye : qui permet de construire une matrice identité

 zeros : qui permet de construire une matrice nulle :

 ones : qui permet de construire une matrice remplie de composantes unitaires :


De même, il est facile d’extraire des sous matrices par Matlab, en utilisant :

MATLAB nous permet aussi de calculer le rang d’une matrice, en utilisant :

Et de calculer aussi le déterminant d’une matrice, en utilisant :

A l’aide de MATLAB, il est facile d’effectuer des calculs , comme :


 le calcul de la somme de deux matrices :
 Le calcul du produit de deux matrices :

 Les puissances de matrices :

Pour calculer l’inverse d’une matrice, on utilise l’expression :

Et pour déterminer les valeurs propres d’une matrice, on utilise :


On peut aussi obtenir une matrice modale à l’aide de l’instruction :

Et on peut tester le signe des valeurs propres d’une matrice Hermitienne en utilisant la fonction :

Et puis, on détermine les valeurs propres à l’aide de :

 On remarque que les valeurs propres sont toutes positives, ce qui nous mène à déduire que cette
matrice est définie positive.
2) Fonctions liées au modèle d’état :
Dans cette partie, on va utiliser des fonctions relatives au modèle d’état :

En commençant tout d’abord par construire un système :

Puis on cherche le spectre de la matrice A, en utilisant l’instruction :

On peut aussi regrouper les quatre matrices en une seule car MATLAB propose des variables de type << système
LTI>>. En tapant : sys=ss(A,B,C,D);

Nous trouvons aussi la fonction inverse qui permet de récupérer les matrice a partir de la variable sys :
[A,B,C,D] =ssdata(sys);

On obtient ainsi la fonction de transfert :


MATLAB fournit une cellule de numérateur et une cellule de dénominateur, dans notre cas la cellule ne contient
qu’un élément que l’on peut extraire à l’aide de :

Les vecteurs obtenus contiennent les coefficients du numérateur N(p) et du dénominateur D(p) de la fonction de
transfert G(P) dans l’ordre des puissances décroissantes c’est-à-dire que l’on obtient en fait :

On peut déterminer les racines du numérateur (les zéros) à partir de :

Et les racines du dénominateur(les pôles) a partir de la fonction roots :


On peut aussi vérifier la stabilité du système par la résolution de l’équation de Lyapunov en donnant Q=I2 :

On vérifie par les deux dernières instructions que les valeurs propres de la matrice de Lyapunov sont positives et par
a suite la matrice est définie positive .

On peut tracer les réponses impulsionnelles grâce aux fonctions impulse et step , et on obtient :

 Impulse(sys) nous donne :


 Step(sys) nous donne :

On peut obtenir la réponse harmonique dans ses différentes représentations graphiques :

 Bode(sys) : pour tracer le diagramme de bode


 nyquist(sys) :pour tracer le diagramme de Nyquist

 nichols(sys) :pour tracer le diagramme de Nichols


On peut connaitre la marge du gain, la marge de phase, et les pulsations associées à l’aide des
instructions
suivantes :

Si l’on d’intéresse à la commandabilité et l’observabilité d’un système, l’on peut les tester à l’aide des
critères de Kalman , en utilisant les instructions suivantes :
On peut aussi passer par les grammiens de commandabilité Wc et d’observabilité Wo si le système est
asymptotiquement stable, ceux sont les solutions d’une équation de Lyapunov, mais plutôt que d’utiliser lyap, on
utilise directement la fonction gram :

 on observe que les valeurs propres sont définis positifs , ce qui implique que le système est
commandable et observable.

o Remarque :la fonction minreal permet de réduire une réalisation à une forme minimale
c’est-à-dire complètement commandable et observable(au cas où elle ne le serait déjà).
Maintenant, on va placer les pôles -5 et -4 et vérifier à posteriori que le placement est effectué :

En revanche la fonction Acker , même si elle ne présente pas les mêmes avantages en multivariables , elle permet de
lever l’hypothèse des pôles distincts :
3) Fonctions liées aux modèles discrets:
Un certain nombre de fonctions MATLAB peuvent s’adapter aussi bien aux modèles d’état discrets
qu’aux modèles d’état continu. Cependant il existe des instructions spécifiques pour manipuler les modèles
discrets, d’où l’on peut exécuter la suite d’instructions suivantes :

Le variable sys contient les informations sur le système obtenu a partir du système continu sysc par échantillonnage
a T=1s. L’argument ‘zoh’ (Zero-order hold) stipule qu’un bloqueur d’ordre zéro est considéré. Par défaut, en
l’absence de cet argument, c’est l’option ‘zoh’ qui est retenue .

Les matrices de réalisation peuvent être récupérer comme en continu :


De plus, il est possible d’utiliser la fonction réciproque d2c afin de retrouver le modèle continu :
MANIP 2 : Applications
1) Exercice 5 (chapitre 1) :
On a une matrice qui est définie par :

On doit calculer les valeurs et les vecteurs propres de la matrice A .

Pour ce faire on va utiliser la fonction « eig » :

Puis on va calculer la matrice At=inv(A)*A*M

Avec M la matrice formée par les vecteurs propres de A. On commence par donner l’inverse de la matrice M :
la matrice At=inv(A)*A*M :

2) Exercice 3 (chapitre 2) :

Dans cet exercice on doit calculer l’inverse d’une matrice A donnée par :

Alors, en utilisant l’instruction inv(A) sur Matlab , on va obtenir l’inverse de cette matrice :
3) Exercice 3 (chapitre 3) :
Dans cet exercice on a le système décrit par :

 premièrement on va calculer les valeurs et les vecteurs propres, puis déduire T :


on va utiliser l’instruction : [M,V]=eig(A) qui retourne une matrice diagonale V avec les valeurs propres et
une autre pleine M dont les colonnes sont les vecteurs propres.

Puis la matrice T :
 deuxièmement on va étudier la commandabilité de ce système :

Ainsi :

On va calculer la matrice : Bt=Inv(T)*B , afin d’étudier la commandabilité :


Puisque toutes les lignes de a matrice Bt sont non nulles , on déduit que ce système est
complètement commandable.

 Troisièmement : on va étudier l’observabilité de ce système :


Pour ce faire, on calcule la matrice : Ct=C*T:

Ce système n’est pas observable.

4) Exercice A (chapitre 4) :
Dans cet exercice on a le système décrit par :

Ce qui donne :
 Premièrement on va calculer le gain de retour d’état k pour assigner le pôle
double 1 :
 En calculant d’abord la matrice de commandabilité :

 Puis en calculant le rang de cette matrice :

Le rang =2 donc la matrice est commandable.

 Deuxièmement on détermine le polynôme caractéristique en boucle fermé:


D(s)= (s+1)^2
 Troisièmement on détermine le polynôme caractéristique en boucle ouverte:
D(S)=s^3-3s-2

 Quatrièmement : le retour d'état correspondant à la base canonique


de commande:

K1=-2-1=-3 ;
K2=-3-2=-5 ;
d'où la matrice :

 Cinquièmement : la matrice de passage à la base canonique:

 Sixièmement : le retour d'état dans la base initiale:

Puis on vérifie que la matrice d’état en boucle fermée est :

Et le polynôme caractéristique est ainsi :


Conclusion :
Ce Tp nous a permis de se familiariser avec des différentes fonctions de
MATLAB qui facilitent le calcul ,afin de réaliser des représentations d’états des
différents systèmes, ainsi il nous a permis de savoir comment analyser et
commander nos systèmes en concevant la représentation temporelle des
phénomènes.
Et d’après les résultats obtenues sur MATLAB, on trouve qu’ils sont identique à
ceux trouvés théoriquement dans les travaux dirigés, ce qui prouve que
MATLAB est un logiciel précis et rapide, qui facilite le calcul sans une perte du
temps, ni possibilité de commettre des erreurs.