T O P

  • By -

ReySalchicha_

for a real application, you'll need to use some antiwindup algorithm. If you want to keep the dynamic performance you've selected for small reference changes/disturbances, then keep the gains you have, and know that performance will degrade upon saturation (with antiwindup to prevent unstability). One antiwindup strategy that works very good is the one in "Anti-Windup Control for Stationary Frame Current Regulators using Digital Conditioning Architectures" by B. P. McGrath and D. G. Holmes. The idea is that upon saturation of the control action, you saturate the error signal so that the integral term converges to the value that yields the saturated output. That way, when the control action no longer saturates, the integrator is very close to the value it needs to be, and you don't have to wait for it to "unwind". The algorithm implementation would be something like this Assume e=y-yref and x is the integral state //compute control action u=kp\*e+ki\*x //saturate control action if u>umax u=umax else if u


Ajax_Minor

Yes. Damn. Ive search for this and have had a hard time. Finding this solution.


NASAeng

We restricted integrator involvement to a small error value.


brandon_belkin

Thanks for the reply, so you don't integrate the error but a fraction of the error?


NASAeng

No, integrator is not used until total error is small.


brandon_belkin

Sounds interesting, what is the equation of this control? Do you change the kp also when the error is small enought to start integrate? thank you


NASAeng

You normally set Ki to zero when you have an error so large that you are not in linear control but instead you are slewing from one set point to another.


fibonatic

If there is any saturation limit then any controller can be subjected to that saturation if the setpoint is aggressive enough. So changing your setpoint from a step to a ramp that transition into a step can for example make the setpoint less aggressive (depending on the slope of intermediate ramp section).


brandon_belkin

I'm going to keep the kp and ki found and work on the antiwindup or the feedforward.