Skip to content

Integral Windup #76

Open
Open
@terryjmyers

Description

@terryjmyers

If Output is maxed due to a very large error (like when the controller first starts), it looks like Integral will continue to wind up (outputSum increasing) until it ALSO hits the outMax. This woudl then require outMax worth of integral needing to be integrated away. Why is the integral term processed at all when the output is clamped at either end?

Isn't this what is required (line 69):
if (output< outMax && output > outMin) outputSum+= (ki * error);
I realize it will be evaluating the LAST iterations output, but this is probably good enough.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions