Commande Avancée
Commande Avancée
Introduction :
𝑥̇ = 𝐴𝑥(𝑡) + 𝐵𝑢(𝑡)
Dans le cas où les matrices A et B sont constantes, on dit que le système est stationnaire.
(b) Systèmes non linéaires continus commandés
𝑥̇ = 𝑓(𝑥, 𝑢, 𝑡)
- minimiser un temps ;
𝐽= 𝑑𝑡
(b) Cas linéaire quadratique
1
𝐽(𝑡 ) = (𝑥 𝑄(𝑡)𝑥 + 𝑢 𝑅𝑢)𝑑𝑡
2
(c) Cas général :
Où 𝜓(𝑥, 𝑢, 𝑡) est une fonction non linéaire, ∅ 𝑥 , 𝑡 représente la fonction coût terminal.
3- Commande optimale
𝑥̇ = 𝑓(𝑥, 𝑢, 𝑡) (1)
Et le critère de performance :
𝐽(𝑥 , 𝑡 , 𝑢) = ∅ 𝑥 , 𝑡 + ∫ 𝐿(𝑥, 𝑢, 𝑡)𝑑𝑡 (2)
Posons :
𝐻(𝑥, 𝑢, 𝛽, 𝑡) = 𝐿(𝑥, 𝑢, 𝑡) + 𝛽 𝑓(𝑥, 𝑢, 𝑡)
appelé Hamiltonien.
Le critère augmenté devient :
𝐽 == ∅ 𝑥 , 𝑡 + 𝛾 𝜓 𝑥 ,𝑡 [𝐻(𝑥, 𝑢, 𝛽, 𝑡) − 𝛽 𝑥]𝑑𝑡
𝜕𝐻 𝜕𝑓 𝜕𝐿
−𝛽 = = 𝛽+ ,𝑡 < 𝑡
𝜕𝑥 𝜕𝑥 𝜕𝑥
Appelé système adjoint.
3- La troisième condition est appelée condition de stationnarité
𝜕𝐻 𝜕𝑓 𝜕𝐿
0= = 𝛽+
𝜕𝑢 𝜕𝑥 𝜕𝑢
𝜕𝐻
−𝐻(𝑡 ) +
𝜕𝑡
(∅ + 𝜓 𝛾 − 𝛽) 𝑑𝑥| + (∅ + 𝜓 𝛾 + 𝐻) 𝑑𝑡| = 0
Et enfin on retrouve la contrainte sur l’état final :
𝜓 𝑥 ,𝑡 = 0
= ∅ 𝑥 ,𝑡 [𝐻(𝑥, 𝑢, 𝑡) − (𝛽 𝑥̇ )]𝑑𝑡
= ∅ 𝑥 ,𝑡 𝐻(𝑥, 𝑢, 𝑡) − 𝛽̇ 𝑥 𝑑𝑡 − 𝛽 𝑥 + 𝛽 (𝑡 )𝑥
= ∅ 𝑥 ,𝑡 ,𝑥 ,𝑡 [𝐻(𝑥, 𝑢, 𝑡) − 𝛽̇ 𝑥 ]𝑑𝑡
Dans ce cas le système à commander est représenté par des équations d’états linéaires
et le critère à minimiser est quadratique.
5.1- Mise en équations du problème
Soit le système linéaire décrit par les équations suivantes :
1
𝐻 = (𝑥 𝑄(𝑡)𝑥 + 𝑢 𝑅𝑢) + 𝛽 (𝐴𝑥 + 𝐵𝑢)
2
𝜕𝐻
𝑥̇ = = 𝐴𝑥 + 𝐵𝑢
𝜕𝛽
La deuxième condition (4) donne le système adjoint :
𝜕𝐻
−𝛽̇ = =𝑄+𝐴 𝛽
𝜕𝑥
et la condition de stationnarité est donné par :
𝜕𝐻
0= = 𝑅𝑢 + 𝐵 𝛽
𝜕𝑢
D’où l’expression de 𝑢
𝑢 = −𝑅 𝐵 𝛽
Les équations d’état et les équations adjointes couplées donne alors le système suivant :
𝑥̇ 𝐴 −𝐵−𝑅 𝐵 𝑥
̇ = 𝛽
𝛽 −𝑄 −𝐴
5.3- Solution du problème LQ
Pour résoudre le système (13), il faut tenir compte des conditions terminales. Deux cas
sont envisagés :
- Etat final connu, conduisant à une commande en boucle ouverte.
- Etat final libre, conduisant à une commande en boucle fermée.
1
𝐽(𝑡 ) =
𝑢 𝑅𝑢𝑑𝑡
2
Il s’agit donc de déterminer la commande qui transfère le système de l’état initial 𝑥(𝑡 )
donné, à l’état final 𝑥 𝑡 = 𝑟 𝑡 donné, en minimisant l’énergie de commande.
Dans ce cas les équations d’état et les équations adjacentes sont données par :
𝑥̇ (𝑡) = 𝐴𝑥(𝑡) − 𝐵𝑅 𝐵 𝛽
Et
𝛽̇ = −𝐴 𝛽
La solution de l’équation précédente est obtenue simplement en fonction de 𝛽 𝑡
𝛽(𝑡) = 𝑒 ( )
𝛽 𝑡
En utilisant cette solution, l’équation d’état du système devient :
( )
𝑥̇ (𝑡) = 𝐴𝑥(𝑡) − 𝐵𝑅 𝐵 𝑒 𝛽 𝑡
Où
( ) ( ) ( )
𝑥(𝑡) = 𝑒 𝑥(𝑡 ) − 𝑒 𝐵𝑅 𝐵 𝑒 𝛽 𝑡 𝑑𝜏
On a :
( ) ( ) ( )
𝑥 𝑡 =𝑒 𝑥(𝑡 ) − 𝑒 𝐵𝑅 𝐵 𝑒 𝛽 𝑡 𝑑𝜏
Où encore :
( )
𝑥 𝑡 =𝑒 𝑥(𝑡 ) − 𝐺 𝑡 , 𝑡 𝛽 𝑡
Avec :
( ) ( )
𝐺 𝑡 ,𝑡 =∫ 𝑒 𝐵𝑅 𝐵 𝑒 𝑑𝜏
𝛽 𝑡 est alors donné par :
( )
𝛽 𝑡 = −𝐺 𝑡 , 𝑡 (𝑟 𝑡 −𝑒 𝑥(𝑡 ))
(𝑡) = −𝑅 ( )
𝑢 𝐵 𝑒 𝐺 𝑡 , 𝑡 [(𝑟 𝑡 −𝑒 𝑥(𝑡 )]
Remarques :
i. La commande optimale est en boucle ouverte puisqu’elle dépend de l’état
initial et non de l’état courant 𝑥(𝑡)
En l’absence d’entrée, 𝑥(𝑡) = 𝑒 ( )
𝑥(𝑡 ) .
ii. L’expression de 𝑢 (𝑡) montre que la commande optimale est proportionnelle à la
différence entre l’état final désiré et la solution du système en régime libre à 𝑡 = 𝑡 .
iii. 𝑢 (𝑡) existe si 𝐺 𝑡 , 𝑡 est inversible, ce qui correspond à la condition de
commondabilité du système. Donc si ( A, B) est commandable alors il existe une
commande optimale minimisant l’énergie de commande (c-à-d
1
𝐽(𝑡 ) = 𝑢 𝑅𝑢𝑑𝑡
2
et qui transfère le système d’un état initial donné à n’importe quel état désiré.
𝑆 𝑡 𝑋 𝑡 = 𝛽(𝑡 )
En effet la condition terminale implique que
𝑥̇ (𝑡) = 𝐴𝑥(𝑡) − 𝐵𝑅 𝐵 𝑆 𝑡 𝑋 𝑡
Or
𝛽̇ = 𝑆̇𝑥 + 𝑆𝑥̇ = 𝑆̇𝑥 + 𝑆(𝐴𝑥(𝑡) − 𝐵𝑅 𝐵 𝑆 𝑡 𝑋 𝑡 )
Donc (9)devient :
𝑢 (𝑡) = −𝑅 𝐵 𝛽(𝑡)
Soit :
𝑄 + 𝐴 𝑆 + 𝑆𝐴 − 𝑆𝐵𝑅 𝐵 𝑆=0
𝑢 (𝑡) = −𝐺(𝑡)𝑥(𝑡)
Avec :
𝐺=𝑅 𝐵 𝑆 (b)
𝑥̇ = (𝐴 − 𝐵𝐺)𝑥
Nous devons donc connaître les conditions d’existence d’une telle limite pour tout 𝑆 𝑡 .
De plus, il serait intéressant de savoir quand cette limite est indépendante de 𝑆 𝑡 .
Les théorèmes suivants permettent de répondre à ces questions :
Théorème 1 :
Si ( A, B) est stabilisable alors pour chaque 𝑆 𝑡 , il existe une limite bornée S quand
T𝑡 → ∞ , solution de l’équation de Ricatti. Mieux encore S est une solution semi définie
positive de l’équation algébrique de Ricatti.
Théorème 2 :
Soit C une matrice tel que Q = CTC
- il existe une solution unique S définie positive de l’équation de Ricatti. Mieux encore
cette solution, est l’unique solution définie positive de l’équation algébrique de Ricatti.
- Le système bouclé donné par (a), où G est donné par (b), est asymptôtiquement stable.
Où 𝑄 > 0 et 𝑅 > 0. Du fait des entrées de bruit 𝑣 et 𝑤, les grandeurs 𝑢 et 𝑥 sont des
grandeurs stochastiques. Comme critère, il est ainsi naturel de s'intéresser à l'espérance
d'une intégrale. Comme pour la commande LQ, il est possible de considérer des critères
à temps fini.
Théorème de séparation
La solution de ce problème de commande optimale de processus stochastique est bien
connue sous le nom de théorème de séparation. Ce théorème énonce que la solution du
problème est composée de deux parties :
-
Ce théorème est intéressant dans la mesure où il donne la solution du problème complet
comme étant la réunion des solutions de deux problèmes plus simples et déjà résolus :
celui de la commande LQ et celui de l'estimation de Kalman.
1- Introduction
La synthèse d’une commande conventionnelle en boucle fermée passe par les étapes
suivantes :
Elle intervient pour ajuster les paramètres du correcteur quand les paramètres du
système subissent des perturbations. Cette boucle calcule un indice de performance à
partir de la sortie, des états et de la commande. Cet indice est utilisé pour ajuster les
paramètres du correcteur pour avoir l’indice de performance désiré. L’action des deux
boucles est décrites dans cet exemple
Cas 1 : Les paramètres du système sont à leur valeur nominale et une perturbation agit
sur la grandeur commandée. La boucle conventionnel le permet le retour de cette
grandeur à sa valeur régulée avec l’amortissement imposé.
Cas 2 : Les paramètres du système changent, par conséquent, l’amortissement change
aussi. Le mécanisme d’adaptation agit alors en changeant les paramètres du correcteur
pour faire revenir l’amortissement à sa valeur désirée.
1. Avoir une erreur nulle entre la sortie du système commandé et le modèle de référence
s’ils partent des mêmes conditions initiales,
2. Avoir une erreur qui converge asymptotiquement vers zéro si les conditions initiales
sont différentes.
Le schéma de principe de la commande adaptative directe est donné sur la figure ci-
dessous
7 Méthodes du gradient
Soit un système en boucle fermée dont le correcteur possède un seul paramètre θ. Soit
ym la sortie du modèle de réference et e = y – ym l’erreur de poursuite du modèle de
réference.
connue mais le gain k est inconnu. L’objectif est de trouver un correcteur en boucle
ouverte pour que système corrigé possède la fonction de transfert Gm(s) du modèle de
référence
Si le gain k était connu, la poursuite parfaite du modèle de référence est réalisée si (voir
figure .7) :
Or
D’où
On tire finalement
On remplaçant u
(i)
Soit
L’ordre du système et du modèle de référence étant le même, il est possible de faire une
poursuite parfaite du modèle de référence.
On calcule alors :
Ces relation ne peuvent pas être utilisées directement car a et b sont inconnus. On utilise
alors une approximation en remarquant que si les paramètres sont proches des
paramètres exacts (θ = θ0) on a :
On pose alors :
Soit
(1)
Théorème .5 (Stabilité d’un système à temps variant) Soit xe= 0 un point d’équilibre
8.2. Synthèse de commande adaptative par modèle de référence par la théorie de
Lyapunov
e = y − ym
On souhaite imposer son comportement à un système qui est aussi de premier ordre
Alors
car V (t) est décroissante, ce qui implique que e, θ1 et θ2 soient bornés et que y =e + ym
soit aussi borné en supposant que le modèle de référence Gm(s) est stable et la consigne
yc bornée. De plus, la dérivée seconde par rapport au temps t de V est donné par
Table 3.1 – Comparaison des méthodes de Lyapunov et MIT pour la synthèse d’un
CAMS
Partie 3 Commande prédictive
3.1 Introduction
L’idée de base de la commande prédictive est celle d’une prédiction de la réponse d’un
système à contrôler étalée sur un horizon [𝑁 , 𝑁 ]. Le but de la méthode est de générer à
un instant courant ‘𝑡’ quelle que soit la valeur du retard du système, un signal de
commande 𝑢(𝑡), et ceci en calculant les prédictions de la sortie du processus 𝑦, sur un
intervalle [𝑁 , 𝑁 ].
La loi de commande est obtenue par minimisation d’un critère quadratique portant sur
les erreurs futures avec un terme de pondération sur la commande :
L’approche prédictive la plus proche de la théorie standard pour les systèmes linéaires
est certainement celle qui considère un modèle par représentation d’état :
Le modèle de base pour calculer les prédictions est un modèle d’état discret donnée par
[14] :
𝑥(𝑘 + 1) = 𝐴𝑥(𝑘) + 𝐵𝑢(𝑘)
𝑧(𝑘) = 𝐶 𝑥(𝑘)
Aussi suppose que nous ne savons rien au sujet des perturbations ou bruit de la mesure.
Alors tout ce que nous pouvons faire est de prédire à partir des équations ci-dessus,
nous obtenons
Dans la première ligne nous avons utilisé 𝑢(𝑘/𝑘) plutôt que 𝑢(𝑘), parce qu’un moment
quand nous avons besoin de calculer les prédictions nous ne savons pas quel est 𝑢(𝑘).
Maintenant rappel que nous avons supposé que la commande changera aux
temps 𝑘, 𝑘 + 1, … , 𝑘 + 𝑁 − 1) seulement, et restera constante après cela. Donc nous
avons
û (𝑘 + 𝑖/𝑘) = û (𝑘 + 𝑁 -1) pour 𝑁 ≤ 𝑖 ≤ 𝑁 − 1. En fait, nous voudrons avoir les
prédictions exprimées quant à ∆ û (𝑘 + 𝑖/𝑘) plutôt qu’ û (𝑘 + 𝑖/𝑘). Rappelons que
∆ û (𝑘 + 𝑖/𝑘) = û (𝑘 + 𝑖/𝑘) − û (𝑘 + 𝑖 − 1/𝑘) , et qu’à temps 𝑘 nous savons déjà
𝑢(𝑘 − 1). Donc nous avons :
x̂ (𝑘 + 𝑁 /𝑘)
= 𝐴 𝑥(𝑘) + (𝐴 + ⋯ + 𝐴 + 𝐼)𝐵∆ û (𝑘/𝑘) + ⋯ + 𝐵∆ û (𝑘 + 𝑁 − 1/𝑘)
+ (𝐴 + ⋯ + 𝐴 + 𝐼)𝐵𝑢(𝑘 − 1)
x̂ (𝑘 + 𝑁 + 1/𝑘)
=𝐴 𝑥(𝑘) + (𝐴 + ⋯ + 𝐴 + 𝐼)𝐵∆ û (𝑘/𝑘) + ⋯ + (𝐴 + 𝐼)𝐵∆ û (𝑘
+ 𝑁 − 1/𝑘) + (𝐴 + ⋯ + 𝐴 + 𝐼)𝐵𝑢(𝑘 − 1)
⋮
x̂ (𝑘 + 𝑁 /𝑘)
= 𝐴 𝑥(𝑘) + (𝐴 + ⋯ + 𝐴 + 𝐼)𝐵∆ û (𝑘/𝑘) + ⋯ + (𝐴 + ⋯+ 𝐴
+ 𝐼)𝐵∆ û (𝑘 + 𝑁 − 1/𝑘) + (𝐴 + ⋯ + 𝐴 + 𝐼)𝐵𝑢(𝑘 − 1)
Finalement nous pouvons écrire ceci dans une matrice:
⎡ x̂ (𝑘 + 1/𝑘) ⎤
𝐵
𝐴 ⎡ ⋮ ⎤
⎢ ⋮ ⎥ ⎡ ⋮ ⎤ ⎢∑
⎢ x̂ (𝑘 + 𝑁 /𝑘) ⎥ ⎢ 𝐴 ⎥ ⎢ 𝐴 𝐵 ⎥⎥
⎢ (𝑘 ⎥=⎢𝐴 ⎥ 𝑥(𝑘) + ⎢ ∑ 𝐴 𝐵 ⎥ 𝑢(𝑘 − 1)+
⎢ x̂ + 𝑁 + 1/𝑘) ⎥ ⎢ ⋮ ⎢ ⎥
⎥ ⋮
⎢ ⋮ ⎥ ⎣ 𝐴 ⎦ ⎢ ⎥
⎣ x̂ (𝑘 + 𝑁 /𝑘) ⎦ ⎣∑ 𝐴 𝐵⎦
é
𝐵 ⋯ 0
⎡ 𝐴𝐵 + 𝐵 ⋯ 0 ⎤
⎢ ⋮ ⎥ ∆ û (𝑘)
⎢ ⋮ ⋮ ⎥
⎢∑ 𝐴𝐵 … 𝐵 ⎥ ⋮
⎢∑ 𝐴𝐵 … 𝐴𝐵 + 𝐵 ⎥ ⋮
⎢ ⎥ ∆ û (𝑘 + 𝑁 − 1/𝑘)
⎢ ⋮ ⋮ ⋮ ⎥
⎣ ∑ 𝐴𝐵 … ∑ 𝐴 𝐵⎦
ẑ (𝑘 + 2/𝑘) = 𝐶 x̂ (𝑘 + 2/𝑘)
ẑ (𝑘 + 𝑁 /𝑘) = 𝐶 x̂ (𝑘 + 𝑁 /𝑘)
Où
ẑ (𝑘 + 1/𝑘) 𝐶 0 … 0 ⎡ x̂ (𝑘 + 1/𝑘) ⎤
𝐶 … 0 ⎢ ⋮
⋮ = 0 ⎥
⋮ ⋮ ⋮ ⋱ ⋮ ⎢ ⋮ ⎥
ẑ (𝑘 + 𝑁 /𝑘) 0 0 … 𝐶 ⎣ x̂ (𝑘 + 𝑁 /𝑘)⎦
Où
ẑ (𝑘 + 1/𝑘)
𝑍(𝑘) = ⋮
⋮
ẑ (𝑘 + 𝑁 /𝑘)
r̂ (𝑘 + 1/𝑘)
𝑇(𝑘) = ⋮
⋮
r̂ (𝑘 + 𝑁 /𝑘)
∆ û (𝑘/𝑘)
𝛥𝑈(𝑘) = ⋮
⋮
∆ û (𝑘 + 𝑁 − 1/𝑘)
𝑄(1) 0 … 0
0 𝑄(1) … 0
𝑄=
⋮ ⋮ ⋱ ⋮
0 0 … 𝑄(𝑁 )
𝑅(1) 0 … 0
𝑅(1) … 0
𝑅= 0
⋮ ⋮ ⋱ ⋮
0 0 … 𝑅(𝑁 − 1)
En posant :
On peut écrire
Où
𝐹 = 2Θ 𝑄𝜖(𝑘)
𝐻 = Θ 𝑄Θ + 𝑅
Ni 𝐹 ni 𝐻 dépend d’Δ𝑈(𝑘)
Pour trouver l’Δ𝑈(𝑘) optimal nous pouvons trouver maintenant le gradient de 𝑉(𝑘) et
le mettre à zéro, on obtient alors
∇∆𝑈(𝑘)𝑉 = −𝐹2𝐻∆𝑈(𝑘)
∆𝑈(𝑘) = 𝐻 𝐹 (2.5)
Nous utilisons seulement la partie de cette solution qui correspond au premier élément
du vecteur, nous pouvons représenter ceci comme :
∆𝑈(𝑘) = 𝐼 , 0 ,…,0 ∆𝑈(𝑘)
( )
(2.6)
𝑦(𝑘) = 𝐶 𝑥(𝑘)
𝑁 = 1, 𝑁 = 8, 𝑁 = 2
0.12 0.15
MPC
Ref
0.1
0.08 0.1
V ariation de la reponse x 2
V ariation de la reponse x1
0.06
0.04 0.05
0.02
0 0
0 10 20 30 40 50 60 0 10 20 30 40 50 60
Temps (s) Temps (s)
0.25
0.2
Signal de commande
0.15
0.1
0.05
0
0 10 20 30 40 50 60
Temps (s)
Où
𝑒(𝑡) : un bruit blanc gaussien de moyenne nulle. 𝐶(𝑧 ) est un polynôme en l’opérateur
retard, lié aux perturbations et par la suite, sans une connaissance supplémentaire
sur la nature des perturbations, il sera choisi égal à 1 (sa valeur n’influe pas par ailleurs
sur le comportement en suivi de trajectoire, il peut jouer un rôle en rejet de
perturbation).
𝑒(𝑡)
𝐶(𝑧 )
𝛥(𝑧 )
𝑥(𝑡)
+
𝑢(𝑡) + 1 𝑦(𝑡)
𝑧 𝐵(𝑧 )
𝐴(𝑧 )
Figure 1.1 : Modèle CARIMA
Donc :
Avec :
𝐴(𝑧 )= 1+𝑎 𝑧 +𝑎 𝑧 + ⋯+ 𝑎 𝑧
𝐵(𝑧 )=𝑏 +𝑏 𝑧 +𝑏 𝑧 + ⋯+ 𝑎 𝑧
𝐼 = 𝐸 (𝑧 )𝐴(𝑧 ). 𝐿 + 𝑧 𝐹 (𝑧 )
(2.9)
( )
𝐸 = 𝑒(𝑗, 0) + 𝑒(𝑗, 1)𝑧 + ⋯ + 𝑒(𝑗, 𝑗 − 1)𝑧
Avec 𝐺 = 𝐵𝐸
Une manière simple et effective pour déterminer les polynomes 𝐸 et 𝐹 est d’utiliser la
recursion de l’équation diophantienne de telle sorte que les plolynomes 𝐸 et 𝐹
seront obtenus à partir de 𝐸 et 𝐹 , cette procédure récursive, nous la résumons par les
deux étapes suivantes :
𝐸 =1
1-
𝐹 = 𝑧(1 − 𝐴)
𝐸 =𝐸 +𝑓 , .𝑧
2-
𝐹 = 𝑧(𝐹 − 𝐴. 𝑓 , )
Où : 𝐴 = ∆. 𝐴 = (1 − 𝑧 ). 𝐴
Supposons qu’un ensemble de consigne 𝑊(𝑡 + 𝑗) soit donné forment ainsi vecteur de
référence :
A un instant d’échantillonnage quelconque, seul le signal 𝑦(𝑡) est connu. Les signaux de
commande 𝑢(𝑡) et de perturbation 𝑒(𝑡) ne sont pas connus.
Yˆ = G û + f (2.11)
Yˆ = ŷ (𝑡 + 1), … , ŷ (𝑡 + 𝑁)
û = [𝐿 u (𝑡 + 1), … , 𝐿 u (𝑡 + 𝑁 − 1)]
𝑓 = [𝑓(𝑡 + 1), … , 𝑓(𝑡 + 𝑁 )]
𝑔 (1, 0) 0 … 0
⎡ … ⎤
𝑔 (2, 1) 𝑔 (2, 0) 0
⎢ … ⎥
𝐺=⎢ 𝑔 (3, 2) 𝑔 (3, 1) 0 ⎥
⎢ ⋮ ⋮ … ⋮ ⎥
⎣𝑔 (𝑁 , 𝑁 − 1) 𝑔 (𝑁 , 𝑁 − 2) … 𝑔 (𝑁 , 0)⎦
L’expression du critère de performance Eq.2.1, peut être écrite sous forme vectorielle
comme suit :
𝐽 = 𝐺 û + 𝑓 − 𝑤 𝐺 û + 𝑓 − 𝑤 + 𝜆 û T û
(2.12)
La minimisation de 𝐽 donne :
û = 𝑀(𝑤 − 𝑓) (2.13)
𝑚
Avec 𝑀 = 𝐺 𝐺 û + 𝜆𝐼 𝐺 = ⋮ , Où 𝐼représente la matrice identité. 𝑓 une fonction
𝑚
obtenue
Cet incrément contrôle est utilisée dans un contexte à horizon fuyant (receding control
horizon) c-à-d que le premier élément de 𝑈 noté Δ𝑢(𝑡), est calculé pour donner la
commande courante :
Δ𝑢(𝑡) = 𝑚 (𝑤 − 𝑓) (2.14)
w(t) + 1 u(t) z 1 B( z 1 )
m1 ( z ) - S ( z 1 ) A( z 1 ) y(t)
R ( z 1 )
Régulateur polynomial équivalent
Avec :
𝐴(𝑧 ) = 1 − 1.425𝑧 + 0.535𝑧
𝑁 = 1, 𝑁 = 10, 𝜆 = 0.8, 𝑁 = 2
1.5 2
RST
Ref
1.5
1
0.5
0 0
-0.5
-0.5
-1
-1
-1.5
-1.5 -2
0 20 40 60 80 100 120 140 0 20 40 60 80 100 120 140
Temps (s) Temps (s)
1.5
1
Signal de l erreur e(t)
0.5
-0.5
-1
-1.5
-2
0 20 40 60 80 100 120 140
Temps (s)
yˆ (t N 2 j ) y ref (t N 2 ), j 1, , m (2.17)
𝑚
Référence
Contraintes
terminales
Sortie prédite
𝑁 𝑁
Horizon de cout
Passé ∆𝑢(𝑡) Future
∆𝑢(𝑡 + 1)
(2.18)
Yˆc
= G û + 𝑓
Yˆc (𝑡
= ŷ + 𝑁 + 1), … , ŷ (𝑡 + 𝑁 + m)
𝑓 = [𝑓(𝑡 + 𝑁 + 1), … , 𝑓(𝑡 + 𝑁 + m)]
𝐺
𝑔 (𝑁 + 1, 𝑁 + 1) 𝑔 (𝑁 + 1, 𝑁 ) … …
⎡ … … ⎤
𝑔 (𝑁 + 2, 𝑁 + 2) 𝑔 (𝑁 + 2, 𝑁 + 1)
⎢ … … ⎥
= ⎢ 𝑔 (𝑁 + 3, 𝑁 + 3) 𝑔 (𝑁 + 3, 𝑁 + 2) ⎥
⎢ ⋮ ⋮ … ⋮ ⎥
⎣𝑔 (𝑁 + 𝑚, 𝑁 + 𝑚) 𝑔 (𝑁 + 𝑚, 𝑁 + 𝑚 − 1) … 𝑔 (𝑁 + 𝑚, 𝑁 − 𝑁 + 𝑚 + 1)⎦
û = 𝑀(𝑤 − 𝑓) + 𝑀 (𝑤 − 𝑓 ) (2.19)
Avec : 𝐻 = [𝐺 𝐺 + 𝜆𝐼]
𝑃 = [𝐺 𝐻𝐺 ]
𝑚
𝑀 = 𝐻𝐺 𝑃 = ⋮ ,
𝑚
𝑄 = (𝐼 − 𝑀 𝐺 )𝐻
𝑀 = 𝑄𝐺
Afin de mettre en évidence l’impact des contraintes, nous présentons ci-dessous Figures
2.4- 2.5 des résultats de simulations obtenus pour deux systèmes différents.
1- Avec :
𝑁 = 1, 𝑁 = 10, 𝜆 = 0.5986, 𝑁 = 2, 𝑚 = 3
GPC
1 Ref
CRHPC
0.5
Signal de sortie y(t)
-0.5
-1
2- Avec :
𝑁 = 1, 𝑁 = 8, 𝜆 = 0.5986, 𝑁 = 2, 𝑚 = 2
GPC
Ref
1
CRHPC
0.5
Signal de sortie y(t)
-0.5
-1
0 10 20 30 40 50 60
Temps (s)
Les résultats obtenus ci-dessus illustrent les performances de la méthode, les courbes
montrent que la prise en compte de contraintes terminales améliore encore les résultats
obtenus lors des essais précédents, tout particulièrement concernant le dépassement en
position, qui restait important dans le cas de l’algorithme GPC.
La relation Eq.2.4 donnant le prédicteur optimal est utilisée dans le critère Eq.2.3 entre
les horizons [𝑁 , 𝑁 ] . Pour simplifier les notations, il est possible d’utiliser une
représentation matricielle de ce prédicteur[19].
Yˆ U n
(2.20)
B 0 0
AB B 0
Avec C n H 0 , C n x(k ) , H
Hp 2 Hp Hu 1 i
A B A Hp 3
B i 0 A B
A Hp 1 B A Hp 2 B i 0 Ai B
Hp Hu
A C 0 0
2 0 C 0
A
et C n , R Hpno Hpns
Hp
A 0 0 C
Où
Le critère quadratique Eq.2.3 peut se combiner avec la relation Eq.2.20 pour obtenir
l’expression matricielle de ce critère :
J (U n ) J min 2 Yrefn Q U
T T
k 1
S U n U nT T Q R T S U n
(2.21)
Où
u (k / k ) y reef (k 1)
u (k 1 / k )
y ref (k 2)
Un , R ( Hu 1) ni
Yref , R Hpn 0
u (k Hu / k ) y ref (k Hp)
y max (k 1) y min (k 1)
y (k 2) y (k 2)
Ymax max ,R Hpn 0
, Ymin
min , R Hpn0
y max (k Hp) y min (k Hp)
u min (k ) u max (k )
u (k 1) u (k 1)
min , R ( Hu 1) ni , U max , R ( Hu 1) ni
U min max
u min (k Hu ) u max (k Hu )
et pour la partie avec contraintes :
Yˆc c cU n
(2.22)
Où
c C nc H c 0
Et
c C nc c x(k )
𝐵
A Hp B i 0
Hp Hu 1
A Hp1 B A i
B ⎡ ⋮ ⎤
Hp 1 ⎢∑ 𝐴 𝐵 ⎥⎥
i 0
Hp Hu 2 i
A B A Hp B A B ⎢
Hc ᴪ=⎢∑ 𝐴𝐵 ⎥
⎢ ⎥
⋮
A Hp m 2 B i 0
Hp Hu m i
A Hp m 1
B A B ⎢ ⎥
, ⎣∑ 𝐴 𝐵⎦
A Hp 1 C 0 0
Hp 2 0 C 0
A
c , C nc , R mnomns
A Hp m 0 0 C
y reef (k Hp 1)
y ref (k 2) , R mn 0
Yrefc
y ref (k Hp m)
no : nombre de sorties
ni : nombre d’entrées
Hu : l’horizon de commande
Hp : l’horizon de prédiction
m : l’horizon supplémentaire représente les contraintes terminales.
Dans ce cas, des techniques de multiplicateurs de Lagrange sont tout à fait applicables.
Ainsi, la solution de l’algorithme CRHPC (MPC sous contraintes terminales), issue de la
minimisation des relations matricielles Eqs.2.21 et 2.22, est donnée par la séquence de
commandes futures :
𝐹=𝐶 ф
𝑉=𝐶 ᴪ
𝑆=𝐶 𝐻
𝐹 =𝐶 ф
𝑉 =𝐶 ᴪ
𝑆 =𝐶 𝐻
𝐸 = 𝑅𝑒𝑓 − 𝐹𝑥(𝑡) + 𝑉∆𝑢(𝑡)
𝐸 = 𝑅𝑒𝑓 − (𝐹 𝑥(𝑡) + 𝑉 ∆𝑢(𝑡))
𝐺 = 2𝑆 𝑄𝐸
𝐺 = 2𝑆 𝑄𝐸
𝐹 = 𝑆 𝑄𝑆 + 𝑅
𝐹 = 𝑆 𝑄𝑆 + 𝑅
3. 6 Conclusion
Dans ce chapitre nous avons présenté les éléments de base de deux stratégies de
commande prédictive à base de modèle linéaire, faisant intervenir des contraintes de
type égalités. Toutes les stratégies de commande prédictive ont les même paramètres de
réglage : l’horizon de prédiction [𝑁 , 𝑁 ], l’horizon de commande 𝑁 et la pondération
sur la commande 𝜆. Ces paramètres sont choisis de manière à obtenir la meilleure
réponse possible du système.
Pour des systèmes simple (stable en boucle ouverte même avec retard et phase non
minimale) 𝑁 = 1 donne généralement une commande acceptable. Pour des systèmes
complexes une valeur plus élevée de 𝑁 est plus appropriée, 𝑁 dans ce cas est au moins
égale au nombre de pôles instable ou mal amortis. La valeur du coefficient de
pondération ne doit pas très élevé de manière à éviter l’amortissement de l’action de
contrôle.