Anti Windup

class gem_controllers.stages.anti_windup.AntiWindup(control_task='CC')[source]

This class should prevent a Windup of a the intgration part of the controller. A windup arises when a reference variable is in the limit and the I controller is still integrated, so that it takes more time for the controlled variable to go under the limit again. To prevent this, only the I controllers whose controlled variable is below the limits are integrated.

Parameters

control_task (str) – Control task of the controller.

__call__(state, reference, clipping_difference)[source]

Limits the integrative part in the base-controllers.

If any output of the controller was clipped, the integration on this path is stopped.

Parameters
  • state (np.ndarray) – The state of the environment.

  • reference (np.ndarray) – The reference that was input into the controller to limit.

  • clipping_difference (np.ndarray) – The amount of clipping that was put on the output action of the controller.

Returns

The amount how much the integrator-value is altered.

Return type

np.ndarray

tune(env, env_id)[source]

Tune the anti windup stage.

Parameters
  • env (ElectricMotorEnvironment) – The GEM-Environment that the controller shall be created for.

  • env_id (str) – The corresponding environment-id to specify the concrete environment.