Universite Cadi Ayyad
Faculte des Sciences et Techniques - Marrakech Gueliz
Departement de Physique Appliquee
MST-GE & ERME | Module : Regulation Industrielle
Exercice 2 : Correcteur RST
Solution Amelioree - Commande sans Oscillations
1. Probleme identifie dans la solution initiale
Le procede est defini par : F(s) = 705 / (s² + 36) avec une periode d'echantillonnage Δ =
0,01 s.
Apres discretisation, on obtient :
F(z) = 0,0348(z + 1) / (z² - 1,9964z + 1) = N(z) / D(z)
La factorisation du numerateur donne : N⁺(z) = 1 (zeros stables) et N⁻(z) = 0,0348(z + 1)
(zero instable en z = -1).
Probleme : Dans la solution initiale, T(z) = 22,98z(z - 0,7)/(z + 1) contient un pole en z = -1
(frequence de Nyquist). Ce pole provoque des oscillations a haute frequence dans la
commande (signal en creneaux +/-40 observe en simulation). Ce comportement est
physiquement inacceptable.
2. Principe de la solution corrigee
Inspire de l'Exercice 1 (pendule inverse), la strategie consiste a inclure N⁻(z) directement
dans Nr(z). Ainsi, lors du calcul de T(z) = [Nr(z) / N⁻(z)] x D₀(z), la simplification analytique
elimine le pole z = -1.
Nouveau modele a poursuivre :
Hr(z) = K(z + 1)(z - z₀) / [(z - p₀)(z - p₀*)] = Nr(z) / Dr(z)
3. Calcul de Dr(z) - Poles desires en boucle fermee
Cahier des charges : temps de reponse tr = 0,05 s, facteur d'amortissement xi = 0,7.
On a : tr x omega_n = 3 => omega_n = 60 rad/s
p₀ = e^(-Δωnξ) x e^(jΔωn√(1-ξ²))
Dr(z) = z² - 2e^(-Δωnξ) cos(Δωn√(1-ξ²)) z + e^(-2Δωnξ)
Dr(z) = z² - 1,19z + 0,43
4. Calcul du zero z₀ - Condition d'erreur de trainee nulle
Nr(z) a maintenant deux zeros : z = -1 et z = z₀. La condition Σ 1/(1-z_i) = Σ 1/(1-p_j)
donne :
1/(1-(-1)) + 1/(1-z₀) = [2 - 2Re(p₀)] / Dr(1)
Dr(1) = 1 - 1,19 + 0,43 = 0,24
0,5 + 1/(1-z₀) = (2 - 1,19) / 0,24 = 3,375
1/(1-z₀) = 2,875 => z₀ = 0,652
5. Calcul du gain K - Condition d'erreur statique nulle
La condition Hr(1) = 1 donne :
K x (1+1)(1-z₀) = Dr(1) => K = 0,24 / (2 x 0,348) = 0,345
Conclusion :
Nr(z) = 0,345(z + 1)(z - 0,652)
Dr(z) = z² - 1,19z + 0,43
Hr(z) = 0,345(z + 1)(z - 0,652) / (z² - 1,19z + 0,43)
6. Calcul des degres et de l'equation de Diophante
Avec delta_D = 2, delta_Dr = 2, delta_N+ = 0 :
delta_D₀ = 2 x 2 - 2 + 0 - 1 = 1 => D₀(z) = z
delta_R' = 2 + 1 - 2 = 1 => R'(z) = z + r₀
delta_S = 2 - 1 = 1 => S(z) = s₁z + s₀
L'equation de Diophante est :
D(z) R'(z) + N⁻(z) S(z) = Dr(z) D₀(z)
(z² - 1,9964z + 1)(z + r₀) + 0,0348(z+1)(s₁z + s₀) = (z² - 1,19z + 0,43)z
En identifiant les coefficients de z², z¹ et z⁰, on obtient le systeme :
Coefficient Equation
z² r₀ - 1,9964 + 0,0348 s₁ = -1,19
z¹ 1 - 1,9964 r₀ + 0,0348(s₀ + s₁) = 0,43
z⁰ r₀ + 0,0348 s₀ = 0
Resolution du systeme :
De la 3eme equation : r₀ = -0,0348 s₀
En substituant dans les deux autres equations, on trouve :
Variable Valeur
r₀ 0,3444
s₁ 13,28
s₀ -9,896
R'(z) = z + 0,3444 S(z) = 13,28z - 9,896
7. Calcul de T(z) - Elimination du pole z = -1
On calcule T(z) = [Nr(z) / N⁻(z)] x D₀(z) :
T(z) = [0,345(z+1)(z-0,652) / (0,0348(z+1))] x z
Le facteur (z+1) se simplifie analytiquement. Le pole z = -1 est elimine :
T(z) = [0,345 / 0,0348] x z(z - 0,652) = 9,914 z(z - 0,652)
Avec R(z) = R'(z) x D₀(z) = z(z + 0,3444)
8. Loi de commande recurrente
La loi de commande est :
u(z) = [T(z)/R(z)] y_c(z) - [S(z)/R(z)] y(z)
u(z) = 9,914z(z-0,652) / [z(z+0,3444)] x y_c(z) - (13,28z - 9,896) / [z(z+0,3444)] x y(z)
Equation recurrente (forme implementable) :
u(k) = -0,3444 u(k-1) + 9,914 y_c(k) - 6,465 y_c(k-1) + 13,28 y(k-1)
- 9,896 y(k-2)
9. Comparaison des deux solutions
Critere Solution initiale Solution corrigee
T(z) 22,98z(z-0,7)/(z+1) 9,914 z(z - 0,652)
Pole z = -1 dans T(z) OUI => oscillations NON (elimine)
Signal de commande Creneaux +/-40 Signal lisse et borne
Hr(1) = 1 (epsilon_p = 0) Oui Oui
Erreur de trainee nulle Oui Oui
Stabilite en BF Oui Oui
10. Schema Simulink recommande
Pour la simulation Simulink, utiliser le schema RST suivant :
• Entree : Signal echelon ou rampe (bloc Step ou Ramp)
• Bloc T(z)/R(z) : Discrete Zero-Pole avec T(z) = 9,914z(z-0,652) et R(z) = z(z+0,3444)
• Procede : Transfer Fcn 705/(s^2+36) avec sample time -1
• Bloc S(z)/R(z) : Discrete Zero-Pole avec S(z) = 13,28(z-0,7454) et R(z) = (z+1)
(z+0,3444)
• Scope : Visualiser sortie y(k) et commande u(k) separement
11. Conclusion
En incorporant N-(z) = 0,0348(z+1) directement dans Nr(z), le facteur (z+1) se simplifie
analytiquement dans T(z). Le pole oscillant z = -1 est ainsi elimine a la source, sans
degrader les performances en boucle fermee.
Cette approche, identique a celle appliquee dans l'Exercice 1 pour le pendule inverse,
garantit :
• Une commande lisse et physiquement realisable
• L'erreur statique de position nulle (Hr(1) = 1)
• L'erreur de trainee nulle (condition sur les zeros)
• Le comportement de 2nd ordre desire en boucle fermee (xi = 0,7, tr = 0,05 s)