current_dqp_iparams = PI_params(kP=0.005, kI=200, limits=(-1, 1))
    # PI gain parameters for the PLL in the current forming inverter
    pll_params = PLLParams(kP=10, kI=200, limits=None, f_nom=freq_nom)
    # Droop characteristic for the active power Watts/Hz, W.s/Hz
    droop_param = InverseDroopParams(DroopGain,
                                     delta_t,
                                     freq_nom,
                                     tau_filt=0.04)
    # Droop characteristic for the reactive power VAR/Volt Var.s/Volt
    qdroop_param = InverseDroopParams(50, delta_t, v_nom, tau_filt=0.01)
    # Add to dict
    ctrl.append(
        MultiPhaseDQCurrentController(current_dqp_iparams,
                                      pll_params,
                                      i_lim,
                                      droop_param,
                                      qdroop_param,
                                      ts_sim=delta_t,
                                      name='slave'))

    # Define the agent as StaticControlAgent which performs the basic controller steps for every environment set
    agent = StaticControlAgent(
        ctrl, {
            'master': [[f'lc1.inductor{k}.i' for k in '123'],
                       [f'lc1.capacitor{k}.v' for k in '123']],
            'slave': [[f'lcl1.inductor{k}.i' for k in '123'],
                      [f'lcl1.capacitor{k}.v' for k in '123'],
                      [f'inverter2.i_ref.{k}' for k in '012']]
        })  # np.zeros(3)]})

    def update_legend(fig):
Esempio n. 2
0
    # Current control PI gain parameters for the voltage sourcing inverter
    current_dqp_iparams = PI_params(kP=0.012, kI=90, limits=(-1, 1))  # kp=0.012

    # Define a current sourcing inverter as master inverter using the pi and droop parameters from above
    ctrl.append(MultiPhaseDQ0PIPIController(voltage_dqp_iparams, current_dqp_iparams, droop_param_master,
                                            qdroop_param_master, ts_sim=ts, ts_ctrl=2 * ts, name='master'))

    ###############
    # define slave
    current_dqp_iparams = PI_params(kP=0.005, kI=200, limits=(-1, 1))  #
    # PI gain parameters for the PLL in the current forming inverter
    pll_params = PLLParams(kP=10, kI=200, limits=(-10000, 10000), f_nom=nomFreq)
    # Droop characteristic for the active power Watts/Hz, W.s/Hz

    # Add to dict
    ctrl.append(MultiPhaseDQCurrentController(current_dqp_iparams, pll_params, iLimit, droop_param_slave,
                                              qdroop_param_slave, ts_sim=ts, name='slave'))

    #####################################
    # Definition of the optimization agent
    # The agent is using the SafeOpt algorithm by F. Berkenkamp (https://arxiv.org/abs/1509.01066) in this example
    # Arguments described above
    # History is used to store results
    agent = SafeOptAgent(mutable_params,
                         abort_reward,
                         j_min,
                         kernel,
                         dict(bounds=bounds, noise_var=noise_var, prior_mean=prior_mean,
                              safe_threshold=safe_threshold, explore_threshold=explore_threshold),
                         ctrl,
                         {'master': [[f'lc1.inductor{k}.i' for k in '123'],
                                     [f'lc1.capacitor{k}.v' for k in '123'],
Esempio n. 3
0
    current_dqp_iparams = PI_params(kP=0.005, kI=200, limits=(-1, 1))
    # PI gain parameters for the PLL in the current forming inverter
    pll_params = PLLParams(kP=10, kI=200, limits=None, f_nom=nomFreq)
    # Droop characteristic for the active power Watts/Hz, W.s/Hz
    droop_param = InverseDroopParams(DroopGain,
                                     delta_t,
                                     nomFreq,
                                     tau_filt=0.04)
    # Droop characteristic for the reactive power VAR/Volt Var.s/Volt
    qdroop_param = InverseDroopParams(50, delta_t, nomVoltPeak, tau_filt=0.01)
    # Add to dict
    ctrl.append(
        MultiPhaseDQCurrentController(current_dqp_iparams,
                                      pll_params,
                                      delta_t,
                                      iLimit,
                                      droop_param,
                                      qdroop_param,
                                      name='slave'))

    # Define the agent as StaticControlAgent which performs the basic controller steps for every environment set
    agent = StaticControlAgent(
        ctrl, {
            'master': [[f'lc1.inductor{k}.i' for k in '123'],
                       [f'lc1.capacitor{k}.v' for k in '123']],
            'slave': [[f'lcl1.inductor{k}.i' for k in '123'],
                      [f'lcl1.capacitor{k}.v' for k in '123'],
                      np.zeros(3)]
        })

    env = gym.make('openmodelica_microgrid_gym:NormalizedEnv_test-v1',
Esempio n. 4
0
    ###############
    # define slave
    current_dqp_iparams = PI_params(kP=0.005, kI=200, limits=(-1, 1))
    # PI gain parameters for the PLL in the current forming inverter
    pll_params = PLLParams(kP=10,
                           kI=200,
                           limits=(-10000, 10000),
                           f_nom=freq_nom)
    # Droop characteristic for the active power Watts/Hz, W.s/Hz

    # Add to dict
    ctrl.append(
        MultiPhaseDQCurrentController(current_dqp_iparams,
                                      pll_params,
                                      delta_t,
                                      i_lim,
                                      droop_param_slave,
                                      qdroop_param_slave,
                                      name='slave'))

    #####################################
    # Definition of the optimization agent
    # The agent is using the SafeOpt algorithm by F. Berkenkamp (https://arxiv.org/abs/1509.01066) in this example
    # Arguments described above
    # History is used to store results
    agent = SafeOptAgent(mutable_params,
                         abort_reward,
                         j_min,
                         kernel,
                         dict(bounds=bounds,
                              noise_var=noise_var,