Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change integrator antiwindup behavior so better suited to MIMO problems #12

Open
mfbolus opened this issue Mar 2, 2021 · 0 comments
Open
Assignees
Labels
enhancement New feature or request

Comments

@mfbolus
Copy link
Contributor

mfbolus commented Mar 2, 2021

Is your feature request related to a problem? Please describe.
When actuator saturates, the integral error can continue to integrate, which makes the controller sluggish to responding future changes in the opposite direction.

Describe the solution you would like.
I am not settled on a solution as yet. One possible solution is if the controller is saturated, set the reference output/state to their values at saturation or simply do not integrate. The former is known as conditioning (Hanus 1987) and the latter is "conditional integration" which is an old technique and ad hoc. The benefit, however, is that it would generalize to MIMO. See Astrom+Rudqwist 1989 for survey of such methods.

Describe alternatives you have considered.
Currently, the way antiwindup is handled in an ad hoc manner known as (gradual) back-calculation (Astrom+Rudqwist 1989, Astrom+Murray 2009). This "works" if set up appropriately, but is most applicable to SISO systems. In the library, there is a hack for expanding to MIMO, but this should really be avoided

Additional Context
N/A

@mfbolus mfbolus added the enhancement New feature or request label Mar 2, 2021
@mfbolus mfbolus self-assigned this Mar 2, 2021
@mfbolus mfbolus added this to the Publishable v1 Release milestone Mar 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant