Bonjour à tous,
Je suis à la recherche d'exemples de codes en C qui traitent de régulateurs numériques.
Merci à celles et ceux qui pourront me transmettre des informations
Bonjour à tous,
Je suis à la recherche d'exemples de codes en C qui traitent de régulateurs numériques.
Merci à celles et ceux qui pourront me transmettre des informations
Qu'est ce que P+D et P+I (régulateurs numériques) pour toi?Envoyé par Dark-Lab
car chez moi P+D et P+I veulent dire Proportionnel-Dérivateur et Proportionnel-Intégrateur et se sont des correcteurs pour automates programmables donc qui n'a quasiment rien à voir avec le C...
Merci d'apporter quelques précisions à ta requête,
Cordialement, Jean![]()
Lo,
Si tu veux, on peut aussi appeller ca correcteur, j ai l'impression que c'est simplement une différence de language, mais on parle bien de la meme chose.
Dans mon cas, je ne travail pas avec des automates programmables mais avec un microcontroleur de chez motorola. Je dois réaliser un asservissement pour un télémanipulateur. Cet asservisement, je le réalise en C, avec certaine partie en assembleur. Voila pour le principe.
J ai déja fait des essais de mon code avec une partie purement proportionnel. Et maintement je dois rajouter une partie dérivatrice pour le placement de mon système.
Donc si je comprends bien tu veux les algorythmes des correcteurs PI et PD codés en C...
Si c'est cela que tu veux, il faudrait que tu récupères les algorythmes qu'effectuent ces correcteurs et que tu code ces calculs en C...
Je vais essayer de retrouver ca de mon côté
Bonne continuation,
Jean![]()
Lo,
Merci beaucoup, c est cela meme.
J ai deja fait quelques recherches, mais les algos sont différents à chaques fois. Je suis en train de faire une synthèse de ce que je possède deja.
encore merci
Salut
J'ai travaillé sur la régulation en température d'une cuve avec un micro à coeur 51. J'ai recherché pas mal de temps, et j'ai trouvé un algo qui fonctionne pas mal. Le problème, c'est qu'il faut te taper qql essais pour déterminer tous les coéfficients du régulateur à PID (KP, KI et KD).
En voici les sources simplifiées :
avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 // Calcul du régulateur PID while(20ms) { th_value = read_therm() ; // Lecture de la température old_ch_p = ch_p ; // Mémorisation de l'ancienne Proportionnelle ch_p = consigne - th_value ; // Calcul de la Proportionnelle ch_i += ch_p ; // Calcul de l'Intégrale ch_d = ch_p - old_ch_p ; // Calcul de la Dérivée ch_pid = ch_p*KP + ch_i*KI + ch_d*KD ; // Régulateur à PID ch_pwm = (ch_pid*PWM_CYCLE)/1000 ; // Calcul de la PWM timer_chauffe(ch_pwm) ; // PWM appliqué au transistor }
consigne = température de régulation (1/16 degrés)
th_value = température mesurée (1/16 degrés)
ch_p, ch_i et ch_d = variable de PID
KP, KI et KD = Coefficients
ch_pwm = valeur de PWM à appliquer sur une R chauffante
Noteour la formule du calcul de la PWM, j'ai bricolé un peu...(j'avoue!)
En espérant que cela t'aide un peu... :-)
Lo,
Merci Beaucoup à toi ca me rend un grand service cet algo.
Quant aux différents coefficient, je les ai deja calculé.
Salut.
Je viens de retrouver mes documents (dans mon bordel) et voici qql adresses où j'ai trouvé les informations sur les PIDs :
http://www.ancr.org/fichtech/action/pid/
http://perso.wanadoo.fr/philippe.bau...equadiff3.html
Bonne chance !
Partager