From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PID - comportements bizarres

Bonjour,

 

Nous venons d'intégrer une installation industrielle dont le controle commande est assuré par un poste de travail Labview2010 et un compactRio Real Time.

Cette installation régule entre autre 2 chauffes thermiques par resistances (effet joule)...

 

Nous rencontrons des difficultés concernant les boucles de régulation PID que nous avons intégrées dans le diagramme du CompactRio Real Time (voir fichier Pid_RTCrio.jpg ci joint pour + de détails) :

 

- vous trouverez ci joint (fichier Pid_GraphPBPID.jpg), reportant le comportement de notre régulation; il apparait nettement des pics 0% ou 100% qui nous semblent inopportuns; nous avons tout vérifié et nous pouvons dire qu'il ne s'agit pas d'un problème d'affichage puisque la sortie electrique associée à la sortie PID se comportent comme ce que l'on voit apparaitre sur le graphe.

 

- comment éliminer ces pics ? nous avons essayé plusieurs jeux de paramètres PID, rien n'y fait...

 

- pour info, nous avons cablé sur l'entrée dt de chaque bloque PID la constante '10'; cela a semble t-il résolu le problème des pics, mais nous ne comprenons pas pourquoi; pouvez nous dire à quoi sert ce paramètre dt du PID ? ; l'aide Labview et le document PID_User_Manual.pdf ne nous permettent pas de trouver l'explication...

 

- enfin, nous avons réussi à réguler au 1/10 de degré (ce qui nous satisfait) mais encore une fois nous avons du mettre le paramètre I (intégration) à 5000 minutes !!! le P est à 20 et le D à 1; malgré le document PID_User_Manual.pdf, nous ne comprenons à quoi correspondent ces 5000 minutes ?

 

Nous sommes conscients de nos limites en développement Labview et en régulation PID,
N'hésitez pas s'il vous manque des précisions,
Nous vous remercions par avance de vos réponses qui nous aideraient vraiment à apprécier votre produit,
Cordialement.

 

Download All
0 Kudos
Message 1 of 8
(2,808 Views)

Hi,

 

I have translated your post using Google, so hope that I understand your problem. The behavior of the PID shown in the picture you attached might be caused from different reasons, the main reason is that you have to tune your PID parameters in order to get the response that you want. Below is the explanation of the "dt" input of the PID vi.

 

dt (s) specifies the interval, in seconds, at which this VI is called. If dt (s) is less than or equal to zero, this VI calculates the time since it was last called using an internal timer with a one millisecond resolution. The default is –1.

 

So, if you put your PID to 10 seconds, that means this vi will be called every 10 seconds!! Your timed loop is set to 100 ms, my suggestion is to change the dt to 0.1 seconds and to try to do more tuning to the PID parameters.

 

There are other reasons in my mind, for now I just check the above two suggestions.

 

Hope this helps

 

 

 

 

0 Kudos
Message 2 of 8
(2,783 Views)

Bonjour et merci d'être venu sur le forum de discussions de National Instruments.

 

Après une étude du graphe de signal en sortie de votre application, La fréquence d'apparition des pics de tension ( 0% ou 100%) semble constante (en moyenne 18 pics par intervalles de 30 minutes). Une solution enisageable serait de mettre en place une solution de filtrage, de type passe-bas, afin d'éliminer ces pics.

 

Concernant le paramètre dt du vi PID, je vous invite à consulter le vi d'exemple de l'aide LabVIEW, intitulé "General PID Simulator" que vous pouvez atteindre depuis l'aide détaillée de la fonction PID ou depuis la recherche d'exemple. Je vous joins une capture du diagramme de cet exemple.

Ce paramètre s'avère être celui définissant la fréquence d'appel des cycles d'execution, il est donc important de le définir, que ce soit en cablant une constante (ou une commande) sur cette entrée, ou en incluant une fonction d'attente dans votre boucle while (méthode montrée dans l'exemple).

 

En éspérant vous avoir aidé avec ces élements de réponse,

 

Cordialement,

 

 

0 Kudos
Message 3 of 8
(2,782 Views)

Merci pour ces precisions.

 

Nous aimerions également une aide sur la question suivante :

 

- nous avons réussi à réguler au 1/10 de degré (ce qui nous satisfait) mais encore une fois nous avons du mettre le paramètre I (intégration) à 5000 minutes !!! le P est à 20 et le D à 1; malgré le document PID_User_Manual.pdf, nous ne comprenons à quoi correspondent ces 5000 minutes ?

 

Merci par avance si vous pouvez nous apporter une aide...

0 Kudos
Message 4 of 8
(2,772 Views)

Hi,

 

In order to get more understanding to the PID parameters, please take a look in following link which explain the PID parameters meaning. I think the 5000 integral time is too much high.

 

 

0 Kudos
Message 5 of 8
(2,765 Views)

sorry, this is the link

 

http://zone.ni.com/devzone/cda/tut/p/id/3782

 

 

 

0 Kudos
Message 6 of 8
(2,764 Views)

@Zekasa wrote:
 

So, if you put your PID to 10 seconds, that means this vi will be called every 10 seconds!! Your timed loop is set to 100 ms, my suggestion is to change the dt to 0.1 seconds and to try to do more tuning to the PID parameters.


This is incorrect and misleading.  The dt parameter has no effect on how often the VI is called.  It only changes how the output is calculated.  For any realtime control application you will want to leave the dt parameter unwired.  It is useful to wire a dt value when you are feeding data to the PID loop at a rate that is different than the actual speed at which the code is running.  For example, you might be running a simulation of a system that runs faster than the real system can respond.  In your real system, you might be able to acquire data only every 100ms, whereas the simulation can do it in 1ms.  When running the simulation you would wire 0.1s (100ms) to the dt input so that the output will match that of the real system, even though it is running 100 times faster.  Another example is the case where you have recorded data and are feeding it back to the PID to see how it responds (I have been doing this lately to try to understand certain noise patterns in a system).  I can feed the recorded data from a file much faster than the real system runs, so I wire the dt parameter for the time between data points in the file.

0 Kudos
Message 7 of 8
(2,754 Views)

PIDPics wrote:

- nous avons réussi à réguler au 1/10 de degré (ce qui nous satisfait) mais encore une fois nous avons du mettre le paramètre I (intégration) à 5000 minutes !!! le P est à 20 et le D à 1; malgré le document PID_User_Manual.pdf, nous ne comprenons à quoi correspondent ces 5000 minutes ?


Le parametre I represent le temps necessaire pour que l'effet integrale soit egal a l'effet proportionelle.  Par exemple, disons que l'erreur reste constante a 5.  Avec un valeur P de 20, la sortie proportionelle sera 100.  La sortie integrale augmente regulierement et apres 5000 minutes la sortie integrale sera 100 aussi.

0 Kudos
Message 8 of 8
(2,750 Views)