10-09-2017 07:32 AM
Hello everyone,
I am new in LabVIEW but I should learn and implement to finish my project.
I am trying to control the flow rate. Below, the picture of block diagram ans vi are attached.
Either I did not understand the PID control fully or there is a problem with simple pid controlling kit.
I am trying to control flow rate by taking the raw voltage data from daq and then the calibiration equation converts it to the pressure difference and finally plugging that value to the flow rate equation, I get flow rate and feed it to the pid controller. In this part of the process, I am expecting the pid controller to continue getting value and trying to reach to the set point that I assigned and send that signal to the output which is the actuator but it continues to go beyond the set point and reaches to the higher limit and stops there, stops I mean, continue getting signal from daq.
What is the problem with my logic or I am totally wrong? Any help would be appreciated and thanks in advance.
And also, I am using LabVIEW 2009
Solved! Go to Solution.
10-09-2017 07:31 AM
Hello everyone,
I am new in LabVIEW but I should learn and implement to finish my project.
I am trying to control the flow rate. Below, the picture of block diagram ans vi are attached.
Either I did not understand the PID control fully or there is a problem with simple pid controlling kit.
I am trying to control flow rate by taking the raw voltage data from daq and then the calibiration equation converts it to the pressure difference and finally plugging that value to the flow rate equation, I get flow rate and feed it to the pid controller. In this part of the process, I am expecting the pid controller to continue getting value and trying to reach to the set point that I assigned but it continues to go beyond the set point and reaches to the higher limit and stops there, stops I mean continue getting signal from daq.
What is the problem with my logic or I am totally wrong? Any help would be appreciated and thanks in advance.
And also, I am using LabVIEW 2009
10-09-2017 07:43 AM
At first blush, that looks correct I think your problem might be in the datatype you're wiring, make sure that the dynamic data wire is converted to a double before your math and the PID.
Other than that, I'd suggest tuning your PID control to see if it has an effect (your values may be very off making it look like it's not working). This link has been very useful to help me tune
10-09-2017 07:48 AM
At first blush, that looks correct I think your problem might be in the datatype you're wiring, make sure that the dynamic data wire is converted to a double before your math and the PID.
Other than that, I'd suggest tuning your PID control to see if it has an effect (your values may be very off making it look like it's not working). This link has been very useful to help me tune.
OR
Keep in mind that LabVIEW's PID output is perfectly capable of outputting numbers with long decimals. What does your 2nd module do if you give it a value of 87,497446875468734879? you may need to round your output after you're done (Use round up or round down, not to nearest).
10-09-2017 07:56 AM
Thank you very much, I wil check that link.
10-09-2017 08:47 AM
Sorry but I did get the converting dynamic data to double. Do you mean, putting "From DDT"? Choosing which one for converting to double? I put rounding to the nearest value to the output before going to the daq output. I guess it is because of the pid tuning problem.
10-09-2017 08:52 AM
@ATE-EGNE wrote:
(Use round up or round down, not to nearest).
Using to nearest will upset the PID control as it creates unpredictable behavior (from the perspective of the Internal PID)
10-09-2017 09:03 AM - edited 10-09-2017 09:22 AM
Did the rounding to +infinity, but could not the converting part and the problem is still continuing. Tuning also did not help.
10-09-2017 09:22 AM
Hi Aeros,
I don't understand the need for that "rounding".
See this:
- You didn't set any limit (upper/lower). Setting both to zero may/will result in erranous PID behaviour…
- Why did you use the PtByPt-Mean? Why don't you use the standard Mean function?
- Do you have access to the PID toolkit for LV2009?
10-09-2017 09:29 AM
The rounding was suggested by the previous user's reply, his point was that there can be a lot of digits in the decimal places which can cause a problem.
Regarding to the upper and lower limits, I assigned here for the lower limit zero and for the upper 10 but i guess it did not appear there, I will check that. Yeah concerning about the mean yeah I corrected that but thanks for pin pointing. I guess, you mean pid toolkit, yeah I used the simple pid toolkit from one of the examples that comes with software.