Three Point Controller

class gem_controllers.stages.base_controllers.three_point_controller.ThreePointController(control_task)[source]

This class represents a three point controller, that can be used for discrete action spaces.

Parameters

control_task (str) – Control task of the three point controller

__call__(state, reference)[source]

Select one of the three actions.

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

  • reference (np.ndarray) – The reference of the state.

Returns

Action or reference for the next stage

Return type

action(np.ndarray)

_tune_current_controller(env, env_id)[source]

Calculate the hysteresis levels of the current control stage and set the action values.

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.

_tune_speed_controller(env, _env_id)[source]

Calculate the hysteresis levels of the speed control stage and set the torque reference values.

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.

property action_range

Action range of the base controller

property high_action

High action value of the three point controller

property hysteresis

Value of the hysteresis level

property idle_action

Idle action value of the three point controller

property low_action

Low action value of the three point controller

property referenced_state_indices

Indices of the controlled states

tune(env, env_id, **base_controller_kwargs)[source]

Tune a three point controller 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.