InnerControl

CurrentModeControl

PowerSystems.CurrentModeControlType
mutable struct CurrentModeControl <: InnerControl
    kpc::Float64
    kic::Float64
    kffv::Float64
    ext::Dict{String, Any}
    states::Vector{Symbol}
    n_states::Int
end

Parameters of an inner loop proportional integral (PI) current control based on "Reduced-order Structure-preserving Model for Parallel-connected Three-phase Grid-tied Inverters."

Arguments

  • kpc::Float64: Current controller proportional gain, validation range: (0, nothing)
  • kic::Float64: Current controller integral gain, validation range: (0, nothing)
  • kffv::Float64: Gain to enable feed-forward gain of voltage, validation range: (0, nothing)
  • ext::Dict{String, Any}: (default: Dict{String, Any}()) An extra dictionary for users to add metadata that are not used in simulation, such as latitude and longitude.
  • states::Vector{Symbol}: (Do not modify.) The states of the CurrentModeControl model are:
γd_ic: d-axis integrator state of the PI current controller,
γq_ic: q-axis integrator state of the PI current controller
  • n_states::Int: (Do not modify.) CurrentControl has 2 states
source

RECurrentControlB

PowerSystems.RECurrentControlBType
mutable struct RECurrentControlB <: InnerControl
    Q_Flag::Int
    PQ_Flag::Int
    Vdip_lim::MinMax
    T_rv::Float64
    dbd_pnts::Tuple{Float64, Float64}
    K_qv::Float64
    Iqinj_lim::MinMax
    V_ref0::Float64
    K_vp::Float64
    K_vi::Float64
    T_iq::Float64
    I_max::Float64
    ext::Dict{String, Any}
    states::Vector{Symbol}
    n_states::Int
end

Parameters of the Inner Control part of the REECB model in PSS/E

Arguments

  • Q_Flag::Int: Q Flag used for I_qinj, validation range: (0, 1)
  • PQ_Flag::Int: PQ Flag used for the Current Limit Logic, validation range: (0, 1)
  • Vdip_lim::MinMax: Limits for Voltage Dip Logic (Vdip, Vup)
  • T_rv::Float64: Voltage Filter Time Constant, validation range: (0, nothing)
  • dbd_pnts::Tuple{Float64, Float64}: Voltage error deadband thresholds (dbd1, dbd2)
  • K_qv::Float64: Reactive current injection gain during over and undervoltage conditions, validation range: (0, nothing)
  • Iqinj_lim::MinMax: Limits for Iqinj (I_qh1, I_ql1)
  • V_ref0::Float64: User defined reference. If 0, PowerSimulationsDynamics.jl initializes to initial terminal voltage, validation range: (0, nothing)
  • K_vp::Float64: Voltage regulator proportional gain (used when QFlag = 1), validation range: (0, nothing)
  • K_vi::Float64: Voltage regulator integral gain (used when QFlag = 1), validation range: (0, nothing)
  • T_iq::Float64: Time constant for low-pass filter for state q_V when QFlag = 0, validation range: (0, nothing)
  • I_max::Float64: Maximum limit on total converter current, validation range: (0, nothing)
  • ext::Dict{String, Any}: (default: Dict{String, Any}()) An extra dictionary for users to add metadata that are not used in simulation, such as latitude and longitude.
  • states::Vector{Symbol}: (Do not modify.) The states of the RECurrentControlB depends on the Flags
  • n_states::Int: (Do not modify.) The states of the RECurrentControlB depends on the Flags
source

VoltageModeControl

PowerSystems.VoltageModeControlType
mutable struct VoltageModeControl <: InnerControl
    kpv::Float64
    kiv::Float64
    kffv::Float64
    rv::Float64
    lv::Float64
    kpc::Float64
    kic::Float64
    kffi::Float64
    ωad::Float64
    kad::Float64
    ext::Dict{String, Any}
    states::Vector{Symbol}
    n_states::Int
end

Parameters of an inner loop current control PID using virtual impedance based on "A Virtual Synchronous Machine implementation for distributed control of power converters in SmartGrids."

Arguments

  • kpv::Float64: voltage controller proportional gain, validation range: (0, nothing)
  • kiv::Float64: voltage controller integral gain, validation range: (0, nothing)
  • kffv::Float64: Binary variable to enable feed-forward gain of voltage, validation range: (0, nothing)
  • rv::Float64: virtual resistance, validation range: (0, nothing)
  • lv::Float64: virtual inductance, validation range: (0, nothing)
  • kpc::Float64: current controller proportional gain, validation range: (0, nothing)
  • kic::Float64: current controller integral gain, validation range: (0, nothing)
  • kffi::Float64: Binary variable to enable feed-forward gain of current, validation range: (0, nothing)
  • ωad::Float64: active damping filter cutoff frequency (rad/sec), validation range: (0, nothing)
  • kad::Float64: active damping gain, validation range: (0, nothing)
  • ext::Dict{String, Any}: (default: Dict{String, Any}()) An extra dictionary for users to add metadata that are not used in simulation, such as latitude and longitude.
  • states::Vector{Symbol}: (Do not modify.) The states of the VoltageModeControl model are:
ξd_ic: d-axis integrator state of the PI voltage controller,
ξq_ic: q-axis integrator state of the PI voltage controller,
γd_ic: d-axis integrator state of the PI current controller,
γq_ic: q-axis integrator state of the PI current controller,
ϕd_ic: d-axis low-pass filter of active damping,
ϕq_ic: q-axis low-pass filter of active damping
  • n_states::Int: (Do not modify.) VoltageModeControl has 6 states
source