Problème avec M3 et l'outil métier régulateur PID

Modérateurs : ramses, Balajol, monteric, j2c

Répondre
jacques33
Etudiant Solaire
Etudiant Solaire
Messages : 158
Enregistré le : ven. oct. 10, 2008 21:12 pm
Localisation : Saint Laurent Médoc 33

Message par jacques33 »

Bonjour à tous,

D'abord, en tant que nouvel intervenant, je me présente : Jacques Veyrine 47 ans, technicien, vivant à St Laurent Médoc 33.
Je vous lie depuis plus d'un an, j'apprends beaucoup de choses à vos côté et je compte bien un jour franchir le pas pour un chauffage du solaire pour le sanitaire et le chauffage. Mais dans un premier temps je viens de finir de construire ma maison avec des techniques bioclimatiques d'un autre forum passionnant (isolation extérieure, puis canadien, mur trombe, plancher chauffant à eau avec chaudière elec pour débuter, poêle bois, ...)

La raison de mon appel est que je cherche à me familiariser avec le Millénium 3 pour mon futur solaire en réalisant une régulation en température d'une cuve à vin pour mon boulot. je dois ouvrir ou fermer un serpentin de froid avec une electrovanne pour éviter que le vin ne surchauffe.

J'ai dans un premier temps fait le programme avec un Trigger et ça fonctionne bien mais je voudrais l'améliorer avec un PID
Mon problème est que la consigne ne peut aller que de 400 à 32767 et je n'arrive pas à imposer une consigne de 20°C. dois-je transformer le chiffre 20° avec un multiplicateur quelconque pour arriver à 400 ou plus ?.
Et puis si ma cuve peut varier en réalité de 10 à 40° par exemple, faut-il transformer ces deux limites pour faire une variation de 400 à 32767 ?

J'espère avoir été clair, merci pour vos réponses et longue vie à ce Forum

Jacques

Avatar du membre
kroutchef
Expert Solaire
Expert Solaire
Messages : 686
Enregistré le : dim. déc. 25, 2005 17:44 pm
Localisation : ALBI (81)
Contact :

Message par kroutchef »

L'automate Millenium Crouzet ne sait pas nativement ce qu'est une température en °C, il n'a que des entrées analogiques (10 bits)programmables en 0-10V ou 0-Valim, il faut donc convertir la mesure physique °C en signal tension avec une carte spécialisée (voir post associé de patrick07 et tuto Millénium...) ensuite on traite dans le programme une valeur numérique comprise entre 0 et 1023 (0000000000 et 1111111111) qui correspond suivant la plage de convertion de la carte à 0-x volt soit plage°C basse - plage°C haute, definies lors de l'étalonnage de la carte...
Pour améliorer la lecture et la programmation on utilisera en frontal de l'entrée analogique une boite gain qui retransformera la plage 0-1023 en valeur numérique "°C " plus représentative réellement de la grandeur manipulée...(les valeurs numériques de comparaisons dans la prog sont alors artificiellement exprimées en °C...)
Quant a utiliser un PID ce n'est pas evident car cette fonction est "prédictive", elle effectue des plages de corrections en fonction de stat passée...il est parfois plus simple d'utiliser deux trigger "inversés" afin de réaliser un comparateur à fenètre avec une "raison" de correction temporelle prédéfinie (ex: 15sec d'action de vanne toutes les 10min) cela permet de rester dans la fenetre de consigne (prédéfinie ou resultant d'un calcul) en plus ou en moins mais avec une latence dûe à la raison, contrairement à un PID qui lui corrige quasi permanent fonction beaucoup trop éllaborée pour du solaire...(voir mon prog dans l'espace programmation...)
Modifié en dernier par kroutchef le ven. avr. 09, 2010 10:14 am, modifié 5 fois.
Amitiés ensoleillées ...
Alain R. (Albi)
"Ne quid nimis, sol lucet omnibus !"
http://alainraynal.wordpress.com (site catastrophe aprés migration de windowslive > description install)

Avatar du membre
YvesBr
Maitre Solaire
Maitre Solaire
Messages : 1408
Enregistré le : lun. mars 20, 2006 23:54 pm
Localisation : Moselle - aéroport 57

Message par YvesBr »

[quote="jacques33"]
Mon problème est que la consigne ne peut aller que de 400 à 32767 et je n'arrive pas à imposer une consigne de 20°C. dois-je transformer le chiffre 20° avec un multiplicateur quelconque pour arriver à 400 ou plus ?.
Et puis si ma cuve peut varier en réalité de 10 à 40° par exemple, faut-il transformer ces deux limites pour faire une variation de 400 à 32767 ?
[/quote]
Bonsoir Jacques, et soit le bienvenu sur le forum.
Je n'ai pas encore mis en oeuvre un tel régulateur, mais oui, il faut multiplier la mesure par un facteur. La mesure est comparée à une consigne qui doit être multipliée de la même manière. Tu dois pouvoir prendre un facteur 100.
Cela dit, je ne suis pas certain que le processus de chauffe d'une cuve de liquide soit le plus adapté. On l'utilise en général si on a une puissance à moduler. Ici, fonctionnes-tu en tout-ou rien ?
Yves

Forhorse
Etudiant Solaire
Etudiant Solaire
Messages : 278
Enregistré le : lun. févr. 08, 2010 14:42 pm
Localisation : 61 - Perche

Message par Forhorse »

Pas grave, le tout à rien marche aussi très bien avec un PID, il faut simplement adapter les paramètres en consequance.
On converti le pourçentage de sortie en facteur de marche (tant de temps de marche/chauffe/refroidissement pour tant de temps d'arrêt)

Tout ce qui est chauffage electrique fonctionne ainsi. C'est très souvent appliqué aussi au refroidissement, dans ce cas le regulateur pilote soit un ventillateur soit une electrovanne.

jacques33
Etudiant Solaire
Etudiant Solaire
Messages : 158
Enregistré le : ven. oct. 10, 2008 21:12 pm
Localisation : Saint Laurent Médoc 33

Message par jacques33 »

Bonjour et merci pour ces réponses.

Pour Kroutchef : Je pense avair compris le problème avec le 0/10V mais ce n'est pas un problème pour moi, car j'utilise la sonde PT100 vendue avec son convertisseur 0/10V vendue par Crouzet pour le Millenium, j'utilise donc juste le bloc gain et j'ai directement la valeur en °C. Bravo pour ta réalisation interessante que je garde en mémoire pour mon futur projet.

Pour YvesBr : oui je fonctionne en tout ou rien pour ouvrir ou fermer une vanne qui est branchée sur un serpentin de liquide froid plongé dans la cuve. Le but est d'éviter que le vin ne monte trop haut en température lors de la fermentation.

Pour Forhorse : c'est exactement ça que je cherche à faire, aurais-tu un exemple ?

Forhorse
Etudiant Solaire
Etudiant Solaire
Messages : 278
Enregistré le : lun. févr. 08, 2010 14:42 pm
Localisation : 61 - Perche

Message par Forhorse »

Il ne faut pas utiliser le bloc gain avant de rentrer dans celui dedié au PID.
Un automate, comme n'importe quel processeur binaire, ne sais travailler qu'avec des valeurs entières, pour que la précision soit correcte il faut donc essayer de travailler avec la plus grande amplitude numerique possible.

Par exemple si on veut reguler à 20°C, disons que la variation de mesure soit entre 18 et 22°C
Dans l'extreme l'automate ne verra que 6 valeurs (je rappel qu'il ne connait que les nombres entiers) soit 18, 19, 20, 21 et 22
difficile donc de reguler avec ça vu qu'il n'y existe physiquement aucune valeur intermediaire dans l'automate.
Maintenant si on utilise les valeurs brute du convertisseur Analogique/digital de l'automate :
disont que 18°C corresponde à une valeur de 184
et 22°C corresponde à une valeur de 225
l'automate à donc 41 valeurs intermediaires pour travailler. La précision des calcul est bien meilleur et donc le resultat de la régulation aussi
Naturellement il faut aussi convertir la consigne pour la faire corresponde à la plage de travail, dans cette exemple la consigne pour 20° correspondrait à 204
le bloc gain utilisé pour obtenir une valeur en °C ne doit être utilisé qu'a des fin d'affichage, et non pas de traitement des valeurs.

Désolé je n'ai pas d'exemple d'utilisation du PID avec sortie en tout ou rien sur le M3, mais ça doit être expliqué dans la notice tout simplement (sans doute un paramètre à configurer)

Forhorse
Etudiant Solaire
Etudiant Solaire
Messages : 278
Enregistré le : lun. févr. 08, 2010 14:42 pm
Localisation : 61 - Perche

Message par Forhorse »

Je viens de regarder, il faut utiliser le bloc de fonction "PID PWM" et ne pas oublier de le parametrer en mode PID (par défaut il est en mode tout ou rien, c'est a dire ni plus ni moins qu'un thermostat à hysteresis)

Dans la version de base du programme il ne faut qu'une entrée analogique connectée sur l'entrée valeur courante du bloc PID, et une sortie TOR reliée à la sortie du bloc PID.
On peut eventuellement avoir une consigne réglage sur l'entrée "valeur préselection" du bloc PID, mais ce n'est même pas indispensable si on n'a pas besoin de modifier la consigne depuis l'exterieur.
Tout le reste se règle dans les paramètres du bloc PID (bon courage, parce que le reglage des paramètre d'une regule PID c'est une affaire de pro, ou de patience... ou les deux)
Et il es préférable d'avoir un enregistreur graphique sur la mesure, sans quoi c'est quasi impossible.

EDIT, c'est même encore pire que ce que j'expliquait ci-dessus. Le bloc PID travail sur 16 bits alors que les entrées analogique en 10 bits. De plus le bloc PID ne sait pas travailler avec des valeurs en dessous de 400, il faut donc multiplier la mesure pour la faire correspondre à la plage de travail optimimum du bloc PID, dans l'exemple ci dessus il faudrait multiplier les valeurs par 10 avant de le faire rentrer dans le bloc.
nos 20°C qui diviennent 204 dans l'automate doivent se transformer en 2040 avant le plob PID pour que celui-ci fonctionne correctement.
Modifié en dernier par Forhorse le sam. avr. 10, 2010 15:03 pm, modifié 1 fois.

Forhorse
Etudiant Solaire
Etudiant Solaire
Messages : 278
Enregistré le : lun. févr. 08, 2010 14:42 pm
Localisation : 61 - Perche

Message par Forhorse »

Concretement voilà ce que ça donne.
En simulation ça fonctionne...
Image

Avatar du membre
patrick07
Maitre Solaire
Maitre Solaire
Messages : 1869
Enregistré le : lun. avr. 03, 2006 11:07 am
Localisation : Sud Ardèche -07- St Germain
Contact :

Message par patrick07 »

[quote="Forhorse"]
Tout le reste se règle dans les paramètres du bloc PID (bon courage, parce que le reglage des paramètre d'une regule PID c'est une affaire de pro, ou de patience... ou les deux)
Et il es préférable d'avoir un enregistreur graphique sur la mesure, sans quoi c'est quasi impossible.
[/quote]

D'accord avec Forhorse, le réglage d'un PID n'est pas une sinécure. Déjà il te faut un process bien stable en temps de réponse, déphasage, inertie... Et encore quand tu auras fait tous tes calculs pour rentrer les bons paramètres rien ne va aller comme prévu et à force de tâtonnements et de patience tu t'apercevras que ce n'est qu'avec des réglages parfois très éloignés de ce que la théorie te donnait que tu auras un fonctionnement stable de ton système.

Je ne peux que te conseiller d'augmenter le plus possible le P (gain) jusqu'à ce que le système devienne instable (oscillations), de diminuer un peu le P, de rajouter un peu de D pour amortir tout ça et pas du tout ou un tout petit I pour rattraper l'erreur résiduelle.

:bye:
Patrick

[url=https://ard-tek.com/index.php/forum/sujets-recents]Le forum du MaxiSun[/url]

jacques33
Etudiant Solaire
Etudiant Solaire
Messages : 158
Enregistré le : ven. oct. 10, 2008 21:12 pm
Localisation : Saint Laurent Médoc 33

Message par jacques33 »

Bonjour à tous,

Merci pour vos réponses et en particulier à Forhorse, mon PID fonctionne en simulation.

A+
Jacques

Forhorse
Etudiant Solaire
Etudiant Solaire
Messages : 278
Enregistré le : lun. févr. 08, 2010 14:42 pm
Localisation : 61 - Perche

Message par Forhorse »

De rien. :oops:

Après divers essais et lecture à ce sujet, il semble que pour obtenir un fonctionnement optimal de ce bloc, il faut s'arranger avec les bloc gain pour obtenir une variation pleine echelle de l'entrée PID dans la plage de temperature que l'on peut mesurer.

le bloc PID demande un signal en entrée entre 400 et 32767. Il faut donc parametrer le bloc gain pour que la plus basse temperature mesurable corresponde à 400, la plus haute à 32767 (enfin on peu se garder un peu de marge en securité, genre +/- 1000) et la consigne que le cherche obtenir corresponde donc à 16200
Maintenant ça c'est pour un fonctionnement optimal au niveau logiciel interne, après tout depend quand même des paramètres propres à une regul PID

jacques33
Etudiant Solaire
Etudiant Solaire
Messages : 158
Enregistré le : ven. oct. 10, 2008 21:12 pm
Localisation : Saint Laurent Médoc 33

Message par jacques33 »

Salut,

C'est exactement ce que j'avis compris et programmé.
Merci pour ton implication dans mon sujet.

Jacques

Répondre

Retourner vers « Crouzet M2-M3, autres API et péripheriques »