11-26-2018 05:05 AM
hello,
when I run the attached vi, plant output reaches setpoint and still the PID output is bigger than 0? Plus if I put dead time in, shouldn't the response of the PID be delayed by that time? This is why I want to use this vi in the first place (temperature autotune)
thanks!
11-26-2018 05:33 AM
Hi Steffen,
plant output reaches setpoint and still the PID output is bigger than 0?
In general the PID output does not need to be zero when pv and sp are equal.
(Example: when controlling a heater you need a certain amount of heating power to reach and hold the sp temperature…)
11-26-2018 07:40 PM - edited 11-26-2018 07:42 PM
I check again on our test rig. You are right, its mixing hot and cold water So even if both temperatures match, I have to keep adding hot water. Just that output then would be steady.
But what about the dead time? There is a long pipe run and before a change of temperature comes through it takes a while. So that PID vi should account for that? At present I cannot use PID because essentially its oscillating.
edit: same person, different logins
11-26-2018 08:58 PM
@SMARDT_CHILLER wrote:
I check again on our test rig. You are right, its mixing hot and cold water So even if both temperatures match, I have to keep adding hot water. Just that output then would be steady.
But what about the dead time? There is a long pipe run and before a change of temperature comes through it takes a while. So that PID vi should account for that? At present I cannot use PID because essentially its oscillating.
edit: same person, different logins
Lets be honest! If you want to even consider controlling the water temperature at a point after a long run of thermosinks (Metal Pipes) you need to monitor the temperature at the outflow. Or you need to calculate Theta jC over the intervening piping by knowing the run length width and ambient temp as well as those jC parameters.
In short, You cannot "Autotune" that PID for a pipe that contains a thermally dense thing like "Watter" 1.0 that is a hard number for thermal density. Move that mass through uncontrolled "Pipes" and there is nothing you can do but!!!! Put the probes on the output!. then the delay will be effective
11-26-2018 09:09 PM
say I want 10 degrees at point X but its mixed 30m away from there. The heat loss through the pipes are negligible. But if i have flow rates of 15L per s it takes a while until it reaches my sensor and of course some delay for sensor etc to change its temperature. I dont want to use autotune. And the delay of course changes with the flow rate. It works on our test facility with shorter pipe runs and a normal PId vi. But we have another test facility with a way longer pipe run and it takes more than 30s until temperature starts changing after some change in setpoint
11-27-2018 01:12 AM
Hi Smardt,
it takes more than 30s until temperature starts changing after some change in setpoint
For such dead times PID controls aren't the best option…
But you can "pimp" them!
- Control the water temperature directly at/after the mixing point. Then add a 2nd control loop to compensate the temperature loss/delay of that pipe.
- As has been said before: change your control loop model to include the parameters of the pipe (length, volume, heat loss, thermal inertia, …).
- try to add some feed-forward structures to your PID control
- …
In general: any good book on "control loops" will give you ideas and explanations!
11-27-2018 02:08 PM
maybe for a start we measure the difference at both points of the pipe run. Flow rate is quite high and temperatures not that different from ambient, so maybe the losses are not that big. So we can control the temperature where the water is mixed and log it at the test specimen. Pump response is pretty quick, so this will get rid of oscillations induced by the time lag.
No idea if the chief wants to spend money on a book. Maybe have to buy myself a xmas present.