Le but de ce post est d’expliquer et de démontrer comment calculer un correcteur PI (proportionel-intégral) pour un système du premier ordre. Considérons le système à asservir avec pour fonction de transfert G, le système en boucle fermé est donné par le schéma suivant :
C est le correcteur du système que nous allons dimensionner dans la suite de cette page :
La fonction de transfert en boucle fermée est donnée par :
$$ \frac{y}{y_c} = \frac {CG}{1+CG} $$
comme \(G\) est modélisé par un système du premier ordre, sa fonction de transfert est donnée par :
$$ G=\frac{b}{z-a} = \frac{b} { z-e^{-\Delta/\tau} } $$
où \( \Delta \) est la période d'échantillonage, et \( \tau \) la constante de temps du système en boucle ouverte.
\( C \) est le correcteur PI, sont équation est donnée par :
$$ C=K . \frac{z-a}{z-1} $$
La fonction de tranfert du système en boucle fermée devient :
$$ \frac{y}{y_c} = \frac { K \frac{z-a}{z-1} \frac{b}{z-a} }{1+ K \frac{z-a}{z-1} \frac{b}{z-a}} $$
L’équation précédente peut être simplifiée :
$$ \frac{y}{y_c} = \frac { K \frac{b}{z-1} }{1+ K \frac{b}{z-1} } $$
La nouvelle fonction de transfert est donnée par :
$$ \frac{y}{y_c} = \frac { Kb }{ z -1 + Kb } $$
Considérons la réponse du système en boucle fermée à une entrée de type échelon unitaire ( \( \frac{z}{z-1} \) ) :
$$ y(z) = \frac { zKb }{ (z -1 + Kb)(z-1) } $$
D’après le théorème de la valeur finale (transformée en z), le gain statique du système est donné par :
$$ \lim\limits_{z \to 1} (z-1).y(z) = \lim\limits_{z \to 1} \frac { zKb(z-1) }{ (z -1 + Kb)(z-1) } = \lim\limits_{z \to 1} \frac { zKb }{ (z -1 + Kb) } = 1 $$
Comme le gain statique du système est équal à 1, l’erreur statique est nulle.
Le système en boucle fermée est aussi un premier ordre :
$$ \frac{y}{y_c} = \frac { Kb }{ z -1 + Kb } = \frac { Kb }{ z - e^{-\Delta/\tau_c} }$$
où \( \Delta \) est la période d’échantillonage et \( \tau_c \) a constante de temps du système en boucle fermée. Il est à noter que \( \tau_c \) peut être inférieur à \( \tau \) (la constante de temps du système en boucle ouverte). Si \( \tau_c<\tau \) le système est plus vif, (mais consomme plus d’énergie). En pratique, \( \tau_c=\tau/2 \) est un bon compromis. D’après l’équation précédente :
$$ 1-Kb = e^{-\Delta/\tau_c} $$
et :
$$ K= \frac {1-e^{-\Delta/\tau_c}} {b} $$
Pour obtenir le même temps de réponse en boucle ouverte et en boucle fermée, l’équation précédente devient:
$$ K= \frac {1-a} {b} $$
Te système est stable si tous ses pôles sont situés à l’intérieur du cercle unité. Ici, comme le système est du premier ordre, il n’y a qu’un seul pôle : \( 1-Kb \). Le système est stable si:
$$ -1 < 1-Kb < 1 $$
Cette équation peut être reformulée :
$$ 0 < Kb < 2 $$
et :
$$ 0 < K < \dfrac{2}{b} $$
Il est à noter que si \( K \) est calculé depuis \( \tau_c \) ( \( K = \dfrac {1-e^{-\Delta / \tau_c}}{b} \) ), le terme \( e^{-\Delta / \tau_c} \) est inclus dans l'intervalle [0,1[ et le système est nécessairement stable car il en découle que \( 0 < Kb < 1 \).
La fonction de transfert du correcteur exprimée dans le domaine échantillonné est donnée par:
$$ \frac{u(z)}{\epsilon(z)} = K . \frac{z-a}{z-1} $$
Cette équation peut être reformulée :
$$ (z-1)u(z) = K(z-a)\epsilon(z) $$ $$ z.u(z) - u(z) = K.z.\epsilon(z) -K.a.\epsilon(z) $$ $$ z.u(z) = K.z.\epsilon(z) - K.a.\epsilon(z) + u(z) $$
Exprimons maintenant l’équation précédente dans le domaine discret:
$$ u_{n+1}= K\epsilon_{n+1} - K.a.\epsilon_n + u_{n} $$
où :
$$ u_{n}= K\epsilon_{n} - K.a.\epsilon_{n-1} + u_{n-1} $$
Voici un script MATLAB qui permet de simuler la réponse des systèmes en boucle ouverte et en boucle fermée :