Finite Control Set Current Control Squirrel Cage Induction Motor Environment
- class gym_electric_motor.envs.FiniteCurrentControlSquirrelCageInductionMotorEnv(supply=None, converter=None, motor=None, load=None, ode_solver=None, reward_function=None, reference_generator=None, visualization=None, state_filter=None, callbacks=(), constraints=(<gym_electric_motor.constraints.SquaredConstraint object>, ), calc_jacobian=True, tau=1e-05, physical_system_wrappers=(), **kwargs)[source]
- Description:
- Environment to simulate a finite control set current controlled squirrel cage induction motor. 
- Key:
- 'Finite-CC-SCIM-v0'
- Default Components:
- Supply: - IdealVoltageSupply
- Converter: - ContB6BridgeConverter
- Motor: - SquirrelCageInductionMotor
- Load: - ConstantSpeedLoad
- Ode-Solver: - EulerSolver
- Reference Generator: - WienerProcessReferenceGeneratorReference Quantity:- 'i_sd', 'i_sq
- Reward Function: - WeightedSumOfErrorsreward_weights:- 'i_sd' = 0.5, 'i_sq' = 0.5
- Visualization: - MotorDashboardcurrent and action plots
- Constraints: - SquaredConstrainton the currents- 'i_sd', 'i_sq'
 
- State Variables:
- ``[
- ‘omega’ , ‘torque’, ‘i_sa’, ‘i_sb’, ‘i_sc’, ‘i_sd’, ‘i_sq’, ‘u_sa’, ‘u_sb’, ‘u_sc’, ‘u_sd’, ‘u_sq’, ‘epsilon’, ‘u_sup’ 
 - ]`` 
- Reference Variables:
- ['i_sd', 'i_sq']
- Control Cycle Time:
- tau = 1e-5 seconds 
- Observation Space:
- Type: Tuple(State_Space, Reference_Space) 
- State Space:
- Box(low=14 * [-1], high=14 * [1]) 
- Reference Space:
- Box(low=[-1, -1], high=[1, 1]) 
- Action Space:
- Discrete(8) 
- Initial State:
- Zeros on all state variables. 
 - Example - >>> import gym_electric_motor as gem >>> from gym_electric_motor.reference_generators import LaplaceProcessReferenceGenerator >>> >>> # Select a different ode_solver with default parameters by passing a keystring >>> my_overridden_solver = 'scipy.solve_ivp' >>> >>> # Update the default arguments to the voltage supply by passing a parameter dict >>> my_changed_voltage_supply_args = {'u_nominal': 400.0} >>> >>> # Replace the reference generator by passing a new instance >>> my_new_ref_gen_instance = LaplaceProcessReferenceGenerator( ... reference_state='i_sq', ... sigma_range=(1e-3, 1e-2) ... ) >>> env = gem.make( ... 'Finite-CC-SCIM-v0', ... voltage_supply=my_changed_voltage_supply_args, ... ode_solver=my_overridden_solver, ... reference_generator=my_new_ref_gen_instance ... ) >>> terminated = True >>> for _ in range(1000): >>> if terminated: >>> state, reference = env.reset() >>> (state, reference), reward, terminated, truncated, _ = env.step(env.action_space.sample()) - Parameters:
- supply (env-arg) – Specification of the - VoltageSupplyfor the environment
- converter (env-arg) – Specification of the - PowerElectronicConverterfor the environment
- motor (env-arg) – Specification of the - ElectricMotorfor the environment
- load (env-arg) – Specification of the - MechanicalLoadfor the environment
- ode_solver (env-arg) – Specification of the - OdeSolverfor the environment
- reward_function (env-arg) – Specification of the - RewardFunctionfor the environment
- reference_generator (env-arg) – Specification of the - ReferenceGeneratorfor the environment
- visualization (env-arg) – Specification of the - ElectricMotorVisualizationfor the environment
- constraints (iterable(str/Constraint)) – - All Constraints of the environment. - str: A LimitConstraints for states (episode terminates, if the quantity exceeds the limit) 
 - can be directly specified by passing the state name here (e.g. ‘i’, ‘omega’) - instance of Constraint: More complex constraints (e.g. the SquaredConstraint can be initialized and 
 - passed to the environment. 
- calc_jacobian (bool) – Flag, if the jacobian of the environment shall be taken into account during the simulation. This may lead to speed improvements. Default: True 
- tau (float) – Duration of one control step in seconds. Default: 1e-4. 
- state_filter (list(str)) – List of states that shall be returned to the agent. Default: None (no filter) 
- callbacks (list(Callback)) – Callbacks for user interaction. Default: () 
- physical_system_wrappers (list(PhysicalSystemWrapper)) – List of Physical System Wrappers to modify the 
- Default (actions to and states from the physical system before they are used in the environment.) – () 
 
 - Note on the env-arg type:
- All parameters of type env-arg can be selected as one of the following types: - instance: Pass an already instantiated object derived from the corresponding base class (e.g. - reward_function=MyRewardFunction()). This is directly used in the environment.- dict: Pass a dict to update the default parameters of the default type. (e.g. - visualization=dict(state_plots=('omega', 'u')))- str: Pass a string out of the registered classes to select a different class for the component. This class is then initialized with its default parameters. The available strings can be looked up in the documentation. (e.g. - converter='Finite-2QC')