Torque Controller

class gem_controllers.torque_controller.TorqueController(env: (<class 'gym_electric_motor.core.ElectricMotorEnvironment'>, None) = None, env_id: (<class 'str'>, None) = None, current_controller: (<class 'gem_controllers.current_controller.CurrentController'>, None) = None, torque_to_current_stage: (<class 'gem_controllers.stages.operation_point_selection.operation_point_selection.OperationPointSelection'>, None) = None, clipping_stage: (<class 'gem_controllers.stages.clipping_stages.clipping_stage.ClippingStage'>, None) = None)[source]

Bases: GemController

This class forms the torque controller, for any motor.

Initilizes a torque control 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.

  • current_controller (gc.CurrentController) – The underlying current control stage.

  • torque_to_current_stage (gc.stages.OperationPointSelection) – The operation point selection class of the torque contol stage.

  • clipping_stage (gc.stages.clipping_stages.ClippingStage) – Clipping stage of the torque control stage.

control(state, reference)[source]

Claculate the reference values for the input voltages.

Parameters:
  • state (np.array) – state of the environment

  • reference (np.array) – torque references

Returns:

voltage reference

Return type:

np.ndarray

control_environment(env, n_steps, max_episode_length=inf, render_env=False)

Function to control an environment with the GemController.

Parameters:
  • env (ElectricMotorEnvironment) – The GEM-Environment that the controller should control.

  • n_steps (int) – Number of iteration steps.

  • max_episode_length (int) – Maximum length of an epsiode, after which the environment and controller should be reset.

  • render_env (bool) – Flag, if the states of the environment should be plotted.

get_signal_value(signal_name)

Get the value of a signal calling by the signal name.

Parameters:

signal_name (str) – Name of a signal of the state

Returns:

float

classmethod make(env: ~gym_electric_motor.core.ElectricMotorEnvironment, env_id: str, decoupling: bool = True, current_safety_margin: float = 0.2, base_current_controller: str = 'PI', base_speed_controller: str = 'PI', a: int = 4, should_plot: bool = False, plot_references: bool = True, block_diagram: bool = True, save_block_diagram_as: (<class 'str'>, <class 'tuple'>) = None)

A factory function that generates (and parameterizes) a matching GemController for a given gym-electric-motor environment env.

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.

  • decoupling (bool) – Flag, if a EMF-Feedforward correction stage should be used in the pi current controller.

  • current_safety_margin (float in [0..1]) – The ratio between the maximum current set point the reference controller generates and the absolute current limit.

  • base_speed_controller ('PI'/'PID'/'P'/'ThreePoint') – Selection of the basic control algorithm for the speed controller.

  • base_current_controller ('PI'/'PID'/'P'/'ThreePoint') – Selection of the basic control algorithm for the current controller.

  • a (float) – Tuning parameter of the symmetrical optimum.

  • plot_references (bool) – Flag, if the reference values of the underlying control circuits should be plotted

  • block_diagram (bool) – Selection whether the block diagram should be displayed

  • save_block_diagram_as (str, tuple) – Selection of whether the block diagram should be saved

Returns:

An initialized (and tuned) instance of a controller that fits to the specified environment.

Return type:

GemController

reset()[source]

Reset all components of the torque control stage and the underlying stages

torque_control(state, reference)[source]

Calculate the current refrences.

Parameters:
  • state (np.array) – actual state of the environment

  • reference (np.array) – actual torque references

Returns:

current references(np.array)

tune(env, env_id, current_safety_margin=0.2, tune_current_controller=True, **kwargs)[source]

Tune the components of the current control 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.

  • current_safety_margin (float) – Percentage indicating the maximum value for the current reference.

  • tune_current_controller (bool) – Flag, if the underlying current control stage should be tuned.

property clipping_stage: ClippingStage

Clipping stage of the torque controller stage

property current_controller: CurrentController

Subordinated current controller stage

property current_reference: ndarray

Reference values of the current controller stage

property maximum_reference
property referenced_states
property references
property signal_names

Signal names of the controller

property signals

Input signals of the controller

property stages

Stages of the GEM Controller

property t_n

Time constant of the current controller stage

property torque_to_current_stage: OperationPointSelection

Operation point selection stage