0% ont trouvé ce document utile (0 vote)
286 vues1 page

Réglage Rapide d'un Correcteur PI

Transféré par

KARKAR NORA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
286 vues1 page

Réglage Rapide d'un Correcteur PI

Transféré par

KARKAR NORA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Vincent Kerhoas - Professeur Agrégé

Accueil VHDL Linux Systèmes Embarqués


IHM Automatique / Commande Traitement du Signal / Maths Divers

Réglage (Rapide) d’un Correcteur PI

Le schéma simplifié d’un asservissement est le suivant

Le systéme à Asservir regroupe donc Le moteur, le variateur, les périphériques ; éventuellement une boucle de courant.

1. Modélisation du Systéme à Asservir


Avant tout calcul de correcteur, il est nécessaire d’avoir une idée du modèle du système à asservir (le plus simple étant le premier ordre
G

1+τ .s

Un simple essai indiciel suffit donc à déterminer le Gain et la Constante de temps du système à asservir :

On envoie donc un échelon sur Iq* (consigne de l’image du courant) et on observe N (image de la vitesse). Le gain G correspond au rapport
entre le régime continu de la mesure et l’amplitude de l’échelon de commande. La constante de tempsτ correspond au temps nécessaire pour
que la mesure atteigne 63% du régime continu.

A noter que la période d’échantillonnage du correcteur doit être au moins 10 fois plus petite que τ (afin de “voir” les transitoires précisément).

2. Détermination d’un correcteur PI


De manière générale, asservir (boucler) un système peut entrainer de l’instabilité.

On considère le système suivant, FTBO(s) système à asservir :

Si le module de FTBO(s) est inférieur à -1, on soustrait à la consigne une valeur négative, ce qui a pour conséquence de rendre l’ensemble
instable.

Par ailleurs la consigne étant généralement soit un échelon soit une rampe, constitué d’une somme de sinusoïdes de différentes fréquences (cf.
décomposition en séries de fourrier) , il peut exister une fréquence pour laquelle on s’approche dangereusement de ce point -1.

Tout le problème de l’automatique est de veiller à respecter une certaine distance vis-à-vis de ce point.

Le diagramme de Nyquist représente le tracé de FTBO(s) pour l’ensemble des fréquences :

La marge de phase correspond à la distance entre le point -1 et la courbe de FTBO lorsque cette dernière coupe le cercle de rayon 1.

Cette marge de phase est également visible (et plus facilement mesurable) sur le bode de FTBO :

Un critère de réglage d’un correcteur peut donc être l’observation de cette marge de phase.

Rappel des différentes caractéristiques d’une réponse d’un système :

Stabilité : Respect déune marge de phase d’au moins 30°


Précision : La mesure rejoint-elle la consigne ?
Dans le cas d’une réponse à un échelon, nécessité d’une intégration s dans la boucle ouverte pour respecter une erreur statique
−1

nulle
Dans le cas d’une réponse à une rampe, nécessité déune double intégration dans la boucle ouverte pour respecter une erreur de
s
1
2

trainage nulle.
Rapidité

Un correcteur PI possède une intégration, ce qui permet de régler le problème de l’erreur statique. En contrepartie il ralentit le système, on
veillera donc à respecter une marge de phase suffisante mais pas trop grande non plus (plus la marge de phase est grande, plus la réponse et
lente et les risques de saturation augmentent).

Ci-dessous figurent les bodes du correcteur PI et de FTBO tel que la constante de temps du correcteur PI vaut 0.1*τ
K2
P I (s) = K1 +
s

ωi
On préfèrera la forme : P I (s)
s
= Kp . . (1 + )
s ωi

K1
avec K p = K1 ,ω i =
K2
=
1

Ti

L’association de ces deux blocs donne :

La constante de temps du correcteur étant fixée, le tracé de la phase est figé, on peut alors jouer sur le gain du correcteur pour modifier le
module du système corrigé en boucle ouverte et de fait régler la marge de phase.

Pour une marge de phase de 45° on a la réponse temporelle suivante :

Le fichier CALCUL_PI.m reprend la méthode ci-dessus. A noter qu’il s’agit d’un PI ANALOGIQUE.

%***********************************************************************
% IPS - CALCUL D'UN PI
% [email protected]
%***********************************************************************

i=0; % index Figures


%-----------------------------------------------------------------------
% Définition du Gain et de la Constante de Temps en Boucle Ouverte
% du système à asservir G/(1+to*s)
%-----------------------------------------------------------------------

G=2.5
to=50e-3

%-----------------------------------------------------------------------
% Fonction de Transfert en Boucle Ouverte + Tracé
%-----------------------------------------------------------------------

FTBO = tf([G],[to,1])

i=i+1;
figure(i)
t=0:0.0001:1
step(FTBO,t)
grid
title('FTBO - REPONSE A UN ECHELON')

i=i+1;
figure(i)
subplot(1,2,1)
nyquist(FTBO)
grid
title('FTBO - NYQUIST')
subplot(1,2,2)
bode(FTBO)
grid
title('FTBO - BODE')

%-----------------------------------------------------------------------
% Définition du Correcteur PI + Tracé
%-----------------------------------------------------------------------

ti = 0.1*to
Kpi = 1

CORR = tf(Kpi*[ti , 1],[ti, 0])

i=i+1;
figure(i)
bode(CORR)
grid
title('CORRECTEUR PI - BODE')
%hold on
%bode(FTBO)

%-----------------------------------------------------------------------
% Fonction de Transfert EN BO du Système Corrigé + Tracé
%-----------------------------------------------------------------------

FTBO_CORR=CORR*FTBO
[Gm,Pm,Wg,Wp] = margin(FTBO_CORR) % Pm Marge de Phase

i=i+1;
figure(i)
bode(FTBO_CORR)
margin(FTBO_CORR)
grid
title('FTBO CORRIGE - BODE - MARGE DE PHASE')

%-----------------------------------------------------------------------
% Fonction de Transfert EN BF du Système Corrigé + Tracé
%-----------------------------------------------------------------------

FTBF= (CORR*FTBO)/(1+CORR*FTBO)

i=i+1;
figure(i)
bode(FTBF)
title('FTBF CORRIGE - BODE')
grid
i=i+1;
figure(i)
t=0:0.0001:1
step(FTBF,t)
grid
title('FTBF CORRIGE - REPONSE TEMPORELLE A UN ECHELON')

Ce fichier est disponible pour Scilab : CALCUL_PI.sce

//************************************************************************
// IPS - CALCUL D'UN PI
// [email protected]
//***********************************************************************

i=0; // index Figures


//-----------------------------------------------------------------------
// Définition du Gain et de la Constante de Temps en Boucle Ouverte
// du système à asservir G/(1+to*s)
//-----------------------------------------------------------------------

G=865/1000
to=150e-3

//-----------------------------------------------------------------------
// Fonction de Transfert en Boucle Ouverte + Tracé
//-----------------------------------------------------------------------

s = poly(0, 's');
FTBO = syslin('c', G/(1+to*s));

//i=i+1;
//figure(i)
//t=0:0.0001:1
//plot2d(t,csim('step',t,FTBO))
//xgrid
//
//title('FTBO - REPONSE A UN ECHELON')
//
//i=i+1;
//figure(i)
//subplot(1,2,1)
//nyquist(FTBO)
//xgrid
//title('FTBO - NYQUIST')
//subplot(1,2,2)
//bode(FTBO)
//xgrid
//title('FTBO - BODE')

//-----------------------------------------------------------------------
// Définition du Correcteur PI + Tracé
//-----------------------------------------------------------------------

ti = 0.1*to // Figé
Kpi = 0.8 // Paramètre à régler

s = poly(0, 's');
CORR = syslin('c', (Kpi*(ti*s+1))/(ti*s));

i=i+1;
figure(i)
bode(CORR)
xgrid
title('CORRECTEUR PI - BODE')

//-----------------------------------------------------------------------
// Fonction de Transfert EN BO du Système Corrigé + Tracé
//-----------------------------------------------------------------------

FTBO_CORR=CORR*FTBO

i=i+1;
figure(i)
bode(FTBO_CORR)

xgrid
title('FTBO CORRIGE - BODE - MARGE DE PHASE')

//-----------------------------------------------------------------------
// Fonction de Transfert EN BF du Système Corrigé + Tracé
//-----------------------------------------------------------------------

FTBF= (CORR*FTBO)/(1+CORR*FTBO)

i=i+1;
figure(i)
bode(FTBF)
title('FTBF CORRIGE - BODE')
xgrid
i=i+1;
figure(i)
t=0:0.0001:1
plot2d(t,csim('step',t,FTBF))
xgrid
title('FTBF CORRIGE - REPONSE TEMPORELLE A UN ECHELON')

3. Correcteur Numérique
Correcteur PI(z)

Consigne Kp
up

cde
FTBO(s)
Ki
ui

z-1

Mesure

Discrétisation
Te
Ki =
Ti

up [n] = Kp . ϵ[n]

ui [n] = ui [n − 1] + Kp . Ki . ϵ[n]

cde[n] = up [n] + ui [n]

4. Vérification
On a supposé jusqu’à présent un système parfaitement linéaire.
En réalité il existe toujours des saturations.
Il faut donc vérifier l’allure de la commande, en s’assurant que cette dernière ne sature pas.

Vérification avec scilab-xcos :

sys_corr.zcos
contexte.sce

Vincent Kerhoas - 2014

Vous aimerez peut-être aussi