PID autotuning

Hello,
I am not able to obtain new PID gain values in the PID autotuning wizard. It is showing NaN for Kp, Ti and Td. I am attaching my labVIEW file here. Please help. 
thank you in advance.
Attachments:
PID_tuning1.vi ‏128 KB

Hi Arun
Thanx for the reply, If I use the Autotuning.vi I will have to use 1 vi for 1 closed loop, since am using 128 thermocouple in closed loop, that would mean i will need 128 PID loop. Is there any alternative solution?
Also am using the VI in RT, with out front end. so if I set autotune to "TRUE" the autotuning wizard will popup, which i dont want, so i guess i will remove that part of the functions. What do you suggest?
Thanx for the reply
Regards
Arun

Similar Messages

  • Error 53 PID Autotune with Real-time fieldpoint control

    Hi!
    I cannot perform the autotuning PID parameters in fieldpoint cFP-2000 (Real-time control).
    It gives me the error 53 as you see in the attachment file. It seems to be because of the autotune wizard vi...???
    How can i solve this problem?
    Thanks for your help!
    Nunix
    Portugal
    Attachments:
    error 53.bmp ‏166 KB

    Hello,
    LabVIEW RT does not currently support the autotuning feature, because the procedure invokes a wizard that requires user interaction. LabVIEW RT does not support this type of user interface. This wizard is tightly integrated with the PID function itself and would require significant redesign to work in LabVIEW RT.
    It is the autotuning VI itself that is not compatible with LabVIEW RT. You can use the "PID Autotuning.vi" as long as you are not targeted to your RT engine. Run your VI in development mode with the "PID Autotuning.vi" in your code. After you receive your tuned gain settings, replace the autotuning vi with the normal "PID.vi" and use your tuned gains for the inputs. You can now target to your RT engine with tuned gains.
    Hope it s help.
    Isabelle
    Ingénieur d'applications
    National Instruments France

  • Aide à la régulation PID autotunning

    Bonjour.
    Je tiens à remercier à l'avance toutes leurs contributions, j'ai personnellement été très utile
    Qu'est-ce qui se passe maintenant qu'en cherchant à contrôler la température PID autotunning acquis par un FP-TC-200, je ne reçois pas tout signal de commande (pièce jointe VI) lorsque je tente de soulever la gamme de la FP-AO-200 I dit qu'il ya une erreur dans la gamme
    le contrôle PID est qu'il n'est pas approprié, car le module tente d'ouvrir un relais avec le pouvoir que je suis en cours et que allumer ou éteindre une résistance qui fonctionne avec 120 V et a une puissance de 150 W, mais ces temps s'il y avait un moyen de mettre en place un sous-programme qui permet le contrôle le plus près possible à un PID ou peut-être un PID quelle que soit la réponse n'a pas le meilleur .... Je peux proposer quelque chose et aide-moi à cette s'il vous plaît? : Smileys: ..
    Désolé pour mon mauvais français, parlé ... mais n'a reçu aucune aide dans la collectivité en espagnol
    MERCI

    Bonjour
    Ci-dessous le VI ... Le
    problème est que lorsque je lui donne "run" je n'ai pas de réponse
    lorsque je tente de contrôler et de tourner jusqu'à la plage (ne sais
    pas si c'est pour ça), j'obtiens une erreur
    Après
    je donne Autotune, il semble que le module FP-AO-200 ne me donne pas le
    contrôle de réponse, ce module est connecté à un relais qui active ou
    désactive une résistance, et je prends les données de la FP-TC-120 est
    que ce cas, un contrôle linéaire n'est pas le
    meilleur, l'idéal serait la marche-arrêt, mais je tiens à les rendre
    comparables à l'IDP et quel que soit le signal de réponse n'est pas la
    meilleure
    Je vous saurais gré des
    suggestions pour fixer le VI ou de corriger l'erreur et être en mesure
    de fonctionner une fois pour toutes
    Pièces jointes :
    11111111.vi ‏42 KB

  • How should I set the parameters of PID Autotuning such as relay amplitude and PV noise level?

    I want to control the temperature of a room by changing the hot water flow of a radiator with a control valve. The desirable control accuracy is +/- 0.5 degree of centigrade.
    What number should I set for relay amplitude? And what number should I set for PV noise level?

    Hello loghmani,
    If your output is saturating try to reduce your relay amplitude and/or reduce the gain Kc of the PID controller before starting the autotuning procedure.  You can find more information about each of the parameters that you've inquired about at this KnowledgeBase article.
    I would recommend taking a look at the General Auto PID Simulator.vi example.  You can find this example by doing a search in the example finder or by clicking linked example at the bottom of the detailed help page of the Autotuning PID.vi.
    If you haven't looked at the PID user manual that also contains useful information on setting up PID algorithims and Autotuning.
    David A
    National Instruments
    FlexRIO Product Support Engineer

  • What is the relay amplitude parameter for the PID Autotuning addon VI?

    I don't understand this parameter.  I've tried to find a more descriptive help on it, but my searching skills are failing me.  Can someone explain this parameter to me?  I'm trying to auto tune  heater control system where the feedback temperature to the controller is a fluid temperature, so there is a lot of seperation between the heating source and the control feedback transducer.  There is also a lot of mass and I'm not happy with the amount of oscillation that I am getting around my setpoints.

    Dear all,
                  Thanks for you people's reply . I really appreciate your helping mentality .
    when we go for relay auto tuning using PID controller,we have to Substitute a relay with amplitude d  and from the desribing function we get the eqn Ku =4d/pa  .
    my doubt here how will i obtain d (ie.,relay amplitude)?
    In order to analyse this , I first implented simple ON OFF(relay) temperature controller .From that I observed the oscillations getting are asymmetric .In order to get symmetric oscillations, i know that we have to select a suitable value for d ? Is there any theoretical method to find d? I really got stuck in this part . Considering the fact that i want to design completely automatic system , i  want my miccrocontroller to find d rather than manually . So it would be very helpful if you give me a solution for this and I will be always indebted to you.
    hopefully,
    --varun

  • How to implement autotuning pid in labview in flow control process????

    I tried the same way as Example available in LabVIEW..... that is general auto PID simulator... But that didn't worked out for me.....

    The 'General Auto PID Simulator.vi' example uses the technique "PID Relay" feedback where it tries to calculate the PID values based on the relay feedback, but using the PID also in the loop:
    (http://zone.ni.com/reference/en-XX/help/370401H-01/lvpidmain/pidrelay_alg/)
    This technique works, but it requires initial PID parameters that will make the relay setpoint stable and it is able to obtain the results you are expecting.
    Now, for flow control, you can try the most classic techniques. Please use other shipping examples that start with "autotuning" and in special this:
    C:\Program Files (x86)\National Instruments\LabVIEW 2013\examples\control\PID\Autotuning PID Online.vi
    In this VI, you can choose other techniques like open-loop step response, closed-loop step response and the original 'relay feedback' where it doesn't have a PID inside the estimation loop.
    Anyway, here you have more information about those techniques http://zone.ni.com/reference/en-XX/help/370401H-01/TOC4.htm.
    One more thing: keep in mind that depending on the plant parameters, a PID could not be suited for your application and a more complex controller need to be developed.
    Hope this can help you...
    Barp - Control and Simulation Group - LabVIEW R&D - National Instruments

  • PID Temperatur​e Autotuning

    Hi,
    Has anyone had much success with the 'Temperature' method of PID control and the autontuning of its parameters?  I have several temperature (and other slow-responding) systems that I'm trying to control.  But I'm not having much success getting adequate gains.  Is there a good guide to implementing this technique?
    Also, does the 'Tuning Complete' boolean even work?  It appears that the boolean only becomes true when the user stops autotuning manually?  Thanks.
    -Joe

    Joe,
    The "PID Temperature Autotuning" is used in system that have large time-delays. By large, the delay should be equal or bigger than the time constant. If that is not the case where the delay is just a fraction of the time constant, than the "PID Advanced Autotuning" probably would have a better response for you.
    The  "PID Temperature Autotuning" has a 'smith predictor' inside the algorithm that try to avoid the effects of the delay, but, if your system can't be model or differ too much from a first order model with large delay, then it is possible it can not work for you.
    The "Tuning Complete" problem was already reported and fixed in later versions. If you want to fix on your version, here is the code to patch your version and in attachment is the VI save in LabVIEW 2013:
    Barp - Control and Simulation Group - LabVIEW R&D - National Instruments
    Attachments:
    PID Autotuning (Temperature).vi ‏42 KB

  • Circuit for auto tuning of pid controller in lab view

    Hi sir
    for my  project in auto tuning of pid controller using labview,for that
       i require a simple  circuit diagram(lab view figure) and have no problem in running for that
    i will be very thankful  to you

    Hi!
    I am not sure if I completely understand the question but if you are wanting to do autotuning for PID there is actually a VI that will do it for you.  It is called PID Autotuning.vi and can be found under the PID Control pallete in LabVIEW.  The LabVIEW Help file also contains more detailed information on the inputs and outputs to the VI.
    Carlton
    CLD

  • Which vi is best to use from pid toolkit to control 8 temperature zones?

    Hi:
    I recently bought LabVIEW 8.5 w/ PID toolkit but I can't find the "pid.vi" in its examples. Although I have never used this pid.vi, I heard  that this one is a good vi to control multiple  temperature zones. Help me if I am not searching this vi in a right way or place.  I am using NI 9264 module kit for the output power. My input is two NI 9211 thermocouple temperature module.
    However my question is the same as of subject: Which vi is best to use from pid toolkit to control 8 temperature zones?
    I also see in the readme file of NI 9264 that it can give a current drive of +/- 16mA for all channels. What does that mean? Since I'll be using a solid state relay which drives on 30mA/per channel.
    Thanks for any help in advance.

    Hi HopeS,
    Unfortunately, PID control theory is not a simple subject, and there is no single answer on parameters, because every system differs in their response to inputs. That's why the P, I, and D parameters are adjustable. We do have a PID autotuning VI found in the same palette which will launch the AutoTuning wizard to help you get mor precise parameters once you have reasonable values to work with already. But again, you need to know a reasonable set of values to operate with for P, I, and D. Once you use the Autotuning Wizard to get new PID values, I would recommend replacing the VI with the normal PID VI and manually entering in the values you found through autotuning. Then you can use an array of all your temperatures (process variables) as the input to the VI. The "simulated" case of the Ready-to-Run Temperature Controller example you found is about as simple as it can get.
    And the output of the VI is just going to be based on the mathematical transformations going on within the VI. Since you want a analog output current, you'd rescale that output if necessary and wire it into a DAQ Assistant VI (or DAQmx Write). I'm not sure I understand what you mean with not having to "play with the VIs" - this application will require some small amount of modification to fit your hardware.
    Regards,
    Vijay S.
    National Instruments

  • PID setting recommendations (and LabView tips)

    Hi guys.
    I'm measuring resistance of a sample by varying temperature from 300K to 2.6K in intervals of 0.5K. Temperature is adjusted using a Sumitomo CKW-21 Helium Compressor Unit and a Lakeshore 335 Temperature control. Because the compressor doesn't provide a constant flow, but rather in short bursts, it appears to be essentially impossible to stabilize temperature below 10K and it jumps all over the place.
    I was wondering if you guys have any suggestions as to the optimal PID setting for the Lakeshore for different temperature ranges.
    I'm thinking about trying to write a code in LabView that will automatically adjust it during the run. I have absolutely no idea how to do that right now, so any hints in that area would be greatly appreciated too!

    Yeah, I understand it's not possible to stabilize the temperature at each interval perfectly given the setup. I was just hoping to optimize it. For some reason Lakeshore PID autotune fails at stage 3, which has reasons for failing listed as "system response is too slow, or the heater is too underpowered for the system to autotune", but the system response is actually really fast and I don't think the heater is underpowered, so I'm not sure why it's complaining

  • Usage of PID controller instead of ON OFF controller

    respected sir,
           I pursuing  btech final year in the stream of instrumentation.sir i have a doubt  while go through my project,can i use PID controller  instead of using ON OFF CONTROLLER. would you please suggest me the possible ways which are going to implement in my final project intelligent wheel chair.i am eagerly waiting for your valuable acknowledgement.
    thank you,
    with warm regards,
    BOMMAREDDY

    Hi!
    I am not sure if I completely understand the question but if you are wanting to do autotuning for PID there is actually a VI that will do it for you.  It is called PID Autotuning.vi and can be found under the PID Control pallete in LabVIEW.  The LabVIEW Help file also contains more detailed information on the inputs and outputs to the VI.
    Carlton
    CLD

  • PID control to maintain constant heater electrical power?

    Hi!
    I am looking for a good solution for the following:
    I have a heater wire (approx. 220 Ohms). I drive this wire with DC voltage. I measure the voltage drop on the wire, and the current running through it. I want to control not the temperature, but the calculated electrical power (P=U*I) in the range of 1mW to 1W. 
                Of course the resistivity is slightly different at different temperatures, so that is why I think I need active control.
    Maybe someone could give me a good advice?
    Thanks very much!

    Hi,
    Everything is set up for the hardware. I generate the DC voltage with a NI Static waveform card (DAQmx). I measure the voltage drop and the current (via voltage drop measurement on a calibrated resistor connected in serial with the heater wire) with a Keithley DVM via GPIB card. The SetPoint is the required electrical power, the ProcessVariable is the calculated power from the measured U and I. The output is the driving voltage between 0-3 DC Volts, what I amplify with a factor 5.8 with an amplifier connected to the heater wire.
    I try to use the PID.vi from the PID toolkit (I already use PI(D) controls from LabView for other heater wires, where I have to control temperature, and they work very efficiently and perfectly) for this purpose.
    So far I try to find the proper gain values. My sampling rate is low, approx. 8 seconds. First I tried only the P control (zeroing the I and D gains of the PID.vi), to find a stable oscillation range, so I could go on with the PID Autotune vi. But no luck so far. I think it is also a problem, that this system is not linear: the P is not a linear function of U. Can you suggest how to go on from here?
    Thanks very much!

  • PID Temperature Controller with myRIO

    I am interested in implementing the LabVIEW PID VI to create a temperature controller using the myRIO for a sous vide cooking apparatus similiar to this: https://learn.adafruit.com/sous-vide-powered-by-arduino-the-sous-viduino/sous-vide. I will be using a slow-cooker as the heating element; for the temperature measurements, I am using the DS18B20 one-wire temperature sensor; and to alter the temperature I am using a relay connected to the slow cooker.
    I have had success getting temperature measurements from the DS18B20 with the myRIO following the guidance of this thread: https://decibel.ni.com/content/docs/DOC-41626#comment-44403, however, I am having difficulty finding a starting place to learn how to use the PID VIs for the rest of the project. In a new VI file, I used the program I had used for the temperature readings as a subVI, and tried to connect its output containing the live numerical temperature measurements into the PID VI, but the live temperature measurements as well as the PID VI output are not being transmitted after running the program.
    Here are a few more specific questions:
    Are there any preliminary steps for creating a PID program to accept live measurements from a myRIO target (should the program be enclosed in a loop for continuous updating of myRIO measurements)?
    What information is transmitted at the "output" terminal of the PID VI?
    Is autotuning recommended for this type of application?
    How does the "PID Autotuning" VI differ from the "PID Autotuning (Temperature)" VI?
    I have attached the files I am currently working with: ("1-wire interface.lvproj" is the project file, "RT Main.vi" is the temperature reading program, "PID_Test" is the new PID VI file I am experimenting with).
    If the content in this post is not appropriate to what is expected to be asked in the forums (not specific enough, etc.), please let me know and I apologize in advance. Thank you for your time and assistance!

    Hello dpull,
    There shouldn’t be any particular configuration that needs to be done, for the PID vi to start using the PID VIs, and if you desire to continously acquire the data from the myRIO, then this within a loop might be appropriate.
    The output terminal transmits the control signal of the PID controller, so basically the action that would have to take place to take the desired value to the setpoint.
    As far as recommending autotuning, it mostly  depends on your application and the precision you need, it would always be better to determine the parameters yourself, but if you don’t require super high accuracy, then autotunning should be sufficient.
    The PID autotunning (Temperature) VI is used for processes that include a dead time, since it’s incorporated into that model, the other one is better suited for processes that don’t have dead time.
    As far as resources go for learning to use this toolkit, I’d recommend sticking to the examples you can find in LabVIEW and maybe the following manual.
    http://www.ni.com/pdf/manuals/372192d.pdf

  • Programatically launching reentrant clones

    I have a temperature control process which has an array of process variables for which I wish to implement parallel PID control loops.  The size of this array is set according to a configurable number of temperature control zones, so while it is variable in the application, it is known and constant at the level of the SubVI which will handle the PID processing.  While the PID and Fuzzy Logic toolkit contains PID VIs which accomodate DBL Array instances for parallel processing (and thus would handle whatever size array of process variables is thrown at it), the specific VI that I wish to use (PID Autotuning (Temperature).vi) does not.  What I want to do is: in response to a configuration change which changes the number of heater control zones, preallocate as many clones of the PID Autotuning (Temperature).vi as there are process variables in the array (determined by user configuration), and then within my SubVI, run the array of process variables into a FOR loop in which each iteration uses a different clone, thus duplicating the behaviour of those PID VIs which do accept array inputs for running parallel control loops.
    I am unfortunately unfamiliar with the use of the VIs on the Application Control palette.  Any help would be appreciated.
    Sean

    Okay, I have managed to preallocate the data spaces, and if I pass the resultant reference into a FOR loop (N= minimum # of data spaces) containing a property node outputing the "Is Clone VI" property, all output Booleans are TRUE.  Interestingly, the CloneName property is the same string regardless of iteration, which I gather was done on purpose by NI in a recent revision of LabVIEW to prevent programmatic access to specific clones, but unfortunately, that is precisely what I am trying to do.  The asynchronous start / wait functions, or call by reference node, will operate on the reference passing through the FOR loop, but how can I be sure that the correct instance is being used if I can't address them directly?  I also notice that for minimum space values less than six, the preallocation node coerces the value to six.  I am unsure how this would be handled when it gets to my PID FOR loop - I want to iterate through the clones starting at the first one, but the next time the loop is encountered, it needs to start at the beginning again.  If there are more allocated data spaces than process variables, wouldn't it iterate through all of the available preallocated clones before starting again?

  • Need help with Call By Reference on cRIO-9012

    I have a RT application running on a cRIO-9012 in which I am attempting to establish references to a variable number of clones of the PID Autotuning (Temperature).vi, and then passing these references to a FOR loop in which I am opening each clone with a Call By Reference node to perform the PID.  Essentially, I am trying to make the PID Autotuning (Temperature).vi accept an array of process variables, similar to the behaviour that some of the simpler PID VIs provide out-of-the-box. 
    The code I am using to obtain the references is here:
    ...and the code within the control loop where I am trying to do the processing is here:
    The problem I am encountering, according to the Highlight Execution tool, is that all inputs to the Call By Reference node are present and reach the node, but all processing stops at this point on the first iteration and the cRIO hangs.  I cannot stop the SubVI or the RT parent VI without performing a software restart on the target.
    I don't know if I am using the Call By Reference node or Open VI Reference functions incorrectly, or if there is a problem with the VI being part of a library, or if something else is wrong.  Any help would be appreciated.
    Sean

    I'm not sure this is your issue, but I think there's a conflict between opening a bunch of rereferences, and then setting the asynchronous call pool size for one of them.You don't need asynchronous execution here, you just need reentrant parallel execution (you may not even need the parallel part; your current code, if it worked, would execute sequentially, and the PID calculation is just math so should be quick and may not benefit from parallel execution). You do need reentrant execution to maintain separate data spaces.
    Try opening the references with the 0x08 (Prepare for Reentrant Run) flag instead. Remove the Populate Asynchronous Call Pool. If this works, you can run in parallel by enabling For loop parallelism - but you might find that's actually slower, especially on a cRIO.

Maybe you are looking for

  • Switch 2nd monitor  between dvi monitor and hdtv

    I have an Intel iMac and I use the mini-dvi output to have a second monitor for working on the computer and also to watch online videos on my hdtv. Both work great. The problem is I have to reach around the back of the iMac to unplug the dvi monitor

  • Boot to external CD-ROM

    My slot loading drive is not working anymore so I got an enclosure to use for my IDE CDROM drive that I used for my PC. I connected it to my iMac's USB1.1 port and it is able to read CD's and all but I can't boot to it. Is this even possible? Thanks

  • Dialog Boxes

    I'm trying to decide whether to convert from Visual Basic to Dreamweaver for content (and ultimately, website development).   Does DW have a dialog box feature or some capability to open a Microsoft Word or Excel file? (the actual file, not just the

  • What would happen if two concurrent threads try and remove ....

    Hello, I have a java test to give back tomorrow and I'm stuck on this question, could you help me please. Question: What is the difference between java.util.Vectorand java.util.ArrayList? I read everywhere that: The main difference between Vectors an

  • Maximum number of processes

    hello all, how do I change the maximum number of processes in oracle ? and is there a limit ? Thank You.