InnerControl
CurrentModeControl
PowerSystems.CurrentModeControl — Typemutable struct CurrentModeControl <: InnerControl
kpc::Float64
kic::Float64
kffv::Float64
ext::Dict{String, Any}
states::Vector{Symbol}
n_states::Int
endParameters of an inner loop PI current control using based on Purba, Dhople, Jafarpour, Bullo and Johnson. "Reduced-order Structure-preserving Model for Parallel-connected Three-phase Grid-tied Inverters." 2017 IEEE 18th Workshop on Control and Modeling for Power Electronics (COMPEL): 1-7.
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}states::Vector{Symbol}: 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 controllern_states::Int: CurrentControl has 2 states
PowerSystems.get_ext — Methodget_ext(value::CurrentModeControl) -> Dict{String, Any}
Get CurrentModeControl ext.
PowerSystems.get_kffv — Methodget_kffv(value::CurrentModeControl) -> Float64
Get CurrentModeControl kffv.
PowerSystems.get_kic — Methodget_kic(value::CurrentModeControl) -> Float64
Get CurrentModeControl kic.
PowerSystems.get_kpc — Methodget_kpc(value::CurrentModeControl) -> Float64
Get CurrentModeControl kpc.
PowerSystems.get_n_states — Methodget_n_states(value::CurrentModeControl) -> Int64
Get CurrentModeControl n_states.
PowerSystems.get_states — Methodget_states(value::CurrentModeControl) -> Vector{Symbol}
Get CurrentModeControl states.
PowerSystems.set_ext! — Methodset_ext!(value::CurrentModeControl, val) -> Any
Set CurrentModeControl ext.
PowerSystems.set_kffv! — Methodset_kffv!(value::CurrentModeControl, val) -> Any
Set CurrentModeControl kffv.
PowerSystems.set_kic! — Methodset_kic!(value::CurrentModeControl, val) -> Any
Set CurrentModeControl kic.
PowerSystems.set_kpc! — Methodset_kpc!(value::CurrentModeControl, val) -> Any
Set CurrentModeControl kpc.
RECurrentControlB
PowerSystems.RECurrentControlB — Typemutable struct RECurrentControlB <: InnerControl
Q_Flag::Int
PQ_Flag::Int
Vdip_lim::NamedTuple{(:min, :max), Tuple{Float64, Float64}}
T_rv::Float64
dbd_pnts::Tuple{Float64, Float64}
K_qv::Float64
Iqinj_lim::NamedTuple{(:min, :max), Tuple{Float64, Float64}}
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
endParameters 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::NamedTuple{(:min, :max), Tuple{Float64, Float64}}: 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::NamedTuple{(:min, :max), Tuple{Float64, Float64}}: Limits for Iqinj(I_qh1, I_ql1)V_ref0::Float64: User defined reference. If 0, PSID 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}states::Vector{Symbol}: The states of the RECurrentControlB depends on the Flagsn_states::Int: The states of the RECurrentControlB depends on the Flags
PowerSystems.get_I_max — Methodget_I_max(value::RECurrentControlB) -> Float64
Get RECurrentControlB I_max.
PowerSystems.get_Iqinj_lim — Methodget_Iqinj_lim(value::RECurrentControlB) -> NamedTuple{(:min, :max), Tuple{Float64, Float64}}
Get RECurrentControlB Iqinj_lim.
PowerSystems.get_K_qv — Methodget_K_qv(value::RECurrentControlB) -> Float64
Get RECurrentControlB K_qv.
PowerSystems.get_K_vi — Methodget_K_vi(value::RECurrentControlB) -> Float64
Get RECurrentControlB K_vi.
PowerSystems.get_K_vp — Methodget_K_vp(value::RECurrentControlB) -> Float64
Get RECurrentControlB K_vp.
PowerSystems.get_PQ_Flag — Methodget_PQ_Flag(value::RECurrentControlB) -> Int64
Get RECurrentControlB PQ_Flag.
PowerSystems.get_Q_Flag — Methodget_Q_Flag(value::RECurrentControlB) -> Int64
Get RECurrentControlB Q_Flag.
PowerSystems.get_T_iq — Methodget_T_iq(value::RECurrentControlB) -> Float64
Get RECurrentControlB T_iq.
PowerSystems.get_T_rv — Methodget_T_rv(value::RECurrentControlB) -> Float64
Get RECurrentControlB T_rv.
PowerSystems.get_V_ref0 — Methodget_V_ref0(value::RECurrentControlB) -> Float64
Get RECurrentControlB V_ref0.
PowerSystems.get_Vdip_lim — Methodget_Vdip_lim(value::RECurrentControlB) -> NamedTuple{(:min, :max), Tuple{Float64, Float64}}
Get RECurrentControlB Vdip_lim.
PowerSystems.get_dbd_pnts — Methodget_dbd_pnts(value::RECurrentControlB) -> Tuple{Float64, Float64}
Get RECurrentControlB dbd_pnts.
PowerSystems.get_ext — Methodget_ext(value::RECurrentControlB) -> Dict{String, Any}
Get RECurrentControlB ext.
PowerSystems.get_n_states — Methodget_n_states(value::RECurrentControlB) -> Int64
Get RECurrentControlB n_states.
PowerSystems.get_states — Methodget_states(value::RECurrentControlB) -> Vector{Symbol}
Get RECurrentControlB states.
PowerSystems.set_I_max! — Methodset_I_max!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB I_max.
PowerSystems.set_Iqinj_lim! — Methodset_Iqinj_lim!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB Iqinj_lim.
PowerSystems.set_K_qv! — Methodset_K_qv!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB K_qv.
PowerSystems.set_K_vi! — Methodset_K_vi!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB K_vi.
PowerSystems.set_K_vp! — Methodset_K_vp!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB K_vp.
PowerSystems.set_PQ_Flag! — Methodset_PQ_Flag!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB PQ_Flag.
PowerSystems.set_Q_Flag! — Methodset_Q_Flag!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB Q_Flag.
PowerSystems.set_T_iq! — Methodset_T_iq!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB T_iq.
PowerSystems.set_T_rv! — Methodset_T_rv!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB T_rv.
PowerSystems.set_V_ref0! — Methodset_V_ref0!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB V_ref0.
PowerSystems.set_Vdip_lim! — Methodset_Vdip_lim!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB Vdip_lim.
PowerSystems.set_dbd_pnts! — Methodset_dbd_pnts!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB dbd_pnts.
PowerSystems.set_ext! — Methodset_ext!(value::RECurrentControlB, val) -> Any
Set RECurrentControlB ext.
VoltageModeControl
PowerSystems.VoltageModeControl — Typemutable 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
endParameters of an inner loop current control PID using virtual impedance based on D'Arco, Suul and Fosso. "A Virtual Synchronous Machine implementation for distributed control of power converters in SmartGrids." Electric Power Systems Research 122 (2015) 180–197.
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}states::Vector{Symbol}: 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 dampingn_states::Int: VoltageModeControl has 6 states
PowerSystems.get_ext — Methodget_ext(value::VoltageModeControl) -> Dict{String, Any}
Get VoltageModeControl ext.
PowerSystems.get_kad — Methodget_kad(value::VoltageModeControl) -> Float64
Get VoltageModeControl kad.
PowerSystems.get_kffi — Methodget_kffi(value::VoltageModeControl) -> Float64
Get VoltageModeControl kffi.
PowerSystems.get_kffv — Methodget_kffv(value::VoltageModeControl) -> Float64
Get VoltageModeControl kffv.
PowerSystems.get_kic — Methodget_kic(value::VoltageModeControl) -> Float64
Get VoltageModeControl kic.
PowerSystems.get_kiv — Methodget_kiv(value::VoltageModeControl) -> Float64
Get VoltageModeControl kiv.
PowerSystems.get_kpc — Methodget_kpc(value::VoltageModeControl) -> Float64
Get VoltageModeControl kpc.
PowerSystems.get_kpv — Methodget_kpv(value::VoltageModeControl) -> Float64
Get VoltageModeControl kpv.
PowerSystems.get_lv — Methodget_lv(value::VoltageModeControl) -> Float64
Get VoltageModeControl lv.
PowerSystems.get_n_states — Methodget_n_states(value::VoltageModeControl) -> Int64
Get VoltageModeControl n_states.
PowerSystems.get_rv — Methodget_rv(value::VoltageModeControl) -> Float64
Get VoltageModeControl rv.
PowerSystems.get_states — Methodget_states(value::VoltageModeControl) -> Vector{Symbol}
Get VoltageModeControl states.
PowerSystems.get_ωad — Methodget_ωad(value::VoltageModeControl) -> Float64
Get VoltageModeControl ωad.
PowerSystems.set_ext! — Methodset_ext!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl ext.
PowerSystems.set_kad! — Methodset_kad!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl kad.
PowerSystems.set_kffi! — Methodset_kffi!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl kffi.
PowerSystems.set_kffv! — Methodset_kffv!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl kffv.
PowerSystems.set_kic! — Methodset_kic!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl kic.
PowerSystems.set_kiv! — Methodset_kiv!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl kiv.
PowerSystems.set_kpc! — Methodset_kpc!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl kpc.
PowerSystems.set_kpv! — Methodset_kpv!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl kpv.
PowerSystems.set_lv! — Methodset_lv!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl lv.
PowerSystems.set_rv! — Methodset_rv!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl rv.
PowerSystems.set_ωad! — Methodset_ωad!(value::VoltageModeControl, val) -> Any
Set VoltageModeControl ωad.