PID autotune - la méthode du relais

Partie du forum pour tout ce qui concerne la partie régulation dans l'industrie. Forum, conseil, astuce et entraide sur les calculs de régulateurs, les différents choix de P, PI ou PID, leur utilisation et la résolution de problèmes..
Avatar de l’utilisateur
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Inscription : 29 oct. 2015, 14:22
Localisation : IDF

Re: PID autotune - la méthode du relais

Message par Cyril93 »

Salut,
La modif n'est pas obligatoire ;)
Tu importes la source dans le dossier source. Puis tu crées un nouveau FB, dans les propriétés tu mets Nom : FB1 par exemple et juste en dessous dans Nom symbolique tu mets CALC_PID, après tu compiles ta source.
Comme ça tu peux compiler ta source dans le FB de ton choix sans avoir à modifier le code source.

Pour le fonctionnement il faut trouver les parametres rL_VAL, rH_VAL et rSP en se mettant en manu par exemple pour faire un essai. Puis regler le nombre de cycle c'est a dire le nombre de passage par le point de consigne.
Apres si tu as regler trop de cycle tu peux modifier la variable pendant le fonctionnement ou arreter completement le cycle par bRST. La apres faut refaire un front montant sur bEN pour relancer.
Lorent2
Maître du binaire
Maître du binaire
Messages : 484
Inscription : 27 déc. 2015, 08:52

Re: PID autotune - la méthode du relais

Message par Lorent2 »

J'ai enfin eu le temps de le mettre en essai.
Petite boucle de chauffage à la vapeur, consigne à 40°C.
Je récupère l'entrée et la sortie du régulateur actuel, et les connecte sur le bloc.
Test en 0-100% sur 5 cycles.

J'obtient 0.11 en KP, mais les valeur de dérivée et d'intégrale sont totalement à l'ouest. (aussi bien en DEC qu'en format durée)

(Parametres d'origine : P:7 / I:30 / D:0)
Si quelquefois tu te sens petit, inutile, démoralisé ou dépressif, n'oublies jamais que tu as été un jour le plus rapide et le meilleur spermatozoïde de ta bande ...
Avatar de l’utilisateur
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Inscription : 29 oct. 2015, 14:22
Localisation : IDF

Re: PID autotune - la méthode du relais

Message par Cyril93 »

Salut,
Alors les temps d'intégrale et de dérivée sortent en REAL par exemple 1.5 ça fait 1 seconde 500ms. (affichage en FLOATING_POINT)
D'ailleurs je me rend compte que le CONT_C attend des TIME, il faudrait faire un REAL_TO_TIME problème ça n’existe pas :cry:
Dernière modification par Cyril93 le 02 mai 2016, 16:57, modifié 1 fois.
Avatar de l’utilisateur
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Inscription : 29 oct. 2015, 14:22
Localisation : IDF

Re: PID autotune - la méthode du relais

Message par Cyril93 »

Il faut utiliser l'instruction ROUND pour convertir un REAL en DINT, le format TIME est justement un DINT avec en résolution la milliseconde.
Lorent2
Maître du binaire
Maître du binaire
Messages : 484
Inscription : 27 déc. 2015, 08:52

Re: PID autotune - la méthode du relais

Message par Lorent2 »

J'ai plus les résultats en tête, mais c'est des valeurs impossibles.

C'est bien des blocs cyclique ou périodique ?
Si quelquefois tu te sens petit, inutile, démoralisé ou dépressif, n'oublies jamais que tu as été un jour le plus rapide et le meilleur spermatozoïde de ta bande ...
Avatar de l’utilisateur
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Inscription : 29 oct. 2015, 14:22
Localisation : IDF

Re: PID autotune - la méthode du relais

Message par Cyril93 »

Salut,
Peux importe la scrutation la mesure de la période est faite sur la lecture du temps système. (SFC64)

Même ton gain me paraît trop faible. On s'attend à un gain d'au moins 2 sur un process en température.
Si tes temps Ti et Td sont faux c'est que la mesure de la période est fausse, je pense qu'il faudrait laisser pomper le système plus longtemps jusqu'à avoir des cycles de même période et de même amplitude pour avoir une mesure valide. Donc augmenter iCY, peut être enlever le conditionnement par bEND des calculs de PU et TU pour les voir évoluer au fur et a mesure des cycles puis une fois qu'ils sont à peu près fixe stopper le cycle.

Donc mettre iCY à une valeur exagérément haute 1000 par exemple, enlever "IF bEND AND NOT old_bEND THEN" qui conditionne les calcul de TU et PU.
Lancer la séquence et vérifier l'évolution des constantes PID jusqu'à ce que les valeurs soit stable.

Sinon comme ça je ne vois pas d'ou le problème peux venir. Sorry
Lorent2
Maître du binaire
Maître du binaire
Messages : 484
Inscription : 27 déc. 2015, 08:52

Re: PID autotune - la méthode du relais

Message par Lorent2 »

On est bien d'accord, que j'ai juste à appeler le bloc CALC_PID, lui ensuite se charge d'appeler le FREQ_MEASURE.
Si quelquefois tu te sens petit, inutile, démoralisé ou dépressif, n'oublies jamais que tu as été un jour le plus rapide et le meilleur spermatozoïde de ta bande ...
Avatar de l’utilisateur
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Inscription : 29 oct. 2015, 14:22
Localisation : IDF

Re: PID autotune - la méthode du relais

Message par Cyril93 »

On est bien d'accord ;)
Avatar de l’utilisateur
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Inscription : 29 oct. 2015, 14:22
Localisation : IDF

Re: PID autotune - la méthode du relais

Message par Cyril93 »

Lorent2 a écrit :On est bien d'accord, que j'ai juste à appeler le bloc CALC_PID, lui ensuite se charge d'appeler le FREQ_MEASURE.
Quand tu te mets en ligne sur la vue des blocs tu as bien le SFC64 dans la CPU ?
Lorent2
Maître du binaire
Maître du binaire
Messages : 484
Inscription : 27 déc. 2015, 08:52

Re: PID autotune - la méthode du relais

Message par Lorent2 »

En virgule flottante, j'ai un truc bidon, dû à une erreur de format à mon avis :

DW#16#7F800000 (soit 2139095040 en DEC) aussi bien sur l'intégrale que la dérivée

Le SFC64 est bien présent dans ma CPU.
Si quelquefois tu te sens petit, inutile, démoralisé ou dépressif, n'oublies jamais que tu as été un jour le plus rapide et le meilleur spermatozoïde de ta bande ...
Répondre