02-14-2007 03:53 PM
02-15-2007
06:55 PM
- last edited on
10-23-2025
04:57 PM
by
Content Cleaner
Hi Radhika,
Here is a useful Developer Zone document which gives a brief explanation of how we handle PID tuning in LabVIEW using the Ziegler Nichols method. If you have the PID toolset for LabVIEW, we also have a function titled “PID Auto Tuning.vi” which increases the Kc gain parameter until the system output becomes oscillatory. You can look through the PID Manual in section 2-7 (page 18) and the corresponding section 3-14 (page 36) regarding the vi itself. Regarding general PID tuning I would also take a look at this document as well, in particular the “Tutorial: Manually Tuning a System From Scratch” section which gives a step-by-step guideline to manually tune your system (even though this is for servo tuning, the basic concepts are relative to PID control in general). I hope this gives you a good start. Please let us know if you would like further clarification or assistance regarding this issue.
Best Regards,
Vu D
Message Edited by Vu D on 02-15-2007 06:56 PM
02-16-2007 12:26 PM
02-16-2007 12:27 PM
one more subvi...........
02-19-2007
03:59 PM
- last edited on
10-23-2025
04:55 PM
by
Content Cleaner
Hi radhika,
I have taken a look at your code, but it is a little difficult to follow (part of the lines are hidden behind structures and the data flow is not clear from a first look.) If you can use some of the alignment tools and possibly simply your code as well as add comments, it will be easier for other users to follow and comment on. As for the behavior, I ran the application and I do see that the process variable is not following the system properly; however, how exactly are the parameters supposed to behave? Do you have a model system that you are basing your PID feedback on? I would suggest looking at a basic PID algorithm. Starting with a simplified formula and making sure it works with your code, you can then increase the complexity. Also I would like to again recommend looking into our PID control toolset which I have linked in my previous thread since the algorithm is already coded into the VI. If you can simplify your system by reducing the code (for example, in the “process temperature1.vi” instead of using the “select” function as the input into the case structure you can use a “not” or reverse the true/false cases). I hope this helps.
Regards,
Vu D