AIA Verses PID
With the help from many, I was able to create my first simple Spyder program, simulate, and it ran....cool. I'll try to load it into a Spyder next.
I was looking at the AIA (Adaptive Integral Action) object and was wondering if anyone is using this successfully instead of a PID object. If so, in what applications?
what is AIA? Can you describe how it works?
Originally Posted by jogas
Here's the Help explanation:
Originally Posted by drafty888
This function is an Adaptive Integral Action controller (AIA). It can be used in place of the PID. This control works better than PID when delays in the process being controlled cause integral windup resulting in undershoot or overshoot that leads to instability.
Err = Sensor Set Point.
If Direct/Reverse is set to reverse, then Err term is set to Err.
Tr (throttling range) is Error value that results in an Output change of the maximum value (MaxAOchange) from one step to the next. MaxAOchange is the maximum amount(%) that Output will change for a single cycle of the control (1 sec). This is typically set to 100%/(actuator speed(sec/full stroke)). Deadband is the absolute value that Error must be greater than before the output will change.
EffErr = Err dead band
If Err > 0 , ErrSign = 1 else ErrSign = -1
If |Err| < dead band, then AbsErr = 0.
Otherwise( |Err |> dead band), AbsErr = |Err| - deadband
Output = output + ErrSign*[( maxAOchng minAO)*(AbsErr/(ThrottlingRange-Deadband))**3 + MinAO)].
From iteration to iteration, the Function Block keeps track of the old proportional error. On power up/reset this is cleared.
Attached is a Hnywl brochure excerpt on AIA.
i was told the aia isn't subject to integral wind up. however the output doesn't go below 0 so if you use it with a stager the last stage won't turn off. i have a thread on here about it and code and lwarren offered some advice.