ESISAR 5ème ANNEE D'ETUDES
Département : AUTOMATIQUE
Auteur: Damien KOENIG
Module AC 560 : Synthèse H∞
[Link]
TP 2 : COMMANDE H PAR MODELAGE DU TRANFERT DE BOUCLE
(LOOP SHAPING) APPLICATION: MOTEUR A COURANT CONTINU
Introduction : Asservir en position un moteur à courant continu perturbé en entrée de commande
par un offset et en sortie par des bruits. On appliquera pour cela la synthèse H standard avec
insertion de pré et post filtre dans la boucle de régulation. Le système étant SISO on rassemblera le
pré et post filtre en un filtre W(s).
b
r +
+ + z
w2(s) w1(s) G(s)
K(s)
u
-
On considère le moteur à courant continu suivant :
u ampli ,
Réducteur : 1/N
b moteur
z
où u est la tension de commande, b une perturbation constante (type tension offset) , z la mesure de position.
Les valeurs nominales des paramètres sont les suivantes
R 5.8 J 15.10 7 kg m 2 A 10 L 5.10 3 H a 10 6 Nms N 7
K e 0.024Vs K c 0.024 NmA 1 4Vrd 1
AC-560 : Synthèse H∞
Objectifs de l’asservissement
BP : c=100rd/s
marges de module : > 0.4
marges de stabilité : gain G15db, phase 50°
amplitude de la commande « raisonnable »
erreur statique due à b faible < 1%
Modélisation : Les lois classiques de la mécanique et de l'électricité permettent d'établir le modèle suivant
dI d
L
dt RI (t ) K e t Au (t ) b ; J K c I (t ) at
dt
t d ; z (t ) t
dt N
où la constante de temps L/R est 0.862.10-3 (p~1160).
1)Pourquoi peut-on négliger cette constante de temps (ou le mode) et considérer pour la synthèse du contrôleur le
modèle du procédé suivant
Z(s) 240
Gs
Us s1 0.015s
2) Tracer l’évolution des valeurs singulière de G(s).
k s / s1 1
Soit W s un filtre integral à avance de phase que l’on introduit dans le tranfert de boucle.
s s / s2 1 Ga(s)
u(s) y(s) ya(s)
K(s) G(s) W(s)
3) Ajuster k, s1 et s2 tels que les valeurs singulières de Ga s W2 s Gs W1 s Gs W s (voir rq 1.2)
présentent un gain élevé en BF (assurant ainsi le rejet des perturbations constantes et le suivi de consigne i.e.
performance),
une coupure de l’axe 0db à 100rd/s (BP souhaitée)
et une atténuation en HF (robustesse des dynamiques négligées et bruits)
Tracer l’évolution des valeurs singulières de G(s)W(s) et G(s).
4) Résoudre le problème H standard. On considèrera pour cela le procédé augmenté G a(s), la fonction de sensibilité
S 1 KGa 1, la matrice de transfert
S SG a r
M
u KS KSG a b
et la réalisation P(s) issue du problème de synthèse H standard, à savoir
r
w
z b
u P(s)
u
=
K(s)
2
AC-560 : Synthèse H∞
Déduire alors à l’aide de la fonction matlab « hinfric », le régulateur K(s) et le majorant . Ajuster k, s1, s2 pour
obtenir les marges souhaitées. Le correcteur final est bien entendu K(s)W(s).
5) Tracer l’évolution des valeurs singulières de la fonction de sensibilité : S(s)=1/(1+K(s)G(s)W(s))
6) Tracer l’évolution des valeurs singulières de la fonction complémentaire : T(s)=I-S(s)
7) Tracer le bode du correcteur K(s)W(s)
8) Tracer l’évolution des valeurs singulières : sensibilité* K(s)W(s)
9) Tracer l’évolution des valeurs singulières : sensibilité* G(s)
10) Commenter les différents tracés et conclure quant à l’intérêt de l’approche.
11) On pourra comparer les résultats avec la synthèse d’un contrôleur H2 avec pondérations fréquentielles définies par
les filtres Rc1/ 2s 1 et Qc1/ 2s k s / s11 et associé à un observateur identité à pondérations unitaires, Qo=I,
s / s2 1 s
Ro=1.
Aide : les fonctions matlab utiles au problème posé sont :
tf, tfdata(G,'v'), tf2ss, ltisys, hinfric, slft, feedback, sigma, bode
Remarques :
1
1. La première inégalité Sa assure que la MM est supérieure à . En conséquence ajuster le filtre
pour une marge de module > 1/2 implique un 2 .
2. Pour des systèmes mono variable un seul filtre suffit, on ne parle pas de pré et post filtre.
1 1
3. En basse fréquence, généralement Ga K 1 , soit Sa , S a Ga ,
Ga K K
1
KSa et KSa G a 1
Ga
o => 1
1 1 1
o => K
K K
1 1 1 1
o => Ga K or K et
Ga K Ga K
1
Ga K Ga K soit Ga K Ga K Ga =>
3
AC-560 : Synthèse H∞
1
Ga K Ga
4. En haute fréquence, généralement Ga K 1 , soit Sa 1 , S a Ga Ga ,
KSa K et KSa G a KG a
o => Ga K or Ga K Ga K et K soit
Ga K Ga K Ga
Soit un tracé pour 2 par exemple
|| Ga
1
Ga K Ga
2
Log(w)
Ga K 2Ga
Ga
Eléments de réponses sous matlab
G=tf([240], [0.015 1 0]); %procédé
...
Ga=G*GI*GAvph; %Etablir le système augmenté de l’intégrateur et de l’avance de phase
[numGa,denGa] = tfdata(Ga,'v') % 'v' signifie sys SISO
[Aa,Ba,Ca,Da]=tf2ss(numGa,denGa);
...
P=ltisys(Aa, [Bw Bu], [Cz; Cy], [Dzw Dzu; Dyw Dyu]); %réalise la réalisation P
[gopt,K] = hinfric(P,[1 1]); % determine K et gama
clsys=slft(P,K); % systeme BF
spol(clsys); % valeur propre de la BF
[numK,denK] = ltitf(K);
K_=tf(numK,denK);
Ka=K_*GI*GAvph; % correcteur augmenté du loop-shape
SysBF=feedback(Ka*G,1); % T=I-S
S=feedback(1,Ka*G);
Sens_bruitSortie_u=Ka*S;
Sens_b_eps=G*S;
%effectuer les tracés
...