11-30-2009 10:06 AM
Hi all,
I'm upgrading some code from LabVIEW something-old to LV8.6.1, which uses the Control PID Toolkit. I see that in PID (dbl array).vi, the initial outputs can be set using the Intial Outputs input terminal. In the latest PID toolkit, things have been simplified and now there appears to be no way to set the initial outputs?
It is important that I can do this, because the system will start controlling a rig that is already running. The initial outputs are set to the settings at the point of takeover, and this ensures a smooth transition between user control and automatic control. But if I can't set the initial outputs, I think the PID control code will set everything to zero upon its first iteration. This could be catastrophic?!
If I disregard the first iteration outputs, then let it take control fromthe second iteration onwards, is this going to help? Or will there still be a (albeit less bumpy) switchover between manual and automatic mode?
Any advice most appreciated. Thanks,
Solved! Go to Solution.
11-30-2009 10:42 AM
It transpires that the 'Initial outputs' terminal may be a user-addition to the PID control toolkit, implemented by the previous author of the code I am upgrading. It was obviously felt that this input was required to correctly initiate the PID loop to the current running outputs.
This raises an interesting question - without these 'initial outputs', how does one correctly initialise a PID control loop in preparation for taking over a system that is already in motion?
For example, if this system was part of a flight simulator, and the pilot was switching from manual to auto-pilot, he wouldn't expect the PID loop to start from zero (as this toolkit does). That would (hypothetically) stop the engines and nosedive the aircraft! I'm sure it would pick up again fairly quickly, but this control 'bump' is hardly agreeable.
Here's hoping someone has some advice on how to correctly imlement the PID toolkit....anyone?
11-30-2009 01:32 PM
12-01-2009 04:15 AM