08-15-2018 10:36 AM
Hello all,
Attempting to modify my block diagram for a PID controller so that I can change the gain input (prop, int, or der) without aborting the execution of the program; basically want it to act as variable instead of a constant that requires aborting for changes to take effect.
I understand what is being discussed here in theory:
https://forums.ni.com/t5/LabVIEW/continuously-changing-PID-gains/m-p/3112827#M892768
however I am stuck when it comes to figuring out what needs to be physically changed in the block diagram due to my inexperience with LabView. Any assistance would be great.
Thanks.
Solved! Go to Solution.
08-15-2018 04:31 PM
PID controllers are designed to have their coefficients determined (a process sometimes known as "tuning") and then left alone to run the system in a stable manner (varying the settings can actually induce instability). Hence digital implementations (such as LabVIEW's PID code) don't include "variable coefficients". This is a feature, not a bug.
Bob Schor
08-16-2018 04:11 AM
@Bob_Schor wrote:
PID controllers are designed to have their coefficients determined (a process sometimes known as "tuning") and then left alone to run the system in a stable manner (varying the settings can actually induce instability). Hence digital implementations (such as LabVIEW's PID code) don't include "variable coefficients". This is a feature, not a bug.
Bob Schor
For non-linear systems, there is sometimes a need to apply gain scheduling.
There is a VI for this, not sure if there are any examples though.
0xDEAD
08-16-2018 04:25 AM
Hi,
yes, there is GainScheduling within the PID toolkit available. There used to be example VIs too.
Suggestion/idea/hint:
I made my own copy of NI's PID(Advanced) function where I disabled the internal reset due to PID gain changes.
We often have to control non-linear systems and do a lot of "continuous gain scheduling"…