31
Commande d’actionneurs à l’aide d’un microprocesseur 7 Réglage Christian Koechli

Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Embed Size (px)

Citation preview

Page 1: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Commande d’actionneurs à l’aide d’un microprocesseur

7 Réglage

Christian Koechli

Page 2: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Objectifs du cours

• Méthodologie de conception

• Equations d’état

• Fonction de transfert

• Identification

• Dimensionnement

• Implémentation du régulateur

Page 3: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Méthodologie

1. Identification du système:- décomposition en sous-systèmes;- détermination des constantes de temps.

2. Choix du système de réglage:- réglage direct ou en cascade;- dimensionnement analogique ou digital.

3. Implémentation du régulateur sur le contrôleur.

Page 4: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Modèle du système: moteur CC

2Système mécanique: ee m m e

dJ r J rM M

dt

Equations d’état de l’entraînement

Equation de tension: i

diu Ri L u

dt

Equation de liaison: m iM K i

2Système mécanique: ee m i e

dJ r J rK i M

dt

Page 5: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Système à régler (Moteur CC)

Page 6: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Fonction de transfert: régulateur de vitesse

2 ee m i e

dJ r J rK i M

dt

Grandeur de commande

Grandeur à régler

Grandeur de perturbation

Transformation de Laplace

2

2

2

( ) ( ) ( )

( ) ( )( )

( )

e m e i e

i ee

e m

i

e m

J r J s s rK i s M s

rK i s M ss

s J r J

rKG s

s J r J

e i

e

i

M

rK

2

i

e m

rK

s J r J

Page 7: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Réponse indicielle

y = 6426.7x - 102.65

-500

0

500

1000

1500

2000

2500

3000

3500

4000

4500

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8

t [s]

vmes

[rp

m]

Attention seule la partie linéaire est intéressante !

Page 8: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Système à régler (Moteur CC)

Page 9: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Fonction de transfert: régulateur de courant

i

diu Ri L u

dt Grandeur de

commande

Grandeur à régler

Grandeur de perturbation

Transformation de Laplace

1

1

( ) ( ) ( ) ( )

( ) ( )( )

1 1( )

11

avec:

1;

i

i

s

s

u s R Ls i s u s

u s u si s

R LsK

G sLR Ls T s

R sR

LK T

R R

11sK

T s

uiu i

Page 10: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Réponse indicielle

0

500

1000

1500

2000

2500

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

temps[ms]

i [m

A]

Page 11: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Variante: réglage en tension

• On néglige l’effet de l’inductance sur le courant

• On néglige les frottements visqueux

Page 12: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Fonction de transfert: régulateur de vitesse

2 ee m i e

dJ r J rK i M

dt

Transformation de Laplace

2

2

2 2

2 2

( ) ( ) ( )

( ) ( ) ( )

( ) ( )( )

( ) ( )( ) ( )

( ) ( )( )

( )

e m e i e

i e

i e

i ee m e i e

i ee

e m i

i

e m i

J r J s s rK i s M s

u s Ri s K s

u s K si s

Ru s K s

J r J s s rK M sR

rK u s RM ss

R J r J s rK

rKG s

R J r J s rK

u

e

i

MRrK

2 2

i

e m i

rK

R J r J s rK

i e

diu Ri L K

dt

e

Grandeur à régler

Grandeur de perturbation

Grandeur de commande

Page 13: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Buts du réglage

•Suivi de consigne: asservissement

•Rejet de perturbation: régulation

Le réglage doit être le plus rapide possible sans présenter de statisme.

Page 14: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Choix du type de régulateur

• Classique (PI, PID)

• Réglage d’état

• RST

• Mode de glissement

• Logique floue

• …

Page 15: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Dimensionnement du régulateur

Méthodes:

- Tournevis

- Ziegler Nichols (Prof. Longchamp)

- Design dans le domaine continu puis discrétisation (Prof. Bühler)

- Design dans le domaine discret (Prof. Longchamp)

Page 16: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Méthode tournevis

• Commencer par augmenter le terme P -> instabilité

• Réduire d’au moins 1/3

• Augmenter le terme I jusqu’à ce que le statisme et le dépassement soit tolérables

• Pas très scientifique !

Page 17: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Dimensionnement dans le domaine continu puis discrétisation

• Identification du système à régler (réponse indicielle)=> constantes de temps

• Synthèse du régulateur dans le domaine continu (en s) – Critère sur la réponse harmonique méplate– Critère symétrique

• Discrétisation du régulateur

Page 18: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Structure

Page 19: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Réglage pseudo-continu: Simplification

Page 20: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Identification du système

• Comportement intégraly

t

1( )

I

G ssT

Régulateur PI

Page 21: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Identification du système

• 1 constante de temps dominantey

t

1

( )1

sKG ssT

Régulateur PI

T1

Page 22: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Identification du système

• 2 constantes de temps dominantesy

t

1 2

( )1 1

sKG ssT sT

Régulateur PID

Page 23: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Petite constante de temps équivalente1

( ) Retard dû au traitement1

1( ) Elément de maintient DA (CMPR shadowed)

1 / 2

( ) Etablissement du signal de commande (drivers,..)1

1( )

1

rr

meE

cmcm

cm

MesMes

G ssT

G ssT

KG s

sT

G ssT

Mesure, éventuellement filtrage

( ) avec 1

cmpE pE E cm r Mes

pE

KG s T T T T T

sT

Le produit de ces fonctions de transferts et de celle liée à la discrétisation du régulateur peut être approché par:

Avec 0 pur un régulateur I, 0.5 pour un PI, 1 pour un PID

Page 24: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Dimensionnement: critère méplat

Page 25: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Critère symétrique

Pour un système à comportement intégral

2

4

8

1( )

1

4

n pE

pEi cm

I

cwcw

cw n pE

T T

TT K

T

G ssT

T T T

Page 26: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Réponse indicielle

Page 27: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Quel critère ?

• Méplat: bon comportement en asservissement (dépassement très limité). OK en régulateur (grandeur de perturbation) si T1 et T2 pas trop élevées par rapport à TpE

• Symétrique: comportement intégral du système ou régulateur avec bonnes performances dynamiques

Page 28: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Discrétisation du régulateur

Page 29: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Calcul des coefficients du régulateur

Page 30: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

ImplémentationDoCapture(); //lit le périph de mesure du temps entre 2 impulsions du capteur incrémentalif (i==100) { //période d'échantillonnage

i=0;vcons=AdcResult.ADCRESULT0;vmes = CalcSpeed(); //en tours par minute//régulateur de vitesseSpeedError = vcons- vmes;if(SpeedError>2000)SpeedError=2000; // limitation to avoid overflowif(SpeedError<-2000)SpeedError=-2000; // limitation to avoid overflow//intégrateurSpeedIntegr += SpeedError;if (SpeedIntegr > MaxSpeedIntegr) SpeedIntegr = MaxSpeedIntegr;if (SpeedIntegr < -MaxSpeedIntegr) SpeedIntegr = -MaxSpeedIntegr;taux = (((int32)Speed_KP * SpeedError) >> Speed_KP_div) + ( (SpeedIntegr*Speed_KI)>>Speed_KI_div);//comme on fait du pwm double croisé, un taux de 50% correspond à une tension moyenne nulletaulim = taux + (PERIPWM>>1);//il faut aussi limiter le tauxif (taulim > PERIPWM) taulim = PERIPWM;if (taulim < 0) taulim = 0;EPwm1Regs.CMPA.half.CMPA=taulim;EPwm2Regs.CMPA.half.CMPA=taulim;

}

Page 31: Commande dactionneurs à laide dun microprocesseur 7 Réglage Christian Koechli

Code de mesure du saut indiciel//à déclarerint16 dump[1400];int16 im=-1;

// A utiliser pour déterminer le régulateur de vitessetaux =0;if ((im>=0)&&(im<1400)){

taux=PERIPWM>>2; dump[im]=vmes;//vmes_moyen; im++;

} if (im==-1){ im=0; taux=PERIPWM>>2; }