GEM Adapter
- class gem_controllers.gem_adapter.GymElectricMotorAdapter(_env: (<class 'gym_electric_motor.core.ElectricMotorEnvironment'>, None) = None, env_id: (<class 'str'>, None) = None, controller: (<class 'gem_controllers.gem_controller.GemController'>, None) = None)[source]
Bases:
GemController
The GymElectricMotorAdapter wraps a GemController to map the inputs and outputs to the environment.
- 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.
controller (GemController) – The GemController that should be wrapped.
- control(state, reference)[source]
Function to calculate the action of the controller for the environment.
- Parameters:
state (np.array) – Array of the state of the environment.
reference (np.array) – Array of the references of the referenced states.
- Returns:
action
- 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:
- tune(env, env_id, tune_controller=True, **kwargs)[source]
Function to set the parameters of the controller stages.
- Parameters:
env (ElectricMotorEnvironment) – The GEM-Environment that the controller shall be tuned for.
env_id (str) – ID of the ElectricMotorEnvironment.
tune_controller (bool) – Flag, if the controller should be tuned.
- property block_diagram
- property controller
Wrapped GemController
- property input_stage
Input stage of the controller
- property output_stage
Output stage of the controller
- property signal_names
Signal names of the controller
- property signals
Input signals of the controller
- property stages
Stages of the GEM Controller