0% ont trouvé ce document utile (0 vote)
5 vues3 pages

Régulateur PID numérique avec DSP

Le document traite de l'implémentation d'un régulateur PID numérique utilisant un circuit DSP, en décrivant la structure d'un asservissement numérique et les équations associées. Il fournit des instructions pour configurer un timer afin d'atteindre une fréquence d'échantillonnage de 10 kHz, ainsi que des détails sur la programmation en langage C pour un microcontrôleur dsPIC33F. Des tests avec des paramètres spécifiques et un algorithme d'interruption pour le régulateur sont également inclus.

Transféré par

amal
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)
5 vues3 pages

Régulateur PID numérique avec DSP

Le document traite de l'implémentation d'un régulateur PID numérique utilisant un circuit DSP, en décrivant la structure d'un asservissement numérique et les équations associées. Il fournit des instructions pour configurer un timer afin d'atteindre une fréquence d'échantillonnage de 10 kHz, ainsi que des détails sur la programmation en langage C pour un microcontrôleur dsPIC33F. Des tests avec des paramètres spécifiques et un algorithme d'interruption pour le régulateur sont également inclus.

Transféré par

amal
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

Implémentation d’un régulateur PID numérique

avec un circuit DSP

On considère le schéma bloc d’un asservissement numérique représenté à la figure suivante :

yc(k) e(k) ucm(k) y(k)


+ R(z) T(z)
-

Où :

• yc(k) : grandeur de consigne


• y(k) : grandeur de sortie à réguler
• e(k)= yc(k)-y(k), erreur instantanée
• ucm(k)= uc(k)-y(k), ucm la grandeur de commande.
• R(z) : fonction de transfert du correcteur numérique
• T(z) : fonction de transfert numérique du processus à commander

Dans le domaine continu, on a défini le régulateur PID par la fonction de transfert :


1
ucm (p) = k p �1 + + Td p�
Ti p
Où Kp, Ti et Td sont respectivement, les gains des actions: proportionnelle, intégrale et dérivée.
La transition du domaine continu au domaine discret suppose une approximation de l’intégrale par
une somme discrète et de la dérivée par une différentiation discrète.
La partie intégrale et dérivée peuvent être estimées en utilisant une approximation d’ordre un. Le
signal est échantillonné à l’instant k et maintenu jusqu’à l’instant k+1.

l’algorithme du régulateur peut s’écrire :


𝑇𝑇𝑒𝑒 𝑇𝑇𝐷𝐷 𝑇𝑇𝑒𝑒 2𝑇𝑇𝐷𝐷 𝑇𝑇𝐷𝐷
𝑢𝑢[𝑘𝑘 + 1] = 𝐾𝐾𝑝𝑝 �1 + + � 𝑒𝑒[𝑘𝑘 + 1] + 𝐾𝐾𝑝𝑝 � −1− � 𝑒𝑒[𝑘𝑘] + 𝐾𝐾𝑝𝑝 𝑒𝑒[𝑘𝑘 − 1] + 𝑢𝑢 [𝑘𝑘]
2𝑇𝑇𝑖𝑖 𝑇𝑇𝑒𝑒 2𝑇𝑇𝑖𝑖 𝑇𝑇𝑒𝑒 𝑇𝑇𝑒𝑒

On considère que l’expression du signal de commande est de la forme :

ucm [k + 1] = A1 e[k + 1] + A0 e[k] + A−1 e[k − 1] + ucm [k]

Expliciter l’expression des différentes constantes A1, A0 et A_1.

Travail demandé :
Objectif : implémentation d’un régulateur PID numérique
La fréquence d’échantillonnage du système est fixée par le timer2 : à chaque fin de comptage
(TMR2=PR2) le programme d’interruption est exécuté ; ce programme doit assurer la lecture de la
consigne, la lecture de la mesure, le calcul de l’erreur et le calcul de la commande.
1. Donner la valeur de PR2 ainsi que la configuration de T2CON permettant de fixer la
fréquence d’échantillonnage à 10Khz,
2. Donner la configuration des bits associés à l’interruption du timer2,
3. En exploitant le document traitant des régulateurs numériques ci-joint, donner le programme
du régulateur numérique.
4. En prenant Kp=0.1, Ti=0.002, Td=0.001, saturation positive 15 V et saturation négative -
15V , tester le régulateur avec une entrée échelon unitaire numérique .
5. Développer un programme en langage C pour dsPIC33F permettant de programmer le
régulateur PID numérique.
6. Déclarer un tableau réservé au signal de commande, sortie du régulateur.
On suppose que la mesure est nulle (écart=1).

On donne :
Fosc= 8 MHz, PLL = 1 ;

Prototype de l’interruption:

Void __attribute__((__interrupt__(no_auto_psv))) _T2Interrupt(void);


On pourra suivre l’algorithme suivant :
Interruption PID
/*mesure de la sortie*/
yn
ADC ; //lecture échantillon
/*calcul de l’erreur*/
en=wn-yn ; // consigne – mesure
/*calcul de la commande*/
vn= A0en + A1en-1 +A2en-2 + vn-1 ;
/*sortie*/
Si(vn <=Uinf) un=Uinf ; //anti windup
Sinon
Si(vn >=Usup) un=Usup ; //anti windup
Sinon un=vn ;
/*vieillissement*/
en-2 = en-1 ;
en-1 = en ;
vn-1 = vn ;
retour

Vous aimerez peut-être aussi