PID control pause

The solution is probably staring me in the face however I cant seem to find / see it.
Can anyone tell me how I pauze the node-red-contrib-pid controller?

I mean that I want freeze the PID controller as pumps are starting up and going down.
The enable / disable function doesnt seem to give me the result that I want? It spits out 0 (probably the output power when disabled ) found in the block variables.

Anyone any experience with this ?

Yes that is what enable/disable does, it puts it into auto or manual. The fields and messages are not well named I am afraid. If you want it to go to a particular value you can send the value via messages. If what you want to do is to hold the output at the current value then there isn't an automatic way of doing it. A feature I have been meaning to add is called bumpless transfer, which means that you can put it into manual but keep the current output value, and when you put it back into auto it will again keep the existing output value. At the moment that is not there.

It would be possible to get round this by continually feeding the output back to the input as the required value for disabled output. I think this would just be a matter of putting a change node on the output which sets msg.topic to "disabled_op" and feeding that back to the input. Then when you disable the pid it will set the output to the value it is already at. That won't prevent a bump in output when you put it back into enabled mode though. I am not sure how to prevent that.

Hey Colin,
I geuss you are the person that has build this node. In which case my thanks :slight_smile: ! saves me alot of work !
I understand what you mean but as you explained you have a bump. (allready tried this approach).
What you could do is pauze the I (freeze it ) during the "bumpless" transfer as you would call it.
This is how I did it in the past in custom written PID controllers.

Is this something you could introduce? Or I could help you doing it?

Do you mean you still see a bump when you go into manual mode, or only when you come out?

The Integral term is already paused when in manual mode (at least I think that is correct). If the process value does not change during the time it is in manual mode then it would be bumpless on the way out of manual also. If the process value changes, which changes the Proportional term, then it will bump on the way out of manual.


I will try this approach tomorrow morning. Ill " freeze" the proces value during the manual mode and then unfreeze it when the movements are done. Ill let you know how it behaves.

PS: just tried it now seems to be working as intended.
So disabling the node and then feeding it the last known process value seems to do the trick. Im letting the process value only change when its unfrozen. This way it doesnt " bump " to hard.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.