From 6e428a151a08b1de0da4f874daf954c0d314472b Mon Sep 17 00:00:00 2001 From: Jose Daniel Lara Date: Mon, 8 Jul 2024 16:34:03 -0600 Subject: [PATCH] update to psy4 (#383) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * correct get_rate to get_rating (#381) * bump dependencies * Hr/add limiters (#376) * Add current limiters to inner_conrol_models * Fix limiter integration mistakes * Add saturation limiting logic * Add hybrid limiter control logic * Correct sign error hybrid limiter * Remove print * Change PowerSystems version * modify inner control gain * debug * fix mag limiter * change placement of kiv in hyblim * debug load * revert debug --------- Co-authored-by: Rodrigo Henríquez-Auba * bump project toml * formatter * reuse multiple dispatch * change exponential names * update json exponential coefficients * revert IS check * change Union to real types * try catch for test 10 * add sim type * update printing * change to logs * update printing * add directly the LinearMatrix * revert try and catch --------- Co-authored-by: HaleyRoss <125164295+HaleyRoss@users.noreply.github.com> Co-authored-by: Rodrigo Henríquez-Auba --- Project.toml | 10 +- docs/src/tutorials/tutorial_activeload.md | 4 +- src/PowerSimulationsDynamics.jl | 1 + src/base/branch_wrapper.jl | 2 +- src/base/caches.jl | 2 +- src/base/device_wrapper.jl | 9 +- .../inverter_components/init_DCside.jl | 2 +- .../inverter_components/init_converter.jl | 6 +- .../inverter_components/init_filter.jl | 4 +- .../init_frequency_estimator.jl | 6 +- .../inverter_components/init_inner.jl | 6 +- .../inverter_components/init_outer.jl | 10 +- src/models/device.jl | 6 +- src/models/inverter_models/DCside_models.jl | 2 +- .../inverter_models/converter_models.jl | 6 +- src/models/inverter_models/filter_models.jl | 4 +- .../frequency_estimator_models.jl | 6 +- .../inverter_models/inner_control_models.jl | 162 +++++++++++++++++- .../inverter_models/outer_control_models.jl | 22 +-- .../output_current_limiter_models.jl | 82 +++++++++ src/post_processing/post_proc_loads.jl | 4 +- .../9BusSystem_validation_descriptors.json | 2 +- ...CC_240_dynamic_validation_descriptors.json | 2 +- test/test_case34_exp_load.jl | 4 +- test/test_case56_powerload.jl | 4 +- 25 files changed, 301 insertions(+), 67 deletions(-) create mode 100644 src/models/inverter_models/output_current_limiter_models.jl diff --git a/Project.toml b/Project.toml index 70c453813..8ae07ff87 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "PowerSimulationsDynamics" uuid = "398b2ede-47ed-4edc-b52e-69e4a48b4336" authors = ["Jose Daniel Lara, Rodrigo Henriquez"] -version = "0.14.2" +version = "0.15.0" [deps] DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" @@ -28,11 +28,11 @@ DataStructures = "~0.18" DocStringExtensions = "~0.9" FastClosures = "^0.3" ForwardDiff = "~v0.10" -InfrastructureSystems = "^1.21" +InfrastructureSystems = "2" NLsolve = "4" -PowerSystems = "^3.1.2" -PowerFlows = "^0.6" -PowerNetworkMatrices = "^0.10" +PowerSystems = "4" +PowerFlows = "^0.7" +PowerNetworkMatrices = "^0.11" PrettyTables = "1, 2" SciMLBase = "2" TimerOutputs = "~0.5" diff --git a/docs/src/tutorials/tutorial_activeload.md b/docs/src/tutorials/tutorial_activeload.md index e2c13ea50..f479bd04d 100644 --- a/docs/src/tutorials/tutorial_activeload.md +++ b/docs/src/tutorials/tutorial_activeload.md @@ -72,8 +72,8 @@ Since the load is an exponential load model we can change the exponent coefficie ```@repl tutorial_load # Update load coefficients to 2.0 load = first(get_components(PSY.ExponentialLoad, sys)); -PSY.set_active_power_coefficient!(load, 2.0); -PSY.set_reactive_power_coefficient!(load, 2.0); +PSY.set_α!(load, 2.0); +PSY.set_β!(load, 2.0); ``` We then re-run the small-signal analysis: diff --git a/src/PowerSimulationsDynamics.jl b/src/PowerSimulationsDynamics.jl index b87c0b8b6..690fce642 100644 --- a/src/PowerSimulationsDynamics.jl +++ b/src/PowerSimulationsDynamics.jl @@ -141,6 +141,7 @@ include("models/inverter_models/frequency_estimator_models.jl") include("models/inverter_models/outer_control_models.jl") include("models/inverter_models/inner_control_models.jl") include("models/inverter_models/converter_models.jl") +include("models/inverter_models/output_current_limiter_models.jl") #Injection Models include("models/load_models.jl") diff --git a/src/base/branch_wrapper.jl b/src/base/branch_wrapper.jl index 9b96d733f..afbe6691b 100644 --- a/src/base/branch_wrapper.jl +++ b/src/base/branch_wrapper.jl @@ -55,7 +55,7 @@ PSY.get_arc(wrapper::BranchWrapper) = PSY.get_arc(wrapper.branch) PSY.get_r(wrapper::BranchWrapper) = PSY.get_r(wrapper.branch) PSY.get_x(wrapper::BranchWrapper) = PSY.get_x(wrapper.branch) PSY.get_b(wrapper::BranchWrapper) = PSY.get_b(wrapper.branch) -PSY.get_rate(wrapper::BranchWrapper) = PSY.get_rate(wrapper.branch) +PSY.get_rating(wrapper::BranchWrapper) = PSY.get_rating(wrapper.branch) PSY.get_angle_limits(wrapper::BranchWrapper) = PSY.get_angle_limits(wrapper.branch) PSY.get_ext(wrapper::BranchWrapper) = PSY.get_ext(wrapper.branch) PSY.get_states(wrapper::BranchWrapper) = PSY.get_states(wrapper.branch) diff --git a/src/base/caches.jl b/src/base/caches.jl index 5d55ed8e1..81f6df6d8 100644 --- a/src/base/caches.jl +++ b/src/base/caches.jl @@ -109,5 +109,5 @@ get_current_balance(sc::SimCache, ::Type{Float64}) = sc.current_balance get_inner_vars(sc::SimCache, ::Type{Float64}) = sc.inner_vars get_global_vars(sc::SimCache, ::Type{Float64}) = sc.global_vars -get_ω_sys(cache::Cache, T::Type{<:Union{Float64, ForwardDiff.Dual}}) = +get_ω_sys(cache::Cache, T::Type{<:ACCEPTED_REAL_TYPES}) = get_global_vars(cache, T)[GLOBAL_VAR_SYS_FREQ_INDEX] diff --git a/src/base/device_wrapper.jl b/src/base/device_wrapper.jl index b504b10e7..58b3f5d1c 100644 --- a/src/base/device_wrapper.jl +++ b/src/base/device_wrapper.jl @@ -102,6 +102,9 @@ function state_port_mappings( component_state_mapping = Dict{Int, Vector{Int}}() input_port_mapping = Dict{Int, Vector{Int}}() for c in PSY.get_dynamic_components(dynamic_device) + if c isa PSY.OutputCurrentLimiter + continue + end ix = index(typeof(c)) component_state_mapping[ix] = _index_local_states(c, device_states) input_port_mapping[ix] = _index_port_mapping!(c, device_states) @@ -331,6 +334,8 @@ PSY.get_freq_estimator(wrapper::DynamicWrapper{T}) where {T <: PSY.DynamicInvert wrapper.device.freq_estimator PSY.get_filter(wrapper::DynamicWrapper{T}) where {T <: PSY.DynamicInverter} = wrapper.device.filter +PSY.get_limiter(wrapper::DynamicWrapper{T}) where {T <: PSY.DynamicInverter} = + PSY.get_limiter(wrapper.device) # PSY overloads of specific Dynamic Injectors @@ -487,9 +492,9 @@ function StaticLoadWrapper( dict_names[PSY.get_name(ld)] = ix exp_params[ix] = ExpLoadParams( PSY.get_active_power(ld) * base_power_conversion, - PSY.get_active_power_coefficient(ld), + PSY.get_α(ld), PSY.get_reactive_power(ld) * base_power_conversion, - PSY.get_reactive_power_coefficient(ld), + PSY.get_β(ld), ) end end diff --git a/src/initialization/inverter_components/init_DCside.jl b/src/initialization/inverter_components/init_DCside.jl index 95fe06f56..a148e3c90 100644 --- a/src/initialization/inverter_components/init_DCside.jl +++ b/src/initialization/inverter_components/init_DCside.jl @@ -11,7 +11,7 @@ function initialize_DCside!( IC <: PSY.InnerControl, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Update inner_vars diff --git a/src/initialization/inverter_components/init_converter.jl b/src/initialization/inverter_components/init_converter.jl index e4538b3a6..1667a38b2 100644 --- a/src/initialization/inverter_components/init_converter.jl +++ b/src/initialization/inverter_components/init_converter.jl @@ -11,7 +11,7 @@ function initialize_converter!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } end function initialize_converter!( @@ -27,7 +27,7 @@ function initialize_converter!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Get inner vars V_R = inner_vars[Vr_cnv_var] @@ -82,7 +82,7 @@ function initialize_converter!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Get inner vars Vr_filter = inner_vars[Vr_filter_var] diff --git a/src/initialization/inverter_components/init_filter.jl b/src/initialization/inverter_components/init_filter.jl index c59e391c7..77b7be634 100644 --- a/src/initialization/inverter_components/init_filter.jl +++ b/src/initialization/inverter_components/init_filter.jl @@ -9,7 +9,7 @@ function initialize_filter!( IC <: PSY.InnerControl, DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #PowerFlow Data P0 = PSY.get_active_power(static) @@ -101,7 +101,7 @@ function initialize_filter!( IC <: PSY.InnerControl, DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #PowerFlow Data P0 = PSY.get_active_power(static) diff --git a/src/initialization/inverter_components/init_frequency_estimator.jl b/src/initialization/inverter_components/init_frequency_estimator.jl index 3901e7905..b48347556 100644 --- a/src/initialization/inverter_components/init_frequency_estimator.jl +++ b/src/initialization/inverter_components/init_frequency_estimator.jl @@ -9,7 +9,7 @@ function initialize_frequency_estimator!( IC <: PSY.InnerControl, DC <: PSY.DCSource, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } Vr_filter = inner_vars[Vr_filter_var] Vi_filter = inner_vars[Vi_filter_var] @@ -76,7 +76,7 @@ function initialize_frequency_estimator!( IC <: PSY.InnerControl, DC <: PSY.DCSource, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } Vr_filter = inner_vars[Vr_filter_var] Vi_filter = inner_vars[Vi_filter_var] @@ -139,7 +139,7 @@ function initialize_frequency_estimator!( IC <: PSY.InnerControl, DC <: PSY.DCSource, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Get parameters pll_control = PSY.get_freq_estimator(dynamic_device) diff --git a/src/initialization/inverter_components/init_inner.jl b/src/initialization/inverter_components/init_inner.jl index 5a4184a6e..5b64741d8 100644 --- a/src/initialization/inverter_components/init_inner.jl +++ b/src/initialization/inverter_components/init_inner.jl @@ -11,7 +11,7 @@ function initialize_inner!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -156,7 +156,7 @@ function initialize_inner!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -242,7 +242,7 @@ function initialize_inner!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } # Obtain inner variables for component Vr_filter = inner_vars[Vr_filter_var] diff --git a/src/initialization/inverter_components/init_outer.jl b/src/initialization/inverter_components/init_outer.jl index 33f2163e3..1c5d49d0e 100644 --- a/src/initialization/inverter_components/init_outer.jl +++ b/src/initialization/inverter_components/init_outer.jl @@ -19,7 +19,7 @@ function initialize_outer!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -86,7 +86,7 @@ function initialize_outer!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -152,7 +152,7 @@ function initialize_outer!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -217,7 +217,7 @@ function initialize_outer!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -301,7 +301,7 @@ function initialize_outer!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } # Read inner vars Vr_filter = inner_vars[Vr_filter_var] diff --git a/src/models/device.jl b/src/models/device.jl index bc64c60c0..5e5a1c078 100644 --- a/src/models/device.jl +++ b/src/models/device.jl @@ -464,7 +464,7 @@ function _update_inner_vars!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } return end @@ -490,7 +490,7 @@ function _update_inner_vars!( IC <: PSY.InnerControl, DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } V_R = inner_vars[Vr_inv_var] V_I = inner_vars[Vi_inv_var] @@ -611,7 +611,7 @@ function _update_inner_vars!( IC <: PSY.InnerControl, DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } filter_ix = get_local_state_ix(dynamic_device, PSY.LCLFilter) filter_states = @view device_states[filter_ix] diff --git a/src/models/inverter_models/DCside_models.jl b/src/models/inverter_models/DCside_models.jl index aaf60125c..2d73aa008 100644 --- a/src/models/inverter_models/DCside_models.jl +++ b/src/models/inverter_models/DCside_models.jl @@ -22,7 +22,7 @@ function mdl_DCside_ode!( IC <: PSY.InnerControl, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Update inner_vars diff --git a/src/models/inverter_models/converter_models.jl b/src/models/inverter_models/converter_models.jl index ecde91846..c45831c94 100644 --- a/src/models/inverter_models/converter_models.jl +++ b/src/models/inverter_models/converter_models.jl @@ -21,7 +21,7 @@ function mdl_converter_ode!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain inner variables for component @@ -61,7 +61,7 @@ function mdl_converter_ode!( IC <: PSY.InnerControl, DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain inner variables for component V_R = inner_vars[Vr_filter_var] @@ -196,7 +196,7 @@ function mdl_converter_ode!( IC <: PSY.InnerControl, DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain inner variables for component V_R = inner_vars[Vr_filter_var] diff --git a/src/models/inverter_models/filter_models.jl b/src/models/inverter_models/filter_models.jl index 93f3f5593..1d034c480 100644 --- a/src/models/inverter_models/filter_models.jl +++ b/src/models/inverter_models/filter_models.jl @@ -48,7 +48,7 @@ function mdl_filter_ode!( IC <: PSY.InnerControl, DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #external_ix = get_input_port_ix(dynamic_device, PSY.LCLFilter) @@ -132,7 +132,7 @@ function mdl_filter_ode!( IC <: PSY.InnerControl, DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain inner variables for component basepower = PSY.get_base_power(dynamic_device) diff --git a/src/models/inverter_models/frequency_estimator_models.jl b/src/models/inverter_models/frequency_estimator_models.jl index d08995730..358ef813e 100644 --- a/src/models/inverter_models/frequency_estimator_models.jl +++ b/src/models/inverter_models/frequency_estimator_models.jl @@ -20,7 +20,7 @@ function mdl_freq_estimator_ode!( IC <: PSY.InnerControl, DC <: PSY.DCSource, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -88,7 +88,7 @@ function mdl_freq_estimator_ode!( IC <: PSY.InnerControl, DC <: PSY.DCSource, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -151,7 +151,7 @@ function mdl_freq_estimator_ode!( IC <: PSY.InnerControl, DC <: PSY.DCSource, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Get parameters diff --git a/src/models/inverter_models/inner_control_models.jl b/src/models/inverter_models/inner_control_models.jl index b9583cbf8..92c83502f 100644 --- a/src/models/inverter_models/inner_control_models.jl +++ b/src/models/inverter_models/inner_control_models.jl @@ -45,7 +45,7 @@ function _mdl_ode_RE_inner_controller_B!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain inner variables for component V_t = sqrt(inner_vars[Vr_filter_var]^2 + inner_vars[Vi_filter_var]^2) @@ -102,7 +102,7 @@ function _mdl_ode_RE_inner_controller_B!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain inner variables for component V_t = sqrt(inner_vars[Vr_filter_var]^2 + inner_vars[Vi_filter_var]^2) @@ -155,7 +155,15 @@ function mdl_inner_ode!( output_ode::AbstractArray{<:ACCEPTED_REAL_TYPES}, inner_vars::AbstractArray{<:ACCEPTED_REAL_TYPES}, dynamic_device::DynamicWrapper{ - PSY.DynamicInverter{C, O, PSY.VoltageModeControl, DC, P, F, L}, + PSY.DynamicInverter{ + C, + O, + PSY.VoltageModeControl, + DC, + P, + F, + L, + }, }, h, t, @@ -165,7 +173,7 @@ function mdl_inner_ode!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -235,10 +243,148 @@ function mdl_inner_ode!( Id_cnv_ref = Id_pi - cf * ω_oc * V_dq_filter[q] + kffi * I_dq_filter[d] Iq_cnv_ref = Iq_pi + cf * ω_oc * V_dq_filter[d] + kffi * I_dq_filter[q] + #Get limiter and apply output current limiting + limiter = PSY.get_limiter(dynamic_device) + Id_cnv_ref2, Iq_cnv_ref2 = limit_output_current(limiter, Id_cnv_ref, Iq_cnv_ref) + ## SRF Current Control ## #Current Control PI Blocks - Vd_pi, dγd_dt = pi_block(Id_cnv_ref - I_dq_cnv[d], γ_d, kpc, kic) - Vq_pi, dγq_dt = pi_block(Iq_cnv_ref - I_dq_cnv[q], γ_q, kpc, kic) + Vd_pi, dγd_dt = pi_block(Id_cnv_ref2 - I_dq_cnv[d], γ_d, kpc, kic) + Vq_pi, dγq_dt = pi_block(Iq_cnv_ref2 - I_dq_cnv[q], γ_q, kpc, kic) + #PI Integrator (internal state) + output_ode[local_ix[3]] = dγd_dt + output_ode[local_ix[4]] = dγq_dt + + #Compensate References for Converter Output Voltage + Vd_cnv_ref = + Vd_pi - ω_oc * lf * I_dq_cnv[q] + kffv * V_dq_filter[d] - + kad * (V_dq_filter[d] - ϕ_d) + Vq_cnv_ref = + Vq_pi + ω_oc * lf * I_dq_cnv[d] + kffv * V_dq_filter[q] - + kad * (V_dq_filter[q] - ϕ_q) + + #Active Damping LPF (internal state) + output_ode[local_ix[5]] = low_pass(V_dq_filter[d], ϕ_d, 1.0, 1.0 / ωad)[2] + output_ode[local_ix[6]] = low_pass(V_dq_filter[q], ϕ_q, 1.0, 1.0 / ωad)[2] + + #Update inner_vars + #Modulation Commands to Converter + inner_vars[md_var] = Vd_cnv_ref / Vdc + inner_vars[mq_var] = Vq_cnv_ref / Vdc + return +end + +function mdl_inner_ode!( + device_states::AbstractArray{<:ACCEPTED_REAL_TYPES}, + output_ode::AbstractArray{<:ACCEPTED_REAL_TYPES}, + inner_vars::AbstractArray{<:ACCEPTED_REAL_TYPES}, + dynamic_device::DynamicWrapper{ + PSY.DynamicInverter{ + C, + O, + PSY.VoltageModeControl, + DC, + P, + F, + L, + }, + }, + h, + t, +) where { + C <: PSY.Converter, + O <: PSY.OuterControl, + DC <: PSY.DCSource, + P <: PSY.FrequencyEstimator, + F <: PSY.Filter, + L <: Union{PSY.HybridOutputCurrentLimiter, PSY.SaturationOutputCurrentLimiter}, +} + + #Obtain external states inputs for component + external_ix = get_input_port_ix(dynamic_device, PSY.VoltageModeControl) + Ir_filter = device_states[external_ix[1]] + Ii_filter = device_states[external_ix[2]] + Ir_cnv = device_states[external_ix[3]] + Ii_cnv = device_states[external_ix[4]] + Vr_filter = device_states[external_ix[5]] + Vi_filter = device_states[external_ix[6]] + + #Obtain inner variables for component + ω_oc = inner_vars[ω_oc_var] + θ_oc = inner_vars[θ_oc_var] + v_refr = inner_vars[V_oc_var] + Vdc = inner_vars[Vdc_var] + + #Get Voltage Controller parameters + inner_control = PSY.get_inner_control(dynamic_device) + filter = PSY.get_filter(dynamic_device) + kpv = PSY.get_kpv(inner_control) + kiv = PSY.get_kiv(inner_control) + kffi = PSY.get_kffi(inner_control) + cf = PSY.get_cf(filter) + rv = PSY.get_rv(inner_control) + lv = PSY.get_lv(inner_control) + + #Get Current Controller parameters + kpc = PSY.get_kpc(inner_control) + kic = PSY.get_kic(inner_control) + kffv = PSY.get_kffv(inner_control) + lf = PSY.get_lf(filter) + ωad = PSY.get_ωad(inner_control) + kad = PSY.get_kad(inner_control) + + #Obtain indices for component w/r to device + local_ix = get_local_state_ix(dynamic_device, PSY.VoltageModeControl) + + #Define internal states for frequency estimator + internal_states = @view device_states[local_ix] + ξ_d = internal_states[1] + ξ_q = internal_states[2] + γ_d = internal_states[3] + γ_q = internal_states[4] + ϕ_d = internal_states[5] + ϕ_q = internal_states[6] + + #Transformations to dq frame + I_dq_filter = ri_dq(θ_oc + pi / 2) * [Ir_filter; Ii_filter] + I_dq_cnv = ri_dq(θ_oc + pi / 2) * [Ir_cnv; Ii_cnv] + V_dq_filter = ri_dq(θ_oc + pi / 2) * [Vr_filter; Vi_filter] + + ### Compute 6 states ODEs (D'Arco EPSR122 Model) ### + ## SRF Voltage Control w/ Virtual Impedance ## + #Virtual Impedance + Vd_filter_ref = (v_refr - rv * I_dq_filter[d] + ω_oc * lv * I_dq_filter[q]) + Vq_filter_ref = (-rv * I_dq_filter[q] - ω_oc * lv * I_dq_filter[d]) + + #Voltage Control PI Blocks + Prop_d = kpv * (Vd_filter_ref - V_dq_filter[d]) + Prop_q = kpv * (Vq_filter_ref - V_dq_filter[q]) + Integral_d = ξ_d + Integral_q = ξ_q + + #Compensate output Control Signal - Links to SRF Current Controller + Id_cnv_ref = + Prop_d + (kiv * Integral_d) - cf * ω_oc * V_dq_filter[q] + kffi * I_dq_filter[d] + Iq_cnv_ref = + Prop_q + (kiv * Integral_q) + cf * ω_oc * V_dq_filter[d] + kffi * I_dq_filter[q] + + #Get limiter and apply output current limiting + limiter = PSY.get_limiter(dynamic_device) + Id_cnv_ref2, Iq_cnv_ref2, Del_Vv_d, Del_Vv_q = + limit_output_current(limiter, Id_cnv_ref, Iq_cnv_ref, ω_oc) + + # Limiter anti- windup + dξd_dt = (Vd_filter_ref - V_dq_filter[d]) - Del_Vv_d + dξq_dt = (Vq_filter_ref - V_dq_filter[q]) - Del_Vv_q + + #PI Integrator (internal state) + output_ode[local_ix[1]] = dξd_dt + output_ode[local_ix[2]] = dξq_dt + + ## SRF Current Control ## + #Current Control PI Blocks + Vd_pi, dγd_dt = pi_block(Id_cnv_ref2 - I_dq_cnv[d], γ_d, kpc, kic) + Vq_pi, dγq_dt = pi_block(Iq_cnv_ref2 - I_dq_cnv[q], γ_q, kpc, kic) #PI Integrator (internal state) output_ode[local_ix[3]] = dγd_dt output_ode[local_ix[4]] = dγq_dt @@ -277,7 +423,7 @@ function mdl_inner_ode!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -351,7 +497,7 @@ function mdl_inner_ode!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Get Current Controller parameters inner_control = PSY.get_inner_control(dynamic_device) diff --git a/src/models/inverter_models/outer_control_models.jl b/src/models/inverter_models/outer_control_models.jl index f7ad6d8e8..316d97ba7 100644 --- a/src/models/inverter_models/outer_control_models.jl +++ b/src/models/inverter_models/outer_control_models.jl @@ -42,7 +42,7 @@ function _mdl_ode_RE_active_controller_AB!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external parameters @@ -134,7 +134,7 @@ function _mdl_ode_RE_active_controller_AB!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external parameters @@ -194,7 +194,7 @@ function _mdl_ode_RE_reactive_controller_AB!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external parameters @@ -278,7 +278,7 @@ function _mdl_ode_RE_reactive_controller_AB!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external parameters q_ref = get_Q_ref(dynamic_device) @@ -355,7 +355,7 @@ function _mdl_ode_RE_reactive_controller_AB!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external parameters V_ref = get_V_ref(dynamic_device) @@ -463,7 +463,7 @@ function _mdl_ode_RE_reactive_controller_AB!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external parameters V_ref = get_V_ref(dynamic_device) @@ -556,7 +556,7 @@ function mdl_outer_ode!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -648,7 +648,7 @@ function mdl_outer_ode!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -742,7 +742,7 @@ function mdl_outer_ode!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -838,7 +838,7 @@ function mdl_outer_ode!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component @@ -936,7 +936,7 @@ function mdl_outer_ode!( DC <: PSY.DCSource, P <: PSY.FrequencyEstimator, F <: PSY.Filter, - L <: Union{Nothing, PSY.InverterLimiter}, + L <: Union{Nothing, PSY.OutputCurrentLimiter}, } #Obtain external states inputs for component diff --git a/src/models/inverter_models/output_current_limiter_models.jl b/src/models/inverter_models/output_current_limiter_models.jl new file mode 100644 index 000000000..361ad33ca --- /dev/null +++ b/src/models/inverter_models/output_current_limiter_models.jl @@ -0,0 +1,82 @@ +function limit_output_current( + limiter::Nothing, + Id_cnv_ref::ACCEPTED_REAL_TYPES, + Iq_cnv_ref::ACCEPTED_REAL_TYPES, +) + return Id_cnv_ref, Iq_cnv_ref +end + +function limit_output_current( + limiter::PSY.InstantaneousOutputCurrentLimiter, + Id_cnv_ref::ACCEPTED_REAL_TYPES, + Iq_cnv_ref::ACCEPTED_REAL_TYPES, +) + d_lim = PSY.get_Id_max(limiter) + q_lim = PSY.get_Iq_max(limiter) + Id_cnv_ref2 = clamp(Id_cnv_ref, -d_lim, d_lim) + Iq_cnv_ref2 = clamp(Iq_cnv_ref, -q_lim, q_lim) + return Id_cnv_ref2, Iq_cnv_ref2 +end + +function limit_output_current( + limiter::PSY.MagnitudeOutputCurrentLimiter, + Id_cnv_ref::ACCEPTED_REAL_TYPES, + Iq_cnv_ref::ACCEPTED_REAL_TYPES, +) + limit_value = PSY.get_I_max(limiter) + theta = atan(Iq_cnv_ref, Id_cnv_ref) + if (Id_cnv_ref^2 + Iq_cnv_ref^2)^(1 / 2) > limit_value + Id_cnv_ref2 = limit_value * cos(theta) + Iq_cnv_ref2 = limit_value * sin(theta) + else + Id_cnv_ref2 = Id_cnv_ref + Iq_cnv_ref2 = Iq_cnv_ref + end + return Id_cnv_ref2, Iq_cnv_ref2 +end + +function limit_output_current( + limiter::PSY.SaturationOutputCurrentLimiter, + Id_cnv_ref::ACCEPTED_REAL_TYPES, + Iq_cnv_ref::ACCEPTED_REAL_TYPES, +) + limit_value = PSY.get_I_max(limiter) + gain = PSY.get_kw(limiter) + theta = atan(Iq_cnv_ref, Id_cnv_ref) + if (Id_cnv_ref^2 + Iq_cnv_ref^2)^(1 / 2) > limit_value + Id_cnv_ref2 = limit_value * cos(theta) + Iq_cnv_ref2 = limit_value * sin(theta) + else + Id_cnv_ref2 = Id_cnv_ref + Iq_cnv_ref2 = Iq_cnv_ref + end + Del_Vv_d = gain * (Id_cnv_ref - Id_cnv_ref2) + Del_Vv_q = gain * (Iq_cnv_ref - Iq_cnv_ref2) + return Id_cnv_ref2, Iq_cnv_ref2, Del_Vv_d, Del_Vv_q +end + +function limit_output_current( + limiter::PSY.HybridOutputCurrentLimiter, + Id_cnv_ref::ACCEPTED_REAL_TYPES, + Iq_cnv_ref::ACCEPTED_REAL_TYPES, + ω::ACCEPTED_REAL_TYPES, +) + limit_value = PSY.get_I_max(limiter) + real_imped = PSY.get_rv(limiter) + imag_imped = PSY.get_lv(limiter) + theta = atan(Iq_cnv_ref, Id_cnv_ref) + if (Id_cnv_ref^2 + Iq_cnv_ref^2)^(1 / 2) > limit_value + Id_cnv_ref2 = limit_value * cos(theta) + Iq_cnv_ref2 = limit_value * sin(theta) + else + Id_cnv_ref2 = Id_cnv_ref + Iq_cnv_ref2 = Iq_cnv_ref + end + Del_Vv_d = + ω * imag_imped * (Iq_cnv_ref2 - Iq_cnv_ref) + + real_imped * (Id_cnv_ref - Id_cnv_ref2) + Del_Vv_q = + ω * imag_imped * (Id_cnv_ref - Id_cnv_ref2) + + real_imped * (Iq_cnv_ref - Iq_cnv_ref2) + return Id_cnv_ref2, Iq_cnv_ref2, Del_Vv_d, Del_Vv_q +end diff --git a/src/post_processing/post_proc_loads.jl b/src/post_processing/post_proc_loads.jl index 18b8431db..f6d14cfeb 100644 --- a/src/post_processing/post_proc_loads.jl +++ b/src/post_processing/post_proc_loads.jl @@ -172,8 +172,8 @@ function compute_output_current( V_mag = sqrt.(V_R .^ 2 + V_I .^ 2) P = PSY.get_active_power(device) Q = PSY.get_reactive_power(device) - α = PSY.get_active_power_coefficient(device) - β = PSY.get_reactive_power_coefficient(device) + α = PSY.get_α(device) + β = PSY.get_β(device) I_R = P .* V_R .* (V_mag .^ (α - 2.0) ./ V0^α) + Q .* V_I .* (V_mag .^ (β - 2.0) ./ V0^β) diff --git a/test/data_tests/9BusSystem_validation_descriptors.json b/test/data_tests/9BusSystem_validation_descriptors.json index 1a21e18e8..407d46389 100644 --- a/test/data_tests/9BusSystem_validation_descriptors.json +++ b/test/data_tests/9BusSystem_validation_descriptors.json @@ -1 +1 @@ -{"struct_validation_descriptors":[{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"fixed cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data in two parts: fixed and variable cost.","struct_name":"TwoPartCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data in Three parts fixed, variable cost and start - stop costs.","struct_name":"ThreePartCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"energy_shortage_cost","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Cost incurred by the model for being short of the energy target.","valid_range":{"max":null,"min":0}},{"name":"energy_surplus_cost","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Cost incurred by the model for surplus energy stored.","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure for Operational Cost Data like variable cost and start - stop costs and energy storage cost.","struct_name":"StorageManagementCost","supertype":"OperationalCost"},{"fields":[{"name":"no_load","data_type":"Float64","null_value":"0.0","comment":"no load cost"},{"name":"start_up","data_type":"NamedTuple{(:hot, :warm, :cold), NTuple{3, Float64}}","null_value":"(hot = START_COST, warm = START_COST, cold = START_COST)","comment":"start-up cost at different stages of the thermal cycle. Warm is also refered as intermediate in some markets"},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"variable","default":"nothing","data_type":"Union{Nothing, IS.TimeSeriesKey}","null_value":"nothing","comment":"Variable Cost TimeSeriesKey"},{"name":"ancillary_services","default":"Vector{Service}()","data_type":"Vector{Service}","null_value":"Vector{Service}()","comment":"Bids for the ancillary services"}],"docstring":"Data Structure Operational Cost to reflect market bids of energy and ancilliary services.\nCompatible with most US Market bidding mechanisms","struct_name":"MarketBidCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"no_load","data_type":"Float64","null_value":"0.0","comment":"no load cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"NamedTuple{(:hot, :warm, :cold), NTuple{3, Float64}}","null_value":"(hot = START_COST, warm = START_COST, cold = START_COST)","comment":"start-up cost"},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data which includes fixed, variable cost, multiple start up cost and stop costs.","struct_name":"MultiStartCost","supertype":"OperationalCost"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"peak_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"peak_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"load_response","default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A collection of buses for control purposes.","struct_name":"Area","supertype":"AggregationTopology"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"peak_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"peak_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A collection of buses for electricity price analysis.","struct_name":"LoadZone","supertype":"AggregationTopology"},{"inner_constructor_check":"check_bus_params","fields":[{"name":"number","data_type":"Int","null_value":"0","comment":"number associated with the bus"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init","comment":"the name of the bus"},{"name":"bustype","data_type":"Union{Nothing, BusTypes}","null_value":"nothing","comment":"bus type"},{"name":"angle","data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","comment":"angle of the bus in radians","valid_range":{"max":1.571,"min":-1.571}},{"name":"magnitude","data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"warn","comment":"voltage as a multiple of basevoltage","valid_range":"voltage_limits"},{"name":"voltage_limits","data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)","comment":"limits on the voltage variation as multiples of basevoltage"},{"name":"base_voltage","data_type":"Union{Nothing, Float64}","null_value":"nothing","validation_action":"error","comment":"the base voltage in kV","valid_range":{"max":null,"min":0}},{"name":"area","default":"nothing","data_type":"Union{Nothing, Area}","null_value":"nothing","comment":"the area containing the bus"},{"name":"load_zone","default":"nothing","data_type":"Union{Nothing, LoadZone}","null_value":"nothing","comment":"the load zone containing the bus"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A power-system bus.","struct_name":"Bus","supertype":"Topology"},{"fields":[{"name":"from","data_type":"Bus","null_value":"Bus(nothing)","comment":"The initial bus"},{"name":"to","data_type":"Bus","null_value":"Bus(nothing)","comment":"The terminal bus"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A topological Arc.","struct_name":"Arc","supertype":"Topology","custom_code":"get_name(arc::Arc) = (get_name ∘ get_from)(arc) * \" -> \" * (get_name ∘ get_to)(arc)"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"b","data_type":"FromTo","null_value":"(from=0.0, to=0.0)","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":100,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"angle_limits","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"Line","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"b","data_type":"FromTo","null_value":"(from=0.0, to=0.0)","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"flow_limits","needs_conversion":true,"data_type":"FromTo_ToFrom","null_value":"(from_to=0.0, to_from=0.0)","comment":"throw warning above max SIL"},{"name":"rate","needs_conversion":true,"data_type":"Float64","null_value":"0.0","comment":"compare to SIL (warn) (theoretical limit)"},{"name":"angle_limits","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"MonitoredLine","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","Comment":"System per-unit value","data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":{"max":2,"min":0}},{"name":"tap","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":2,"min":0}},{"name":"α","data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":{"max":1.571,"min":-1.571}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"phase_angle_limits","default":"(min=-1.571, max=1.571)","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"PhaseShiftingTransformer","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":-2}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"tap","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":2,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"TapTransformer","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"nothing","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"The 2-W transformer model uses an equivalent circuit assuming the impedance is on the High Voltage Side of the transformer. The model allocates the iron losses and magnetizing susceptance to the primary side.","struct_name":"Transformer2W","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"active_power_limits_from","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"active_power_limits_to","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_from","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_to","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"loss","data_type":"NamedTuple{(:l0, :l1), Tuple{Float64, Float64}}","null_value":"(l0=0.0, l1=0.0)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"a High voltage DC line.","struct_name":"HVDCLine","supertype":"DCBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"rectifier_tap_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"rectifier_xrc","data_type":"Float64","null_value":"0.0"},{"name":"rectifier_firing_angle","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"inverter_tap_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"inverter_xrc","data_type":"Float64","null_value":"0.0"},{"name":"inverter_firing_angle","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"As implemented in Milano's Book, Page 397.","struct_name":"VSCDCLine","supertype":"DCBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","data_type":"TwoPartCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`TwoPartCost`](@ref)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"InterruptiblePowerLoad","supertype":"ControllableLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"Y","data_type":"Complex{Float64}","null_value":"0.0","comment":"System per-unit value"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection model for admittance"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"FixedAdmittance","supertype":"ElectricLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"Y","data_type":"Complex{Float64}","null_value":"0.0","comment":"Initial impedance at N = 0"},{"name":"number_of_steps","default":"0","data_type":"Int","null_value":"0","comment":"Number of steps for adjustable shunt"},{"name":"Y_increase","default":"0","data_type":"Complex{Float64}","null_value":"0","comment":"Admittance increment for each of step increase"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection model for admittance"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"SwitchedAdmittance","supertype":"ElectricLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a static power load.","struct_name":"PowerLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"constant_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"constant_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"impedance_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"impedance_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"current_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"current_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_constant_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_constant_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_impedance_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_impedance_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_current_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_current_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a standard load.","struct_name":"StandardLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"active_power_coefficient","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Coefficient relating voltage dependence for power P = P0 * V^α","valid_range":{"max":null,"min":0}},{"name":"reactive_power_coefficient","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Coefficient relating voltage dependence for power Q = Q0 * V^β","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a static exponential load.","struct_name":"ExponentialLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_s","data_type":"Float64","null_value":0,"comment":"Armature stator resistance","valid_range":{"max":null,"min":0}},{"name":"R_r","data_type":"Float64","null_value":0,"comment":"Rotor resistance","valid_range":{"max":null,"min":0}},{"name":"X_ls","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_lr","data_type":"Float64","null_value":0,"comment":"Rotor Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_m","data_type":"Float64","null_value":0,"comment":"Stator-Rotor Mutual Reactance","valid_range":{"max":null,"min":0}},{"name":"H","data_type":"Float64","null_value":0,"comment":"Motor Inertia Constant [s]","valid_range":{"max":null,"min":0}},{"name":"A","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Quadratic Term","valid_range":{"max":1,"min":0}},{"name":"B","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Linear Term","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"C","data_type":"Float64","comment":"Torque-Speed Constant Term","internal_default":"PowerSystems.calculate_IM_torque_params(A, B)"},{"name":"τ_ref","data_type":"Float64","comment":"Reference torque parameter","internal_default":"1.0"},{"name":"B_shunt","data_type":"Float64","comment":"Susceptance Initialization Corrector Term","internal_default":"0.0"},{"name":"X_ad","data_type":"Float64","comment":"Equivalent d-axis reactance","internal_default":"(1.0 / X_m + 1.0 / X_ls + 1.0 / X_lr)^(-1)"},{"name":"X_aq","data_type":"Float64","comment":"Equivalent q-axis reactance","internal_default":"X_ad"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψ_qs: stator flux in the q-axis,\n\tψ_ds: stator flux in the d-axis,\n\tψ_qr: rotor flux in the q-axis,\n\tψ_dr: rotor flux in the d-axis, \n\tωr: Rotor speed [pu],","internal_default":"[:ψ_qs, :ψ_ds, :ψ_qr, :ψ_dr, :ωr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SingleCageInductionMachine has 5 states","internal_default":5},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 5-states three-phase single cage induction machine with quadratic torque-speed relationship.","struct_name":"SingleCageInductionMachine","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_s","data_type":"Float64","null_value":0,"comment":"Armature stator resistance","valid_range":{"max":null,"min":0}},{"name":"R_r","data_type":"Float64","null_value":0,"comment":"Rotor resistance","valid_range":{"max":null,"min":0}},{"name":"X_ls","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_lr","data_type":"Float64","null_value":0,"comment":"Rotor Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_m","data_type":"Float64","null_value":0,"comment":"Stator-Rotor Mutual Reactance","valid_range":{"max":null,"min":0}},{"name":"H","data_type":"Float64","null_value":0,"comment":"Motor Inertia Constant [s]","valid_range":{"max":null,"min":0}},{"name":"A","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Quadratic Term","valid_range":{"max":1,"min":0}},{"name":"B","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Linear Term","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"C","data_type":"Float64","comment":"Torque-Speed Constant Term","internal_default":"PowerSystems.calculate_IM_torque_params(A, B)"},{"name":"τ_ref","data_type":"Float64","comment":"Reference torque parameter","internal_default":"1.0"},{"name":"B_shunt","data_type":"Float64","comment":"Susceptance Initialization Corrector Term","internal_default":"0.0"},{"name":"X_ss","data_type":"Float64","comment":"Stator self reactance","internal_default":"X_ls + X_m"},{"name":"X_rr","data_type":"Float64","comment":"Rotor self reactance","internal_default":"X_lr + X_m"},{"name":"X_p","data_type":"Float64","comment":"Transient reactance","internal_default":"X_ss - X_m^2 / X_rr"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψ_qr: rotor flux in the q-axis,\n\tψ_dr: rotor flux in the d-axis, \n\tωr: Rotor speed [pu],","internal_default":"[:ψ_qr, :ψ_dr, :ωr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimplifiedSingleCageInductionMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 3-states three-phase single cage induction machine with quadratic torque-speed relationship.","struct_name":"SimplifiedSingleCageInductionMachine","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"a","data_type":"Float64","null_value":0,"comment":"Active power static exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"b","data_type":"Float64","null_value":0,"comment":"Reactive power static exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"α","data_type":"Float64","null_value":0,"comment":"Active power transient exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"β","data_type":"Float64","null_value":0,"comment":"Reactive power transient exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Active Power Time Constant","valid_range":{"max":null,"min":0}},{"name":"T_q","data_type":"Float64","null_value":0,"comment":"Reactive Power Time Constant","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"base_power","data_type":"Float64","comment":"Base Power","internal_default":"100.0"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p: Integrator state of the active power,\n\tx_q: Integrator state of the reactive power,","internal_default":"[:x_p, :x_q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"DynamicExponentialLoad has 2 states","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 2-states of a generic dynamic load model based on VOLTAGE STABILITY ANALYSIS USING GENERIC DYNAMIC LOAD MODELS by W. Xu and Y. Mansour, IEEE Transactions on Power Systems, 1994.","struct_name":"DynamicExponentialLoad","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"r_load","data_type":"Float64","null_value":0,"comment":"DC-side resistor","valid_range":{"max":null,"min":0}},{"name":"c_dc","data_type":"Float64","null_value":0,"comment":"DC-side capacitor","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"Converter side filter resistance","valid_range":{"max":null,"min":0}},{"name":"lf","data_type":"Float64","null_value":0,"comment":"Converter side filter inductance","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"AC Converter filter capacitance","valid_range":{"max":null,"min":0}},{"name":"rg","data_type":"Float64","null_value":0,"comment":"Network side filter resistance","valid_range":{"max":null,"min":0}},{"name":"lg","data_type":"Float64","null_value":0,"comment":"Network side filter inductance","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"Proportional constant for PI-PLL block","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"Integral constant for PI-PLL block","valid_range":{"max":null,"min":0}},{"name":"kpv","data_type":"Float64","null_value":0,"comment":"Proportional constant for Voltage Control block","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"Integral constant for Voltage Control block","valid_range":{"max":null,"min":0}},{"name":"kpc","data_type":"Float64","null_value":0,"comment":"Proportional constant for Current Control block","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"Integral constant for Current Control block","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"P_ref","data_type":"Float64","comment":"Reference active power parameter","internal_default":"1.0"},{"name":"Q_ref","data_type":"Float64","comment":"Reference reactive power parameter","internal_default":"1.0"},{"name":"V_ref","data_type":"Float64","comment":"Reference voltage parameter","internal_default":"1.0"},{"name":"ω_ref","data_type":"Float64","comment":"Reference frequency parameter","internal_default":"1.0"},{"name":"is_filter_differential","data_type":"Int","comment":"Boolean to decide if filter states are differential or algebraic","internal_default":"1"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tθ_pll: PLL deviation angle, \n\tϵ_pll: PLL integrator state, \n\tη: DC-voltage controller integrator state, \n\tv_dc: DC voltage at the capacitor, \n\tγd: d-axis Current controller integrator state, \n\tγq: q-axis Current controller integrator state, \n\tir_cnv: Real current out of the converter,\n\tii_cnv: Imaginary current out of the converter,\n\tvr_filter: Real voltage at the filter's capacitor,\n\tvi_filter: Imaginary voltage at the filter's capacitor,\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:θ_pll, :ϵ_pll, :η, :v_dc, :γd, :γq, :ir_cnv, :ii_cnv, :vr_filter, :vi_filter, :ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActiveConstantPowerLoad has 12 states","internal_default":12},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 12-states active power load based on the paper Dynamic Stability of a Microgrid With an Active Load from N. Bottrell, M. Prodanovic and T. Green in IEEE Transactions on Power Electronics, 2013.","struct_name":"ActiveConstantPowerLoad","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"storage_capacity","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Maximum storage capacity in the reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"inflow","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline inflow into the reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"initial_storage","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Initial storage capacity in the reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"storage_target","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Storage target at the end of simulation as ratio of storage capacity."},{"name":"conversion_factor","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion factor from flow/volume to energy: m^3 -> p.u-hr."},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroEnergyReservoir","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroDispatch","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"rating_pump","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Withdrawl of the pump. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"active_power_limits_pump","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_pump","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits_pump","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute of pump","valid_range":{"max":null,"min":0}},{"name":"time_limits_pump","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits of pump in hours","valid_range":{"max":null,"min":0}},{"name":"storage_capacity","needs_conversion":true,"data_type":"UpDown","null_value":"(up=0.0, down=0.0)","validation_action":"error","comment":"Maximum storage capacity in the upper and lower reservoirs (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"inflow","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline inflow into the upper reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"outflow","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline outflow from the lower reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"initial_storage","needs_conversion":true,"data_type":"UpDown","null_value":"(up=0.0, down=0.0)","validation_action":"error","comment":"Initial storage capacity in the upper and lower reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"storage_target","default":"(up=1.0, down=1.0)","data_type":"UpDown","null_value":"(up=0.0, down=0.0)","comment":"Storage target of upper reservoir at the end of simulation as ratio of storage capacity."},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"pump_efficiency","default":"1.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Efficiency of pump","valid_range":{"max":1,"min":0}},{"name":"conversion_factor","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion factor from flow/volume to energy: m^3 -> p.u-hr."},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroPumpedStorage","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"power_factor","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":1,"min":0}},{"name":"operation_cost","data_type":"TwoPartCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`TwoPartCost`](@ref)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"RenewableDispatch","supertype":"RenewableGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"power_factor","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for fixed renewable generation technologies.","struct_name":"RenewableFix","supertype":"RenewableGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"status","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"active_power_limits"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"operation_cost","data_type":"OperationalCost","null_value":"ThreePartCost(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"time_limits","default":"nothing","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"must_run","default":"false","data_type":"Bool","null_value":"false"},{"name":"prime_mover","default":"PrimeMovers.OT","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"fuel","default":"ThermalFuels.OTHER","data_type":"ThermalFuels","null_value":"ThermalFuels.OTHER","comment":"Prime mover fuel according to EIA 923"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for thermal generation technologies.","struct_name":"ThermalStandard","supertype":"ThermalGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"status","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"active_power_limits"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"fuel","data_type":"ThermalFuels","null_value":"ThermalFuels.OTHER","comment":"Prime mover fuel according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"power_trajectory","needs_conversion":true,"data_type":"Union{Nothing, StartUpShutDown}","null_value":"nothing","validation_action":"error","comment":"Power trajectory the unit will take during the start-up and shut-down ramp process","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"start_time_limits","data_type":"Union{Nothing, NamedTuple{(:hot, :warm, :cold), Tuple{Float64, Float64, Float64}}}","null_value":"nothing","comment":" Time limits for start-up based on turbine temperature in hours"},{"name":"start_types","data_type":"Int","null_value":"1","validation_action":"error","comment":" Number of start-up based on turbine temperature","valid_range":{"max":3,"min":1}},{"name":"operation_cost","data_type":"OperationalCost","null_value":"MultiStartCost(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"must_run","default":"false","data_type":"Bool","null_value":"false"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for thermal generation technologies.","struct_name":"ThermalMultiStart","supertype":"ThermalGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.BA","comment":"Prime mover technology according to EIA 923"},{"name":"initial_energy","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"State of Charge of the Battery p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"state_of_charge_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","comment":"Maximum and Minimum storage capacity in p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"input_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"output_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"efficiency","data_type":"NamedTuple{(:in, :out), Tuple{Float64, Float64}}","null_value":"(in=0.0, out=0.0)","validation_action":"warn","valid_range":{"max":1,"min":0}},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"nothing","data_type":"Union{Nothing, OperationalCost}","null_value":"nothing"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a generic battery","struct_name":"GenericBattery","supertype":"Storage"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.BA","comment":"Prime mover technology according to EIA 923"},{"name":"initial_energy","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"State of Charge of the Battery p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"state_of_charge_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","comment":"Maximum and Minimum storage capacity in p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"input_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"output_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"efficiency","data_type":"NamedTuple{(:in, :out), Tuple{Float64, Float64}}","null_value":"(in=0.0, out=0.0)","validation_action":"warn","valid_range":{"max":1,"min":0}},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"nothing","data_type":"Union{Nothing, OperationalCost}","null_value":"nothing"},{"name":"storage_target","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"Storage target at the end of simulation as ratio of storage capacity."},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a battery compatible with energy management formulations.","struct_name":"BatteryEMS","supertype":"Storage"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a proportional reserve product for system simulations.","parametric":"ReserveDirection","struct_name":"StaticReserve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a non-spinning reserve product for system simulations.","struct_name":"StaticReserveNonSpinning","supertype":"ReserveNonSpinning"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"contributing_services","default":"Vector{Service}()","data_type":"Vector{Service}","exclude_setter":true,"null_value":"Vector{Service}()","comment":"Services that contribute for this requirement constraint"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a group reserve product for system simulations.","parametric":"ReserveDirection","struct_name":"StaticReserveGroup","supertype":"Service"},{"fields":[{"name":"variable","data_type":"Union{Nothing, IS.TimeSeriesKey}","null_value":"nothing","comment":"Variable Cost TimeSeriesKey"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a operating reserve with demand curve product for system simulations.","parametric":"ReserveDirection","struct_name":"ReserveDemandCurve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for the procurement products for system simulations.","parametric":"ReserveDirection","struct_name":"VariableReserve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for the procurement products for system simulations.","struct_name":"VariableReserveNonSpinning","supertype":"ReserveNonSpinning"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bias","data_type":"Float64","null_value":"0.0"},{"name":"K_p","data_type":"Float64","null_value":"0.0","comment":"PID Proportional Constant"},{"name":"K_i","data_type":"Float64","null_value":"0.0","comment":"PID Integral Constant"},{"name":"K_d","data_type":"Float64","null_value":"0.0","comment":"PID Derrivative Constant"},{"name":"delta_t","data_type":"Float64","null_value":"0.0","comment":"PID Discretization period [Seconds]"},{"name":"area","default":"nothing","data_type":"Union{Nothing, Area}","null_value":"Area(nothing)","comment":"the area controlled by the AGC"},{"name":"initial_ace","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"PID Discretization period [Seconds]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"AGC","supertype":"Service"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"requirement","data_type":"Float64","null_value":"0.0"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"Transfer","supertype":"Service"},{"fields":[{"name":"Vf","data_type":"Float64","null_value":0,"comment":"Fixed voltage field applied to the rotor winding","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"Fixed AVR has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"null_value":0,"comment":"Fixed AVR has no states","internal_default":0},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"Fixed AVR has no states","internal_default":"Vector{StateTypes}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a AVR that returns a fixed voltage to the rotor winding","struct_name":"AVRFixed","supertype":"AVR"},{"fields":[{"name":"Kv","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: field voltage","internal_default":"[:Vf]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"Fixed AVR has 1 states","internal_default":1},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"Simple AVR has 1 differential states","internal_default":"[StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a simple proportional AVR in the derivative of EMF\ni.e. an integrator controller on EMF","struct_name":"AVRSimple","supertype":"AVR"},{"fields":[{"name":"Ta_Tb","data_type":"Float64","null_value":0,"comment":"Ratio of lead and lag time constants","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"comment":"Lag time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"K","data_type":"Float64","null_value":0,"comment":"Gain","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field circuit time constant in s","valid_range":{"max":null,"min":0}},{"name":"V_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field voltage limits"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tVf: Voltage field,\tVr: Lead-lag state","internal_default":"[:Vf, :Vr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SEXS has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"SEXS has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of Simplified Excitation System Model - SEXS in PSSE","struct_name":"SEXS","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter constant related to self-excited field","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":1,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr1: input lead lag,\n\tVr2: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vf, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The ESDC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESDC1A has 5 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Self-excited shunt fields with the voltage regulator operating in a mode commonly termed buck-boost. \nParameters of IEEE Std 421.5 Type DC1A Excitacion System. This model corresponds to ESDC1A in PSSE and PSLF","struct_name":"ESDC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter constant related to self-excited field","valid_range":{"max":1,"min":-1}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant. Appropiate Data: 5.0 <= Tf/Kf <= 15.0","valid_range":{"max":1.5,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr1: input lead lag,\n\tVr2: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vf, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The ESDC2A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESDC2A has 5 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Is used to represent field-controlled dc commutator exciters with continuously acting voltage regulators having power supplies derived from the generator or auxiliaries bus.\nParameters of IEEE Std 421.5 Type DC2A Excitacion System. This model corresponds to ESDC2A in PSSE and PSLF","struct_name":"ESDC2A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter constant related to self-excited field","valid_range":{"max":1,"min":-1}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":1,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant. Appropiate Data: 5 <= Tf/Kf <= 15","valid_range":{"max":null,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vf, :Vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The IEEET1 has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEET1 I has 4 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"1968 IEEE type 1 excitation system model","struct_name":"IEEET1","supertype":"AVR"},{"fields":[{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Amplifier Gain","valid_range":{"max":null,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Field circuit integral deviation","valid_range":{"max":null,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"comment":"Stabilizer Gain in s * pu/pu","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Amplifier Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field Circuit Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"comment":"Stabilizer Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Va_min, Va_max)`"},{"name":"Ae","data_type":"Float64","null_value":0,"comment":"1st ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"Be","data_type":"Float64","null_value":0,"comment":"2nd ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: Voltage field,\n\tVr1: Amplifier State,\n\tVr2: Stabilizing Feedback State,\n\tVm: Measured voltage","internal_default":"[:Vf, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The AVR Type I has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"AVR Type I has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of an Automatic Voltage Regulator Type I - Resembles IEEE Type DC1","struct_name":"AVRTypeI","supertype":"AVR"},{"fields":[{"name":"K0","data_type":"Float64","null_value":0,"comment":"Regulator Gain","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"First Pole in s","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"First zero in s","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"First Pole in s","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"First zero in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field Circuit Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Va_min, Va_max)`"},{"name":"Ae","data_type":"Float64","null_value":0,"comment":"1st ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"Be","data_type":"Float64","null_value":0,"comment":"2nd ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: Voltage field,\n\tVr1: First Lead-Lag state,\n\tVr2: Second lead-lag state,\n\tVm: Measured voltage","internal_default":"[:Vf, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AVR Type II has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"AVR Type II has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of an Automatic Voltage Regulator Type II - Typical static exciter model","struct_name":"AVRTypeII","supertype":"AVR"},{"fields":[{"name":"Ta_Tb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lead input constant ratio","valid_range":{"max":0.3,"min":0.05}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lag input constant in s","valid_range":{"max":20,"min":5}},{"name":"K","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator Gain","valid_range":{"max":100,"min":20}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator Time Constant","valid_range":{"max":1,"min":0}},{"name":"Efd_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field Voltage regulator limits (regulator output) (Efd_min, Efd_max)"},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"rc_rfd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Field current capability. Set = 0 for negative current capability. Typical value 10","valid_range":{"max":10,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVr1: First integrator,\n\tVr2: Second integrator","internal_default":"[:Vr1, :Vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SCRX has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"SCRX has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This exciter is based on an IEEE type SCRX solid state exciter. The output field voltage is varied by a control system to maintain the system voltage at Vref. Please note that this exciter model has no initialization capabilities - this means that it will respond to whatever inputs it receives regardless of the state of the machine model.","struct_name":"SCRX","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage: `(Vr_min, Vr_max)`"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(x) = B(x - A)^2/x"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ESAC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESAC1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A Excitacion System. This model corresponds to ESAC1A in PSSE and PSLF","struct_name":"ESAC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage: `(Vr_min, Vr_max)`"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(x) = B(x - A)^2/x"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified ESAC1A. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A Excitacion System. EXAC1A in PSSE and PSLF","struct_name":"EXAC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC1 has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC1 has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified ESAC1A. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A. EXAC1 in PSSE and PSLF","struct_name":"EXAC1","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Kb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Second Stage regulator gain","valid_range":{"max":500,"min":"eps()"}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant","valid_range":{"max":2,"min":"eps()"}},{"name":"Kl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter gain","valid_range":{"max":1.1,"min":0}},{"name":"Kh","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current regulator feedback gain","valid_range":{"max":1.1,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"V_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum exciter field current","valid_range":{"max":null,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC2 has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC2 has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified AC2. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC2A Excitacion System. The alternator main exciter is used, feeding its output via non-controlled rectifiers. The Type AC2C model is similar to that of Type AC1C except for the inclusion of exciter time constant compensation and exciter field current limiting elements. EXAC2 in PSSE and PSLF.","struct_name":"EXAC2","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output lag time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tk","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Regulator lead time constant","valid_range":{"max":10,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant","valid_range":{"max":2,"min":"eps()"}},{"name":"VFE_lim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter reference","valid_range":{"max":20,"min":-5}},{"name":"Kh","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current regulator feedback gain","valid_range":{"max":100,"min":0}},{"name":"VH_max","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter maximum output","valid_range":{"max":100,"min":0}},{"name":"Th","data_type":"Float64","null_value":0,"comment":"Exciter field current limiter denominator (lag) time constant","valid_range":{"max":1,"min":0}},{"name":"Tj","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter numerator (lead) time constant","valid_range":{"max":1,"min":0}},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":2,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":2,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ESAC6A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESAC6A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified AC6A. Used to represent field-controlled alternator-rectifier excitation systems with system-supplied electronic voltage regulators. \nParameters of IEEE Std 421.5 Type AC6A Excitacion System. ESAC6A in PSSE and PSLF.","struct_name":"ESAC6A","supertype":"AVR"},{"fields":[{"name":"UEL_flags","data_type":"Int","null_value":1,"validation_action":"warn","comment":"Code input for Underexcitization limiter (UEL) entry. Not supported.","valid_range":{"max":3,"min":1}},{"name":"PSS_flags","data_type":"Int","null_value":1,"comment":"Code input for Power System Stabilizer (PSS) or (VOS) entry.","valid_range":{"max":2,"min":1}},{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.1,"min":0}},{"name":"Vi_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage error limits (regulator input) (Vi_min, Vi_max)"},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"First regulator denominator (lead) time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"comment":"First regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Second regulator denominator (lead) time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tb1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Second regulator denominator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator gain","valid_range":{"max":1000,"min":50}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter output `(Vr_min, Vr_max)`"},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":0.3,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant in s","valid_range":{"max":1.5,"min":"eps()"}},{"name":"K_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter output current limiter gain","valid_range":{"max":5,"min":0}},{"name":"I_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter output current limit reference","valid_range":{"max":5,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: First Lead-lag state,\n\tVr2: Second lead-lag state,\n\tVa: Regulator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Va, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ST1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ST1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This excitation system supplies power through a transformer from the generator terminals and its regulated by a controlled rectifier (via thyristors).\nParameters of IEEE Std 421.5 Type ST1A Excitacion System. ESST1A in PSSE and PSLF","struct_name":"ESST1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator gain","valid_range":{"max":500,"min":1}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Vr_min, Vr_max)`"},{"name":"Ta_2","data_type":"Float64","null_value":0,"comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ta_3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ta_4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf_1","validation_actions":"error","data_type":"Float64","null_value":0,"comment":"Rate Feedback time constant in s","valid_range":{"max":15,"min":"eps()"}},{"name":"Tf_2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate Feedback time constant in s","valid_range":{"max":5,"min":0}},{"name":"Efd_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field Voltage regulator limits (regulator output) (Efd_min, Efd_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter constant","valid_range":{"max":1,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter time constant","valid_range":{"max":2,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Kp","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Potential source gain","valid_range":{"max":5,"min":0}},{"name":"Ki","data_type":"Float64","null_value":0,"comment":"current source gain","valid_range":{"max":1.1,"min":0}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter regulation factor","valid_range":{"max":2,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: First Lead-lag state,\n\tVr2: Second regulator lead-lag state,\n\tVr2: Third regulator lead-lag state \n\tVf: Exciter output \n\tVr3: First feedback integrator,\n\tVr4: second feedback integrator","internal_default":"[:Vm, :Vr1, :Vr2, :Vf, :Vr3, :Vr4]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXPIC1 has 6 states","internal_default":6},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXPIC has 6 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Generic Proportional/Integral Excitation System","struct_name":"EXPIC1","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"K_pr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator propotional gain","valid_range":{"max":75,"min":0}},{"name":"K_ir","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator integral gain","valid_range":{"max":75,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (Vi_min, Vi_max)"},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":1,"min":0}},{"name":"K_pm","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator proportional gain output","valid_range":{"max":1.2,"min":0}},{"name":"K_im","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator integral gain output","valid_range":{"max":18,"min":0}},{"name":"Vm_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for inner loop output `(Vm_min, Vm_max)`"},{"name":"Kg","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Feedback gain constant of the inner loop field regulator","valid_range":{"max":1.1,"min":0}},{"name":"Kp","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Potential circuit (voltage) gain coefficient","valid_range":{"max":10,"min":0}},{"name":"Ki","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Compound circuit (current) gain coefficient","valid_range":{"max":1.1,"min":0}},{"name":"VB_max","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum available exciter voltage","valid_range":{"max":20,"min":1}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Reactance associated with potential source","valid_range":{"max":0.5,"min":0}},{"name":"θp","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Potential circuit phase angle (degrees)","valid_range":{"max":90,"min":-90}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"θp_rad","default":"θp*π*inv(180)","data_type":"Float64","null_value":0,"comment":"Potential circuit phase angle (radians)"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVt: Sensed Terminal Voltage,\n\tVr1: Regulator Integrator,\n\tVr2: Regulator Output,\n\tVm: Output integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ST4B has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ST4B has 4 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"In these excitation systems, voltage (and also current in compounded systems) is transformed to an appropriate level. Rectifiers, either controlled or non-controlled, provide the necessary direct current for the generator field.\nParameters of IEEE Std 421.5 Type ST4B Excitacion System. ESST4B in PSSE and PSLF","struct_name":"ESST4B","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vi_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage input limits (Vi_min, Vi_max)"},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Numerator lead-lag (lead) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Denominator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vr_min, Vr_max)"},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Current field constant limiter multiplier","valid_range":{"max":null,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed Terminal Voltage,\n\tVrll: Lead-Lag state,\n\tVr: Regulator Output, \n\tVfb: Feedback state","internal_default":"[:Vm, :Vrll, :Vr, :Vfb]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The EXST1 has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Type ST1 Excitation System (PTI version)","struct_name":"EXST1","supertype":"AVR"},{"fields":[{"name":"Iflim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL Field current limit","valid_range":{"max":null,"min":0}},{"name":"d","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter d","valid_range":{"max":null,"min":0}},{"name":"f","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter f","valid_range":{"max":null,"min":0}},{"name":"Spar","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter Spar","valid_range":{"max":null,"min":0}},{"name":"K1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL delay time constant","valid_range":{"max":null,"min":0}},{"name":"K2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter K2","valid_range":{"max":null,"min":0}},{"name":"Oel_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Oel integrator limits (Oel_min, Oel_max)"},{"name":"G","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"AVR Exciter Gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Numerator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Denominator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"E_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (E_min, E_max)"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVll: Lead-lag internal state,\n\tVex: Exciter Output, \n\toel: OEL integrator state","internal_default":"[:Vll, :Vex, :oel]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The EX4VSA has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Excitation System for Voltage Security Assesment","struct_name":"EX4VSA","supertype":"AVR"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"eq_p","data_type":"Float64","null_value":0,"comment":"Fixed EMF behind the impedance","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"BaseMachine has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"BaseMachine has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Classic Machine: GENCLS in PSSE and PSLF","struct_name":"BaseMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Armature resistance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit. Note: Xd_pp = Xq_pp","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator leakage reactance","valid_range":{"max":null,"min":0}},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Saturation factor at 1 and 1.2 pu flux: S(1.0) = B(|ψ_pp|-A)^2"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"γ_d1 parameter","internal_default":"(Xd_pp - Xl) / (Xd_p - Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"γ_q1 parameter","internal_default":"(Xd_pp - Xl) / (Xq_p - Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"γ_d2 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"γ_q2","data_type":"Float64","comment":"γ_q2 parameter","internal_default":"(Xq_p - Xd_pp) / (Xq_p - Xl)^2"},{"name":"γ_qd","data_type":"Float64","comment":"γ_qd parameter","internal_default":"(Xq - Xl) / (Xd - Xl)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis generator voltage behind the transient reactance,\n\ted_p: d-axis generator voltage behind the transient reactance,\n\tψ_kd: flux linkage in the first equivalent damping circuit in the d-axis,\n\tψ_kq: flux linkage in the first equivalent damping circuit in the d-axis","internal_default":"[:eq_p, :ed_p, :ψ_kd, :ψ_kq]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RoundRotorMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states round-rotor synchronous machine with quadratic/exponential saturation:\nIEEE Std 1110 §5.3.2 (Model 2.2). GENROU or GENROE model in PSSE and PSLF.","struct_name":"RoundRotorMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Armature resistance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit. Note: Xd_pp = Xq_pp","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator leakage reactance","valid_range":{"max":null,"min":0}},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Saturation factor at 1 and 1.2 pu flux: Se(eq_p) = B(eq_p-A)^2"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"γ_d1 parameter","internal_default":"(Xd_pp - Xl) / (Xd_p - Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"γ_q1 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"γ_d2 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis generator voltage behind the transient reactance,\n\tψ_kd: flux linkage in the first equivalent damping circuit in the d-axis,\n\tψq_pp: phasonf of the subtransient flux linkage in the q-axis","internal_default":"[:eq_p, :ψ_kd, :ψq_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SalientPoleMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 3-states salient-pole synchronous machine with quadratic/exponential saturation:\nIEEE Std 1110 §5.3.1 (Model 2.1). GENSAL or GENSAE model in PSSE and PSLF.","struct_name":"SalientPoleMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AndersonFouadMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 6-states synchronous machine: Anderson-Fouad model","struct_name":"AndersonFouadMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"R_f","data_type":"Float64","null_value":0,"comment":"Field rotor winding resistance in per unit","valid_range":{"max":null,"min":0}},{"name":"R_1d","data_type":"Float64","null_value":0,"comment":" Damping rotor winding resistance on d-axis in per unit. This value is denoted as RD in Machowski.","valid_range":{"max":null,"min":0}},{"name":"R_1q","data_type":"Float64","null_value":0,"comment":"Damping rotor winding resistance on q-axis in per unit. This value is denoted as RQ in Machowski.","valid_range":{"max":null,"min":0}},{"name":"L_d","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the d-axis of the rotor, in per unit. This value is denoted as L_ad + L_l in Kundur (and Ld in Machowski).","valid_range":{"max":null,"min":0}},{"name":"L_q","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the q-axis of the rotor, in per unit. This value is denoted as L_aq + L_l in Kundur.","valid_range":{"max":null,"min":0}},{"name":"L_ad","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor field (and damping) winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_aq","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor damping winding inductance on q-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_f1d","data_type":"Float64","null_value":1,"comment":"Mutual inductance between rotor field winding and rotor damping winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_ff","data_type":"Float64","null_value":2,"comment":"Field rotor winding inductance, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1d","data_type":"Float64","null_value":1,"comment":"Inductance of the d-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1q","data_type":"Float64","null_value":1,"comment":"Inductance of the q-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"inv_d_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.127, 3.130, 3.131 From Kundur","internal_default":"inv([[-L_d L_ad L_ad]; [-L_ad L_ff L_f1d]; [-L_ad L_f1d L_1d]])"},{"name":"inv_q_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.128, 3.132 From Kundur","internal_default":"inv([[-L_q L_aq]; [-L_aq L_1q]])"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψd: d-axis stator flux,\n\tψq: q-axis stator flux,\n\tψf: field rotor flux,\n\tψ1d: d-axis rotor damping flux,\n\tψ1q: q-axis rotor damping flux","internal_default":"[:ψd, :ψq, :ψf, :ψ1d, :ψ1q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FullMachine has 5 states","internal_default":5},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameter of a full order flux stator-rotor model without zero sequence flux in the stator.\n The derivative of stator fluxes (ψd and ψq) is NOT neglected. Only one q-axis damping circuit is considered. All parameters are in machine per unit.\n Refer to Chapter 3 of Power System Stability and Control by P. Kundur or Chapter 11 of Power System Dynamics: Stability and Control, by J. Machowski, J. Bialek and J. Bumby, for more details.\n Note that the models are somewhat different (but equivalent) due to the different Park Transformation used in both books.","struct_name":"FullMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"","internal_default":"(Xd_pp-Xl)/(Xd_p-Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"","internal_default":"(Xq_pp-Xl)/(Xq_p-Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"γ_q2","data_type":"Float64","comment":"","internal_default":"(Xq_p - Xq_pp) / (Xq_p - Xl)^2"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage\n\tψd_pp: subtransient flux linkage in the d-axis\n\tψq_pp: subtransient flux linkage in the q-axis","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :ψd_pp, :ψq_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SauerPaiMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of synchronous machine: Sauer Pai model","struct_name":"SauerPaiMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"T_AA","data_type":"Float64","null_value":0,"comment":"Time constant of d-axis additional leakage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γd","data_type":"Float64","comment":"","internal_default":"((Td0_pp*Xd_pp)/(Td0_p*Xd_p) )*(Xd-Xd_p)"},{"name":"γq","data_type":"Float64","comment":"","internal_default":"((Tq0_pp*Xq_pp)/(Tq0_p*Xq_p) )*(Xq-Xq_p)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"MarconatoMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 6-states synchronous machine: Marconato model","struct_name":"MarconatoMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage","internal_default":"[:eq_p, :ed_p]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"OneDOneQMachine has 2 states","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states synchronous machine: Simplified Marconato model\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when\n transmission network dynamics is neglected.","struct_name":"OneDOneQMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleAFMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states simplified Anderson-Fouad (SimpleAFMachine) model.\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when transmission network\n dynamics is neglected.\n If transmission dynamics is considered use the full order Anderson Fouad model.","struct_name":"SimpleAFMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"R_f","data_type":"Float64","null_value":0,"comment":"Field rotor winding resistance in per unit","valid_range":{"max":null,"min":0}},{"name":"R_1d","data_type":"Float64","null_value":0,"comment":" Damping rotor winding resistance on d-axis in per unit. This value is denoted as RD in Machowski.","valid_range":{"max":null,"min":0}},{"name":"R_1q","data_type":"Float64","null_value":0,"comment":"Damping rotor winding resistance on q-axis in per unit. This value is denoted as RQ in Machowski.","valid_range":{"max":null,"min":0}},{"name":"L_d","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the d-axis of the rotor, in per unit. This value is denoted as L_ad + L_l in Kundur (and Ld in Machowski).","valid_range":{"max":null,"min":0}},{"name":"L_q","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the q-axis of the rotor, in per unit. This value is denoted as L_aq + L_l in Kundur.","valid_range":{"max":null,"min":0}},{"name":"L_ad","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor field (and damping) winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_aq","data_type":"Float64","null_value":1,"comment":"Mutual inductance between stator winding and rotor damping winding inductance on q-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_f1d","data_type":"Float64","null_value":1,"comment":"Mutual inductance between rotor field winding and rotor damping winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_ff","data_type":"Float64","null_value":2,"comment":"Field rotor winding inductance, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1d","data_type":"Float64","null_value":1,"comment":"Inductance of the d-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1q","data_type":"Float64","null_value":2,"comment":"Inductance of the q-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"inv_d_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.127, 3.130, 3.131 From Kundur","internal_default":"inv([[-L_d L_ad L_ad]; [-L_ad L_ff L_f1d]; [-L_ad L_f1d L_1d]])"},{"name":"inv_q_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.128, 3.132 From Kundur","internal_default":"inv([[-L_q L_aq]; [-L_aq L_1q]])"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψf: field rotor flux,\n\tψ1d: d-axis rotor damping flux,\n\tψ1q: q-axis rotor damping flux","internal_default":"[:ψf, :ψ1d, :ψ1q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleFullMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameter of a full order flux stator-rotor model without zero sequence flux in the stator.\n The derivative of stator fluxes (ψd and ψq) is neglected. This is standard when\n transmission network dynamics is neglected. Only one q-axis damping circuit\n is considered. All per unit are in machine per unit.\n Refer to Chapter 3 of Power System Stability and Control by P. Kundur or Chapter 11 of Power System Dynamics: Stability and Control, by J. Machowski, J. Bialek and J. Bumby, for more details.\n Note that the models are somewhat different (but equivalent) due to the different Park Transformation used in both books.","struct_name":"SimpleFullMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"T_AA","data_type":"Float64","null_value":0,"comment":"Time constant of d-axis additional leakage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γd","data_type":"Float64","comment":"","internal_default":"((Td0_pp*Xd_pp)/(Td0_p*Xd_p) )*(Xd-Xd_p)"},{"name":"γq","data_type":"Float64","comment":"","internal_default":"((Tq0_pp*Xq_pp)/(Tq0_p*Xq_p) )*(Xq-Xq_p)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleMarconatoMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states synchronous machine: Simplified Marconato model\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when transmission network\n dynamics is neglected.","struct_name":"SimpleMarconatoMachine","supertype":"Machine"},{"fields":[{"name":"V_pss","data_type":"Float64","null_value":0,"comment":"Fixed voltage stabilization signal","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"PSSFixed has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a PSS that returns a fixed voltage to add to the reference for the AVR","struct_name":"PSSFixed","supertype":"PSS"},{"fields":[{"name":"K_ω","data_type":"Float64","null_value":0,"comment":"Proportional gain for frequency","valid_range":{"max":null,"min":0}},{"name":"K_p","data_type":"Float64","null_value":0,"comment":"Proportional gain for active power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"PSSSimple has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a PSS that returns a proportional droop voltage to add to the reference for the AVR","struct_name":"PSSSimple","supertype":"PSS"},{"fields":[{"name":"input_code","data_type":"Int","null_value":1,"validation_action":"error","comment":"Code input for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control","data_type":"Int","null_value":0,"comment":"Remote Bus number for control."},{"name":"A1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A3","data_type":"Float64","null_value":0,"comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Time constant","valid_range":{"max":"2.0","min":"eps()"}},{"name":"Ks","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Proportional gain","valid_range":{"max":null,"min":0}},{"name":"Ls_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits for regulator output `(Ls_min, Ls_max)`"},{"name":"Vcu","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Cutoff limiter upper bound","valid_range":{"max":"1.25","min":0}},{"name":"Vcl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Cutoff limiter lower bound","valid_range":{"max":"1.0","min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p1: 1st filter integration,\n\tx_p2: 2nd filter integration, \n\tx_p3: 3rd filter integration, \n\tx_p4: 4rd filter integration, \n\tx_p5: T1/T2 lead-lag integrator, \n\tx_p6: T3/T4 lead-lag integrator, \n\t:x_p7 last integer,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 7 states","internal_default":7},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 7 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Stabilizing Model PSS. ","struct_name":"IEEEST","supertype":"PSS"},{"fields":[{"name":"KT","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"K/T for washout filter","valid_range":{"max":null,"min":0}},{"name":"T","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant for washout filter","valid_range":{"max":null,"min":0.01}},{"name":"T1T3","data_type":"Float64","null_value":0,"comment":"Time constant division T1/T3","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant","valid_range":{"max":null,"min":0.01}},{"name":"T2T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant division T2/T4","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant","valid_range":{"max":null,"min":0.01}},{"name":"H_lim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"PSS output limit","valid_range":{"max":0.5,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p1: washout filter,\n\tx_p2: T1/T3 lead-lag block, \n\tx_p3: T2/T4 lead-lag block,","internal_default":"[:x_p1, :x_p2, :x_p3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"STAB1 has 3 states","internal_default":3},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"STAB1 has 3 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Speed-Sensitive Stabilizing Model","struct_name":"STAB1","supertype":"PSS"},{"fields":[{"name":"H","data_type":"Float64","null_value":0,"comment":"Rotor inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"D","data_type":"Float64","null_value":0,"comment":"Rotor natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tδ: rotor angle,\n\tω: rotor speed","internal_default":"[:δ, :ω]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SingleMass has 1 state","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of single mass shaft model. Typically represents the rotor mass.","struct_name":"SingleMass","supertype":"Shaft"},{"fields":[{"name":"H","data_type":"Float64","null_value":0,"comment":"Rotor inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_ex","data_type":"Float64","null_value":0,"comment":" Exciter inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"D","data_type":"Float64","null_value":0,"comment":"Rotor natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_ex","data_type":"Float64","null_value":0,"comment":"Exciter natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_12","data_type":"Float64","null_value":0,"comment":"High-Intermediate pressure turbine damping","valid_range":{"max":null,"min":0}},{"name":"D_23","data_type":"Float64","null_value":0,"comment":"Intermediate-Low pressure turbine damping","valid_range":{"max":null,"min":0}},{"name":"D_34","data_type":"Float64","null_value":0,"comment":"Low pressure turbine-Rotor damping","valid_range":{"max":null,"min":0}},{"name":"D_45","data_type":"Float64","null_value":0,"comment":"Rotor-Exciter damping","valid_range":{"max":null,"min":0}},{"name":"K_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_ex","data_type":"Float64","null_value":0,"comment":"Exciter angle coefficient","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tδ: rotor angle,\n\tω: rotor speed,\n\tδ_hp: rotor angle of high pressure turbine,\n\tω_hp: rotor speed of high pressure turbine,\n\tδ_ip: rotor angle of intermediate pressure turbine,\n\tω_ip: rotor speed of intermediate pressure turbine,\n\tδ_lp: rotor angle of low pressure turbine,\n\tω_lp: rotor speed of low pressure turbine,\n\tδ_ex: rotor angle of exciter,\n\tω_lp: rotor speed of exciter","internal_default":"[:δ, :ω, :δ_hp, :ω_hp, :δ_ip, :ω_ip, :δ_lp, :ω_lp, :δ_ex, :ω_ex]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FiveMassShaft has 10 states","internal_default":10},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 5 mass-spring shaft model.\n It contains a High-Pressure (HP) steam turbine, Intermediate-Pressure (IP)\n steam turbine, Low-Pressure (LP) steam turbine, the Rotor and an Exciter (EX) mover.","struct_name":"FiveMassShaft","supertype":"Shaft"},{"fields":[{"name":"efficiency","data_type":"Float64","null_value":0,"comment":" Efficiency factor that multiplies P_ref","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGFixed has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a fixed Turbine Governor that returns a fixed mechanical torque\n given by the product of P_ref*efficiency","struct_name":"TGFixed","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Speed droop parameter","valid_range":{"max":0.1,"min":"eps()"}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Governor time constant in s","valid_range":{"max":0.5,"min":"eps()"}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Combustion chamber time constant","valid_range":{"max":0.5,"min":"eps()"}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Load limit time constant (exhaust gas measurement time)","valid_range":{"max":5,"min":"eps()"}},{"name":"AT","data_type":"Float64","null_value":0,"comment":"Ambient temperature load limit","valid_range":{"max":1,"min":0}},{"name":"Kt","data_type":"Float64","null_value":0,"comment":"Load limit feedback gain","valid_range":{"max":5,"min":0}},{"name":"V_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Operational control limits on fuel valve opening (V_min, V_max)"},{"name":"D_turb","data_type":"Float64","null_value":0,"comment":"Speed damping coefficient of gas turbine rotor","valid_range":{"max":0.5,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Load Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the GAST model are:\n\tx_g1: Fuel valve opening,\n\tx_g2: Fuel flow,\n\tx_g3: Exhaust temperature load","internal_default":"[:x_g1, :x_g2, :x_g3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"GasTG has 3 states","internal_default":3},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"GAST has 3 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of Gas Turbine-Governor. GAST in PSSE and GAST_PTI in PowerWorld.","struct_name":"GasTG","supertype":"TurbineGov"},{"fields":[{"name":"Rselect","data_type":"Int","null_value":1,"validation_action":"error","comment":"Feedback signal for governor droop","valid_range":{"max":1,"min":-2}},{"name":"fuel_flag","data_type":"Int","null_value":0,"validation_action":"error","comment":"Flag Switch for fuel source characteristic","valid_range":{"max":1,"min":0}},{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Speed droop parameter","valid_range":{"max":null,"min":"eps()"}},{"name":"Tpelec","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Electrical power transducer time constant, seconds","valid_range":{"max":null,"min":"eps()"}},{"name":"speed_error_signal","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Speed error signal limits"},{"name":"Kp_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor proportional gain","valid_range":{"max":null,"min":0}},{"name":"Ki_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor integral gain","valid_range":{"max":null,"min":0}},{"name":"Kd_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor derivative gain","valid_range":{"max":null,"min":0}},{"name":"Td_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor derivative time constant","valid_range":{"max":null,"min":0}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits"},{"name":"T_act","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Actuator time constant","valid_range":{"max":null,"min":0}},{"name":"K_turb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine gain","valid_range":{"max":null,"min":0}},{"name":"Wf_nl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"No load fuel flow, pu","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine lag time constant, sec","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine lead time constant, sec","valid_range":{"max":null,"min":0}},{"name":"T_eng","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Transport lag time constant for diesel engine, sec","valid_range":{"max":null,"min":0}},{"name":"Tf_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter time constant","valid_range":{"max":null,"min":0}},{"name":"Kp_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter proportional gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Ki_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load integral gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Ld_ref","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter integral gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Dm","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Mechanical damping coefficient, pu","valid_range":{"max":null,"min":0}},{"name":"R_open","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum valve opening rate, pu/sec","valid_range":{"max":null,"min":0}},{"name":"R_close","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum valve closing rate, pu/sec","valid_range":{"max":null,"min":0}},{"name":"Ki_mw","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Power controller (reset) gain","valid_range":{"max":null,"min":0}},{"name":"A_set","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Acceleration limiter setpoint, pu/sec","valid_range":{"max":null,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Acceleration limiter gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Acceleration limiter time constant ","valid_range":{"max":null,"min":"eps()"}},{"name":"T_rate","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine rating","valid_range":{"max":null,"min":0}},{"name":"db","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Speed governor deadband","valid_range":{"max":null,"min":0}},{"name":"Tsa","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temperature detection lead time constant","valid_range":{"max":null,"min":0}},{"name":"Tsb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temperature detection lag time constant","valid_range":{"max":null,"min":0}},{"name":"R_lim","data_type":"UpDown","null_value":"(up = 0.0, down = 0.0)","comment":"Maximum rate of load increa"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the GGOV1 model are:\n\tPe: Machine Electrical Power Measurement,\n\tx_g1: Governor differential control,\n\tx_g2: Governor integral control, \n\tx_g3: Turbine actuator, \n\tx_g4: Turbine Lead-Lag, \n\tx_g5: Turbine load limiter measurement, \n\tx_g6: Turbine Load Limiter Integral Control, \n\tx_g7: Supervisory Load Control, \n\tx_g8: Acceleration Control, \n\tx_g9 Temperature Detection Lead - Lag:","internal_default":"[:Pe, :x_g1, :x_g2, :x_g3, :x_g4, :x_g5, :x_g6, :x_g7, :x_g8, :x_g9]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"GeneralGovModel has 10 states","internal_default":10},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"GGOV1 has 10 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"GE General Governor/Turbine Model. The GeneralGovModel (GGOV1) model is a general purpose governor model used for a variety of prime movers controlled by proportional-integral-derivative (PID) governors including gas turbines.","struct_name":"GeneralGovModel","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Droop parameter","valid_range":{"max":0.1,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Governor time constant","valid_range":{"max":0.5,"min":"eps()"}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits"},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Lead Lag Lead Time constant ","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lead Lag Lag Time constant ","valid_range":{"max":10,"min":"eps()"}},{"name":"D_T","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Damping","valid_range":{"max":0.5,"min":0}},{"name":"DB_h","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Deadband for overspeed","valid_range":{"max":null,"min":0}},{"name":"DB_l","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Deadband for underspeed","valid_range":{"max":0,"min":null}},{"name":"T_rate","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Rate (MW). If zero, generator base is used.","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the SteamTurbineGov1 model are:\n\tx_g1: Valve Opening,\n\tx_g2: Lead-lag state","internal_default":"[:x_g1, :x_g2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGOV1 has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"TGOV1 has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Steam Turbine-Governor. This model considers both TGOV1 or TGOV1DU in PSS/E.","struct_name":"SteamTurbineGov1","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Permanent droop parameter","valid_range":{"max":0.1,"min":0}},{"name":"r","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temporary Droop","valid_range":{"max":2,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Governor time constant","valid_range":{"max":30,"min":"eps()"}},{"valid_range":{"max":0.1,"min":"eps()"},"name":"Tf","data_type":"Float64","null_value":0,"valiation_action":"error","comment":"Filter Time constant"},{"name":"Tg","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Servo time constant","valid_range":{"max":1,"min":"eps()"}},{"name":"VELM","data_type":"Float64","null_value":0,"validation_action":"error","comment":"gate velocity limit","valid_range":{"max":0.3,"min":"eps()"}},{"name":"gate_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Gate position limits"},{"name":"Tw","data_type":"Float64","null_value":0,"validation_action":"error","comment":"water time constant","valid_range":{"max":3,"min":"eps()"}},{"name":"At","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine gain","valid_range":{"max":1.5,"min":0.8}},{"name":"D_T","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Damping","valid_range":{"max":0.5,"min":0}},{"name":"q_nl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"No-power flow","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the HydroTurbineGov model are:\n\tx_g1: filter_output,\n\tx_g2: desired gate, \n\tx_g3: gate opening, \n\tx_g4: turbine flow","internal_default":"[:x_g1, :x_g2, :x_g3, :x_g4]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"HYGOV has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"HYGOV has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Hydro Turbine-Governor.","struct_name":"HydroTurbineGov","supertype":"TurbineGov"},{"fields":[{"name":"K","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor Gain","valid_range":{"max":30,"min":5}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Input Filter Lag","valid_range":{"max":5,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Input Filter Lead","valid_range":{"max":10,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Valve position Time Constant","valid_range":{"max":1,"min":"eps()"}},{"name":"U0","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum Valve Opening Rate","valid_range":{"max":0.03,"min":0.01}},{"name":"U_c","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum Valve closing rate","valid_range":{"max":0,"min":-0.3}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits in MW"},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time Constant inlet steam","valid_range":{"max":1,"min":0}},{"name":"K1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power","valid_range":{"max":1,"min":-2}},{"name":"K2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second boiler pass","valid_range":{"max":10,"min":0}},{"name":"K3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power second boiler pass","valid_range":{"max":0.5,"min":0}},{"name":"K4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power second boiler pass","valid_range":{"max":0.5,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third boiler pass","valid_range":{"max":10,"min":0}},{"name":"K5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power third boiler pass","valid_range":{"max":0.35,"min":0}},{"name":"K6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power third boiler pass","valid_range":{"max":0.55,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth boiler pass","valid_range":{"max":10,"min":0}},{"name":"K7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power fourth boiler pass","valid_range":{"max":0.3,"min":0}},{"name":"K8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power fourth boiler pass","valid_range":{"max":0.3,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the IEEETurbineGov model are:\n\tx_g1: First Governor integrator,\n\tx_g2: Governor output,\n\tx_g3: First Turbine integrator, \n\tx_g4: Second Turbine Integrator, \n\tx_g5: Third Turbine Integrator, \n\tx_g6: Fourth Turbine Integrator, ","internal_default":"[:x_g1, :x_g2, :x_g3, :x_g4, :x_g5, :x_g6]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEG1 has 6 states","internal_default":6},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEG1 has 6 differential states","internal_default":"[StateTypes.Differential, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Type 1 Speed-Governing Model","struct_name":"IEEETurbineGov1","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Droop parameter","valid_range":{"max":null,"min":0}},{"name":"Ts","data_type":"Float64","null_value":0,"comment":"Governor time constant","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"comment":"Servo time constant","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Transient gain time constant","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"Power fraction time constant","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"comment":"Reheat time constant","valid_range":{"max":null,"min":0}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits in MW"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the TGTypeI model are:\n\tx_g1: Governor state,\n\tx_g2: Servo state,\n\tx_g3: Reheat state","internal_default":"[:x_g1, :x_g2, :x_g3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGTypeI has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Turbine Governor Type I.","struct_name":"TGTypeI","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Droop parameter","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Transient gain time constant","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Power fraction time constant","valid_range":{"max":null,"min":0}},{"name":"τ_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power into the governor limits"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the TGTypeI model are:\n\tx_g1: lead-lag state","internal_default":"[:xg]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGTypeII has 1 state","internal_default":1},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Turbine Governor Type II.","struct_name":"TGTypeII","supertype":"TurbineGov"},{"fields":[{"name":"rated_voltage","data_type":"Float64","null_value":0,"comment":"rated voltage","valid_range":{"max":null,"min":0}},{"name":"rated_current","data_type":"Float64","null_value":0,"comment":"rated VA","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AverageConverter has no states","internal_default":0}],"docstring":"Parameters of an average converter model","struct_name":"AverageConverter","supertype":"Converter"},{"fields":[{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Converter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"Rrpwr","data_type":"Float64","null_value":0,"comment":"Low Voltage Power Logic (LVPL) ramp rate limit (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Brkpt","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 2 (pu)","valid_range":{"max":null,"min":0}},{"name":"Zerox","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 1 (pu)","valid_range":{"max":null,"min":0}},{"name":"Lvpl1","data_type":"Float64","null_value":0,"comment":"LVPL gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Vo_lim","data_type":"Float64","null_value":0,"comment":"Voltage limit for high voltage reactive current management (pu)","valid_range":{"max":null,"min":0}},{"name":"Lv_pnts","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage points for low voltage active current management (pu) (Lvpnt0, Lvpnt1)"},{"name":"Io_lim","data_type":"Float64","null_value":0,"comment":"Current limit (pu) for high voltage reactive current management (specified as a negative value)","valid_range":{"max":0,"min":null}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage filter time constant for low voltage active current management (s)","valid_range":{"max":null,"min":0}},{"name":"K_hv","data_type":"Float64","null_value":0,"comment":"Overvoltage compensation gain used in the high voltage reactive current management","valid_range":{"max":null,"min":0}},{"name":"Iqr_lims","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"Accel","data_type":"Float64","null_value":0,"comment":"Acceleration factor","valid_range":{"max":1,"min":0}},{"name":"Lvpl_sw","data_type":"Int","null_value":0,"comment":"Low voltage power logic (LVPL) switch. (0: LVPL not present, 1: LVPL present)","valid_range":{"max":1,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Initial machine reactive power from power flow","valid_range":{"max":null,"min":0}},{"name":"R_source","default":"0.0","data_type":"Float64","null_value":0,"comment":"Output resistor used for the Thevenin Equivalent","valid_range":{"max":null,"min":0}},{"name":"X_source","default":"1.0e5","data_type":"Float64","null_value":0,"comment":"Output resistor used for the Thevenin Equivalent","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tIp: Converter lag for Ipcmd,\tIq: Converter lag for Iqcmd,\tVmeas: Voltage filter for low voltage active current management","internal_default":"[:Ip, :Iq, :Vmeas]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RenewableEnergyConverterTypeA has 3 states","internal_default":3}],"docstring":"Parameters of a renewable energy generator/converter model, this model corresponds to REGCA1 in PSSE","struct_name":"RenewableEnergyConverterTypeA","supertype":"Converter"},{"fields":[{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Converter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"Rrpwr","data_type":"Float64","null_value":0,"comment":"Low Voltage Power Logic (LVPL) ramp rate limit (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Brkpt","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 2 (pu)","valid_range":{"max":null,"min":0}},{"name":"Zerox","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 1 (pu)","valid_range":{"max":null,"min":0}},{"name":"Lvpl1","data_type":"Float64","null_value":0,"comment":"LVPL gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Vo_lim","data_type":"Float64","null_value":0,"comment":"Voltage limit for high voltage reactive current management (pu)","valid_range":{"max":null,"min":0}},{"name":"Lv_pnts","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage points for low voltage active current management (pu) (Lvpnt0, Lvpnt1)"},{"name":"Io_lim","data_type":"Float64","null_value":0,"comment":"Current limit (pu) for high voltage reactive current management (specified as a negative value)","valid_range":{"max":0,"min":null}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage filter time constant for low voltage active current management (s)","valid_range":{"max":null,"min":0}},{"name":"K_hv","data_type":"Float64","null_value":0,"comment":"Overvoltage compensation gain used in the high voltage reactive current management","valid_range":{"max":null,"min":0}},{"name":"Iqr_lims","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"Accel","data_type":"Float64","null_value":0,"comment":"Acceleration factor","valid_range":{"max":1,"min":0}},{"name":"Lvpl_sw","data_type":"Int","null_value":0,"comment":"Low voltage power logic (LVPL) switch. (0: LVPL not present, 1: LVPL present)","valid_range":{"max":1,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Initial machine reactive power from power flow","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tIp: Converter lag for Ipcmd,\tIq: Converter lag for Iqcmd,\tVmeas: Voltage filter for low voltage active current management","internal_default":"[:Ip, :Iq, :Vmeas]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RenewableEnergyVoltageConverterTypeA has 3 states","internal_default":3}],"docstring":"Parameters of a renewable energy generator/converter model, this model corresponds to REGCA1 in PSSE, but to be interfaced using a Voltage Source instead of a Current Source.","struct_name":"RenewableEnergyVoltageConverterTypeA","supertype":"Converter"},{"fields":[{"name":"voltage","data_type":"Float64","null_value":0,"comment":"rated VA","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FixedDCSource has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Fixed DC Source that returns a fixed DC voltage","struct_name":"FixedDCSource","supertype":"DCSource"},{"fields":[{"name":"rated_voltage","data_type":"Float64","null_value":0,"comment":"rated voltage","valid_range":{"max":null,"min":0}},{"name":"rated_current","data_type":"Float64","null_value":0,"comment":"rated current","valid_range":{"max":null,"min":0}},{"name":"battery_voltage","data_type":"Float64","null_value":0,"comment":"battery voltage","valid_range":{"max":null,"min":0}},{"name":"battery_resistance","data_type":"Float64","null_value":0,"comment":"battery_resistance","valid_range":{"max":null,"min":0}},{"name":"dc_dc_inductor","data_type":"Float64","null_value":0,"comment":"DC/DC inductance","valid_range":{"max":null,"min":0}},{"name":"dc_link_capacitance","data_type":"Float64","null_value":0,"comment":"DC-link capacitor","valid_range":{"max":null,"min":0}},{"name":"fs","data_type":"Float64","null_value":0,"comment":"DC/DC converter switching frequency","valid_range":{"max":null,"min":0}},{"name":"kpv","data_type":"Float64","null_value":0,"comment":"voltage controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"voltage controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kpi","data_type":"Float64","null_value":0,"comment":"current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kii","data_type":"Float64","null_value":0,"comment":"current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"Vdc_ref","default":"1.1","data_type":"Float64","null_value":0,"comment":"Reference DC-Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ZeroOrderBESS model are:\n\tv_dc: DC-link votlage,\n\ti_b: Battery current,\n\t ν: integrator state of the voltage controller,\n\t ζ: integrator state of the PI current controller","internal_default":"[:v_dc, :i_b, :ν, :ζ]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ZeroOrderBESS has 4 states","internal_default":4}],"docstring":"Parameters for the DC-side with a Battery Energy Storage System from paper at https://arxiv.org/abs/2007.11776","struct_name":"ZeroOrderBESS","supertype":"DCSource"},{"fields":[{"name":"lf","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"Shunt capacitance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"lg","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"rg","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the LCLFilter model are:\n\tir_cnv: Real current out of the converter,\n\tii_cnv: Imaginary current out of the converter,\n\tvr_filter: Real voltage at the filter's capacitor,\n\tvi_filter: Imaginary voltage at the filter's capacitor,\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:ir_cnv, :ii_cnv, :vr_filter, :vi_filter, :ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"LCLFilter has 6 states","internal_default":6}],"docstring":"Parameters of a LCL filter outside the converter, the states are in the grid's reference frame","struct_name":"LCLFilter","supertype":"Filter"},{"fields":[{"name":"lf","data_type":"Float64","null_value":0,"comment":"filter inductance","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"filter resistance","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"filter capacitance","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the LCFilter model are:\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"LCFilter has two states","internal_default":2}],"docstring":"Parameters of a LCL filter outside the converter","struct_name":"LCFilter","supertype":"Filter"},{"fields":[{"name":"rf","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"lf","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"RLFilter has zero states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RLFilter has zero states","internal_default":0}],"docstring":"Parameters of RL series filter in algebraic representation","struct_name":"RLFilter","supertype":"Filter"},{"fields":[{"name":"ω_lp","data_type":"Float64","null_value":0,"comment":"PLL low-pass filter frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"PLL proportional gain","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"PLL integral gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the KauraPLL model are:\n\tvd_pll: d-axis of the measured voltage in the PLL synchronous reference frame (SRF),\n\tvq_pll: q-axis of the measured voltage in the PLL SRF,\n\tε_pll: Integrator state of the PI controller,\n\tθ_pll: Phase angle displacement in the PLL SRF","internal_default":"[:vd_pll, :vq_pll, :ε_pll, :θ_pll]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"KauraPLL has 4 states","internal_default":4}],"docstring":"Parameters of a Phase-Locked Loop (PLL) based on Kaura, Vikram, and Vladimir Blasko.\n\"Operation of a phase locked loop system under distorted utility conditions.\"\nIEEE Transactions on Industry applications 33.1 (1997): 58-63.","struct_name":"KauraPLL","supertype":"FrequencyEstimator"},{"fields":[{"name":"ω_lp","data_type":"Float64","null_value":0,"comment":"PLL low-pass filter frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"PLL proportional gain","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"PLL integral gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReducedOrderPLL model are:\n\tvq_pll: q-axis of the measured voltage in the PLL synchronous reference frame (SRF),\n\tε_pll: Integrator state of the PI controller,\n\tθ_pll: Phase angle displacement in the PLL SRF","internal_default":"[:vq_pll, :ε_pll, :θ_pll]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReducedOrderPLL has 3 states","internal_default":3}],"docstring":"Parameters of a Phase-Locked Loop (PLL) based on Purba, Dhople, Jafarpour, Bullo and Johnson.\n\"Reduced-order Structure-preserving Model for Parallel-connected Three-phase Grid-tied Inverters.\"\n2017 IEEE 18th Workshop on Control and Modeling for Power Electronics (COMPEL): 1-7.","struct_name":"ReducedOrderPLL","supertype":"FrequencyEstimator"},{"fields":[{"name":"frequency","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference used"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"FixedFrequency has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FixedFrequency has no states","internal_default":0}],"docstring":"Parameters of a Fixed Frequency Estimator (i.e. no PLL).","struct_name":"FixedFrequency","supertype":"FrequencyEstimator"},{"fields":[{"name":"Ta","data_type":"Float64","null_value":0,"comment":"VSM inertia constant","valid_range":{"max":null,"min":0}},{"name":"kd","data_type":"Float64","null_value":0,"comment":"VSM damping constant","valid_range":{"max":null,"min":0}},{"name":"kω","data_type":"Float64","null_value":0,"comment":"frequency droop gain","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the VirtualInertia model are:\n\tθ_oc: Phase angle displacement of the virtual synchronous generator model\n\tω_oc: Speed of the rotating reference frame of the virtual synchronous generator model","internal_default":"[:θ_oc, :ω_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"VirtualInertia has two states","internal_default":2}],"docstring":"Parameters of a Virtual Inertia with SRF using VSM for active power controller","struct_name":"VirtualInertia","supertype":"ActivePowerControl"},{"fields":[{"name":"Rp","data_type":"Float64","null_value":0,"comment":"Droop Gain","valid_range":{"max":null,"min":0}},{"name":"ωz","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActivePowerDroop model are:\n\tθ_oc: Phase angle displacement of the inverter model,\n\tp_oc: Measured active power of the inverter model","internal_default":"[:θ_oc, :p_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActivePowerDroop has two states","internal_default":2}],"docstring":"Parameters of an Active Power droop controller","struct_name":"ActivePowerDroop","supertype":"ActivePowerControl"},{"fields":[{"name":"Kp_p","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"Ki_p","data_type":"Float64","null_value":0,"comment":"Integral Gain","valid_range":{"max":null,"min":0}},{"name":"ωz","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActivePowerPI model are:\n\tσp_oc: Integrator state of the PI Controller,\n\tp_oc: Measured active power of the inverter model","internal_default":"[:σp_oc, :p_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActivePowerPI has two states","internal_default":2}],"docstring":"Parameters of a Proportional-Integral Active Power controller for a specified power reference","struct_name":"ActivePowerPI","supertype":"ActivePowerControl"},{"fields":[{"name":"k1","data_type":"Float64","null_value":0,"comment":"VOC Synchronization Gain","valid_range":{"max":null,"min":0}},{"name":"ψ","data_type":"Float64","null_value":0,"comment":"Rotation angle of the controller","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActiveVirtualOscillator model are:\n\tθ_oc: Phase angle displacement of the inverter model","internal_default":"[:θ_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActiveVirtualOscillator has one state","internal_default":1}],"docstring":"Parameters of an Active Virtual Oscillator controller. Model is based from the paper Model Reduction for Inverters with Current Limiting and Dispatchable Virtual Oscillator Control by O. Ajala et al.","struct_name":"ActiveVirtualOscillator","supertype":"ActivePowerControl"},{"fields":[{"name":"bus_control","data_type":"Int","null_value":0,"comment":"Bus Number for voltage control; ","valid_range":{"max":null,"min":0}},{"name":"from_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch FROM bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"to_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch TO bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"branch_id_control","data_type":"String","null_value":0,"comment":"Branch circuit id for line drop compensation (as a string). If 0 generator power will be used"},{"name":"Freq_Flag","data_type":"Int","null_value":0,"comment":"Frequency Flag for REPCA1: 0: disable, 1:enable","valid_range":{"max":1,"min":0}},{"name":"K_pg","data_type":"Float64","null_value":0,"comment":"Active power PI control proportional gain","valid_range":{"max":null,"min":0}},{"name":"K_ig","data_type":"Float64","null_value":0,"comment":"Active power PI control integral gain","valid_range":{"max":null,"min":0}},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Real power measurement filter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Frequency error dead band thresholds `(fdbd1, fdbd2)`"},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on frequency error `(fe_min, fe_max)`"},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference `(P_min, P_max)`"},{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Power Controller lag time constant","valid_range":{"max":null,"min":0}},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"Droop for over-frequency conditions","valid_range":{"max":0,"min":null}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"Droop for under-frequency conditions","valid_range":{"max":null,"min":0}},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference ramp rates`(dP_min, dP_max)`"},{"name":"P_lim_inner","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference for REECB`(P_min_inner, P_max_inner)`"},{"name":"T_pord","data_type":"Float64","null_value":0,"comment":"Power filter time constant REECB time constant","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_activeRETypeAB_states(Freq_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the ActiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_activeRETypeAB_states(Freq_Flag)[2]"}],"docstring":"Parameters of Active Power Controller including REPCA1 and REECB1","struct_name":"ActiveRenewableControllerAB","supertype":"ActivePowerControl"},{"fields":[{"name":"bus_control","data_type":"Int","null_value":0,"comment":"Bus Number for voltage control; ","valid_range":{"max":null,"min":0}},{"name":"from_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch FROM bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"to_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch TO bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"branch_id_control","data_type":"String","null_value":0,"comment":"Branch circuit id for line drop compensation (as a string). If 0 generator power will be used"},{"name":"VC_Flag","data_type":"Int","null_value":0,"comment":"Voltage Compensator Flag for REPCA1","valid_range":{"max":1,"min":0}},{"name":"Ref_Flag","data_type":"Int","null_value":0,"comment":"Flag for Reactive Power Control for REPCA1. 0: Q-control, 1: V-control","valid_range":{"max":1,"min":0}},{"name":"PF_Flag","data_type":"Int","null_value":0,"comment":"Flag for Power Factor Control for Outer Control of REECB1. 0: Q-control, 1: Power Factor Control","valid_range":{"max":1,"min":0}},{"name":"V_Flag","data_type":"Int","null_value":0,"comment":"Flag for Voltage Control for Outer Control of REECB1. 0: Voltage Control, 1: Q-Control","valid_range":{"max":1,"min":0}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage or Q-power of REPCA Filter Time Constant","valid_range":{"max":null,"min":0}},{"name":"K_p","data_type":"Float64","null_value":0,"comment":"Reactive power PI control proportional gain","valid_range":{"max":null,"min":0}},{"name":"K_i","data_type":"Float64","null_value":0,"comment":"Reactive power PI control integral gain","valid_range":{"max":null,"min":0}},{"name":"T_ft","data_type":"Float64","null_value":0,"comment":"Reactive power lead time constant (s)","valid_range":{"max":null,"min":0}},{"name":"T_fv","data_type":"Float64","null_value":0,"comment":"Reactive power lag time constant (s)","valid_range":{"max":null,"min":0}},{"name":"V_frz","data_type":"Float64","null_value":0,"comment":"Voltage below which state ξq_oc (integrator state) is freeze","valid_range":{"max":null,"min":0}},{"name":"R_c","data_type":"Float64","null_value":0,"comment":"Line drop compensation resistance (used when VC_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"X_c","data_type":"Float64","null_value":0,"comment":"Line drop compensation reactance (used when VC_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_c","data_type":"Float64","null_value":0,"comment":"Reactive current compensation gain (pu) (used when VC_Flag = 0)","valid_range":{"max":null,"min":0}},{"name":"e_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on Voltage or Q-power deadband output `(e_min, e_max)`"},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage or Q-power error dead band thresholds `(dbd1, dbd2)`"},{"name":"Q_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power V/Q control in REPCA `(Q_min, Q_max)`"},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Active power lag time constant in REECB (s). Used only when PF_Flag = 1","valid_range":{"max":null,"min":0}},{"name":"Q_lim_inner","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power input in REECB `(Q_min_inner, Q_max_inner)`. Only used when V_Flag = 1"},{"name":"V_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power PI controller in REECB `(V_min, V_max)`. Only used when V_Flag = 1"},{"name":"K_qp","data_type":"Float64","null_value":0,"comment":"Reactive power regulator proportional gain (used when V_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_qi","data_type":"Float64","null_value":0,"comment":"Reactive power regulator integral gain (used when V_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_reactiveRETypeAB_states(Ref_Flag, PF_Flag, V_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the ReactiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_reactiveRETypeAB_states(Ref_Flag, PF_Flag, V_Flag)[2]"}],"docstring":"Parameters of Reactive Power Controller including REPCA1 and REECB1","struct_name":"ReactiveRenewableControllerAB","supertype":"ReactivePowerControl"},{"fields":[{"name":"kq","data_type":"Float64","null_value":0,"comment":"frequency droop gain","valid_range":{"max":null,"min":0}},{"name":"ωf","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactivePowerDroop model are:\n\tq_oc: Filtered reactive output power","internal_default":"[:q_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactivePowerDroop has 1 state","internal_default":1}],"docstring":"Parameters of a Reactive Power droop controller","struct_name":"ReactivePowerDroop","supertype":"ReactivePowerControl"},{"fields":[{"name":"Kp_q","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"Ki_q","data_type":"Float64","null_value":0,"comment":"Integral Gain","valid_range":{"max":null,"min":0}},{"name":"ωf","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reactive Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactivePowerPI model are:\n\tσq_oc: Integrator state of the PI Controller,\n\tq_oc: Measured reactive power of the inverter model","internal_default":"[:σq_oc, :q_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactivePowerPI has two states","internal_default":2}],"docstring":"Parameters of a Proportional-Integral Reactive Power controller for a specified power reference","struct_name":"ReactivePowerPI","supertype":"ReactivePowerControl"},{"fields":[{"name":"k2","data_type":"Float64","null_value":0,"comment":"VOC voltage-amplitude control gain","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Reactive Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactiveVirtualOscilator model are:\n\tE_oc: voltage reference state for inner control in the d-axis","internal_default":"[:E_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactiveVirtualOscillator has 1 state","internal_default":1}],"docstring":"Parameters of a Reactive Virtual Oscillator controller. Model is based from the paper Model Reduction for Inverters with Current Limiting and Dispatchable Virtual Oscillator Control by O. Ajala et al.","struct_name":"ReactiveVirtualOscillator","supertype":"ReactivePowerControl"},{"fields":[{"name":"kpv","data_type":"Float64","null_value":0,"comment":"voltage controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"voltage controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffv","data_type":"Float64","null_value":0,"comment":"Binary variable to enable feed-forward gain of voltage.","valid_range":{"max":null,"min":0}},{"name":"rv","data_type":"Float64","null_value":0,"comment":"virtual resistance","valid_range":{"max":null,"min":0}},{"name":"lv","data_type":"Float64","null_value":0,"comment":"virtual inductance","valid_range":{"max":null,"min":0}},{"name":"kpc","data_type":"Float64","null_value":0,"comment":"current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffi","data_type":"Float64","null_value":0,"comment":"Binary variable to enable feed-forward gain of current","valid_range":{"max":null,"min":0}},{"name":"ωad","data_type":"Float64","null_value":0,"comment":"active damping filter cutoff frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kad","data_type":"Float64","null_value":0,"comment":"active damping gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the VoltageModeControl model are:\n\tξd_ic: d-axis integrator state of the PI voltage controller,\n\tξq_ic: q-axis integrator state of the PI voltage controller,\n\tγd_ic: d-axis integrator state of the PI current controller,\n\tγq_ic: q-axis integrator state of the PI current controller,\n\tϕd_ic: d-axis low-pass filter of active damping,\n\tϕq_ic: q-axis low-pass filter of active damping","internal_default":"[:ξd_ic, :ξq_ic, :γd_ic, :γq_ic, :ϕd_ic, :ϕq_ic]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"VoltageModeControl has 6 states","internal_default":6}],"docstring":"Parameters of an inner loop current control PID using virtual impedance based on D'Arco, Suul and Fosso.\n\"A Virtual Synchronous Machine implementation for distributed control of power converters in SmartGrids.\"\nElectric Power Systems Research 122 (2015) 180–197.","struct_name":"VoltageModeControl","supertype":"InnerControl"},{"fields":[{"name":"kpc","data_type":"Float64","null_value":0,"comment":"Current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"Current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffv","data_type":"Float64","null_value":0,"comment":"Gain to enable feed-forward gain of voltage.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the CurrentModeControl model are:\n\tγd_ic: d-axis integrator state of the PI current controller,\n\tγq_ic: q-axis integrator state of the PI current controller","internal_default":"[:γd_ic, :γq_ic]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"CurrentControl has 2 states","internal_default":2}],"docstring":"Parameters of an inner loop PI current control using based on Purba, Dhople, Jafarpour, Bullo and Johnson.\n\"Reduced-order Structure-preserving Model for Parallel-connected Three-phase Grid-tied Inverters.\"\n2017 IEEE 18th Workshop on Control and Modeling for Power Electronics (COMPEL): 1-7.","struct_name":"CurrentModeControl","supertype":"InnerControl"},{"fields":[{"name":"Q_Flag","data_type":"Int","null_value":0,"comment":"Q Flag used for I_qinj","valid_range":{"max":1,"min":0}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"PQ Flag used for the Current Limit Logic","valid_range":{"max":1,"min":0}},{"name":"Vdip_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for Voltage Dip Logic `(Vdip, Vup)`"},{"name":"T_rv","data_type":"Float64","null_value":0,"comment":"Voltage Filter Time Constant","valid_range":{"max":null,"min":0}},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage error deadband thresholds `(dbd1, dbd2)`"},{"name":"K_qv","data_type":"Float64","null_value":0,"comment":"Reactive current injection gain during over and undervoltage conditions","valid_range":{"max":null,"min":0}},{"name":"Iqinj_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for Iqinj `(I_qh1, I_ql1)`"},{"name":"V_ref0","data_type":"Float64","null_value":0,"comment":"User defined reference. If 0, PSID initializes to initial terminal voltage","valid_range":{"max":null,"min":0}},{"name":"K_vp","data_type":"Float64","null_value":0,"comment":"Voltage regulator proportional gain (used when QFlag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_vi","data_type":"Float64","null_value":0,"comment":"Voltage regulator integral gain (used when QFlag = 1)","valid_range":{"max":null,"min":0}},{"name":"T_iq","data_type":"Float64","null_value":0,"comment":"Time constant for low-pass filter for state q_V when QFlag = 0","valid_range":{"max":null,"min":0}},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on total converter current","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the RECurrentControlB depends on the Flags","internal_default":"PowerSystems.get_REControlB_states(Q_Flag)"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the RECurrentControlB depends on the Flags","internal_default":"2"}],"docstring":"Parameters of the Inner Control part of the REECB model in PSS/E","struct_name":"RECurrentControlB","supertype":"InnerControl"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"Pf_Flag","data_type":"Int","null_value":0,"comment":"Flag for Power Factor Control","valid_range":{"max":1,"min":0}},{"name":"Freq_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable frequency control","valid_range":{"max":1,"min":0}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"Flag used to enforce maximum current","valid_range":{"max":1,"min":0}},{"name":"Gen_Flag","data_type":"Int","null_value":0,"comment":"Flag to specify generator or storage","valid_range":{"max":1,"min":0}},{"name":"Vtrip_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable voltage trip logic","valid_range":{"max":1,"min":0}},{"name":"Ftrip_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable frequency trip logic","valid_range":{"max":1,"min":0}},{"name":"T_rv","data_type":"Float64","null_value":0,"comment":"Voltage measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"Trf","data_type":"Float64","null_value":0,"comment":"Frequency measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage deadband thresholds `(dbd1, dbd2)`"},{"name":"K_qv","data_type":"Float64","null_value":0,"comment":"Proportional voltage control gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Tp","data_type":"Float64","null_value":0,"comment":"Power measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"T_iq","data_type":"Float64","null_value":0,"comment":"Time constant for low-pass filter for state q_V when QFlag = 0","valid_range":{"max":null,"min":0}},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"Reciprocal of droop for over-frequency conditions (>0) (pu)","valid_range":{"max":null,"min":0}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"Reciprocal of droop for under-frequency conditions <=0) (pu)","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Frequency control deadband thresholds `(fdbd1, fdbd2)`"},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Frequency error limits (femin, femax)"},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power limits (Pmin, Pmax)"},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power reference ramp rate limits (dPmin, dPmax)"},{"name":"Tpord","data_type":"Float64","null_value":0,"comment":"Power filter time constant","valid_range":{"max":null,"min":0}},{"name":"Kpg","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Kig","data_type":"Float64","null_value":0,"comment":"PI controller integral gain (pu)","valid_range":{"max":null,"min":0}},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on total converter current (pu)","valid_range":{"max":null,"min":0}},{"name":"vl_pnts","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0), (0.0, 0.0)]","comment":"Low voltage cutout points `[(tv10, vl0), (tv11, vl1)]`"},{"name":"vh_pnts","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0), (0.0, 0.0)]","comment":"High voltage cutout points `[(tvh0, vh0), (tvh1, vh1)]`"},{"name":"Vrfrac","data_type":"Float64","null_value":0,"comment":"Fraction of device that recovers after voltage comes back to within vl1 < V < vh1 (0 <= Vrfrac <= 1)","valid_range":{"max":1,"min":0}},{"name":"fl","data_type":"Float64","null_value":0,"comment":"Inverter frequency break-point for low frequency cut-out (Hz)","valid_range":{"max":null,"min":0}},{"name":"fh","data_type":"Float64","null_value":0,"comment":"Inverter frequency break-point for high frequency cut-out (Hz)","valid_range":{"max":null,"min":0}},{"name":"tfl","data_type":"Float64","null_value":0,"comment":"Low frequency cut-out timer corresponding to frequency fl (s)","valid_range":{"max":null,"min":0}},{"name":"tfh","data_type":"Float64","null_value":0,"comment":"High frequency cut-out timer corresponding to frequency fh (s)","valid_range":{"max":null,"min":0}},{"name":"Tg","data_type":"Float64","null_value":0,"comment":"Current control time constant (to represent behavior of inner control loops) (> 0) (s)","valid_range":{"max":null,"min":0}},{"name":"rrpwr","data_type":"Float64","null_value":0,"comment":"Ramp rate for real power increase following a fault (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Tv","data_type":"Float64","null_value":0,"comment":"Time constant on the output of the multiplier (s)","valid_range":{"max":null,"min":0}},{"name":"Vpr","data_type":"Float64","null_value":0,"comment":"Voltage below which frequency tripping is disabled (pu)","valid_range":{"max":null,"min":0}},{"name":"Iq_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Reactive current injection limits (Iqll, Iqhl)"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"User defined voltage reference. If 0, PSID initializes to initial terminal voltage","valid_range":{"max":null,"min":0}},{"name":"Pfa_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference power factor","valid_range":{"max":null,"min":0}},{"name":"ω_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference frequency","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference reactive power, in pu","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference active power, in pu","valid_range":{"max":null,"min":0}},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of AggregateDistributedGenerationA depends on the Flags","internal_default":"PowerSystems.get_AggregateDistributedGenerationA_states(Freq_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of AggregateDistributedGenerationA depends on the Flags","internal_default":"PowerSystems.get_AggregateDistributedGenerationA_states(Freq_Flag)[2]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of the DERA1 model in PSS/E","struct_name":"AggregateDistributedGenerationA","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","data_type":"Float64","null_value":"0.0"},{"name":"R_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin resistance","valid_range":{"max":null,"min":0}},{"name":"X_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin reactance","valid_range":{"max":null,"min":0}},{"name":"internal_voltage","default":"1.0","data_type":"Float64","null_value":0,"comment":"Internal Voltage","valid_range":{"max":null,"min":0}},{"name":"internal_angle","default":"0.0","data_type":"Float64","null_value":0,"comment":"Internal Angle"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This struct acts as an infinity bus.","struct_name":"Source","supertype":"StaticInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin resistance","valid_range":{"max":null,"min":0}},{"name":"X_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin reactance","valid_range":{"max":null,"min":0}},{"name":"internal_voltage_bias","default":"0.0","data_type":"Float64","null_value":0,"comment":"a0 term of the Fourier Series for the voltage"},{"name":"internal_voltage_frequencies","default":"[0.0]","data_type":"Vector{Float64}","null_value":[0],"comment":"Frequencies in radians/s"},{"name":"internal_voltage_coefficients","default":"[(0.0, 0.0)]","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0)]","comment":"Coefficients for terms n > 1. First component corresponds to sin and second component to cos"},{"name":"internal_angle_bias","default":"0.0","data_type":"Float64","null_value":0,"comment":"a0 term of the Fourier Series for the angle"},{"name":"internal_angle_frequencies","default":"[0.0]","data_type":"Vector{Float64}","null_value":[0],"comment":"Frequencies in radians/s"},{"name":"internal_angle_coefficients","default":"[(0.0, 0.0)]","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0)]","comment":"Coefficients for terms n > 1. First component corresponds to sin and second component to cos"},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"State for time, voltage and angle","internal_default":"[:Vt, :θt]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"null_value":2,"internal_default":2},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This struct acts as an infinity bus with time varying phasor values magnitude and angle V(t) \theta(t). Time varying functions are represented using fourier series","struct_name":"PeriodicVariableSource","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"Qref_Flag","data_type":"Int","null_value":1,"comment":"Reactive Power Control Mode. 1 VoltVar Control, 2 Constant Q Control, 3 Constant PF Control","valid_range":{"max":3,"min":1}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"Active and reactive power priority mode. 0 for Q priority, 1 for P priority","valid_range":{"max":1,"min":0}},{"name":"Gen_Flag","data_type":"Int","null_value":0,"comment":"Define generator or storage system. 0 unit is a storage device, 1 unit is a generator","valid_range":{"max":1,"min":0}},{"name":"PerOp_Flag","data_type":"Int","null_value":0,"comment":"Defines operation of permisible region in VRT characteristic. 0 for cease, 1 for continuous operation","valid_range":{"max":1,"min":0}},{"name":"Recon_Flag","data_type":"Int","null_value":0,"comment":"Defines if DER can reconnect after voltage ride-through disconnection","valid_range":{"max":1,"min":0}},{"name":"Trv","data_type":"Float64","null_value":0,"comment":"Voltage measurement transducer's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"VV_pnts","data_type":"NamedTuple{(:V1, :V2, :V3, :V4), Tuple{Float64, Float64, Float64, Float64}}","null_value":"(V1=0.0, V2=0.0, V3=0.0, V4=0.0)","comment":"Y-axis Volt-var curve points (V1,V2,V3,V4)"},{"name":"Q_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Reactive power limits in pu (Q_min, Q_max)"},{"name":"Tp","data_type":"Float64","null_value":0,"comment":"Power measurement transducer's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"e_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Error limit in PI controller for q control (e_min, e_max)"},{"name":"Kpq","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain for q control","valid_range":{"max":null,"min":0}},{"name":"Kiq","data_type":"Float64","null_value":0,"comment":"PI controller integral gain for q control","valid_range":{"max":null,"min":0}},{"name":"Iqr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Max. inverter's current","valid_range":{"max":null,"min":0}},{"name":"Tg","data_type":"Float64","null_value":0,"comment":"Current control's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"kWh_Cap","data_type":"Float64","null_value":0,"comment":"BESS capacity in kWh","valid_range":{"max":null,"min":0}},{"name":"SOC_ini","data_type":"Float64","null_value":0,"comment":"Initial state of charge (SOC) in pu","valid_range":{"max":1,"min":0}},{"name":"SOC_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Battery's SOC limits (SOC_min, SOC_max)"},{"name":"Trf","data_type":"Float64","null_value":0,"comment":"Time constant to estimate system frequency, in s","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"NamedTuple{(:fdbd1, :fdbd2), Tuple{Float64, Float64}}","null_value":"(fdbd1=0.0, fdbd2=0.0)","comment":"Frequency error dead band thresholds `(fdbd1, fdbd2)`"},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"reciprocal of droop for over-frequency conditions, in pu","valid_range":{"max":null,"min":0}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"reciprocal of droop for under-frequency conditions, in pu","valid_range":{"max":null,"min":0}},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Frequency error limits in pu (fe_min, fe_max)"},{"name":"Kpp","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain for p control","valid_range":{"max":null,"min":0}},{"name":"Kip","data_type":"Float64","null_value":0,"comment":"PI controller integral gain for p control","valid_range":{"max":null,"min":0}},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Active power limits in pu (P_min, P_max)"},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Ramp rate limits for active power in pu/s (dP_min, dP_max)"},{"name":"T_pord","data_type":"Float64","null_value":0,"comment":"Power filter time constant in s","valid_range":{"max":null,"min":0}},{"name":"rrpwr","data_type":"Float64","null_value":0,"comment":"Ramp rate for real power increase following a fault, in pu/s","valid_range":{"max":null,"min":0}},{"name":"VRT_pnts","data_type":"NamedTuple{(:vrt1, :vrt2, :vrt3, :vrt4, :vrt5), Tuple{Float64, Float64, Float64, Float64, Float64}}","null_value":"(vrt1=0.0, vrt2=0.0, vrt3=0.0, vrt4=0.0, vrt5=0.0)","comment":"Voltage ride through v points (vrt1,vrt2,vrt3,vrt4,vrt5)"},{"name":"TVRT_pnts","data_type":"NamedTuple{(:tvrt1, :tvrt2, :tvrt3), Tuple{Float64, Float64, Float64}}","null_value":"(tvrt1=0.0, tvrt2=0.0, tvrt3=0.0)","comment":"Voltage ride through time points (tvrt1,tvrt2,tvrt3)"},{"name":"tV_delay","data_type":"Float64","null_value":0,"comment":"Time delay for reconnection after voltage ride-through disconnection","valid_range":{"max":null,"min":0}},{"name":"VES_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Min and max voltage for entering service (VES_min,VES_max)"},{"name":"FRT_pnts","data_type":"NamedTuple{(:frt1, :frt2, :frt3, :frt4), Tuple{Float64, Float64, Float64, Float64}}","null_value":"(frt1=0.0, frt2=0.0, frt3=0.0, frt4=0.0)","comment":"Frequency ride through v points (frt1,frt2,frt3,frt4)"},{"name":"TFRT_pnts","data_type":"NamedTuple{(:tfrt1, :tfrt2), Tuple{Float64, Float64}}","null_value":"(tfrt1=0.0, tfrt2=0.0)","comment":"Frequency ride through time points (tfrt1,tfrt2)"},{"name":"tF_delay","data_type":"Float64","null_value":0,"comment":"Time delay for reconnection after frequency ride-through disconnection","valid_range":{"max":null,"min":0}},{"name":"FES_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Min and max frequency for entering service (FES_min,FES_max)"},{"name":"Pfa_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference power factor","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference reactive power, in pu","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference active power, in pu","valid_range":{"max":null,"min":0}},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of GenericDER depend on the Flags","internal_default":"PowerSystems.get_GenericDER_states(Qref_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of GenericDER depend on the Flags","internal_default":"PowerSystems.get_GenericDER_states(Qref_Flag)[2]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Generic Distributed Energy Resource Model. Based on https://scholarspace.manoa.hawaii.edu/bitstream/10125/70994/0304.pdf","struct_name":"GenericDER","supertype":"DynamicInjection"},{"fields":[{"name":"device"},{"name":"droop","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"participation_factor","data_type":"UpDown"},{"name":"reserve_limit_dn","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"reserve_limit_up","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"inertia","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"cost","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"time_series_container","data_type":"InfrastructureSystems.TimeSeriesContainer"},{"name":"internal","data_type":"InfrastructureSystems.InfrastructureSystemsInternal"}],"struct_name":"RegulationDevice"}]} \ No newline at end of file +{"struct_validation_descriptors":[{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"fixed cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data in two parts: fixed and variable cost.","struct_name":"TwoPartCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data in Three parts fixed, variable cost and start - stop costs.","struct_name":"ThreePartCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"energy_shortage_cost","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Cost incurred by the model for being short of the energy target.","valid_range":{"max":null,"min":0}},{"name":"energy_surplus_cost","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Cost incurred by the model for surplus energy stored.","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure for Operational Cost Data like variable cost and start - stop costs and energy storage cost.","struct_name":"StorageManagementCost","supertype":"OperationalCost"},{"fields":[{"name":"no_load","data_type":"Float64","null_value":"0.0","comment":"no load cost"},{"name":"start_up","data_type":"NamedTuple{(:hot, :warm, :cold), NTuple{3, Float64}}","null_value":"(hot = START_COST, warm = START_COST, cold = START_COST)","comment":"start-up cost at different stages of the thermal cycle. Warm is also refered as intermediate in some markets"},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"variable","default":"nothing","data_type":"Union{Nothing, IS.TimeSeriesKey}","null_value":"nothing","comment":"Variable Cost TimeSeriesKey"},{"name":"ancillary_services","default":"Vector{Service}()","data_type":"Vector{Service}","null_value":"Vector{Service}()","comment":"Bids for the ancillary services"}],"docstring":"Data Structure Operational Cost to reflect market bids of energy and ancilliary services.\nCompatible with most US Market bidding mechanisms","struct_name":"MarketBidCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"no_load","data_type":"Float64","null_value":"0.0","comment":"no load cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"NamedTuple{(:hot, :warm, :cold), NTuple{3, Float64}}","null_value":"(hot = START_COST, warm = START_COST, cold = START_COST)","comment":"start-up cost"},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data which includes fixed, variable cost, multiple start up cost and stop costs.","struct_name":"MultiStartCost","supertype":"OperationalCost"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"peak_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"peak_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"load_response","default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A collection of buses for control purposes.","struct_name":"Area","supertype":"AggregationTopology"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"peak_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"peak_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A collection of buses for electricity price analysis.","struct_name":"LoadZone","supertype":"AggregationTopology"},{"inner_constructor_check":"check_bus_params","fields":[{"name":"number","data_type":"Int","null_value":"0","comment":"number associated with the bus"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init","comment":"the name of the bus"},{"name":"bustype","data_type":"Union{Nothing, BusTypes}","null_value":"nothing","comment":"bus type"},{"name":"angle","data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","comment":"angle of the bus in radians","valid_range":{"max":1.571,"min":-1.571}},{"name":"magnitude","data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"warn","comment":"voltage as a multiple of basevoltage","valid_range":"voltage_limits"},{"name":"voltage_limits","data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)","comment":"limits on the voltage variation as multiples of basevoltage"},{"name":"base_voltage","data_type":"Union{Nothing, Float64}","null_value":"nothing","validation_action":"error","comment":"the base voltage in kV","valid_range":{"max":null,"min":0}},{"name":"area","default":"nothing","data_type":"Union{Nothing, Area}","null_value":"nothing","comment":"the area containing the bus"},{"name":"load_zone","default":"nothing","data_type":"Union{Nothing, LoadZone}","null_value":"nothing","comment":"the load zone containing the bus"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A power-system bus.","struct_name":"Bus","supertype":"Topology"},{"fields":[{"name":"from","data_type":"Bus","null_value":"Bus(nothing)","comment":"The initial bus"},{"name":"to","data_type":"Bus","null_value":"Bus(nothing)","comment":"The terminal bus"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A topological Arc.","struct_name":"Arc","supertype":"Topology","custom_code":"get_name(arc::Arc) = (get_name ∘ get_from)(arc) * \" -> \" * (get_name ∘ get_to)(arc)"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"b","data_type":"FromTo","null_value":"(from=0.0, to=0.0)","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":100,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"angle_limits","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"Line","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"b","data_type":"FromTo","null_value":"(from=0.0, to=0.0)","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"flow_limits","needs_conversion":true,"data_type":"FromTo_ToFrom","null_value":"(from_to=0.0, to_from=0.0)","comment":"throw warning above max SIL"},{"name":"rate","needs_conversion":true,"data_type":"Float64","null_value":"0.0","comment":"compare to SIL (warn) (theoretical limit)"},{"name":"angle_limits","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"MonitoredLine","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","Comment":"System per-unit value","data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":{"max":2,"min":0}},{"name":"tap","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":2,"min":0}},{"name":"α","data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":{"max":1.571,"min":-1.571}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"phase_angle_limits","default":"(min=-1.571, max=1.571)","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"PhaseShiftingTransformer","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":-2}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"tap","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":2,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"TapTransformer","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"nothing","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"The 2-W transformer model uses an equivalent circuit assuming the impedance is on the High Voltage Side of the transformer. The model allocates the iron losses and magnetizing susceptance to the primary side.","struct_name":"Transformer2W","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"active_power_limits_from","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"active_power_limits_to","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_from","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_to","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"loss","data_type":"NamedTuple{(:l0, :l1), Tuple{Float64, Float64}}","null_value":"(l0=0.0, l1=0.0)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"a High voltage DC line.","struct_name":"HVDCLine","supertype":"DCBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"rectifier_tap_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"rectifier_xrc","data_type":"Float64","null_value":"0.0"},{"name":"rectifier_firing_angle","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"inverter_tap_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"inverter_xrc","data_type":"Float64","null_value":"0.0"},{"name":"inverter_firing_angle","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"As implemented in Milano's Book, Page 397.","struct_name":"VSCDCLine","supertype":"DCBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","data_type":"TwoPartCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`TwoPartCost`](@ref)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"InterruptiblePowerLoad","supertype":"ControllableLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"Y","data_type":"Complex{Float64}","null_value":"0.0","comment":"System per-unit value"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection model for admittance"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"FixedAdmittance","supertype":"ElectricLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"Y","data_type":"Complex{Float64}","null_value":"0.0","comment":"Initial impedance at N = 0"},{"name":"number_of_steps","default":"0","data_type":"Int","null_value":"0","comment":"Number of steps for adjustable shunt"},{"name":"Y_increase","default":"0","data_type":"Complex{Float64}","null_value":"0","comment":"Admittance increment for each of step increase"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection model for admittance"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"SwitchedAdmittance","supertype":"ElectricLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a static power load.","struct_name":"PowerLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"constant_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"constant_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"impedance_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"impedance_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"current_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"current_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_constant_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_constant_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_impedance_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_impedance_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_current_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_current_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a standard load.","struct_name":"StandardLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"α","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Coefficient relating voltage dependence for power P = P0 * V^α","valid_range":{"max":null,"min":0}},{"name":"β","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Coefficient relating voltage dependence for power Q = Q0 * V^β","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a static exponential load.","struct_name":"ExponentialLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_s","data_type":"Float64","null_value":0,"comment":"Armature stator resistance","valid_range":{"max":null,"min":0}},{"name":"R_r","data_type":"Float64","null_value":0,"comment":"Rotor resistance","valid_range":{"max":null,"min":0}},{"name":"X_ls","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_lr","data_type":"Float64","null_value":0,"comment":"Rotor Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_m","data_type":"Float64","null_value":0,"comment":"Stator-Rotor Mutual Reactance","valid_range":{"max":null,"min":0}},{"name":"H","data_type":"Float64","null_value":0,"comment":"Motor Inertia Constant [s]","valid_range":{"max":null,"min":0}},{"name":"A","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Quadratic Term","valid_range":{"max":1,"min":0}},{"name":"B","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Linear Term","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"C","data_type":"Float64","comment":"Torque-Speed Constant Term","internal_default":"PowerSystems.calculate_IM_torque_params(A, B)"},{"name":"τ_ref","data_type":"Float64","comment":"Reference torque parameter","internal_default":"1.0"},{"name":"B_shunt","data_type":"Float64","comment":"Susceptance Initialization Corrector Term","internal_default":"0.0"},{"name":"X_ad","data_type":"Float64","comment":"Equivalent d-axis reactance","internal_default":"(1.0 / X_m + 1.0 / X_ls + 1.0 / X_lr)^(-1)"},{"name":"X_aq","data_type":"Float64","comment":"Equivalent q-axis reactance","internal_default":"X_ad"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψ_qs: stator flux in the q-axis,\n\tψ_ds: stator flux in the d-axis,\n\tψ_qr: rotor flux in the q-axis,\n\tψ_dr: rotor flux in the d-axis, \n\tωr: Rotor speed [pu],","internal_default":"[:ψ_qs, :ψ_ds, :ψ_qr, :ψ_dr, :ωr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SingleCageInductionMachine has 5 states","internal_default":5},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 5-states three-phase single cage induction machine with quadratic torque-speed relationship.","struct_name":"SingleCageInductionMachine","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_s","data_type":"Float64","null_value":0,"comment":"Armature stator resistance","valid_range":{"max":null,"min":0}},{"name":"R_r","data_type":"Float64","null_value":0,"comment":"Rotor resistance","valid_range":{"max":null,"min":0}},{"name":"X_ls","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_lr","data_type":"Float64","null_value":0,"comment":"Rotor Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_m","data_type":"Float64","null_value":0,"comment":"Stator-Rotor Mutual Reactance","valid_range":{"max":null,"min":0}},{"name":"H","data_type":"Float64","null_value":0,"comment":"Motor Inertia Constant [s]","valid_range":{"max":null,"min":0}},{"name":"A","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Quadratic Term","valid_range":{"max":1,"min":0}},{"name":"B","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Linear Term","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"C","data_type":"Float64","comment":"Torque-Speed Constant Term","internal_default":"PowerSystems.calculate_IM_torque_params(A, B)"},{"name":"τ_ref","data_type":"Float64","comment":"Reference torque parameter","internal_default":"1.0"},{"name":"B_shunt","data_type":"Float64","comment":"Susceptance Initialization Corrector Term","internal_default":"0.0"},{"name":"X_ss","data_type":"Float64","comment":"Stator self reactance","internal_default":"X_ls + X_m"},{"name":"X_rr","data_type":"Float64","comment":"Rotor self reactance","internal_default":"X_lr + X_m"},{"name":"X_p","data_type":"Float64","comment":"Transient reactance","internal_default":"X_ss - X_m^2 / X_rr"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψ_qr: rotor flux in the q-axis,\n\tψ_dr: rotor flux in the d-axis, \n\tωr: Rotor speed [pu],","internal_default":"[:ψ_qr, :ψ_dr, :ωr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimplifiedSingleCageInductionMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 3-states three-phase single cage induction machine with quadratic torque-speed relationship.","struct_name":"SimplifiedSingleCageInductionMachine","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"a","data_type":"Float64","null_value":0,"comment":"Active power static exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"b","data_type":"Float64","null_value":0,"comment":"Reactive power static exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"α","data_type":"Float64","null_value":0,"comment":"Active power transient exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"β","data_type":"Float64","null_value":0,"comment":"Reactive power transient exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Active Power Time Constant","valid_range":{"max":null,"min":0}},{"name":"T_q","data_type":"Float64","null_value":0,"comment":"Reactive Power Time Constant","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"base_power","data_type":"Float64","comment":"Base Power","internal_default":"100.0"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p: Integrator state of the active power,\n\tx_q: Integrator state of the reactive power,","internal_default":"[:x_p, :x_q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"DynamicExponentialLoad has 2 states","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 2-states of a generic dynamic load model based on VOLTAGE STABILITY ANALYSIS USING GENERIC DYNAMIC LOAD MODELS by W. Xu and Y. Mansour, IEEE Transactions on Power Systems, 1994.","struct_name":"DynamicExponentialLoad","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"r_load","data_type":"Float64","null_value":0,"comment":"DC-side resistor","valid_range":{"max":null,"min":0}},{"name":"c_dc","data_type":"Float64","null_value":0,"comment":"DC-side capacitor","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"Converter side filter resistance","valid_range":{"max":null,"min":0}},{"name":"lf","data_type":"Float64","null_value":0,"comment":"Converter side filter inductance","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"AC Converter filter capacitance","valid_range":{"max":null,"min":0}},{"name":"rg","data_type":"Float64","null_value":0,"comment":"Network side filter resistance","valid_range":{"max":null,"min":0}},{"name":"lg","data_type":"Float64","null_value":0,"comment":"Network side filter inductance","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"Proportional constant for PI-PLL block","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"Integral constant for PI-PLL block","valid_range":{"max":null,"min":0}},{"name":"kpv","data_type":"Float64","null_value":0,"comment":"Proportional constant for Voltage Control block","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"Integral constant for Voltage Control block","valid_range":{"max":null,"min":0}},{"name":"kpc","data_type":"Float64","null_value":0,"comment":"Proportional constant for Current Control block","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"Integral constant for Current Control block","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"P_ref","data_type":"Float64","comment":"Reference active power parameter","internal_default":"1.0"},{"name":"Q_ref","data_type":"Float64","comment":"Reference reactive power parameter","internal_default":"1.0"},{"name":"V_ref","data_type":"Float64","comment":"Reference voltage parameter","internal_default":"1.0"},{"name":"ω_ref","data_type":"Float64","comment":"Reference frequency parameter","internal_default":"1.0"},{"name":"is_filter_differential","data_type":"Int","comment":"Boolean to decide if filter states are differential or algebraic","internal_default":"1"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tθ_pll: PLL deviation angle, \n\tϵ_pll: PLL integrator state, \n\tη: DC-voltage controller integrator state, \n\tv_dc: DC voltage at the capacitor, \n\tγd: d-axis Current controller integrator state, \n\tγq: q-axis Current controller integrator state, \n\tir_cnv: Real current out of the converter,\n\tii_cnv: Imaginary current out of the converter,\n\tvr_filter: Real voltage at the filter's capacitor,\n\tvi_filter: Imaginary voltage at the filter's capacitor,\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:θ_pll, :ϵ_pll, :η, :v_dc, :γd, :γq, :ir_cnv, :ii_cnv, :vr_filter, :vi_filter, :ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActiveConstantPowerLoad has 12 states","internal_default":12},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 12-states active power load based on the paper Dynamic Stability of a Microgrid With an Active Load from N. Bottrell, M. Prodanovic and T. Green in IEEE Transactions on Power Electronics, 2013.","struct_name":"ActiveConstantPowerLoad","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"storage_capacity","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Maximum storage capacity in the reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"inflow","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline inflow into the reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"initial_storage","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Initial storage capacity in the reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"storage_target","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Storage target at the end of simulation as ratio of storage capacity."},{"name":"conversion_factor","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion factor from flow/volume to energy: m^3 -> p.u-hr."},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroEnergyReservoir","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroDispatch","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"rating_pump","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Withdrawl of the pump. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"active_power_limits_pump","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_pump","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits_pump","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute of pump","valid_range":{"max":null,"min":0}},{"name":"time_limits_pump","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits of pump in hours","valid_range":{"max":null,"min":0}},{"name":"storage_capacity","needs_conversion":true,"data_type":"UpDown","null_value":"(up=0.0, down=0.0)","validation_action":"error","comment":"Maximum storage capacity in the upper and lower reservoirs (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"inflow","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline inflow into the upper reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"outflow","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline outflow from the lower reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"initial_storage","needs_conversion":true,"data_type":"UpDown","null_value":"(up=0.0, down=0.0)","validation_action":"error","comment":"Initial storage capacity in the upper and lower reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"storage_target","default":"(up=1.0, down=1.0)","data_type":"UpDown","null_value":"(up=0.0, down=0.0)","comment":"Storage target of upper reservoir at the end of simulation as ratio of storage capacity."},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"pump_efficiency","default":"1.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Efficiency of pump","valid_range":{"max":1,"min":0}},{"name":"conversion_factor","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion factor from flow/volume to energy: m^3 -> p.u-hr."},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroPumpedStorage","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"power_factor","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":1,"min":0}},{"name":"operation_cost","data_type":"TwoPartCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`TwoPartCost`](@ref)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"RenewableDispatch","supertype":"RenewableGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"power_factor","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for fixed renewable generation technologies.","struct_name":"RenewableFix","supertype":"RenewableGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"status","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"active_power_limits"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"operation_cost","data_type":"OperationalCost","null_value":"ThreePartCost(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"time_limits","default":"nothing","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"must_run","default":"false","data_type":"Bool","null_value":"false"},{"name":"prime_mover","default":"PrimeMovers.OT","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"fuel","default":"ThermalFuels.OTHER","data_type":"ThermalFuels","null_value":"ThermalFuels.OTHER","comment":"Prime mover fuel according to EIA 923"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for thermal generation technologies.","struct_name":"ThermalStandard","supertype":"ThermalGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"status","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"active_power_limits"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"fuel","data_type":"ThermalFuels","null_value":"ThermalFuels.OTHER","comment":"Prime mover fuel according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"power_trajectory","needs_conversion":true,"data_type":"Union{Nothing, StartUpShutDown}","null_value":"nothing","validation_action":"error","comment":"Power trajectory the unit will take during the start-up and shut-down ramp process","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"start_time_limits","data_type":"Union{Nothing, NamedTuple{(:hot, :warm, :cold), Tuple{Float64, Float64, Float64}}}","null_value":"nothing","comment":" Time limits for start-up based on turbine temperature in hours"},{"name":"start_types","data_type":"Int","null_value":"1","validation_action":"error","comment":" Number of start-up based on turbine temperature","valid_range":{"max":3,"min":1}},{"name":"operation_cost","data_type":"OperationalCost","null_value":"MultiStartCost(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"must_run","default":"false","data_type":"Bool","null_value":"false"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for thermal generation technologies.","struct_name":"ThermalMultiStart","supertype":"ThermalGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.BA","comment":"Prime mover technology according to EIA 923"},{"name":"initial_energy","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"State of Charge of the Battery p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"state_of_charge_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","comment":"Maximum and Minimum storage capacity in p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"input_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"output_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"efficiency","data_type":"NamedTuple{(:in, :out), Tuple{Float64, Float64}}","null_value":"(in=0.0, out=0.0)","validation_action":"warn","valid_range":{"max":1,"min":0}},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"nothing","data_type":"Union{Nothing, OperationalCost}","null_value":"nothing"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a generic battery","struct_name":"GenericBattery","supertype":"Storage"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.BA","comment":"Prime mover technology according to EIA 923"},{"name":"initial_energy","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"State of Charge of the Battery p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"state_of_charge_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","comment":"Maximum and Minimum storage capacity in p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"input_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"output_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"efficiency","data_type":"NamedTuple{(:in, :out), Tuple{Float64, Float64}}","null_value":"(in=0.0, out=0.0)","validation_action":"warn","valid_range":{"max":1,"min":0}},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"nothing","data_type":"Union{Nothing, OperationalCost}","null_value":"nothing"},{"name":"storage_target","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"Storage target at the end of simulation as ratio of storage capacity."},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a battery compatible with energy management formulations.","struct_name":"BatteryEMS","supertype":"Storage"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a proportional reserve product for system simulations.","parametric":"ReserveDirection","struct_name":"StaticReserve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a non-spinning reserve product for system simulations.","struct_name":"StaticReserveNonSpinning","supertype":"ReserveNonSpinning"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"contributing_services","default":"Vector{Service}()","data_type":"Vector{Service}","exclude_setter":true,"null_value":"Vector{Service}()","comment":"Services that contribute for this requirement constraint"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a group reserve product for system simulations.","parametric":"ReserveDirection","struct_name":"StaticReserveGroup","supertype":"Service"},{"fields":[{"name":"variable","data_type":"Union{Nothing, IS.TimeSeriesKey}","null_value":"nothing","comment":"Variable Cost TimeSeriesKey"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a operating reserve with demand curve product for system simulations.","parametric":"ReserveDirection","struct_name":"ReserveDemandCurve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for the procurement products for system simulations.","parametric":"ReserveDirection","struct_name":"VariableReserve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for the procurement products for system simulations.","struct_name":"VariableReserveNonSpinning","supertype":"ReserveNonSpinning"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bias","data_type":"Float64","null_value":"0.0"},{"name":"K_p","data_type":"Float64","null_value":"0.0","comment":"PID Proportional Constant"},{"name":"K_i","data_type":"Float64","null_value":"0.0","comment":"PID Integral Constant"},{"name":"K_d","data_type":"Float64","null_value":"0.0","comment":"PID Derrivative Constant"},{"name":"delta_t","data_type":"Float64","null_value":"0.0","comment":"PID Discretization period [Seconds]"},{"name":"area","default":"nothing","data_type":"Union{Nothing, Area}","null_value":"Area(nothing)","comment":"the area controlled by the AGC"},{"name":"initial_ace","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"PID Discretization period [Seconds]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"AGC","supertype":"Service"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"requirement","data_type":"Float64","null_value":"0.0"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"Transfer","supertype":"Service"},{"fields":[{"name":"Vf","data_type":"Float64","null_value":0,"comment":"Fixed voltage field applied to the rotor winding","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"Fixed AVR has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"null_value":0,"comment":"Fixed AVR has no states","internal_default":0},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"Fixed AVR has no states","internal_default":"Vector{StateTypes}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a AVR that returns a fixed voltage to the rotor winding","struct_name":"AVRFixed","supertype":"AVR"},{"fields":[{"name":"Kv","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: field voltage","internal_default":"[:Vf]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"Fixed AVR has 1 states","internal_default":1},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"Simple AVR has 1 differential states","internal_default":"[StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a simple proportional AVR in the derivative of EMF\ni.e. an integrator controller on EMF","struct_name":"AVRSimple","supertype":"AVR"},{"fields":[{"name":"Ta_Tb","data_type":"Float64","null_value":0,"comment":"Ratio of lead and lag time constants","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"comment":"Lag time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"K","data_type":"Float64","null_value":0,"comment":"Gain","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field circuit time constant in s","valid_range":{"max":null,"min":0}},{"name":"V_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field voltage limits"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tVf: Voltage field,\tVr: Lead-lag state","internal_default":"[:Vf, :Vr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SEXS has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"SEXS has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of Simplified Excitation System Model - SEXS in PSSE","struct_name":"SEXS","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter constant related to self-excited field","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":1,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr1: input lead lag,\n\tVr2: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vf, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The ESDC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESDC1A has 5 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Self-excited shunt fields with the voltage regulator operating in a mode commonly termed buck-boost. \nParameters of IEEE Std 421.5 Type DC1A Excitacion System. This model corresponds to ESDC1A in PSSE and PSLF","struct_name":"ESDC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter constant related to self-excited field","valid_range":{"max":1,"min":-1}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant. Appropiate Data: 5.0 <= Tf/Kf <= 15.0","valid_range":{"max":1.5,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr1: input lead lag,\n\tVr2: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vf, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The ESDC2A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESDC2A has 5 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Is used to represent field-controlled dc commutator exciters with continuously acting voltage regulators having power supplies derived from the generator or auxiliaries bus.\nParameters of IEEE Std 421.5 Type DC2A Excitacion System. This model corresponds to ESDC2A in PSSE and PSLF","struct_name":"ESDC2A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter constant related to self-excited field","valid_range":{"max":1,"min":-1}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":1,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant. Appropiate Data: 5 <= Tf/Kf <= 15","valid_range":{"max":null,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vf, :Vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The IEEET1 has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEET1 I has 4 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"1968 IEEE type 1 excitation system model","struct_name":"IEEET1","supertype":"AVR"},{"fields":[{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Amplifier Gain","valid_range":{"max":null,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Field circuit integral deviation","valid_range":{"max":null,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"comment":"Stabilizer Gain in s * pu/pu","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Amplifier Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field Circuit Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"comment":"Stabilizer Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Va_min, Va_max)`"},{"name":"Ae","data_type":"Float64","null_value":0,"comment":"1st ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"Be","data_type":"Float64","null_value":0,"comment":"2nd ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: Voltage field,\n\tVr1: Amplifier State,\n\tVr2: Stabilizing Feedback State,\n\tVm: Measured voltage","internal_default":"[:Vf, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The AVR Type I has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"AVR Type I has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of an Automatic Voltage Regulator Type I - Resembles IEEE Type DC1","struct_name":"AVRTypeI","supertype":"AVR"},{"fields":[{"name":"K0","data_type":"Float64","null_value":0,"comment":"Regulator Gain","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"First Pole in s","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"First zero in s","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"First Pole in s","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"First zero in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field Circuit Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Va_min, Va_max)`"},{"name":"Ae","data_type":"Float64","null_value":0,"comment":"1st ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"Be","data_type":"Float64","null_value":0,"comment":"2nd ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: Voltage field,\n\tVr1: First Lead-Lag state,\n\tVr2: Second lead-lag state,\n\tVm: Measured voltage","internal_default":"[:Vf, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AVR Type II has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"AVR Type II has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of an Automatic Voltage Regulator Type II - Typical static exciter model","struct_name":"AVRTypeII","supertype":"AVR"},{"fields":[{"name":"Ta_Tb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lead input constant ratio","valid_range":{"max":0.3,"min":0.05}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lag input constant in s","valid_range":{"max":20,"min":5}},{"name":"K","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator Gain","valid_range":{"max":100,"min":20}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator Time Constant","valid_range":{"max":1,"min":0}},{"name":"Efd_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field Voltage regulator limits (regulator output) (Efd_min, Efd_max)"},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"rc_rfd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Field current capability. Set = 0 for negative current capability. Typical value 10","valid_range":{"max":10,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVr1: First integrator,\n\tVr2: Second integrator","internal_default":"[:Vr1, :Vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SCRX has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"SCRX has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This exciter is based on an IEEE type SCRX solid state exciter. The output field voltage is varied by a control system to maintain the system voltage at Vref. Please note that this exciter model has no initialization capabilities - this means that it will respond to whatever inputs it receives regardless of the state of the machine model.","struct_name":"SCRX","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage: `(Vr_min, Vr_max)`"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(x) = B(x - A)^2/x"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ESAC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESAC1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A Excitacion System. This model corresponds to ESAC1A in PSSE and PSLF","struct_name":"ESAC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage: `(Vr_min, Vr_max)`"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(x) = B(x - A)^2/x"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified ESAC1A. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A Excitacion System. EXAC1A in PSSE and PSLF","struct_name":"EXAC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC1 has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC1 has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified ESAC1A. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A. EXAC1 in PSSE and PSLF","struct_name":"EXAC1","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Kb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Second Stage regulator gain","valid_range":{"max":500,"min":"eps()"}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant","valid_range":{"max":2,"min":"eps()"}},{"name":"Kl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter gain","valid_range":{"max":1.1,"min":0}},{"name":"Kh","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current regulator feedback gain","valid_range":{"max":1.1,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"V_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum exciter field current","valid_range":{"max":null,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC2 has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC2 has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified AC2. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC2A Excitacion System. The alternator main exciter is used, feeding its output via non-controlled rectifiers. The Type AC2C model is similar to that of Type AC1C except for the inclusion of exciter time constant compensation and exciter field current limiting elements. EXAC2 in PSSE and PSLF.","struct_name":"EXAC2","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output lag time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tk","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Regulator lead time constant","valid_range":{"max":10,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant","valid_range":{"max":2,"min":"eps()"}},{"name":"VFE_lim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter reference","valid_range":{"max":20,"min":-5}},{"name":"Kh","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current regulator feedback gain","valid_range":{"max":100,"min":0}},{"name":"VH_max","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter maximum output","valid_range":{"max":100,"min":0}},{"name":"Th","data_type":"Float64","null_value":0,"comment":"Exciter field current limiter denominator (lag) time constant","valid_range":{"max":1,"min":0}},{"name":"Tj","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter numerator (lead) time constant","valid_range":{"max":1,"min":0}},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":2,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":2,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ESAC6A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESAC6A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified AC6A. Used to represent field-controlled alternator-rectifier excitation systems with system-supplied electronic voltage regulators. \nParameters of IEEE Std 421.5 Type AC6A Excitacion System. ESAC6A in PSSE and PSLF.","struct_name":"ESAC6A","supertype":"AVR"},{"fields":[{"name":"UEL_flags","data_type":"Int","null_value":1,"validation_action":"warn","comment":"Code input for Underexcitization limiter (UEL) entry. Not supported.","valid_range":{"max":3,"min":1}},{"name":"PSS_flags","data_type":"Int","null_value":1,"comment":"Code input for Power System Stabilizer (PSS) or (VOS) entry.","valid_range":{"max":2,"min":1}},{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.1,"min":0}},{"name":"Vi_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage error limits (regulator input) (Vi_min, Vi_max)"},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"First regulator denominator (lead) time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"comment":"First regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Second regulator denominator (lead) time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tb1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Second regulator denominator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator gain","valid_range":{"max":1000,"min":50}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter output `(Vr_min, Vr_max)`"},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":0.3,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant in s","valid_range":{"max":1.5,"min":"eps()"}},{"name":"K_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter output current limiter gain","valid_range":{"max":5,"min":0}},{"name":"I_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter output current limit reference","valid_range":{"max":5,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: First Lead-lag state,\n\tVr2: Second lead-lag state,\n\tVa: Regulator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Va, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ST1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ST1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This excitation system supplies power through a transformer from the generator terminals and its regulated by a controlled rectifier (via thyristors).\nParameters of IEEE Std 421.5 Type ST1A Excitacion System. ESST1A in PSSE and PSLF","struct_name":"ESST1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator gain","valid_range":{"max":500,"min":1}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Vr_min, Vr_max)`"},{"name":"Ta_2","data_type":"Float64","null_value":0,"comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ta_3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ta_4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf_1","validation_actions":"error","data_type":"Float64","null_value":0,"comment":"Rate Feedback time constant in s","valid_range":{"max":15,"min":"eps()"}},{"name":"Tf_2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate Feedback time constant in s","valid_range":{"max":5,"min":0}},{"name":"Efd_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field Voltage regulator limits (regulator output) (Efd_min, Efd_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter constant","valid_range":{"max":1,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter time constant","valid_range":{"max":2,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Kp","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Potential source gain","valid_range":{"max":5,"min":0}},{"name":"Ki","data_type":"Float64","null_value":0,"comment":"current source gain","valid_range":{"max":1.1,"min":0}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter regulation factor","valid_range":{"max":2,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: First Lead-lag state,\n\tVr2: Second regulator lead-lag state,\n\tVr2: Third regulator lead-lag state \n\tVf: Exciter output \n\tVr3: First feedback integrator,\n\tVr4: second feedback integrator","internal_default":"[:Vm, :Vr1, :Vr2, :Vf, :Vr3, :Vr4]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXPIC1 has 6 states","internal_default":6},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXPIC has 6 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Generic Proportional/Integral Excitation System","struct_name":"EXPIC1","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"K_pr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator propotional gain","valid_range":{"max":75,"min":0}},{"name":"K_ir","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator integral gain","valid_range":{"max":75,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (Vi_min, Vi_max)"},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":1,"min":0}},{"name":"K_pm","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator proportional gain output","valid_range":{"max":1.2,"min":0}},{"name":"K_im","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator integral gain output","valid_range":{"max":18,"min":0}},{"name":"Vm_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for inner loop output `(Vm_min, Vm_max)`"},{"name":"Kg","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Feedback gain constant of the inner loop field regulator","valid_range":{"max":1.1,"min":0}},{"name":"Kp","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Potential circuit (voltage) gain coefficient","valid_range":{"max":10,"min":0}},{"name":"Ki","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Compound circuit (current) gain coefficient","valid_range":{"max":1.1,"min":0}},{"name":"VB_max","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum available exciter voltage","valid_range":{"max":20,"min":1}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Reactance associated with potential source","valid_range":{"max":0.5,"min":0}},{"name":"θp","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Potential circuit phase angle (degrees)","valid_range":{"max":90,"min":-90}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"θp_rad","default":"θp*π*inv(180)","data_type":"Float64","null_value":0,"comment":"Potential circuit phase angle (radians)"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVt: Sensed Terminal Voltage,\n\tVr1: Regulator Integrator,\n\tVr2: Regulator Output,\n\tVm: Output integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ST4B has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ST4B has 4 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"In these excitation systems, voltage (and also current in compounded systems) is transformed to an appropriate level. Rectifiers, either controlled or non-controlled, provide the necessary direct current for the generator field.\nParameters of IEEE Std 421.5 Type ST4B Excitacion System. ESST4B in PSSE and PSLF","struct_name":"ESST4B","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vi_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage input limits (Vi_min, Vi_max)"},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Numerator lead-lag (lead) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Denominator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vr_min, Vr_max)"},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Current field constant limiter multiplier","valid_range":{"max":null,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed Terminal Voltage,\n\tVrll: Lead-Lag state,\n\tVr: Regulator Output, \n\tVfb: Feedback state","internal_default":"[:Vm, :Vrll, :Vr, :Vfb]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The EXST1 has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Type ST1 Excitation System (PTI version)","struct_name":"EXST1","supertype":"AVR"},{"fields":[{"name":"Iflim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL Field current limit","valid_range":{"max":null,"min":0}},{"name":"d","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter d","valid_range":{"max":null,"min":0}},{"name":"f","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter f","valid_range":{"max":null,"min":0}},{"name":"Spar","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter Spar","valid_range":{"max":null,"min":0}},{"name":"K1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL delay time constant","valid_range":{"max":null,"min":0}},{"name":"K2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter K2","valid_range":{"max":null,"min":0}},{"name":"Oel_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Oel integrator limits (Oel_min, Oel_max)"},{"name":"G","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"AVR Exciter Gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Numerator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Denominator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"E_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (E_min, E_max)"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVll: Lead-lag internal state,\n\tVex: Exciter Output, \n\toel: OEL integrator state","internal_default":"[:Vll, :Vex, :oel]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The EX4VSA has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Excitation System for Voltage Security Assesment","struct_name":"EX4VSA","supertype":"AVR"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"eq_p","data_type":"Float64","null_value":0,"comment":"Fixed EMF behind the impedance","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"BaseMachine has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"BaseMachine has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Classic Machine: GENCLS in PSSE and PSLF","struct_name":"BaseMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Armature resistance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit. Note: Xd_pp = Xq_pp","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator leakage reactance","valid_range":{"max":null,"min":0}},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Saturation factor at 1 and 1.2 pu flux: S(1.0) = B(|ψ_pp|-A)^2"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"γ_d1 parameter","internal_default":"(Xd_pp - Xl) / (Xd_p - Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"γ_q1 parameter","internal_default":"(Xd_pp - Xl) / (Xq_p - Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"γ_d2 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"γ_q2","data_type":"Float64","comment":"γ_q2 parameter","internal_default":"(Xq_p - Xd_pp) / (Xq_p - Xl)^2"},{"name":"γ_qd","data_type":"Float64","comment":"γ_qd parameter","internal_default":"(Xq - Xl) / (Xd - Xl)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis generator voltage behind the transient reactance,\n\ted_p: d-axis generator voltage behind the transient reactance,\n\tψ_kd: flux linkage in the first equivalent damping circuit in the d-axis,\n\tψ_kq: flux linkage in the first equivalent damping circuit in the d-axis","internal_default":"[:eq_p, :ed_p, :ψ_kd, :ψ_kq]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RoundRotorMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states round-rotor synchronous machine with quadratic/exponential saturation:\nIEEE Std 1110 §5.3.2 (Model 2.2). GENROU or GENROE model in PSSE and PSLF.","struct_name":"RoundRotorMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Armature resistance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit. Note: Xd_pp = Xq_pp","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator leakage reactance","valid_range":{"max":null,"min":0}},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Saturation factor at 1 and 1.2 pu flux: Se(eq_p) = B(eq_p-A)^2"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"γ_d1 parameter","internal_default":"(Xd_pp - Xl) / (Xd_p - Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"γ_q1 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"γ_d2 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis generator voltage behind the transient reactance,\n\tψ_kd: flux linkage in the first equivalent damping circuit in the d-axis,\n\tψq_pp: phasonf of the subtransient flux linkage in the q-axis","internal_default":"[:eq_p, :ψ_kd, :ψq_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SalientPoleMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 3-states salient-pole synchronous machine with quadratic/exponential saturation:\nIEEE Std 1110 §5.3.1 (Model 2.1). GENSAL or GENSAE model in PSSE and PSLF.","struct_name":"SalientPoleMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AndersonFouadMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 6-states synchronous machine: Anderson-Fouad model","struct_name":"AndersonFouadMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"R_f","data_type":"Float64","null_value":0,"comment":"Field rotor winding resistance in per unit","valid_range":{"max":null,"min":0}},{"name":"R_1d","data_type":"Float64","null_value":0,"comment":" Damping rotor winding resistance on d-axis in per unit. This value is denoted as RD in Machowski.","valid_range":{"max":null,"min":0}},{"name":"R_1q","data_type":"Float64","null_value":0,"comment":"Damping rotor winding resistance on q-axis in per unit. This value is denoted as RQ in Machowski.","valid_range":{"max":null,"min":0}},{"name":"L_d","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the d-axis of the rotor, in per unit. This value is denoted as L_ad + L_l in Kundur (and Ld in Machowski).","valid_range":{"max":null,"min":0}},{"name":"L_q","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the q-axis of the rotor, in per unit. This value is denoted as L_aq + L_l in Kundur.","valid_range":{"max":null,"min":0}},{"name":"L_ad","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor field (and damping) winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_aq","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor damping winding inductance on q-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_f1d","data_type":"Float64","null_value":1,"comment":"Mutual inductance between rotor field winding and rotor damping winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_ff","data_type":"Float64","null_value":2,"comment":"Field rotor winding inductance, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1d","data_type":"Float64","null_value":1,"comment":"Inductance of the d-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1q","data_type":"Float64","null_value":1,"comment":"Inductance of the q-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"inv_d_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.127, 3.130, 3.131 From Kundur","internal_default":"inv([[-L_d L_ad L_ad]; [-L_ad L_ff L_f1d]; [-L_ad L_f1d L_1d]])"},{"name":"inv_q_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.128, 3.132 From Kundur","internal_default":"inv([[-L_q L_aq]; [-L_aq L_1q]])"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψd: d-axis stator flux,\n\tψq: q-axis stator flux,\n\tψf: field rotor flux,\n\tψ1d: d-axis rotor damping flux,\n\tψ1q: q-axis rotor damping flux","internal_default":"[:ψd, :ψq, :ψf, :ψ1d, :ψ1q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FullMachine has 5 states","internal_default":5},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameter of a full order flux stator-rotor model without zero sequence flux in the stator.\n The derivative of stator fluxes (ψd and ψq) is NOT neglected. Only one q-axis damping circuit is considered. All parameters are in machine per unit.\n Refer to Chapter 3 of Power System Stability and Control by P. Kundur or Chapter 11 of Power System Dynamics: Stability and Control, by J. Machowski, J. Bialek and J. Bumby, for more details.\n Note that the models are somewhat different (but equivalent) due to the different Park Transformation used in both books.","struct_name":"FullMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"","internal_default":"(Xd_pp-Xl)/(Xd_p-Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"","internal_default":"(Xq_pp-Xl)/(Xq_p-Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"γ_q2","data_type":"Float64","comment":"","internal_default":"(Xq_p - Xq_pp) / (Xq_p - Xl)^2"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage\n\tψd_pp: subtransient flux linkage in the d-axis\n\tψq_pp: subtransient flux linkage in the q-axis","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :ψd_pp, :ψq_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SauerPaiMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of synchronous machine: Sauer Pai model","struct_name":"SauerPaiMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"T_AA","data_type":"Float64","null_value":0,"comment":"Time constant of d-axis additional leakage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γd","data_type":"Float64","comment":"","internal_default":"((Td0_pp*Xd_pp)/(Td0_p*Xd_p) )*(Xd-Xd_p)"},{"name":"γq","data_type":"Float64","comment":"","internal_default":"((Tq0_pp*Xq_pp)/(Tq0_p*Xq_p) )*(Xq-Xq_p)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"MarconatoMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 6-states synchronous machine: Marconato model","struct_name":"MarconatoMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage","internal_default":"[:eq_p, :ed_p]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"OneDOneQMachine has 2 states","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states synchronous machine: Simplified Marconato model\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when\n transmission network dynamics is neglected.","struct_name":"OneDOneQMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleAFMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states simplified Anderson-Fouad (SimpleAFMachine) model.\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when transmission network\n dynamics is neglected.\n If transmission dynamics is considered use the full order Anderson Fouad model.","struct_name":"SimpleAFMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"R_f","data_type":"Float64","null_value":0,"comment":"Field rotor winding resistance in per unit","valid_range":{"max":null,"min":0}},{"name":"R_1d","data_type":"Float64","null_value":0,"comment":" Damping rotor winding resistance on d-axis in per unit. This value is denoted as RD in Machowski.","valid_range":{"max":null,"min":0}},{"name":"R_1q","data_type":"Float64","null_value":0,"comment":"Damping rotor winding resistance on q-axis in per unit. This value is denoted as RQ in Machowski.","valid_range":{"max":null,"min":0}},{"name":"L_d","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the d-axis of the rotor, in per unit. This value is denoted as L_ad + L_l in Kundur (and Ld in Machowski).","valid_range":{"max":null,"min":0}},{"name":"L_q","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the q-axis of the rotor, in per unit. This value is denoted as L_aq + L_l in Kundur.","valid_range":{"max":null,"min":0}},{"name":"L_ad","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor field (and damping) winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_aq","data_type":"Float64","null_value":1,"comment":"Mutual inductance between stator winding and rotor damping winding inductance on q-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_f1d","data_type":"Float64","null_value":1,"comment":"Mutual inductance between rotor field winding and rotor damping winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_ff","data_type":"Float64","null_value":2,"comment":"Field rotor winding inductance, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1d","data_type":"Float64","null_value":1,"comment":"Inductance of the d-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1q","data_type":"Float64","null_value":2,"comment":"Inductance of the q-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"inv_d_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.127, 3.130, 3.131 From Kundur","internal_default":"inv([[-L_d L_ad L_ad]; [-L_ad L_ff L_f1d]; [-L_ad L_f1d L_1d]])"},{"name":"inv_q_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.128, 3.132 From Kundur","internal_default":"inv([[-L_q L_aq]; [-L_aq L_1q]])"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψf: field rotor flux,\n\tψ1d: d-axis rotor damping flux,\n\tψ1q: q-axis rotor damping flux","internal_default":"[:ψf, :ψ1d, :ψ1q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleFullMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameter of a full order flux stator-rotor model without zero sequence flux in the stator.\n The derivative of stator fluxes (ψd and ψq) is neglected. This is standard when\n transmission network dynamics is neglected. Only one q-axis damping circuit\n is considered. All per unit are in machine per unit.\n Refer to Chapter 3 of Power System Stability and Control by P. Kundur or Chapter 11 of Power System Dynamics: Stability and Control, by J. Machowski, J. Bialek and J. Bumby, for more details.\n Note that the models are somewhat different (but equivalent) due to the different Park Transformation used in both books.","struct_name":"SimpleFullMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"T_AA","data_type":"Float64","null_value":0,"comment":"Time constant of d-axis additional leakage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γd","data_type":"Float64","comment":"","internal_default":"((Td0_pp*Xd_pp)/(Td0_p*Xd_p) )*(Xd-Xd_p)"},{"name":"γq","data_type":"Float64","comment":"","internal_default":"((Tq0_pp*Xq_pp)/(Tq0_p*Xq_p) )*(Xq-Xq_p)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleMarconatoMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states synchronous machine: Simplified Marconato model\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when transmission network\n dynamics is neglected.","struct_name":"SimpleMarconatoMachine","supertype":"Machine"},{"fields":[{"name":"V_pss","data_type":"Float64","null_value":0,"comment":"Fixed voltage stabilization signal","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"PSSFixed has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a PSS that returns a fixed voltage to add to the reference for the AVR","struct_name":"PSSFixed","supertype":"PSS"},{"fields":[{"name":"K_ω","data_type":"Float64","null_value":0,"comment":"Proportional gain for frequency","valid_range":{"max":null,"min":0}},{"name":"K_p","data_type":"Float64","null_value":0,"comment":"Proportional gain for active power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"PSSSimple has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a PSS that returns a proportional droop voltage to add to the reference for the AVR","struct_name":"PSSSimple","supertype":"PSS"},{"fields":[{"name":"input_code","data_type":"Int","null_value":1,"validation_action":"error","comment":"Code input for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control","data_type":"Int","null_value":0,"comment":"Remote Bus number for control."},{"name":"A1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A3","data_type":"Float64","null_value":0,"comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Time constant","valid_range":{"max":"2.0","min":"eps()"}},{"name":"Ks","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Proportional gain","valid_range":{"max":null,"min":0}},{"name":"Ls_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits for regulator output `(Ls_min, Ls_max)`"},{"name":"Vcu","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Cutoff limiter upper bound","valid_range":{"max":"1.25","min":0}},{"name":"Vcl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Cutoff limiter lower bound","valid_range":{"max":"1.0","min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p1: 1st filter integration,\n\tx_p2: 2nd filter integration, \n\tx_p3: 3rd filter integration, \n\tx_p4: 4rd filter integration, \n\tx_p5: T1/T2 lead-lag integrator, \n\tx_p6: T3/T4 lead-lag integrator, \n\t:x_p7 last integer,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 7 states","internal_default":7},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 7 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Stabilizing Model PSS. ","struct_name":"IEEEST","supertype":"PSS"},{"fields":[{"name":"KT","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"K/T for washout filter","valid_range":{"max":null,"min":0}},{"name":"T","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant for washout filter","valid_range":{"max":null,"min":0.01}},{"name":"T1T3","data_type":"Float64","null_value":0,"comment":"Time constant division T1/T3","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant","valid_range":{"max":null,"min":0.01}},{"name":"T2T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant division T2/T4","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant","valid_range":{"max":null,"min":0.01}},{"name":"H_lim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"PSS output limit","valid_range":{"max":0.5,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p1: washout filter,\n\tx_p2: T1/T3 lead-lag block, \n\tx_p3: T2/T4 lead-lag block,","internal_default":"[:x_p1, :x_p2, :x_p3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"STAB1 has 3 states","internal_default":3},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"STAB1 has 3 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Speed-Sensitive Stabilizing Model","struct_name":"STAB1","supertype":"PSS"},{"fields":[{"name":"H","data_type":"Float64","null_value":0,"comment":"Rotor inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"D","data_type":"Float64","null_value":0,"comment":"Rotor natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tδ: rotor angle,\n\tω: rotor speed","internal_default":"[:δ, :ω]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SingleMass has 1 state","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of single mass shaft model. Typically represents the rotor mass.","struct_name":"SingleMass","supertype":"Shaft"},{"fields":[{"name":"H","data_type":"Float64","null_value":0,"comment":"Rotor inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_ex","data_type":"Float64","null_value":0,"comment":" Exciter inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"D","data_type":"Float64","null_value":0,"comment":"Rotor natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_ex","data_type":"Float64","null_value":0,"comment":"Exciter natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_12","data_type":"Float64","null_value":0,"comment":"High-Intermediate pressure turbine damping","valid_range":{"max":null,"min":0}},{"name":"D_23","data_type":"Float64","null_value":0,"comment":"Intermediate-Low pressure turbine damping","valid_range":{"max":null,"min":0}},{"name":"D_34","data_type":"Float64","null_value":0,"comment":"Low pressure turbine-Rotor damping","valid_range":{"max":null,"min":0}},{"name":"D_45","data_type":"Float64","null_value":0,"comment":"Rotor-Exciter damping","valid_range":{"max":null,"min":0}},{"name":"K_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_ex","data_type":"Float64","null_value":0,"comment":"Exciter angle coefficient","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tδ: rotor angle,\n\tω: rotor speed,\n\tδ_hp: rotor angle of high pressure turbine,\n\tω_hp: rotor speed of high pressure turbine,\n\tδ_ip: rotor angle of intermediate pressure turbine,\n\tω_ip: rotor speed of intermediate pressure turbine,\n\tδ_lp: rotor angle of low pressure turbine,\n\tω_lp: rotor speed of low pressure turbine,\n\tδ_ex: rotor angle of exciter,\n\tω_lp: rotor speed of exciter","internal_default":"[:δ, :ω, :δ_hp, :ω_hp, :δ_ip, :ω_ip, :δ_lp, :ω_lp, :δ_ex, :ω_ex]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FiveMassShaft has 10 states","internal_default":10},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 5 mass-spring shaft model.\n It contains a High-Pressure (HP) steam turbine, Intermediate-Pressure (IP)\n steam turbine, Low-Pressure (LP) steam turbine, the Rotor and an Exciter (EX) mover.","struct_name":"FiveMassShaft","supertype":"Shaft"},{"fields":[{"name":"efficiency","data_type":"Float64","null_value":0,"comment":" Efficiency factor that multiplies P_ref","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGFixed has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a fixed Turbine Governor that returns a fixed mechanical torque\n given by the product of P_ref*efficiency","struct_name":"TGFixed","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Speed droop parameter","valid_range":{"max":0.1,"min":"eps()"}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Governor time constant in s","valid_range":{"max":0.5,"min":"eps()"}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Combustion chamber time constant","valid_range":{"max":0.5,"min":"eps()"}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Load limit time constant (exhaust gas measurement time)","valid_range":{"max":5,"min":"eps()"}},{"name":"AT","data_type":"Float64","null_value":0,"comment":"Ambient temperature load limit","valid_range":{"max":1,"min":0}},{"name":"Kt","data_type":"Float64","null_value":0,"comment":"Load limit feedback gain","valid_range":{"max":5,"min":0}},{"name":"V_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Operational control limits on fuel valve opening (V_min, V_max)"},{"name":"D_turb","data_type":"Float64","null_value":0,"comment":"Speed damping coefficient of gas turbine rotor","valid_range":{"max":0.5,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Load Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the GAST model are:\n\tx_g1: Fuel valve opening,\n\tx_g2: Fuel flow,\n\tx_g3: Exhaust temperature load","internal_default":"[:x_g1, :x_g2, :x_g3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"GasTG has 3 states","internal_default":3},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"GAST has 3 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of Gas Turbine-Governor. GAST in PSSE and GAST_PTI in PowerWorld.","struct_name":"GasTG","supertype":"TurbineGov"},{"fields":[{"name":"Rselect","data_type":"Int","null_value":1,"validation_action":"error","comment":"Feedback signal for governor droop","valid_range":{"max":1,"min":-2}},{"name":"fuel_flag","data_type":"Int","null_value":0,"validation_action":"error","comment":"Flag Switch for fuel source characteristic","valid_range":{"max":1,"min":0}},{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Speed droop parameter","valid_range":{"max":null,"min":"eps()"}},{"name":"Tpelec","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Electrical power transducer time constant, seconds","valid_range":{"max":null,"min":"eps()"}},{"name":"speed_error_signal","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Speed error signal limits"},{"name":"Kp_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor proportional gain","valid_range":{"max":null,"min":0}},{"name":"Ki_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor integral gain","valid_range":{"max":null,"min":0}},{"name":"Kd_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor derivative gain","valid_range":{"max":null,"min":0}},{"name":"Td_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor derivative time constant","valid_range":{"max":null,"min":0}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits"},{"name":"T_act","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Actuator time constant","valid_range":{"max":null,"min":0}},{"name":"K_turb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine gain","valid_range":{"max":null,"min":0}},{"name":"Wf_nl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"No load fuel flow, pu","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine lag time constant, sec","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine lead time constant, sec","valid_range":{"max":null,"min":0}},{"name":"T_eng","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Transport lag time constant for diesel engine, sec","valid_range":{"max":null,"min":0}},{"name":"Tf_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter time constant","valid_range":{"max":null,"min":0}},{"name":"Kp_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter proportional gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Ki_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load integral gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Ld_ref","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter integral gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Dm","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Mechanical damping coefficient, pu","valid_range":{"max":null,"min":0}},{"name":"R_open","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum valve opening rate, pu/sec","valid_range":{"max":null,"min":0}},{"name":"R_close","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum valve closing rate, pu/sec","valid_range":{"max":null,"min":0}},{"name":"Ki_mw","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Power controller (reset) gain","valid_range":{"max":null,"min":0}},{"name":"A_set","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Acceleration limiter setpoint, pu/sec","valid_range":{"max":null,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Acceleration limiter gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Acceleration limiter time constant ","valid_range":{"max":null,"min":"eps()"}},{"name":"T_rate","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine rating","valid_range":{"max":null,"min":0}},{"name":"db","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Speed governor deadband","valid_range":{"max":null,"min":0}},{"name":"Tsa","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temperature detection lead time constant","valid_range":{"max":null,"min":0}},{"name":"Tsb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temperature detection lag time constant","valid_range":{"max":null,"min":0}},{"name":"R_lim","data_type":"UpDown","null_value":"(up = 0.0, down = 0.0)","comment":"Maximum rate of load increa"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the GGOV1 model are:\n\tPe: Machine Electrical Power Measurement,\n\tx_g1: Governor differential control,\n\tx_g2: Governor integral control, \n\tx_g3: Turbine actuator, \n\tx_g4: Turbine Lead-Lag, \n\tx_g5: Turbine load limiter measurement, \n\tx_g6: Turbine Load Limiter Integral Control, \n\tx_g7: Supervisory Load Control, \n\tx_g8: Acceleration Control, \n\tx_g9 Temperature Detection Lead - Lag:","internal_default":"[:Pe, :x_g1, :x_g2, :x_g3, :x_g4, :x_g5, :x_g6, :x_g7, :x_g8, :x_g9]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"GeneralGovModel has 10 states","internal_default":10},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"GGOV1 has 10 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"GE General Governor/Turbine Model. The GeneralGovModel (GGOV1) model is a general purpose governor model used for a variety of prime movers controlled by proportional-integral-derivative (PID) governors including gas turbines.","struct_name":"GeneralGovModel","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Droop parameter","valid_range":{"max":0.1,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Governor time constant","valid_range":{"max":0.5,"min":"eps()"}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits"},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Lead Lag Lead Time constant ","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lead Lag Lag Time constant ","valid_range":{"max":10,"min":"eps()"}},{"name":"D_T","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Damping","valid_range":{"max":0.5,"min":0}},{"name":"DB_h","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Deadband for overspeed","valid_range":{"max":null,"min":0}},{"name":"DB_l","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Deadband for underspeed","valid_range":{"max":0,"min":null}},{"name":"T_rate","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Rate (MW). If zero, generator base is used.","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the SteamTurbineGov1 model are:\n\tx_g1: Valve Opening,\n\tx_g2: Lead-lag state","internal_default":"[:x_g1, :x_g2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGOV1 has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"TGOV1 has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Steam Turbine-Governor. This model considers both TGOV1 or TGOV1DU in PSS/E.","struct_name":"SteamTurbineGov1","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Permanent droop parameter","valid_range":{"max":0.1,"min":0}},{"name":"r","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temporary Droop","valid_range":{"max":2,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Governor time constant","valid_range":{"max":30,"min":"eps()"}},{"valid_range":{"max":0.1,"min":"eps()"},"name":"Tf","data_type":"Float64","null_value":0,"valiation_action":"error","comment":"Filter Time constant"},{"name":"Tg","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Servo time constant","valid_range":{"max":1,"min":"eps()"}},{"name":"VELM","data_type":"Float64","null_value":0,"validation_action":"error","comment":"gate velocity limit","valid_range":{"max":0.3,"min":"eps()"}},{"name":"gate_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Gate position limits"},{"name":"Tw","data_type":"Float64","null_value":0,"validation_action":"error","comment":"water time constant","valid_range":{"max":3,"min":"eps()"}},{"name":"At","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine gain","valid_range":{"max":1.5,"min":0.8}},{"name":"D_T","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Damping","valid_range":{"max":0.5,"min":0}},{"name":"q_nl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"No-power flow","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the HydroTurbineGov model are:\n\tx_g1: filter_output,\n\tx_g2: desired gate, \n\tx_g3: gate opening, \n\tx_g4: turbine flow","internal_default":"[:x_g1, :x_g2, :x_g3, :x_g4]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"HYGOV has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"HYGOV has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Hydro Turbine-Governor.","struct_name":"HydroTurbineGov","supertype":"TurbineGov"},{"fields":[{"name":"K","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor Gain","valid_range":{"max":30,"min":5}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Input Filter Lag","valid_range":{"max":5,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Input Filter Lead","valid_range":{"max":10,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Valve position Time Constant","valid_range":{"max":1,"min":"eps()"}},{"name":"U0","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum Valve Opening Rate","valid_range":{"max":0.03,"min":0.01}},{"name":"U_c","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum Valve closing rate","valid_range":{"max":0,"min":-0.3}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits in MW"},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time Constant inlet steam","valid_range":{"max":1,"min":0}},{"name":"K1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power","valid_range":{"max":1,"min":-2}},{"name":"K2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second boiler pass","valid_range":{"max":10,"min":0}},{"name":"K3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power second boiler pass","valid_range":{"max":0.5,"min":0}},{"name":"K4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power second boiler pass","valid_range":{"max":0.5,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third boiler pass","valid_range":{"max":10,"min":0}},{"name":"K5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power third boiler pass","valid_range":{"max":0.35,"min":0}},{"name":"K6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power third boiler pass","valid_range":{"max":0.55,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth boiler pass","valid_range":{"max":10,"min":0}},{"name":"K7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power fourth boiler pass","valid_range":{"max":0.3,"min":0}},{"name":"K8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power fourth boiler pass","valid_range":{"max":0.3,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the IEEETurbineGov model are:\n\tx_g1: First Governor integrator,\n\tx_g2: Governor output,\n\tx_g3: First Turbine integrator, \n\tx_g4: Second Turbine Integrator, \n\tx_g5: Third Turbine Integrator, \n\tx_g6: Fourth Turbine Integrator, ","internal_default":"[:x_g1, :x_g2, :x_g3, :x_g4, :x_g5, :x_g6]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEG1 has 6 states","internal_default":6},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEG1 has 6 differential states","internal_default":"[StateTypes.Differential, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Type 1 Speed-Governing Model","struct_name":"IEEETurbineGov1","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Droop parameter","valid_range":{"max":null,"min":0}},{"name":"Ts","data_type":"Float64","null_value":0,"comment":"Governor time constant","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"comment":"Servo time constant","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Transient gain time constant","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"Power fraction time constant","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"comment":"Reheat time constant","valid_range":{"max":null,"min":0}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits in MW"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the TGTypeI model are:\n\tx_g1: Governor state,\n\tx_g2: Servo state,\n\tx_g3: Reheat state","internal_default":"[:x_g1, :x_g2, :x_g3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGTypeI has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Turbine Governor Type I.","struct_name":"TGTypeI","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Droop parameter","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Transient gain time constant","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Power fraction time constant","valid_range":{"max":null,"min":0}},{"name":"τ_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power into the governor limits"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the TGTypeI model are:\n\tx_g1: lead-lag state","internal_default":"[:xg]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGTypeII has 1 state","internal_default":1},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Turbine Governor Type II.","struct_name":"TGTypeII","supertype":"TurbineGov"},{"fields":[{"name":"rated_voltage","data_type":"Float64","null_value":0,"comment":"rated voltage","valid_range":{"max":null,"min":0}},{"name":"rated_current","data_type":"Float64","null_value":0,"comment":"rated VA","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AverageConverter has no states","internal_default":0}],"docstring":"Parameters of an average converter model","struct_name":"AverageConverter","supertype":"Converter"},{"fields":[{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Converter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"Rrpwr","data_type":"Float64","null_value":0,"comment":"Low Voltage Power Logic (LVPL) ramp rate limit (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Brkpt","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 2 (pu)","valid_range":{"max":null,"min":0}},{"name":"Zerox","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 1 (pu)","valid_range":{"max":null,"min":0}},{"name":"Lvpl1","data_type":"Float64","null_value":0,"comment":"LVPL gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Vo_lim","data_type":"Float64","null_value":0,"comment":"Voltage limit for high voltage reactive current management (pu)","valid_range":{"max":null,"min":0}},{"name":"Lv_pnts","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage points for low voltage active current management (pu) (Lvpnt0, Lvpnt1)"},{"name":"Io_lim","data_type":"Float64","null_value":0,"comment":"Current limit (pu) for high voltage reactive current management (specified as a negative value)","valid_range":{"max":0,"min":null}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage filter time constant for low voltage active current management (s)","valid_range":{"max":null,"min":0}},{"name":"K_hv","data_type":"Float64","null_value":0,"comment":"Overvoltage compensation gain used in the high voltage reactive current management","valid_range":{"max":null,"min":0}},{"name":"Iqr_lims","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"Accel","data_type":"Float64","null_value":0,"comment":"Acceleration factor","valid_range":{"max":1,"min":0}},{"name":"Lvpl_sw","data_type":"Int","null_value":0,"comment":"Low voltage power logic (LVPL) switch. (0: LVPL not present, 1: LVPL present)","valid_range":{"max":1,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Initial machine reactive power from power flow","valid_range":{"max":null,"min":0}},{"name":"R_source","default":"0.0","data_type":"Float64","null_value":0,"comment":"Output resistor used for the Thevenin Equivalent","valid_range":{"max":null,"min":0}},{"name":"X_source","default":"1.0e5","data_type":"Float64","null_value":0,"comment":"Output resistor used for the Thevenin Equivalent","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tIp: Converter lag for Ipcmd,\tIq: Converter lag for Iqcmd,\tVmeas: Voltage filter for low voltage active current management","internal_default":"[:Ip, :Iq, :Vmeas]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RenewableEnergyConverterTypeA has 3 states","internal_default":3}],"docstring":"Parameters of a renewable energy generator/converter model, this model corresponds to REGCA1 in PSSE","struct_name":"RenewableEnergyConverterTypeA","supertype":"Converter"},{"fields":[{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Converter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"Rrpwr","data_type":"Float64","null_value":0,"comment":"Low Voltage Power Logic (LVPL) ramp rate limit (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Brkpt","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 2 (pu)","valid_range":{"max":null,"min":0}},{"name":"Zerox","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 1 (pu)","valid_range":{"max":null,"min":0}},{"name":"Lvpl1","data_type":"Float64","null_value":0,"comment":"LVPL gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Vo_lim","data_type":"Float64","null_value":0,"comment":"Voltage limit for high voltage reactive current management (pu)","valid_range":{"max":null,"min":0}},{"name":"Lv_pnts","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage points for low voltage active current management (pu) (Lvpnt0, Lvpnt1)"},{"name":"Io_lim","data_type":"Float64","null_value":0,"comment":"Current limit (pu) for high voltage reactive current management (specified as a negative value)","valid_range":{"max":0,"min":null}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage filter time constant for low voltage active current management (s)","valid_range":{"max":null,"min":0}},{"name":"K_hv","data_type":"Float64","null_value":0,"comment":"Overvoltage compensation gain used in the high voltage reactive current management","valid_range":{"max":null,"min":0}},{"name":"Iqr_lims","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"Accel","data_type":"Float64","null_value":0,"comment":"Acceleration factor","valid_range":{"max":1,"min":0}},{"name":"Lvpl_sw","data_type":"Int","null_value":0,"comment":"Low voltage power logic (LVPL) switch. (0: LVPL not present, 1: LVPL present)","valid_range":{"max":1,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Initial machine reactive power from power flow","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tIp: Converter lag for Ipcmd,\tIq: Converter lag for Iqcmd,\tVmeas: Voltage filter for low voltage active current management","internal_default":"[:Ip, :Iq, :Vmeas]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RenewableEnergyVoltageConverterTypeA has 3 states","internal_default":3}],"docstring":"Parameters of a renewable energy generator/converter model, this model corresponds to REGCA1 in PSSE, but to be interfaced using a Voltage Source instead of a Current Source.","struct_name":"RenewableEnergyVoltageConverterTypeA","supertype":"Converter"},{"fields":[{"name":"voltage","data_type":"Float64","null_value":0,"comment":"rated VA","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FixedDCSource has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Fixed DC Source that returns a fixed DC voltage","struct_name":"FixedDCSource","supertype":"DCSource"},{"fields":[{"name":"rated_voltage","data_type":"Float64","null_value":0,"comment":"rated voltage","valid_range":{"max":null,"min":0}},{"name":"rated_current","data_type":"Float64","null_value":0,"comment":"rated current","valid_range":{"max":null,"min":0}},{"name":"battery_voltage","data_type":"Float64","null_value":0,"comment":"battery voltage","valid_range":{"max":null,"min":0}},{"name":"battery_resistance","data_type":"Float64","null_value":0,"comment":"battery_resistance","valid_range":{"max":null,"min":0}},{"name":"dc_dc_inductor","data_type":"Float64","null_value":0,"comment":"DC/DC inductance","valid_range":{"max":null,"min":0}},{"name":"dc_link_capacitance","data_type":"Float64","null_value":0,"comment":"DC-link capacitor","valid_range":{"max":null,"min":0}},{"name":"fs","data_type":"Float64","null_value":0,"comment":"DC/DC converter switching frequency","valid_range":{"max":null,"min":0}},{"name":"kpv","data_type":"Float64","null_value":0,"comment":"voltage controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"voltage controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kpi","data_type":"Float64","null_value":0,"comment":"current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kii","data_type":"Float64","null_value":0,"comment":"current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"Vdc_ref","default":"1.1","data_type":"Float64","null_value":0,"comment":"Reference DC-Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ZeroOrderBESS model are:\n\tv_dc: DC-link votlage,\n\ti_b: Battery current,\n\t ν: integrator state of the voltage controller,\n\t ζ: integrator state of the PI current controller","internal_default":"[:v_dc, :i_b, :ν, :ζ]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ZeroOrderBESS has 4 states","internal_default":4}],"docstring":"Parameters for the DC-side with a Battery Energy Storage System from paper at https://arxiv.org/abs/2007.11776","struct_name":"ZeroOrderBESS","supertype":"DCSource"},{"fields":[{"name":"lf","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"Shunt capacitance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"lg","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"rg","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the LCLFilter model are:\n\tir_cnv: Real current out of the converter,\n\tii_cnv: Imaginary current out of the converter,\n\tvr_filter: Real voltage at the filter's capacitor,\n\tvi_filter: Imaginary voltage at the filter's capacitor,\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:ir_cnv, :ii_cnv, :vr_filter, :vi_filter, :ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"LCLFilter has 6 states","internal_default":6}],"docstring":"Parameters of a LCL filter outside the converter, the states are in the grid's reference frame","struct_name":"LCLFilter","supertype":"Filter"},{"fields":[{"name":"lf","data_type":"Float64","null_value":0,"comment":"filter inductance","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"filter resistance","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"filter capacitance","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the LCFilter model are:\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"LCFilter has two states","internal_default":2}],"docstring":"Parameters of a LCL filter outside the converter","struct_name":"LCFilter","supertype":"Filter"},{"fields":[{"name":"rf","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"lf","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"RLFilter has zero states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RLFilter has zero states","internal_default":0}],"docstring":"Parameters of RL series filter in algebraic representation","struct_name":"RLFilter","supertype":"Filter"},{"fields":[{"name":"ω_lp","data_type":"Float64","null_value":0,"comment":"PLL low-pass filter frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"PLL proportional gain","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"PLL integral gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the KauraPLL model are:\n\tvd_pll: d-axis of the measured voltage in the PLL synchronous reference frame (SRF),\n\tvq_pll: q-axis of the measured voltage in the PLL SRF,\n\tε_pll: Integrator state of the PI controller,\n\tθ_pll: Phase angle displacement in the PLL SRF","internal_default":"[:vd_pll, :vq_pll, :ε_pll, :θ_pll]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"KauraPLL has 4 states","internal_default":4}],"docstring":"Parameters of a Phase-Locked Loop (PLL) based on Kaura, Vikram, and Vladimir Blasko.\n\"Operation of a phase locked loop system under distorted utility conditions.\"\nIEEE Transactions on Industry applications 33.1 (1997): 58-63.","struct_name":"KauraPLL","supertype":"FrequencyEstimator"},{"fields":[{"name":"ω_lp","data_type":"Float64","null_value":0,"comment":"PLL low-pass filter frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"PLL proportional gain","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"PLL integral gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReducedOrderPLL model are:\n\tvq_pll: q-axis of the measured voltage in the PLL synchronous reference frame (SRF),\n\tε_pll: Integrator state of the PI controller,\n\tθ_pll: Phase angle displacement in the PLL SRF","internal_default":"[:vq_pll, :ε_pll, :θ_pll]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReducedOrderPLL has 3 states","internal_default":3}],"docstring":"Parameters of a Phase-Locked Loop (PLL) based on Purba, Dhople, Jafarpour, Bullo and Johnson.\n\"Reduced-order Structure-preserving Model for Parallel-connected Three-phase Grid-tied Inverters.\"\n2017 IEEE 18th Workshop on Control and Modeling for Power Electronics (COMPEL): 1-7.","struct_name":"ReducedOrderPLL","supertype":"FrequencyEstimator"},{"fields":[{"name":"frequency","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference used"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"FixedFrequency has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FixedFrequency has no states","internal_default":0}],"docstring":"Parameters of a Fixed Frequency Estimator (i.e. no PLL).","struct_name":"FixedFrequency","supertype":"FrequencyEstimator"},{"fields":[{"name":"Ta","data_type":"Float64","null_value":0,"comment":"VSM inertia constant","valid_range":{"max":null,"min":0}},{"name":"kd","data_type":"Float64","null_value":0,"comment":"VSM damping constant","valid_range":{"max":null,"min":0}},{"name":"kω","data_type":"Float64","null_value":0,"comment":"frequency droop gain","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the VirtualInertia model are:\n\tθ_oc: Phase angle displacement of the virtual synchronous generator model\n\tω_oc: Speed of the rotating reference frame of the virtual synchronous generator model","internal_default":"[:θ_oc, :ω_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"VirtualInertia has two states","internal_default":2}],"docstring":"Parameters of a Virtual Inertia with SRF using VSM for active power controller","struct_name":"VirtualInertia","supertype":"ActivePowerControl"},{"fields":[{"name":"Rp","data_type":"Float64","null_value":0,"comment":"Droop Gain","valid_range":{"max":null,"min":0}},{"name":"ωz","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActivePowerDroop model are:\n\tθ_oc: Phase angle displacement of the inverter model,\n\tp_oc: Measured active power of the inverter model","internal_default":"[:θ_oc, :p_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActivePowerDroop has two states","internal_default":2}],"docstring":"Parameters of an Active Power droop controller","struct_name":"ActivePowerDroop","supertype":"ActivePowerControl"},{"fields":[{"name":"Kp_p","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"Ki_p","data_type":"Float64","null_value":0,"comment":"Integral Gain","valid_range":{"max":null,"min":0}},{"name":"ωz","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActivePowerPI model are:\n\tσp_oc: Integrator state of the PI Controller,\n\tp_oc: Measured active power of the inverter model","internal_default":"[:σp_oc, :p_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActivePowerPI has two states","internal_default":2}],"docstring":"Parameters of a Proportional-Integral Active Power controller for a specified power reference","struct_name":"ActivePowerPI","supertype":"ActivePowerControl"},{"fields":[{"name":"k1","data_type":"Float64","null_value":0,"comment":"VOC Synchronization Gain","valid_range":{"max":null,"min":0}},{"name":"ψ","data_type":"Float64","null_value":0,"comment":"Rotation angle of the controller","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActiveVirtualOscillator model are:\n\tθ_oc: Phase angle displacement of the inverter model","internal_default":"[:θ_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActiveVirtualOscillator has one state","internal_default":1}],"docstring":"Parameters of an Active Virtual Oscillator controller. Model is based from the paper Model Reduction for Inverters with Current Limiting and Dispatchable Virtual Oscillator Control by O. Ajala et al.","struct_name":"ActiveVirtualOscillator","supertype":"ActivePowerControl"},{"fields":[{"name":"bus_control","data_type":"Int","null_value":0,"comment":"Bus Number for voltage control; ","valid_range":{"max":null,"min":0}},{"name":"from_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch FROM bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"to_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch TO bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"branch_id_control","data_type":"String","null_value":0,"comment":"Branch circuit id for line drop compensation (as a string). If 0 generator power will be used"},{"name":"Freq_Flag","data_type":"Int","null_value":0,"comment":"Frequency Flag for REPCA1: 0: disable, 1:enable","valid_range":{"max":1,"min":0}},{"name":"K_pg","data_type":"Float64","null_value":0,"comment":"Active power PI control proportional gain","valid_range":{"max":null,"min":0}},{"name":"K_ig","data_type":"Float64","null_value":0,"comment":"Active power PI control integral gain","valid_range":{"max":null,"min":0}},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Real power measurement filter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Frequency error dead band thresholds `(fdbd1, fdbd2)`"},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on frequency error `(fe_min, fe_max)`"},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference `(P_min, P_max)`"},{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Power Controller lag time constant","valid_range":{"max":null,"min":0}},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"Droop for over-frequency conditions","valid_range":{"max":0,"min":null}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"Droop for under-frequency conditions","valid_range":{"max":null,"min":0}},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference ramp rates`(dP_min, dP_max)`"},{"name":"P_lim_inner","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference for REECB`(P_min_inner, P_max_inner)`"},{"name":"T_pord","data_type":"Float64","null_value":0,"comment":"Power filter time constant REECB time constant","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_activeRETypeAB_states(Freq_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the ActiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_activeRETypeAB_states(Freq_Flag)[2]"}],"docstring":"Parameters of Active Power Controller including REPCA1 and REECB1","struct_name":"ActiveRenewableControllerAB","supertype":"ActivePowerControl"},{"fields":[{"name":"bus_control","data_type":"Int","null_value":0,"comment":"Bus Number for voltage control; ","valid_range":{"max":null,"min":0}},{"name":"from_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch FROM bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"to_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch TO bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"branch_id_control","data_type":"String","null_value":0,"comment":"Branch circuit id for line drop compensation (as a string). If 0 generator power will be used"},{"name":"VC_Flag","data_type":"Int","null_value":0,"comment":"Voltage Compensator Flag for REPCA1","valid_range":{"max":1,"min":0}},{"name":"Ref_Flag","data_type":"Int","null_value":0,"comment":"Flag for Reactive Power Control for REPCA1. 0: Q-control, 1: V-control","valid_range":{"max":1,"min":0}},{"name":"PF_Flag","data_type":"Int","null_value":0,"comment":"Flag for Power Factor Control for Outer Control of REECB1. 0: Q-control, 1: Power Factor Control","valid_range":{"max":1,"min":0}},{"name":"V_Flag","data_type":"Int","null_value":0,"comment":"Flag for Voltage Control for Outer Control of REECB1. 0: Voltage Control, 1: Q-Control","valid_range":{"max":1,"min":0}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage or Q-power of REPCA Filter Time Constant","valid_range":{"max":null,"min":0}},{"name":"K_p","data_type":"Float64","null_value":0,"comment":"Reactive power PI control proportional gain","valid_range":{"max":null,"min":0}},{"name":"K_i","data_type":"Float64","null_value":0,"comment":"Reactive power PI control integral gain","valid_range":{"max":null,"min":0}},{"name":"T_ft","data_type":"Float64","null_value":0,"comment":"Reactive power lead time constant (s)","valid_range":{"max":null,"min":0}},{"name":"T_fv","data_type":"Float64","null_value":0,"comment":"Reactive power lag time constant (s)","valid_range":{"max":null,"min":0}},{"name":"V_frz","data_type":"Float64","null_value":0,"comment":"Voltage below which state ξq_oc (integrator state) is freeze","valid_range":{"max":null,"min":0}},{"name":"R_c","data_type":"Float64","null_value":0,"comment":"Line drop compensation resistance (used when VC_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"X_c","data_type":"Float64","null_value":0,"comment":"Line drop compensation reactance (used when VC_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_c","data_type":"Float64","null_value":0,"comment":"Reactive current compensation gain (pu) (used when VC_Flag = 0)","valid_range":{"max":null,"min":0}},{"name":"e_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on Voltage or Q-power deadband output `(e_min, e_max)`"},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage or Q-power error dead band thresholds `(dbd1, dbd2)`"},{"name":"Q_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power V/Q control in REPCA `(Q_min, Q_max)`"},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Active power lag time constant in REECB (s). Used only when PF_Flag = 1","valid_range":{"max":null,"min":0}},{"name":"Q_lim_inner","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power input in REECB `(Q_min_inner, Q_max_inner)`. Only used when V_Flag = 1"},{"name":"V_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power PI controller in REECB `(V_min, V_max)`. Only used when V_Flag = 1"},{"name":"K_qp","data_type":"Float64","null_value":0,"comment":"Reactive power regulator proportional gain (used when V_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_qi","data_type":"Float64","null_value":0,"comment":"Reactive power regulator integral gain (used when V_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_reactiveRETypeAB_states(Ref_Flag, PF_Flag, V_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the ReactiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_reactiveRETypeAB_states(Ref_Flag, PF_Flag, V_Flag)[2]"}],"docstring":"Parameters of Reactive Power Controller including REPCA1 and REECB1","struct_name":"ReactiveRenewableControllerAB","supertype":"ReactivePowerControl"},{"fields":[{"name":"kq","data_type":"Float64","null_value":0,"comment":"frequency droop gain","valid_range":{"max":null,"min":0}},{"name":"ωf","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactivePowerDroop model are:\n\tq_oc: Filtered reactive output power","internal_default":"[:q_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactivePowerDroop has 1 state","internal_default":1}],"docstring":"Parameters of a Reactive Power droop controller","struct_name":"ReactivePowerDroop","supertype":"ReactivePowerControl"},{"fields":[{"name":"Kp_q","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"Ki_q","data_type":"Float64","null_value":0,"comment":"Integral Gain","valid_range":{"max":null,"min":0}},{"name":"ωf","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reactive Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactivePowerPI model are:\n\tσq_oc: Integrator state of the PI Controller,\n\tq_oc: Measured reactive power of the inverter model","internal_default":"[:σq_oc, :q_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactivePowerPI has two states","internal_default":2}],"docstring":"Parameters of a Proportional-Integral Reactive Power controller for a specified power reference","struct_name":"ReactivePowerPI","supertype":"ReactivePowerControl"},{"fields":[{"name":"k2","data_type":"Float64","null_value":0,"comment":"VOC voltage-amplitude control gain","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Reactive Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactiveVirtualOscilator model are:\n\tE_oc: voltage reference state for inner control in the d-axis","internal_default":"[:E_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactiveVirtualOscillator has 1 state","internal_default":1}],"docstring":"Parameters of a Reactive Virtual Oscillator controller. Model is based from the paper Model Reduction for Inverters with Current Limiting and Dispatchable Virtual Oscillator Control by O. Ajala et al.","struct_name":"ReactiveVirtualOscillator","supertype":"ReactivePowerControl"},{"fields":[{"name":"kpv","data_type":"Float64","null_value":0,"comment":"voltage controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"voltage controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffv","data_type":"Float64","null_value":0,"comment":"Binary variable to enable feed-forward gain of voltage.","valid_range":{"max":null,"min":0}},{"name":"rv","data_type":"Float64","null_value":0,"comment":"virtual resistance","valid_range":{"max":null,"min":0}},{"name":"lv","data_type":"Float64","null_value":0,"comment":"virtual inductance","valid_range":{"max":null,"min":0}},{"name":"kpc","data_type":"Float64","null_value":0,"comment":"current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffi","data_type":"Float64","null_value":0,"comment":"Binary variable to enable feed-forward gain of current","valid_range":{"max":null,"min":0}},{"name":"ωad","data_type":"Float64","null_value":0,"comment":"active damping filter cutoff frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kad","data_type":"Float64","null_value":0,"comment":"active damping gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the VoltageModeControl model are:\n\tξd_ic: d-axis integrator state of the PI voltage controller,\n\tξq_ic: q-axis integrator state of the PI voltage controller,\n\tγd_ic: d-axis integrator state of the PI current controller,\n\tγq_ic: q-axis integrator state of the PI current controller,\n\tϕd_ic: d-axis low-pass filter of active damping,\n\tϕq_ic: q-axis low-pass filter of active damping","internal_default":"[:ξd_ic, :ξq_ic, :γd_ic, :γq_ic, :ϕd_ic, :ϕq_ic]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"VoltageModeControl has 6 states","internal_default":6}],"docstring":"Parameters of an inner loop current control PID using virtual impedance based on D'Arco, Suul and Fosso.\n\"A Virtual Synchronous Machine implementation for distributed control of power converters in SmartGrids.\"\nElectric Power Systems Research 122 (2015) 180–197.","struct_name":"VoltageModeControl","supertype":"InnerControl"},{"fields":[{"name":"kpc","data_type":"Float64","null_value":0,"comment":"Current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"Current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffv","data_type":"Float64","null_value":0,"comment":"Gain to enable feed-forward gain of voltage.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the CurrentModeControl model are:\n\tγd_ic: d-axis integrator state of the PI current controller,\n\tγq_ic: q-axis integrator state of the PI current controller","internal_default":"[:γd_ic, :γq_ic]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"CurrentControl has 2 states","internal_default":2}],"docstring":"Parameters of an inner loop PI current control using based on Purba, Dhople, Jafarpour, Bullo and Johnson.\n\"Reduced-order Structure-preserving Model for Parallel-connected Three-phase Grid-tied Inverters.\"\n2017 IEEE 18th Workshop on Control and Modeling for Power Electronics (COMPEL): 1-7.","struct_name":"CurrentModeControl","supertype":"InnerControl"},{"fields":[{"name":"Q_Flag","data_type":"Int","null_value":0,"comment":"Q Flag used for I_qinj","valid_range":{"max":1,"min":0}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"PQ Flag used for the Current Limit Logic","valid_range":{"max":1,"min":0}},{"name":"Vdip_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for Voltage Dip Logic `(Vdip, Vup)`"},{"name":"T_rv","data_type":"Float64","null_value":0,"comment":"Voltage Filter Time Constant","valid_range":{"max":null,"min":0}},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage error deadband thresholds `(dbd1, dbd2)`"},{"name":"K_qv","data_type":"Float64","null_value":0,"comment":"Reactive current injection gain during over and undervoltage conditions","valid_range":{"max":null,"min":0}},{"name":"Iqinj_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for Iqinj `(I_qh1, I_ql1)`"},{"name":"V_ref0","data_type":"Float64","null_value":0,"comment":"User defined reference. If 0, PSID initializes to initial terminal voltage","valid_range":{"max":null,"min":0}},{"name":"K_vp","data_type":"Float64","null_value":0,"comment":"Voltage regulator proportional gain (used when QFlag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_vi","data_type":"Float64","null_value":0,"comment":"Voltage regulator integral gain (used when QFlag = 1)","valid_range":{"max":null,"min":0}},{"name":"T_iq","data_type":"Float64","null_value":0,"comment":"Time constant for low-pass filter for state q_V when QFlag = 0","valid_range":{"max":null,"min":0}},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on total converter current","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the RECurrentControlB depends on the Flags","internal_default":"PowerSystems.get_REControlB_states(Q_Flag)"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the RECurrentControlB depends on the Flags","internal_default":"2"}],"docstring":"Parameters of the Inner Control part of the REECB model in PSS/E","struct_name":"RECurrentControlB","supertype":"InnerControl"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"Pf_Flag","data_type":"Int","null_value":0,"comment":"Flag for Power Factor Control","valid_range":{"max":1,"min":0}},{"name":"Freq_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable frequency control","valid_range":{"max":1,"min":0}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"Flag used to enforce maximum current","valid_range":{"max":1,"min":0}},{"name":"Gen_Flag","data_type":"Int","null_value":0,"comment":"Flag to specify generator or storage","valid_range":{"max":1,"min":0}},{"name":"Vtrip_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable voltage trip logic","valid_range":{"max":1,"min":0}},{"name":"Ftrip_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable frequency trip logic","valid_range":{"max":1,"min":0}},{"name":"T_rv","data_type":"Float64","null_value":0,"comment":"Voltage measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"Trf","data_type":"Float64","null_value":0,"comment":"Frequency measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage deadband thresholds `(dbd1, dbd2)`"},{"name":"K_qv","data_type":"Float64","null_value":0,"comment":"Proportional voltage control gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Tp","data_type":"Float64","null_value":0,"comment":"Power measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"T_iq","data_type":"Float64","null_value":0,"comment":"Time constant for low-pass filter for state q_V when QFlag = 0","valid_range":{"max":null,"min":0}},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"Reciprocal of droop for over-frequency conditions (>0) (pu)","valid_range":{"max":null,"min":0}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"Reciprocal of droop for under-frequency conditions <=0) (pu)","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Frequency control deadband thresholds `(fdbd1, fdbd2)`"},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Frequency error limits (femin, femax)"},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power limits (Pmin, Pmax)"},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power reference ramp rate limits (dPmin, dPmax)"},{"name":"Tpord","data_type":"Float64","null_value":0,"comment":"Power filter time constant","valid_range":{"max":null,"min":0}},{"name":"Kpg","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Kig","data_type":"Float64","null_value":0,"comment":"PI controller integral gain (pu)","valid_range":{"max":null,"min":0}},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on total converter current (pu)","valid_range":{"max":null,"min":0}},{"name":"vl_pnts","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0), (0.0, 0.0)]","comment":"Low voltage cutout points `[(tv10, vl0), (tv11, vl1)]`"},{"name":"vh_pnts","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0), (0.0, 0.0)]","comment":"High voltage cutout points `[(tvh0, vh0), (tvh1, vh1)]`"},{"name":"Vrfrac","data_type":"Float64","null_value":0,"comment":"Fraction of device that recovers after voltage comes back to within vl1 < V < vh1 (0 <= Vrfrac <= 1)","valid_range":{"max":1,"min":0}},{"name":"fl","data_type":"Float64","null_value":0,"comment":"Inverter frequency break-point for low frequency cut-out (Hz)","valid_range":{"max":null,"min":0}},{"name":"fh","data_type":"Float64","null_value":0,"comment":"Inverter frequency break-point for high frequency cut-out (Hz)","valid_range":{"max":null,"min":0}},{"name":"tfl","data_type":"Float64","null_value":0,"comment":"Low frequency cut-out timer corresponding to frequency fl (s)","valid_range":{"max":null,"min":0}},{"name":"tfh","data_type":"Float64","null_value":0,"comment":"High frequency cut-out timer corresponding to frequency fh (s)","valid_range":{"max":null,"min":0}},{"name":"Tg","data_type":"Float64","null_value":0,"comment":"Current control time constant (to represent behavior of inner control loops) (> 0) (s)","valid_range":{"max":null,"min":0}},{"name":"rrpwr","data_type":"Float64","null_value":0,"comment":"Ramp rate for real power increase following a fault (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Tv","data_type":"Float64","null_value":0,"comment":"Time constant on the output of the multiplier (s)","valid_range":{"max":null,"min":0}},{"name":"Vpr","data_type":"Float64","null_value":0,"comment":"Voltage below which frequency tripping is disabled (pu)","valid_range":{"max":null,"min":0}},{"name":"Iq_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Reactive current injection limits (Iqll, Iqhl)"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"User defined voltage reference. If 0, PSID initializes to initial terminal voltage","valid_range":{"max":null,"min":0}},{"name":"Pfa_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference power factor","valid_range":{"max":null,"min":0}},{"name":"ω_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference frequency","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference reactive power, in pu","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference active power, in pu","valid_range":{"max":null,"min":0}},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of AggregateDistributedGenerationA depends on the Flags","internal_default":"PowerSystems.get_AggregateDistributedGenerationA_states(Freq_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of AggregateDistributedGenerationA depends on the Flags","internal_default":"PowerSystems.get_AggregateDistributedGenerationA_states(Freq_Flag)[2]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of the DERA1 model in PSS/E","struct_name":"AggregateDistributedGenerationA","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","data_type":"Float64","null_value":"0.0"},{"name":"R_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin resistance","valid_range":{"max":null,"min":0}},{"name":"X_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin reactance","valid_range":{"max":null,"min":0}},{"name":"internal_voltage","default":"1.0","data_type":"Float64","null_value":0,"comment":"Internal Voltage","valid_range":{"max":null,"min":0}},{"name":"internal_angle","default":"0.0","data_type":"Float64","null_value":0,"comment":"Internal Angle"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This struct acts as an infinity bus.","struct_name":"Source","supertype":"StaticInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin resistance","valid_range":{"max":null,"min":0}},{"name":"X_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin reactance","valid_range":{"max":null,"min":0}},{"name":"internal_voltage_bias","default":"0.0","data_type":"Float64","null_value":0,"comment":"a0 term of the Fourier Series for the voltage"},{"name":"internal_voltage_frequencies","default":"[0.0]","data_type":"Vector{Float64}","null_value":[0],"comment":"Frequencies in radians/s"},{"name":"internal_voltage_coefficients","default":"[(0.0, 0.0)]","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0)]","comment":"Coefficients for terms n > 1. First component corresponds to sin and second component to cos"},{"name":"internal_angle_bias","default":"0.0","data_type":"Float64","null_value":0,"comment":"a0 term of the Fourier Series for the angle"},{"name":"internal_angle_frequencies","default":"[0.0]","data_type":"Vector{Float64}","null_value":[0],"comment":"Frequencies in radians/s"},{"name":"internal_angle_coefficients","default":"[(0.0, 0.0)]","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0)]","comment":"Coefficients for terms n > 1. First component corresponds to sin and second component to cos"},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"State for time, voltage and angle","internal_default":"[:Vt, :θt]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"null_value":2,"internal_default":2},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This struct acts as an infinity bus with time varying phasor values magnitude and angle V(t) \theta(t). Time varying functions are represented using fourier series","struct_name":"PeriodicVariableSource","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"Qref_Flag","data_type":"Int","null_value":1,"comment":"Reactive Power Control Mode. 1 VoltVar Control, 2 Constant Q Control, 3 Constant PF Control","valid_range":{"max":3,"min":1}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"Active and reactive power priority mode. 0 for Q priority, 1 for P priority","valid_range":{"max":1,"min":0}},{"name":"Gen_Flag","data_type":"Int","null_value":0,"comment":"Define generator or storage system. 0 unit is a storage device, 1 unit is a generator","valid_range":{"max":1,"min":0}},{"name":"PerOp_Flag","data_type":"Int","null_value":0,"comment":"Defines operation of permisible region in VRT characteristic. 0 for cease, 1 for continuous operation","valid_range":{"max":1,"min":0}},{"name":"Recon_Flag","data_type":"Int","null_value":0,"comment":"Defines if DER can reconnect after voltage ride-through disconnection","valid_range":{"max":1,"min":0}},{"name":"Trv","data_type":"Float64","null_value":0,"comment":"Voltage measurement transducer's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"VV_pnts","data_type":"NamedTuple{(:V1, :V2, :V3, :V4), Tuple{Float64, Float64, Float64, Float64}}","null_value":"(V1=0.0, V2=0.0, V3=0.0, V4=0.0)","comment":"Y-axis Volt-var curve points (V1,V2,V3,V4)"},{"name":"Q_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Reactive power limits in pu (Q_min, Q_max)"},{"name":"Tp","data_type":"Float64","null_value":0,"comment":"Power measurement transducer's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"e_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Error limit in PI controller for q control (e_min, e_max)"},{"name":"Kpq","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain for q control","valid_range":{"max":null,"min":0}},{"name":"Kiq","data_type":"Float64","null_value":0,"comment":"PI controller integral gain for q control","valid_range":{"max":null,"min":0}},{"name":"Iqr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Max. inverter's current","valid_range":{"max":null,"min":0}},{"name":"Tg","data_type":"Float64","null_value":0,"comment":"Current control's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"kWh_Cap","data_type":"Float64","null_value":0,"comment":"BESS capacity in kWh","valid_range":{"max":null,"min":0}},{"name":"SOC_ini","data_type":"Float64","null_value":0,"comment":"Initial state of charge (SOC) in pu","valid_range":{"max":1,"min":0}},{"name":"SOC_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Battery's SOC limits (SOC_min, SOC_max)"},{"name":"Trf","data_type":"Float64","null_value":0,"comment":"Time constant to estimate system frequency, in s","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"NamedTuple{(:fdbd1, :fdbd2), Tuple{Float64, Float64}}","null_value":"(fdbd1=0.0, fdbd2=0.0)","comment":"Frequency error dead band thresholds `(fdbd1, fdbd2)`"},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"reciprocal of droop for over-frequency conditions, in pu","valid_range":{"max":null,"min":0}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"reciprocal of droop for under-frequency conditions, in pu","valid_range":{"max":null,"min":0}},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Frequency error limits in pu (fe_min, fe_max)"},{"name":"Kpp","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain for p control","valid_range":{"max":null,"min":0}},{"name":"Kip","data_type":"Float64","null_value":0,"comment":"PI controller integral gain for p control","valid_range":{"max":null,"min":0}},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Active power limits in pu (P_min, P_max)"},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Ramp rate limits for active power in pu/s (dP_min, dP_max)"},{"name":"T_pord","data_type":"Float64","null_value":0,"comment":"Power filter time constant in s","valid_range":{"max":null,"min":0}},{"name":"rrpwr","data_type":"Float64","null_value":0,"comment":"Ramp rate for real power increase following a fault, in pu/s","valid_range":{"max":null,"min":0}},{"name":"VRT_pnts","data_type":"NamedTuple{(:vrt1, :vrt2, :vrt3, :vrt4, :vrt5), Tuple{Float64, Float64, Float64, Float64, Float64}}","null_value":"(vrt1=0.0, vrt2=0.0, vrt3=0.0, vrt4=0.0, vrt5=0.0)","comment":"Voltage ride through v points (vrt1,vrt2,vrt3,vrt4,vrt5)"},{"name":"TVRT_pnts","data_type":"NamedTuple{(:tvrt1, :tvrt2, :tvrt3), Tuple{Float64, Float64, Float64}}","null_value":"(tvrt1=0.0, tvrt2=0.0, tvrt3=0.0)","comment":"Voltage ride through time points (tvrt1,tvrt2,tvrt3)"},{"name":"tV_delay","data_type":"Float64","null_value":0,"comment":"Time delay for reconnection after voltage ride-through disconnection","valid_range":{"max":null,"min":0}},{"name":"VES_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Min and max voltage for entering service (VES_min,VES_max)"},{"name":"FRT_pnts","data_type":"NamedTuple{(:frt1, :frt2, :frt3, :frt4), Tuple{Float64, Float64, Float64, Float64}}","null_value":"(frt1=0.0, frt2=0.0, frt3=0.0, frt4=0.0)","comment":"Frequency ride through v points (frt1,frt2,frt3,frt4)"},{"name":"TFRT_pnts","data_type":"NamedTuple{(:tfrt1, :tfrt2), Tuple{Float64, Float64}}","null_value":"(tfrt1=0.0, tfrt2=0.0)","comment":"Frequency ride through time points (tfrt1,tfrt2)"},{"name":"tF_delay","data_type":"Float64","null_value":0,"comment":"Time delay for reconnection after frequency ride-through disconnection","valid_range":{"max":null,"min":0}},{"name":"FES_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Min and max frequency for entering service (FES_min,FES_max)"},{"name":"Pfa_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference power factor","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference reactive power, in pu","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference active power, in pu","valid_range":{"max":null,"min":0}},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of GenericDER depend on the Flags","internal_default":"PowerSystems.get_GenericDER_states(Qref_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of GenericDER depend on the Flags","internal_default":"PowerSystems.get_GenericDER_states(Qref_Flag)[2]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Generic Distributed Energy Resource Model. Based on https://scholarspace.manoa.hawaii.edu/bitstream/10125/70994/0304.pdf","struct_name":"GenericDER","supertype":"DynamicInjection"},{"fields":[{"name":"device"},{"name":"droop","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"participation_factor","data_type":"UpDown"},{"name":"reserve_limit_dn","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"reserve_limit_up","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"inertia","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"cost","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"time_series_container","data_type":"InfrastructureSystems.TimeSeriesContainer"},{"name":"internal","data_type":"InfrastructureSystems.InfrastructureSystemsInternal"}],"struct_name":"RegulationDevice"}]} \ No newline at end of file diff --git a/test/data_tests/WECC_240_dynamic_validation_descriptors.json b/test/data_tests/WECC_240_dynamic_validation_descriptors.json index 27b98969d..e2a40199d 100644 --- a/test/data_tests/WECC_240_dynamic_validation_descriptors.json +++ b/test/data_tests/WECC_240_dynamic_validation_descriptors.json @@ -1 +1 @@ -{"struct_validation_descriptors":[{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"fixed cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data in two parts: fixed and variable cost.","struct_name":"TwoPartCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data in Three parts fixed, variable cost and start - stop costs.","struct_name":"ThreePartCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"energy_shortage_cost","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Cost incurred by the model for being short of the energy target.","valid_range":{"max":null,"min":0}},{"name":"energy_surplus_cost","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Cost incurred by the model for surplus energy stored.","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure for Operational Cost Data like variable cost and start - stop costs and energy storage cost.","struct_name":"StorageManagementCost","supertype":"OperationalCost"},{"fields":[{"name":"no_load","data_type":"Float64","null_value":"0.0","comment":"no load cost"},{"name":"start_up","data_type":"NamedTuple{(:hot, :warm, :cold), NTuple{3, Float64}}","null_value":"(hot = START_COST, warm = START_COST, cold = START_COST)","comment":"start-up cost at different stages of the thermal cycle. Warm is also refered as intermediate in some markets"},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"variable","default":"nothing","data_type":"Union{Nothing, IS.TimeSeriesKey}","null_value":"nothing","comment":"Variable Cost TimeSeriesKey"},{"name":"ancillary_services","default":"Vector{Service}()","data_type":"Vector{Service}","null_value":"Vector{Service}()","comment":"Bids for the ancillary services"}],"docstring":"Data Structure Operational Cost to reflect market bids of energy and ancilliary services.\nCompatible with most US Market bidding mechanisms","struct_name":"MarketBidCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"no_load","data_type":"Float64","null_value":"0.0","comment":"no load cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"NamedTuple{(:hot, :warm, :cold), NTuple{3, Float64}}","null_value":"(hot = START_COST, warm = START_COST, cold = START_COST)","comment":"start-up cost"},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data which includes fixed, variable cost, multiple start up cost and stop costs.","struct_name":"MultiStartCost","supertype":"OperationalCost"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"peak_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"peak_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"load_response","default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A collection of buses for control purposes.","struct_name":"Area","supertype":"AggregationTopology"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"peak_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"peak_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A collection of buses for electricity price analysis.","struct_name":"LoadZone","supertype":"AggregationTopology"},{"inner_constructor_check":"check_bus_params","fields":[{"name":"number","data_type":"Int","null_value":"0","comment":"number associated with the bus"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init","comment":"the name of the bus"},{"name":"bustype","data_type":"Union{Nothing, BusTypes}","null_value":"nothing","comment":"bus type"},{"name":"angle","data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","comment":"angle of the bus in radians","valid_range":{"max":1.571,"min":-1.571}},{"name":"magnitude","data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"warn","comment":"voltage as a multiple of basevoltage","valid_range":"voltage_limits"},{"name":"voltage_limits","data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)","comment":"limits on the voltage variation as multiples of basevoltage"},{"name":"base_voltage","data_type":"Union{Nothing, Float64}","null_value":"nothing","validation_action":"error","comment":"the base voltage in kV","valid_range":{"max":null,"min":0}},{"name":"area","default":"nothing","data_type":"Union{Nothing, Area}","null_value":"nothing","comment":"the area containing the bus"},{"name":"load_zone","default":"nothing","data_type":"Union{Nothing, LoadZone}","null_value":"nothing","comment":"the load zone containing the bus"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A power-system bus.","struct_name":"Bus","supertype":"Topology"},{"fields":[{"name":"from","data_type":"Bus","null_value":"Bus(nothing)","comment":"The initial bus"},{"name":"to","data_type":"Bus","null_value":"Bus(nothing)","comment":"The terminal bus"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A topological Arc.","struct_name":"Arc","supertype":"Topology","custom_code":"get_name(arc::Arc) = (get_name ∘ get_from)(arc) * \" -> \" * (get_name ∘ get_to)(arc)"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"b","data_type":"FromTo","null_value":"(from=0.0, to=0.0)","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":100,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"angle_limits","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"Line","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"b","data_type":"FromTo","null_value":"(from=0.0, to=0.0)","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"flow_limits","needs_conversion":true,"data_type":"FromTo_ToFrom","null_value":"(from_to=0.0, to_from=0.0)","comment":"throw warning above max SIL"},{"name":"rate","needs_conversion":true,"data_type":"Float64","null_value":"0.0","comment":"compare to SIL (warn) (theoretical limit)"},{"name":"angle_limits","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"MonitoredLine","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","Comment":"System per-unit value","data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":{"max":2,"min":0}},{"name":"tap","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":2,"min":0}},{"name":"α","data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":{"max":1.571,"min":-1.571}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"phase_angle_limits","default":"(min=-1.571, max=1.571)","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"PhaseShiftingTransformer","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":-2}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"tap","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":2,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"TapTransformer","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"nothing","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"The 2-W transformer model uses an equivalent circuit assuming the impedance is on the High Voltage Side of the transformer. The model allocates the iron losses and magnetizing susceptance to the primary side.","struct_name":"Transformer2W","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"active_power_limits_from","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"active_power_limits_to","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_from","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_to","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"loss","data_type":"NamedTuple{(:l0, :l1), Tuple{Float64, Float64}}","null_value":"(l0=0.0, l1=0.0)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"a High voltage DC line.","struct_name":"HVDCLine","supertype":"DCBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"rectifier_tap_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"rectifier_xrc","data_type":"Float64","null_value":"0.0"},{"name":"rectifier_firing_angle","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"inverter_tap_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"inverter_xrc","data_type":"Float64","null_value":"0.0"},{"name":"inverter_firing_angle","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"As implemented in Milano's Book, Page 397.","struct_name":"VSCDCLine","supertype":"DCBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","data_type":"TwoPartCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`TwoPartCost`](@ref)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"InterruptiblePowerLoad","supertype":"ControllableLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"Y","data_type":"Complex{Float64}","null_value":"0.0","comment":"System per-unit value"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection model for admittance"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"FixedAdmittance","supertype":"ElectricLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"Y","data_type":"Complex{Float64}","null_value":"0.0","comment":"Initial impedance at N = 0"},{"name":"number_of_steps","default":"0","data_type":"Int","null_value":"0","comment":"Number of steps for adjustable shunt"},{"name":"Y_increase","default":"0","data_type":"Complex{Float64}","null_value":"0","comment":"Admittance increment for each of step increase"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection model for admittance"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"SwitchedAdmittance","supertype":"ElectricLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a static power load.","struct_name":"PowerLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"constant_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"constant_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"impedance_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"impedance_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"current_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"current_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_constant_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_constant_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_impedance_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_impedance_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_current_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_current_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a standard load.","struct_name":"StandardLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"active_power_coefficient","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Coefficient relating voltage dependence for power P = P0 * V^α","valid_range":{"max":null,"min":0}},{"name":"reactive_power_coefficient","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Coefficient relating voltage dependence for power Q = Q0 * V^β","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a static exponential load.","struct_name":"ExponentialLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_s","data_type":"Float64","null_value":0,"comment":"Armature stator resistance","valid_range":{"max":null,"min":0}},{"name":"R_r","data_type":"Float64","null_value":0,"comment":"Rotor resistance","valid_range":{"max":null,"min":0}},{"name":"X_ls","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_lr","data_type":"Float64","null_value":0,"comment":"Rotor Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_m","data_type":"Float64","null_value":0,"comment":"Stator-Rotor Mutual Reactance","valid_range":{"max":null,"min":0}},{"name":"H","data_type":"Float64","null_value":0,"comment":"Motor Inertia Constant [s]","valid_range":{"max":null,"min":0}},{"name":"A","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Quadratic Term","valid_range":{"max":1,"min":0}},{"name":"B","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Linear Term","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"C","data_type":"Float64","comment":"Torque-Speed Constant Term","internal_default":"PowerSystems.calculate_IM_torque_params(A, B)"},{"name":"τ_ref","data_type":"Float64","comment":"Reference torque parameter","internal_default":"1.0"},{"name":"B_shunt","data_type":"Float64","comment":"Susceptance Initialization Corrector Term","internal_default":"0.0"},{"name":"X_ad","data_type":"Float64","comment":"Equivalent d-axis reactance","internal_default":"(1.0 / X_m + 1.0 / X_ls + 1.0 / X_lr)^(-1)"},{"name":"X_aq","data_type":"Float64","comment":"Equivalent q-axis reactance","internal_default":"X_ad"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψ_qs: stator flux in the q-axis,\n\tψ_ds: stator flux in the d-axis,\n\tψ_qr: rotor flux in the q-axis,\n\tψ_dr: rotor flux in the d-axis, \n\tωr: Rotor speed [pu],","internal_default":"[:ψ_qs, :ψ_ds, :ψ_qr, :ψ_dr, :ωr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SingleCageInductionMachine has 5 states","internal_default":5},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 5-states three-phase single cage induction machine with quadratic torque-speed relationship.","struct_name":"SingleCageInductionMachine","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_s","data_type":"Float64","null_value":0,"comment":"Armature stator resistance","valid_range":{"max":null,"min":0}},{"name":"R_r","data_type":"Float64","null_value":0,"comment":"Rotor resistance","valid_range":{"max":null,"min":0}},{"name":"X_ls","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_lr","data_type":"Float64","null_value":0,"comment":"Rotor Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_m","data_type":"Float64","null_value":0,"comment":"Stator-Rotor Mutual Reactance","valid_range":{"max":null,"min":0}},{"name":"H","data_type":"Float64","null_value":0,"comment":"Motor Inertia Constant [s]","valid_range":{"max":null,"min":0}},{"name":"A","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Quadratic Term","valid_range":{"max":1,"min":0}},{"name":"B","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Linear Term","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"C","data_type":"Float64","comment":"Torque-Speed Constant Term","internal_default":"PowerSystems.calculate_IM_torque_params(A, B)"},{"name":"τ_ref","data_type":"Float64","comment":"Reference torque parameter","internal_default":"1.0"},{"name":"B_shunt","data_type":"Float64","comment":"Susceptance Initialization Corrector Term","internal_default":"0.0"},{"name":"X_ss","data_type":"Float64","comment":"Stator self reactance","internal_default":"X_ls + X_m"},{"name":"X_rr","data_type":"Float64","comment":"Rotor self reactance","internal_default":"X_lr + X_m"},{"name":"X_p","data_type":"Float64","comment":"Transient reactance","internal_default":"X_ss - X_m^2 / X_rr"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψ_qr: rotor flux in the q-axis,\n\tψ_dr: rotor flux in the d-axis, \n\tωr: Rotor speed [pu],","internal_default":"[:ψ_qr, :ψ_dr, :ωr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimplifiedSingleCageInductionMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 3-states three-phase single cage induction machine with quadratic torque-speed relationship.","struct_name":"SimplifiedSingleCageInductionMachine","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"a","data_type":"Float64","null_value":0,"comment":"Active power static exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"b","data_type":"Float64","null_value":0,"comment":"Reactive power static exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"α","data_type":"Float64","null_value":0,"comment":"Active power transient exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"β","data_type":"Float64","null_value":0,"comment":"Reactive power transient exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Active Power Time Constant","valid_range":{"max":null,"min":0}},{"name":"T_q","data_type":"Float64","null_value":0,"comment":"Reactive Power Time Constant","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"base_power","data_type":"Float64","comment":"Base Power","internal_default":"100.0"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p: Integrator state of the active power,\n\tx_q: Integrator state of the reactive power,","internal_default":"[:x_p, :x_q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"DynamicExponentialLoad has 2 states","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 2-states of a generic dynamic load model based on VOLTAGE STABILITY ANALYSIS USING GENERIC DYNAMIC LOAD MODELS by W. Xu and Y. Mansour, IEEE Transactions on Power Systems, 1994.","struct_name":"DynamicExponentialLoad","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"r_load","data_type":"Float64","null_value":0,"comment":"DC-side resistor","valid_range":{"max":null,"min":0}},{"name":"c_dc","data_type":"Float64","null_value":0,"comment":"DC-side capacitor","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"Converter side filter resistance","valid_range":{"max":null,"min":0}},{"name":"lf","data_type":"Float64","null_value":0,"comment":"Converter side filter inductance","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"AC Converter filter capacitance","valid_range":{"max":null,"min":0}},{"name":"rg","data_type":"Float64","null_value":0,"comment":"Network side filter resistance","valid_range":{"max":null,"min":0}},{"name":"lg","data_type":"Float64","null_value":0,"comment":"Network side filter inductance","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"Proportional constant for PI-PLL block","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"Integral constant for PI-PLL block","valid_range":{"max":null,"min":0}},{"name":"kpv","data_type":"Float64","null_value":0,"comment":"Proportional constant for Voltage Control block","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"Integral constant for Voltage Control block","valid_range":{"max":null,"min":0}},{"name":"kpc","data_type":"Float64","null_value":0,"comment":"Proportional constant for Current Control block","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"Integral constant for Current Control block","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"P_ref","data_type":"Float64","comment":"Reference active power parameter","internal_default":"1.0"},{"name":"Q_ref","data_type":"Float64","comment":"Reference reactive power parameter","internal_default":"1.0"},{"name":"V_ref","data_type":"Float64","comment":"Reference voltage parameter","internal_default":"1.0"},{"name":"ω_ref","data_type":"Float64","comment":"Reference frequency parameter","internal_default":"1.0"},{"name":"is_filter_differential","data_type":"Int","comment":"Boolean to decide if filter states are differential or algebraic","internal_default":"1"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tθ_pll: PLL deviation angle, \n\tϵ_pll: PLL integrator state, \n\tη: DC-voltage controller integrator state, \n\tv_dc: DC voltage at the capacitor, \n\tγd: d-axis Current controller integrator state, \n\tγq: q-axis Current controller integrator state, \n\tir_cnv: Real current out of the converter,\n\tii_cnv: Imaginary current out of the converter,\n\tvr_filter: Real voltage at the filter's capacitor,\n\tvi_filter: Imaginary voltage at the filter's capacitor,\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:θ_pll, :ϵ_pll, :η, :v_dc, :γd, :γq, :ir_cnv, :ii_cnv, :vr_filter, :vi_filter, :ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActiveConstantPowerLoad has 12 states","internal_default":12},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 12-states active power load based on the paper Dynamic Stability of a Microgrid With an Active Load from N. Bottrell, M. Prodanovic and T. Green in IEEE Transactions on Power Electronics, 2013.","struct_name":"ActiveConstantPowerLoad","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"storage_capacity","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Maximum storage capacity in the reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"inflow","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline inflow into the reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"initial_storage","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Initial storage capacity in the reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"storage_target","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Storage target at the end of simulation as ratio of storage capacity."},{"name":"conversion_factor","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion factor from flow/volume to energy: m^3 -> p.u-hr."},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroEnergyReservoir","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroDispatch","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"rating_pump","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Withdrawl of the pump. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"active_power_limits_pump","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_pump","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits_pump","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute of pump","valid_range":{"max":null,"min":0}},{"name":"time_limits_pump","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits of pump in hours","valid_range":{"max":null,"min":0}},{"name":"storage_capacity","needs_conversion":true,"data_type":"UpDown","null_value":"(up=0.0, down=0.0)","validation_action":"error","comment":"Maximum storage capacity in the upper and lower reservoirs (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"inflow","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline inflow into the upper reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"outflow","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline outflow from the lower reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"initial_storage","needs_conversion":true,"data_type":"UpDown","null_value":"(up=0.0, down=0.0)","validation_action":"error","comment":"Initial storage capacity in the upper and lower reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"storage_target","default":"(up=1.0, down=1.0)","data_type":"UpDown","null_value":"(up=0.0, down=0.0)","comment":"Storage target of upper reservoir at the end of simulation as ratio of storage capacity."},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"pump_efficiency","default":"1.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Efficiency of pump","valid_range":{"max":1,"min":0}},{"name":"conversion_factor","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion factor from flow/volume to energy: m^3 -> p.u-hr."},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroPumpedStorage","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"power_factor","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":1,"min":0}},{"name":"operation_cost","data_type":"TwoPartCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`TwoPartCost`](@ref)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"RenewableDispatch","supertype":"RenewableGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"power_factor","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for fixed renewable generation technologies.","struct_name":"RenewableFix","supertype":"RenewableGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"status","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"active_power_limits"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"operation_cost","data_type":"OperationalCost","null_value":"ThreePartCost(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"time_limits","default":"nothing","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"must_run","default":"false","data_type":"Bool","null_value":"false"},{"name":"prime_mover","default":"PrimeMovers.OT","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"fuel","default":"ThermalFuels.OTHER","data_type":"ThermalFuels","null_value":"ThermalFuels.OTHER","comment":"Prime mover fuel according to EIA 923"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for thermal generation technologies.","struct_name":"ThermalStandard","supertype":"ThermalGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"status","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"active_power_limits"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"fuel","data_type":"ThermalFuels","null_value":"ThermalFuels.OTHER","comment":"Prime mover fuel according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"power_trajectory","needs_conversion":true,"data_type":"Union{Nothing, StartUpShutDown}","null_value":"nothing","validation_action":"error","comment":"Power trajectory the unit will take during the start-up and shut-down ramp process","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"start_time_limits","data_type":"Union{Nothing, NamedTuple{(:hot, :warm, :cold), Tuple{Float64, Float64, Float64}}}","null_value":"nothing","comment":" Time limits for start-up based on turbine temperature in hours"},{"name":"start_types","data_type":"Int","null_value":"1","validation_action":"error","comment":" Number of start-up based on turbine temperature","valid_range":{"max":3,"min":1}},{"name":"operation_cost","data_type":"OperationalCost","null_value":"MultiStartCost(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"must_run","default":"false","data_type":"Bool","null_value":"false"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for thermal generation technologies.","struct_name":"ThermalMultiStart","supertype":"ThermalGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.BA","comment":"Prime mover technology according to EIA 923"},{"name":"initial_energy","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"State of Charge of the Battery p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"state_of_charge_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","comment":"Maximum and Minimum storage capacity in p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"input_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"output_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"efficiency","data_type":"NamedTuple{(:in, :out), Tuple{Float64, Float64}}","null_value":"(in=0.0, out=0.0)","validation_action":"warn","valid_range":{"max":1,"min":0}},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"nothing","data_type":"Union{Nothing, OperationalCost}","null_value":"nothing"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a generic battery","struct_name":"GenericBattery","supertype":"Storage"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.BA","comment":"Prime mover technology according to EIA 923"},{"name":"initial_energy","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"State of Charge of the Battery p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"state_of_charge_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","comment":"Maximum and Minimum storage capacity in p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"input_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"output_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"efficiency","data_type":"NamedTuple{(:in, :out), Tuple{Float64, Float64}}","null_value":"(in=0.0, out=0.0)","validation_action":"warn","valid_range":{"max":1,"min":0}},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"nothing","data_type":"Union{Nothing, OperationalCost}","null_value":"nothing"},{"name":"storage_target","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"Storage target at the end of simulation as ratio of storage capacity."},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a battery compatible with energy management formulations.","struct_name":"BatteryEMS","supertype":"Storage"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a proportional reserve product for system simulations.","parametric":"ReserveDirection","struct_name":"StaticReserve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a non-spinning reserve product for system simulations.","struct_name":"StaticReserveNonSpinning","supertype":"ReserveNonSpinning"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"contributing_services","default":"Vector{Service}()","data_type":"Vector{Service}","exclude_setter":true,"null_value":"Vector{Service}()","comment":"Services that contribute for this requirement constraint"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a group reserve product for system simulations.","parametric":"ReserveDirection","struct_name":"StaticReserveGroup","supertype":"Service"},{"fields":[{"name":"variable","data_type":"Union{Nothing, IS.TimeSeriesKey}","null_value":"nothing","comment":"Variable Cost TimeSeriesKey"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a operating reserve with demand curve product for system simulations.","parametric":"ReserveDirection","struct_name":"ReserveDemandCurve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for the procurement products for system simulations.","parametric":"ReserveDirection","struct_name":"VariableReserve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for the procurement products for system simulations.","struct_name":"VariableReserveNonSpinning","supertype":"ReserveNonSpinning"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bias","data_type":"Float64","null_value":"0.0"},{"name":"K_p","data_type":"Float64","null_value":"0.0","comment":"PID Proportional Constant"},{"name":"K_i","data_type":"Float64","null_value":"0.0","comment":"PID Integral Constant"},{"name":"K_d","data_type":"Float64","null_value":"0.0","comment":"PID Derrivative Constant"},{"name":"delta_t","data_type":"Float64","null_value":"0.0","comment":"PID Discretization period [Seconds]"},{"name":"area","default":"nothing","data_type":"Union{Nothing, Area}","null_value":"Area(nothing)","comment":"the area controlled by the AGC"},{"name":"initial_ace","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"PID Discretization period [Seconds]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"AGC","supertype":"Service"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"requirement","data_type":"Float64","null_value":"0.0"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"Transfer","supertype":"Service"},{"fields":[{"name":"Vf","data_type":"Float64","null_value":0,"comment":"Fixed voltage field applied to the rotor winding","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"Fixed AVR has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"null_value":0,"comment":"Fixed AVR has no states","internal_default":0},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"Fixed AVR has no states","internal_default":"Vector{StateTypes}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a AVR that returns a fixed voltage to the rotor winding","struct_name":"AVRFixed","supertype":"AVR"},{"fields":[{"name":"Kv","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: field voltage","internal_default":"[:Vf]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"Fixed AVR has 1 states","internal_default":1},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"Simple AVR has 1 differential states","internal_default":"[StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a simple proportional AVR in the derivative of EMF\ni.e. an integrator controller on EMF","struct_name":"AVRSimple","supertype":"AVR"},{"fields":[{"name":"Ta_Tb","data_type":"Float64","null_value":0,"comment":"Ratio of lead and lag time constants","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"comment":"Lag time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"K","data_type":"Float64","null_value":0,"comment":"Gain","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field circuit time constant in s","valid_range":{"max":null,"min":0}},{"name":"V_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field voltage limits"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tVf: Voltage field,\tVr: Lead-lag state","internal_default":"[:Vf, :Vr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SEXS has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"SEXS has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of Simplified Excitation System Model - SEXS in PSSE","struct_name":"SEXS","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter constant related to self-excited field","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":1,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr1: input lead lag,\n\tVr2: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vf, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The ESDC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESDC1A has 5 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Self-excited shunt fields with the voltage regulator operating in a mode commonly termed buck-boost. \nParameters of IEEE Std 421.5 Type DC1A Excitacion System. This model corresponds to ESDC1A in PSSE and PSLF","struct_name":"ESDC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter constant related to self-excited field","valid_range":{"max":1,"min":-1}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant. Appropiate Data: 5.0 <= Tf/Kf <= 15.0","valid_range":{"max":1.5,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr1: input lead lag,\n\tVr2: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vf, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The ESDC2A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESDC2A has 5 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Is used to represent field-controlled dc commutator exciters with continuously acting voltage regulators having power supplies derived from the generator or auxiliaries bus.\nParameters of IEEE Std 421.5 Type DC2A Excitacion System. This model corresponds to ESDC2A in PSSE and PSLF","struct_name":"ESDC2A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter constant related to self-excited field","valid_range":{"max":1,"min":-1}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":1,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant. Appropiate Data: 5 <= Tf/Kf <= 15","valid_range":{"max":null,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vf, :Vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The IEEET1 has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEET1 I has 4 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"1968 IEEE type 1 excitation system model","struct_name":"IEEET1","supertype":"AVR"},{"fields":[{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Amplifier Gain","valid_range":{"max":null,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Field circuit integral deviation","valid_range":{"max":null,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"comment":"Stabilizer Gain in s * pu/pu","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Amplifier Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field Circuit Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"comment":"Stabilizer Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Va_min, Va_max)`"},{"name":"Ae","data_type":"Float64","null_value":0,"comment":"1st ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"Be","data_type":"Float64","null_value":0,"comment":"2nd ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: Voltage field,\n\tVr1: Amplifier State,\n\tVr2: Stabilizing Feedback State,\n\tVm: Measured voltage","internal_default":"[:Vf, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The AVR Type I has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"AVR Type I has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of an Automatic Voltage Regulator Type I - Resembles IEEE Type DC1","struct_name":"AVRTypeI","supertype":"AVR"},{"fields":[{"name":"K0","data_type":"Float64","null_value":0,"comment":"Regulator Gain","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"First Pole in s","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"First zero in s","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"First Pole in s","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"First zero in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field Circuit Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Va_min, Va_max)`"},{"name":"Ae","data_type":"Float64","null_value":0,"comment":"1st ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"Be","data_type":"Float64","null_value":0,"comment":"2nd ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: Voltage field,\n\tVr1: First Lead-Lag state,\n\tVr2: Second lead-lag state,\n\tVm: Measured voltage","internal_default":"[:Vf, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AVR Type II has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"AVR Type II has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of an Automatic Voltage Regulator Type II - Typical static exciter model","struct_name":"AVRTypeII","supertype":"AVR"},{"fields":[{"name":"Ta_Tb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lead input constant ratio","valid_range":{"max":0.3,"min":0.05}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lag input constant in s","valid_range":{"max":20,"min":5}},{"name":"K","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator Gain","valid_range":{"max":100,"min":20}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator Time Constant","valid_range":{"max":1,"min":0}},{"name":"Efd_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field Voltage regulator limits (regulator output) (Efd_min, Efd_max)"},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"rc_rfd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Field current capability. Set = 0 for negative current capability. Typical value 10","valid_range":{"max":10,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVr1: First integrator,\n\tVr2: Second integrator","internal_default":"[:Vr1, :Vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SCRX has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"SCRX has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This exciter is based on an IEEE type SCRX solid state exciter. The output field voltage is varied by a control system to maintain the system voltage at Vref. Please note that this exciter model has no initialization capabilities - this means that it will respond to whatever inputs it receives regardless of the state of the machine model.","struct_name":"SCRX","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage: `(Vr_min, Vr_max)`"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(x) = B(x - A)^2/x"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ESAC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESAC1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A Excitacion System. This model corresponds to ESAC1A in PSSE and PSLF","struct_name":"ESAC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage: `(Vr_min, Vr_max)`"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(x) = B(x - A)^2/x"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified ESAC1A. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A Excitacion System. EXAC1A in PSSE and PSLF","struct_name":"EXAC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC1 has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC1 has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified ESAC1A. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A. EXAC1 in PSSE and PSLF","struct_name":"EXAC1","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Kb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Second Stage regulator gain","valid_range":{"max":500,"min":"eps()"}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant","valid_range":{"max":2,"min":"eps()"}},{"name":"Kl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter gain","valid_range":{"max":1.1,"min":0}},{"name":"Kh","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current regulator feedback gain","valid_range":{"max":1.1,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"V_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum exciter field current","valid_range":{"max":null,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC2 has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC2 has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified AC2. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC2A Excitacion System. The alternator main exciter is used, feeding its output via non-controlled rectifiers. The Type AC2C model is similar to that of Type AC1C except for the inclusion of exciter time constant compensation and exciter field current limiting elements. EXAC2 in PSSE and PSLF.","struct_name":"EXAC2","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output lag time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tk","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Regulator lead time constant","valid_range":{"max":10,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant","valid_range":{"max":2,"min":"eps()"}},{"name":"VFE_lim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter reference","valid_range":{"max":20,"min":-5}},{"name":"Kh","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current regulator feedback gain","valid_range":{"max":100,"min":0}},{"name":"VH_max","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter maximum output","valid_range":{"max":100,"min":0}},{"name":"Th","data_type":"Float64","null_value":0,"comment":"Exciter field current limiter denominator (lag) time constant","valid_range":{"max":1,"min":0}},{"name":"Tj","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter numerator (lead) time constant","valid_range":{"max":1,"min":0}},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":2,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":2,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ESAC6A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESAC6A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified AC6A. Used to represent field-controlled alternator-rectifier excitation systems with system-supplied electronic voltage regulators. \nParameters of IEEE Std 421.5 Type AC6A Excitacion System. ESAC6A in PSSE and PSLF.","struct_name":"ESAC6A","supertype":"AVR"},{"fields":[{"name":"UEL_flags","data_type":"Int","null_value":1,"validation_action":"warn","comment":"Code input for Underexcitization limiter (UEL) entry. Not supported.","valid_range":{"max":3,"min":1}},{"name":"PSS_flags","data_type":"Int","null_value":1,"comment":"Code input for Power System Stabilizer (PSS) or (VOS) entry.","valid_range":{"max":2,"min":1}},{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.1,"min":0}},{"name":"Vi_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage error limits (regulator input) (Vi_min, Vi_max)"},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"First regulator denominator (lead) time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"comment":"First regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Second regulator denominator (lead) time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tb1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Second regulator denominator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator gain","valid_range":{"max":1000,"min":50}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter output `(Vr_min, Vr_max)`"},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":0.3,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant in s","valid_range":{"max":1.5,"min":"eps()"}},{"name":"K_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter output current limiter gain","valid_range":{"max":5,"min":0}},{"name":"I_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter output current limit reference","valid_range":{"max":5,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: First Lead-lag state,\n\tVr2: Second lead-lag state,\n\tVa: Regulator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Va, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ST1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ST1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This excitation system supplies power through a transformer from the generator terminals and its regulated by a controlled rectifier (via thyristors).\nParameters of IEEE Std 421.5 Type ST1A Excitacion System. ESST1A in PSSE and PSLF","struct_name":"ESST1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator gain","valid_range":{"max":500,"min":1}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Vr_min, Vr_max)`"},{"name":"Ta_2","data_type":"Float64","null_value":0,"comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ta_3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ta_4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf_1","validation_actions":"error","data_type":"Float64","null_value":0,"comment":"Rate Feedback time constant in s","valid_range":{"max":15,"min":"eps()"}},{"name":"Tf_2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate Feedback time constant in s","valid_range":{"max":5,"min":0}},{"name":"Efd_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field Voltage regulator limits (regulator output) (Efd_min, Efd_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter constant","valid_range":{"max":1,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter time constant","valid_range":{"max":2,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Kp","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Potential source gain","valid_range":{"max":5,"min":0}},{"name":"Ki","data_type":"Float64","null_value":0,"comment":"current source gain","valid_range":{"max":1.1,"min":0}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter regulation factor","valid_range":{"max":2,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: First Lead-lag state,\n\tVr2: Second regulator lead-lag state,\n\tVr2: Third regulator lead-lag state \n\tVf: Exciter output \n\tVr3: First feedback integrator,\n\tVr4: second feedback integrator","internal_default":"[:Vm, :Vr1, :Vr2, :Vf, :Vr3, :Vr4]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXPIC1 has 6 states","internal_default":6},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXPIC has 6 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Generic Proportional/Integral Excitation System","struct_name":"EXPIC1","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"K_pr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator propotional gain","valid_range":{"max":75,"min":0}},{"name":"K_ir","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator integral gain","valid_range":{"max":75,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (Vi_min, Vi_max)"},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":1,"min":0}},{"name":"K_pm","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator proportional gain output","valid_range":{"max":1.2,"min":0}},{"name":"K_im","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator integral gain output","valid_range":{"max":18,"min":0}},{"name":"Vm_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for inner loop output `(Vm_min, Vm_max)`"},{"name":"Kg","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Feedback gain constant of the inner loop field regulator","valid_range":{"max":1.1,"min":0}},{"name":"Kp","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Potential circuit (voltage) gain coefficient","valid_range":{"max":10,"min":0}},{"name":"Ki","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Compound circuit (current) gain coefficient","valid_range":{"max":1.1,"min":0}},{"name":"VB_max","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum available exciter voltage","valid_range":{"max":20,"min":1}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Reactance associated with potential source","valid_range":{"max":0.5,"min":0}},{"name":"θp","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Potential circuit phase angle (degrees)","valid_range":{"max":90,"min":-90}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"θp_rad","default":"θp*π*inv(180)","data_type":"Float64","null_value":0,"comment":"Potential circuit phase angle (radians)"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVt: Sensed Terminal Voltage,\n\tVr1: Regulator Integrator,\n\tVr2: Regulator Output,\n\tVm: Output integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ST4B has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ST4B has 4 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"In these excitation systems, voltage (and also current in compounded systems) is transformed to an appropriate level. Rectifiers, either controlled or non-controlled, provide the necessary direct current for the generator field.\nParameters of IEEE Std 421.5 Type ST4B Excitacion System. ESST4B in PSSE and PSLF","struct_name":"ESST4B","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vi_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage input limits (Vi_min, Vi_max)"},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Numerator lead-lag (lead) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Denominator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vr_min, Vr_max)"},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Current field constant limiter multiplier","valid_range":{"max":null,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed Terminal Voltage,\n\tVrll: Lead-Lag state,\n\tVr: Regulator Output, \n\tVfb: Feedback state","internal_default":"[:Vm, :Vrll, :Vr, :Vfb]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The EXST1 has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Type ST1 Excitation System (PTI version)","struct_name":"EXST1","supertype":"AVR"},{"fields":[{"name":"Iflim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL Field current limit","valid_range":{"max":null,"min":0}},{"name":"d","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter d","valid_range":{"max":null,"min":0}},{"name":"f","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter f","valid_range":{"max":null,"min":0}},{"name":"Spar","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter Spar","valid_range":{"max":null,"min":0}},{"name":"K1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL delay time constant","valid_range":{"max":null,"min":0}},{"name":"K2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter K2","valid_range":{"max":null,"min":0}},{"name":"Oel_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Oel integrator limits (Oel_min, Oel_max)"},{"name":"G","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"AVR Exciter Gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Numerator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Denominator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"E_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (E_min, E_max)"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVll: Lead-lag internal state,\n\tVex: Exciter Output, \n\toel: OEL integrator state","internal_default":"[:Vll, :Vex, :oel]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The EX4VSA has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Excitation System for Voltage Security Assesment","struct_name":"EX4VSA","supertype":"AVR"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"eq_p","data_type":"Float64","null_value":0,"comment":"Fixed EMF behind the impedance","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"BaseMachine has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"BaseMachine has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Classic Machine: GENCLS in PSSE and PSLF","struct_name":"BaseMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Armature resistance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit. Note: Xd_pp = Xq_pp","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator leakage reactance","valid_range":{"max":null,"min":0}},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Saturation factor at 1 and 1.2 pu flux: S(1.0) = B(|ψ_pp|-A)^2"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"γ_d1 parameter","internal_default":"(Xd_pp - Xl) / (Xd_p - Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"γ_q1 parameter","internal_default":"(Xd_pp - Xl) / (Xq_p - Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"γ_d2 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"γ_q2","data_type":"Float64","comment":"γ_q2 parameter","internal_default":"(Xq_p - Xd_pp) / (Xq_p - Xl)^2"},{"name":"γ_qd","data_type":"Float64","comment":"γ_qd parameter","internal_default":"(Xq - Xl) / (Xd - Xl)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis generator voltage behind the transient reactance,\n\ted_p: d-axis generator voltage behind the transient reactance,\n\tψ_kd: flux linkage in the first equivalent damping circuit in the d-axis,\n\tψ_kq: flux linkage in the first equivalent damping circuit in the d-axis","internal_default":"[:eq_p, :ed_p, :ψ_kd, :ψ_kq]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RoundRotorMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states round-rotor synchronous machine with quadratic/exponential saturation:\nIEEE Std 1110 §5.3.2 (Model 2.2). GENROU or GENROE model in PSSE and PSLF.","struct_name":"RoundRotorMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Armature resistance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit. Note: Xd_pp = Xq_pp","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator leakage reactance","valid_range":{"max":null,"min":0}},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Saturation factor at 1 and 1.2 pu flux: Se(eq_p) = B(eq_p-A)^2"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"γ_d1 parameter","internal_default":"(Xd_pp - Xl) / (Xd_p - Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"γ_q1 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"γ_d2 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis generator voltage behind the transient reactance,\n\tψ_kd: flux linkage in the first equivalent damping circuit in the d-axis,\n\tψq_pp: phasonf of the subtransient flux linkage in the q-axis","internal_default":"[:eq_p, :ψ_kd, :ψq_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SalientPoleMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 3-states salient-pole synchronous machine with quadratic/exponential saturation:\nIEEE Std 1110 §5.3.1 (Model 2.1). GENSAL or GENSAE model in PSSE and PSLF.","struct_name":"SalientPoleMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AndersonFouadMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 6-states synchronous machine: Anderson-Fouad model","struct_name":"AndersonFouadMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"R_f","data_type":"Float64","null_value":0,"comment":"Field rotor winding resistance in per unit","valid_range":{"max":null,"min":0}},{"name":"R_1d","data_type":"Float64","null_value":0,"comment":" Damping rotor winding resistance on d-axis in per unit. This value is denoted as RD in Machowski.","valid_range":{"max":null,"min":0}},{"name":"R_1q","data_type":"Float64","null_value":0,"comment":"Damping rotor winding resistance on q-axis in per unit. This value is denoted as RQ in Machowski.","valid_range":{"max":null,"min":0}},{"name":"L_d","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the d-axis of the rotor, in per unit. This value is denoted as L_ad + L_l in Kundur (and Ld in Machowski).","valid_range":{"max":null,"min":0}},{"name":"L_q","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the q-axis of the rotor, in per unit. This value is denoted as L_aq + L_l in Kundur.","valid_range":{"max":null,"min":0}},{"name":"L_ad","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor field (and damping) winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_aq","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor damping winding inductance on q-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_f1d","data_type":"Float64","null_value":1,"comment":"Mutual inductance between rotor field winding and rotor damping winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_ff","data_type":"Float64","null_value":2,"comment":"Field rotor winding inductance, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1d","data_type":"Float64","null_value":1,"comment":"Inductance of the d-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1q","data_type":"Float64","null_value":1,"comment":"Inductance of the q-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"inv_d_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.127, 3.130, 3.131 From Kundur","internal_default":"inv([[-L_d L_ad L_ad]; [-L_ad L_ff L_f1d]; [-L_ad L_f1d L_1d]])"},{"name":"inv_q_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.128, 3.132 From Kundur","internal_default":"inv([[-L_q L_aq]; [-L_aq L_1q]])"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψd: d-axis stator flux,\n\tψq: q-axis stator flux,\n\tψf: field rotor flux,\n\tψ1d: d-axis rotor damping flux,\n\tψ1q: q-axis rotor damping flux","internal_default":"[:ψd, :ψq, :ψf, :ψ1d, :ψ1q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FullMachine has 5 states","internal_default":5},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameter of a full order flux stator-rotor model without zero sequence flux in the stator.\n The derivative of stator fluxes (ψd and ψq) is NOT neglected. Only one q-axis damping circuit is considered. All parameters are in machine per unit.\n Refer to Chapter 3 of Power System Stability and Control by P. Kundur or Chapter 11 of Power System Dynamics: Stability and Control, by J. Machowski, J. Bialek and J. Bumby, for more details.\n Note that the models are somewhat different (but equivalent) due to the different Park Transformation used in both books.","struct_name":"FullMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"","internal_default":"(Xd_pp-Xl)/(Xd_p-Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"","internal_default":"(Xq_pp-Xl)/(Xq_p-Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"γ_q2","data_type":"Float64","comment":"","internal_default":"(Xq_p - Xq_pp) / (Xq_p - Xl)^2"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage\n\tψd_pp: subtransient flux linkage in the d-axis\n\tψq_pp: subtransient flux linkage in the q-axis","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :ψd_pp, :ψq_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SauerPaiMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of synchronous machine: Sauer Pai model","struct_name":"SauerPaiMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"T_AA","data_type":"Float64","null_value":0,"comment":"Time constant of d-axis additional leakage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γd","data_type":"Float64","comment":"","internal_default":"((Td0_pp*Xd_pp)/(Td0_p*Xd_p) )*(Xd-Xd_p)"},{"name":"γq","data_type":"Float64","comment":"","internal_default":"((Tq0_pp*Xq_pp)/(Tq0_p*Xq_p) )*(Xq-Xq_p)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"MarconatoMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 6-states synchronous machine: Marconato model","struct_name":"MarconatoMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage","internal_default":"[:eq_p, :ed_p]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"OneDOneQMachine has 2 states","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states synchronous machine: Simplified Marconato model\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when\n transmission network dynamics is neglected.","struct_name":"OneDOneQMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleAFMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states simplified Anderson-Fouad (SimpleAFMachine) model.\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when transmission network\n dynamics is neglected.\n If transmission dynamics is considered use the full order Anderson Fouad model.","struct_name":"SimpleAFMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"R_f","data_type":"Float64","null_value":0,"comment":"Field rotor winding resistance in per unit","valid_range":{"max":null,"min":0}},{"name":"R_1d","data_type":"Float64","null_value":0,"comment":" Damping rotor winding resistance on d-axis in per unit. This value is denoted as RD in Machowski.","valid_range":{"max":null,"min":0}},{"name":"R_1q","data_type":"Float64","null_value":0,"comment":"Damping rotor winding resistance on q-axis in per unit. This value is denoted as RQ in Machowski.","valid_range":{"max":null,"min":0}},{"name":"L_d","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the d-axis of the rotor, in per unit. This value is denoted as L_ad + L_l in Kundur (and Ld in Machowski).","valid_range":{"max":null,"min":0}},{"name":"L_q","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the q-axis of the rotor, in per unit. This value is denoted as L_aq + L_l in Kundur.","valid_range":{"max":null,"min":0}},{"name":"L_ad","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor field (and damping) winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_aq","data_type":"Float64","null_value":1,"comment":"Mutual inductance between stator winding and rotor damping winding inductance on q-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_f1d","data_type":"Float64","null_value":1,"comment":"Mutual inductance between rotor field winding and rotor damping winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_ff","data_type":"Float64","null_value":2,"comment":"Field rotor winding inductance, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1d","data_type":"Float64","null_value":1,"comment":"Inductance of the d-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1q","data_type":"Float64","null_value":2,"comment":"Inductance of the q-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"inv_d_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.127, 3.130, 3.131 From Kundur","internal_default":"inv([[-L_d L_ad L_ad]; [-L_ad L_ff L_f1d]; [-L_ad L_f1d L_1d]])"},{"name":"inv_q_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.128, 3.132 From Kundur","internal_default":"inv([[-L_q L_aq]; [-L_aq L_1q]])"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψf: field rotor flux,\n\tψ1d: d-axis rotor damping flux,\n\tψ1q: q-axis rotor damping flux","internal_default":"[:ψf, :ψ1d, :ψ1q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleFullMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameter of a full order flux stator-rotor model without zero sequence flux in the stator.\n The derivative of stator fluxes (ψd and ψq) is neglected. This is standard when\n transmission network dynamics is neglected. Only one q-axis damping circuit\n is considered. All per unit are in machine per unit.\n Refer to Chapter 3 of Power System Stability and Control by P. Kundur or Chapter 11 of Power System Dynamics: Stability and Control, by J. Machowski, J. Bialek and J. Bumby, for more details.\n Note that the models are somewhat different (but equivalent) due to the different Park Transformation used in both books.","struct_name":"SimpleFullMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"T_AA","data_type":"Float64","null_value":0,"comment":"Time constant of d-axis additional leakage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γd","data_type":"Float64","comment":"","internal_default":"((Td0_pp*Xd_pp)/(Td0_p*Xd_p) )*(Xd-Xd_p)"},{"name":"γq","data_type":"Float64","comment":"","internal_default":"((Tq0_pp*Xq_pp)/(Tq0_p*Xq_p) )*(Xq-Xq_p)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleMarconatoMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states synchronous machine: Simplified Marconato model\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when transmission network\n dynamics is neglected.","struct_name":"SimpleMarconatoMachine","supertype":"Machine"},{"fields":[{"name":"V_pss","data_type":"Float64","null_value":0,"comment":"Fixed voltage stabilization signal","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"PSSFixed has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a PSS that returns a fixed voltage to add to the reference for the AVR","struct_name":"PSSFixed","supertype":"PSS"},{"fields":[{"name":"K_ω","data_type":"Float64","null_value":0,"comment":"Proportional gain for frequency","valid_range":{"max":null,"min":0}},{"name":"K_p","data_type":"Float64","null_value":0,"comment":"Proportional gain for active power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"PSSSimple has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a PSS that returns a proportional droop voltage to add to the reference for the AVR","struct_name":"PSSSimple","supertype":"PSS"},{"fields":[{"name":"input_code","data_type":"Int","null_value":1,"validation_action":"error","comment":"Code input for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control","data_type":"Int","null_value":0,"comment":"Remote Bus number for control."},{"name":"A1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A3","data_type":"Float64","null_value":0,"comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Time constant","valid_range":{"max":"2.0","min":"eps()"}},{"name":"Ks","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Proportional gain","valid_range":{"max":null,"min":0}},{"name":"Ls_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits for regulator output `(Ls_min, Ls_max)`"},{"name":"Vcu","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Cutoff limiter upper bound","valid_range":{"max":"1.25","min":0}},{"name":"Vcl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Cutoff limiter lower bound","valid_range":{"max":"1.0","min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p1: 1st filter integration,\n\tx_p2: 2nd filter integration, \n\tx_p3: 3rd filter integration, \n\tx_p4: 4rd filter integration, \n\tx_p5: T1/T2 lead-lag integrator, \n\tx_p6: T3/T4 lead-lag integrator, \n\t:x_p7 last integer,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 7 states","internal_default":7},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 7 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Stabilizing Model PSS. ","struct_name":"IEEEST","supertype":"PSS"},{"fields":[{"name":"KT","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"K/T for washout filter","valid_range":{"max":null,"min":0}},{"name":"T","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant for washout filter","valid_range":{"max":null,"min":0.01}},{"name":"T1T3","data_type":"Float64","null_value":0,"comment":"Time constant division T1/T3","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant","valid_range":{"max":null,"min":0.01}},{"name":"T2T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant division T2/T4","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant","valid_range":{"max":null,"min":0.01}},{"name":"H_lim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"PSS output limit","valid_range":{"max":0.5,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p1: washout filter,\n\tx_p2: T1/T3 lead-lag block, \n\tx_p3: T2/T4 lead-lag block,","internal_default":"[:x_p1, :x_p2, :x_p3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"STAB1 has 3 states","internal_default":3},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"STAB1 has 3 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Speed-Sensitive Stabilizing Model","struct_name":"STAB1","supertype":"PSS"},{"fields":[{"name":"H","data_type":"Float64","null_value":0,"comment":"Rotor inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"D","data_type":"Float64","null_value":0,"comment":"Rotor natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tδ: rotor angle,\n\tω: rotor speed","internal_default":"[:δ, :ω]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SingleMass has 1 state","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of single mass shaft model. Typically represents the rotor mass.","struct_name":"SingleMass","supertype":"Shaft"},{"fields":[{"name":"H","data_type":"Float64","null_value":0,"comment":"Rotor inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_ex","data_type":"Float64","null_value":0,"comment":" Exciter inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"D","data_type":"Float64","null_value":0,"comment":"Rotor natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_ex","data_type":"Float64","null_value":0,"comment":"Exciter natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_12","data_type":"Float64","null_value":0,"comment":"High-Intermediate pressure turbine damping","valid_range":{"max":null,"min":0}},{"name":"D_23","data_type":"Float64","null_value":0,"comment":"Intermediate-Low pressure turbine damping","valid_range":{"max":null,"min":0}},{"name":"D_34","data_type":"Float64","null_value":0,"comment":"Low pressure turbine-Rotor damping","valid_range":{"max":null,"min":0}},{"name":"D_45","data_type":"Float64","null_value":0,"comment":"Rotor-Exciter damping","valid_range":{"max":null,"min":0}},{"name":"K_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_ex","data_type":"Float64","null_value":0,"comment":"Exciter angle coefficient","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tδ: rotor angle,\n\tω: rotor speed,\n\tδ_hp: rotor angle of high pressure turbine,\n\tω_hp: rotor speed of high pressure turbine,\n\tδ_ip: rotor angle of intermediate pressure turbine,\n\tω_ip: rotor speed of intermediate pressure turbine,\n\tδ_lp: rotor angle of low pressure turbine,\n\tω_lp: rotor speed of low pressure turbine,\n\tδ_ex: rotor angle of exciter,\n\tω_lp: rotor speed of exciter","internal_default":"[:δ, :ω, :δ_hp, :ω_hp, :δ_ip, :ω_ip, :δ_lp, :ω_lp, :δ_ex, :ω_ex]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FiveMassShaft has 10 states","internal_default":10},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 5 mass-spring shaft model.\n It contains a High-Pressure (HP) steam turbine, Intermediate-Pressure (IP)\n steam turbine, Low-Pressure (LP) steam turbine, the Rotor and an Exciter (EX) mover.","struct_name":"FiveMassShaft","supertype":"Shaft"},{"fields":[{"name":"efficiency","data_type":"Float64","null_value":0,"comment":" Efficiency factor that multiplies P_ref","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGFixed has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a fixed Turbine Governor that returns a fixed mechanical torque\n given by the product of P_ref*efficiency","struct_name":"TGFixed","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Speed droop parameter","valid_range":{"max":0.1,"min":"eps()"}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Governor time constant in s","valid_range":{"max":0.5,"min":"eps()"}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Combustion chamber time constant","valid_range":{"max":0.5,"min":"eps()"}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Load limit time constant (exhaust gas measurement time)","valid_range":{"max":5,"min":"eps()"}},{"name":"AT","data_type":"Float64","null_value":0,"comment":"Ambient temperature load limit","valid_range":{"max":1,"min":0}},{"name":"Kt","data_type":"Float64","null_value":0,"comment":"Load limit feedback gain","valid_range":{"max":5,"min":0}},{"name":"V_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Operational control limits on fuel valve opening (V_min, V_max)"},{"name":"D_turb","data_type":"Float64","null_value":0,"comment":"Speed damping coefficient of gas turbine rotor","valid_range":{"max":0.5,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Load Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the GAST model are:\n\tx_g1: Fuel valve opening,\n\tx_g2: Fuel flow,\n\tx_g3: Exhaust temperature load","internal_default":"[:x_g1, :x_g2, :x_g3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"GasTG has 3 states","internal_default":3},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"GAST has 3 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of Gas Turbine-Governor. GAST in PSSE and GAST_PTI in PowerWorld.","struct_name":"GasTG","supertype":"TurbineGov"},{"fields":[{"name":"Rselect","data_type":"Int","null_value":1,"validation_action":"error","comment":"Feedback signal for governor droop","valid_range":{"max":1,"min":-2}},{"name":"fuel_flag","data_type":"Int","null_value":0,"validation_action":"error","comment":"Flag Switch for fuel source characteristic","valid_range":{"max":1,"min":0}},{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Speed droop parameter","valid_range":{"max":null,"min":"eps()"}},{"name":"Tpelec","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Electrical power transducer time constant, seconds","valid_range":{"max":null,"min":"eps()"}},{"name":"speed_error_signal","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Speed error signal limits"},{"name":"Kp_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor proportional gain","valid_range":{"max":null,"min":0}},{"name":"Ki_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor integral gain","valid_range":{"max":null,"min":0}},{"name":"Kd_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor derivative gain","valid_range":{"max":null,"min":0}},{"name":"Td_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor derivative time constant","valid_range":{"max":null,"min":0}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits"},{"name":"T_act","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Actuator time constant","valid_range":{"max":null,"min":0}},{"name":"K_turb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine gain","valid_range":{"max":null,"min":0}},{"name":"Wf_nl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"No load fuel flow, pu","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine lag time constant, sec","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine lead time constant, sec","valid_range":{"max":null,"min":0}},{"name":"T_eng","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Transport lag time constant for diesel engine, sec","valid_range":{"max":null,"min":0}},{"name":"Tf_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter time constant","valid_range":{"max":null,"min":0}},{"name":"Kp_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter proportional gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Ki_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load integral gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Ld_ref","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter integral gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Dm","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Mechanical damping coefficient, pu","valid_range":{"max":null,"min":0}},{"name":"R_open","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum valve opening rate, pu/sec","valid_range":{"max":null,"min":0}},{"name":"R_close","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum valve closing rate, pu/sec","valid_range":{"max":null,"min":0}},{"name":"Ki_mw","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Power controller (reset) gain","valid_range":{"max":null,"min":0}},{"name":"A_set","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Acceleration limiter setpoint, pu/sec","valid_range":{"max":null,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Acceleration limiter gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Acceleration limiter time constant ","valid_range":{"max":null,"min":"eps()"}},{"name":"T_rate","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine rating","valid_range":{"max":null,"min":0}},{"name":"db","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Speed governor deadband","valid_range":{"max":null,"min":0}},{"name":"Tsa","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temperature detection lead time constant","valid_range":{"max":null,"min":0}},{"name":"Tsb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temperature detection lag time constant","valid_range":{"max":null,"min":0}},{"name":"R_lim","data_type":"UpDown","null_value":"(up = 0.0, down = 0.0)","comment":"Maximum rate of load increa"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the GGOV1 model are:\n\tPe: Machine Electrical Power Measurement,\n\tx_g1: Governor differential control,\n\tx_g2: Governor integral control, \n\tx_g3: Turbine actuator, \n\tx_g4: Turbine Lead-Lag, \n\tx_g5: Turbine load limiter measurement, \n\tx_g6: Turbine Load Limiter Integral Control, \n\tx_g7: Supervisory Load Control, \n\tx_g8: Acceleration Control, \n\tx_g9 Temperature Detection Lead - Lag:","internal_default":"[:Pe, :x_g1, :x_g2, :x_g3, :x_g4, :x_g5, :x_g6, :x_g7, :x_g8, :x_g9]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"GeneralGovModel has 10 states","internal_default":10},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"GGOV1 has 10 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"GE General Governor/Turbine Model. The GeneralGovModel (GGOV1) model is a general purpose governor model used for a variety of prime movers controlled by proportional-integral-derivative (PID) governors including gas turbines.","struct_name":"GeneralGovModel","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Droop parameter","valid_range":{"max":0.1,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Governor time constant","valid_range":{"max":0.5,"min":"eps()"}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits"},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Lead Lag Lead Time constant ","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lead Lag Lag Time constant ","valid_range":{"max":10,"min":"eps()"}},{"name":"D_T","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Damping","valid_range":{"max":0.5,"min":0}},{"name":"DB_h","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Deadband for overspeed","valid_range":{"max":null,"min":0}},{"name":"DB_l","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Deadband for underspeed","valid_range":{"max":0,"min":null}},{"name":"T_rate","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Rate (MW). If zero, generator base is used.","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the SteamTurbineGov1 model are:\n\tx_g1: Valve Opening,\n\tx_g2: Lead-lag state","internal_default":"[:x_g1, :x_g2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGOV1 has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"TGOV1 has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Steam Turbine-Governor. This model considers both TGOV1 or TGOV1DU in PSS/E.","struct_name":"SteamTurbineGov1","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Permanent droop parameter","valid_range":{"max":0.1,"min":0}},{"name":"r","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temporary Droop","valid_range":{"max":2,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Governor time constant","valid_range":{"max":30,"min":"eps()"}},{"comment":"Filter Time constant","name":"Tf","data_type":"Float64","null_value":0,"valiation_action":"error","valid_range":{"max":0.1,"min":"eps()"}},{"name":"Tg","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Servo time constant","valid_range":{"max":1,"min":"eps()"}},{"name":"VELM","data_type":"Float64","null_value":0,"validation_action":"error","comment":"gate velocity limit","valid_range":{"max":0.3,"min":"eps()"}},{"name":"gate_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Gate position limits"},{"name":"Tw","data_type":"Float64","null_value":0,"validation_action":"error","comment":"water time constant","valid_range":{"max":3,"min":"eps()"}},{"name":"At","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine gain","valid_range":{"max":1.5,"min":0.8}},{"name":"D_T","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Damping","valid_range":{"max":0.5,"min":0}},{"name":"q_nl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"No-power flow","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the HydroTurbineGov model are:\n\tx_g1: filter_output,\n\tx_g2: desired gate, \n\tx_g3: gate opening, \n\tx_g4: turbine flow","internal_default":"[:x_g1, :x_g2, :x_g3, :x_g4]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"HYGOV has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"HYGOV has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Hydro Turbine-Governor.","struct_name":"HydroTurbineGov","supertype":"TurbineGov"},{"fields":[{"name":"K","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor Gain","valid_range":{"max":30,"min":5}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Input Filter Lag","valid_range":{"max":5,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Input Filter Lead","valid_range":{"max":10,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Valve position Time Constant","valid_range":{"max":1,"min":"eps()"}},{"name":"U0","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum Valve Opening Rate","valid_range":{"max":0.03,"min":0.01}},{"name":"U_c","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum Valve closing rate","valid_range":{"max":0,"min":-0.3}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits in MW"},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time Constant inlet steam","valid_range":{"max":1,"min":0}},{"name":"K1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power","valid_range":{"max":1,"min":-2}},{"name":"K2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second boiler pass","valid_range":{"max":10,"min":0}},{"name":"K3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power second boiler pass","valid_range":{"max":0.5,"min":0}},{"name":"K4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power second boiler pass","valid_range":{"max":0.5,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third boiler pass","valid_range":{"max":10,"min":0}},{"name":"K5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power third boiler pass","valid_range":{"max":0.35,"min":0}},{"name":"K6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power third boiler pass","valid_range":{"max":0.55,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth boiler pass","valid_range":{"max":10,"min":0}},{"name":"K7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power fourth boiler pass","valid_range":{"max":0.3,"min":0}},{"name":"K8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power fourth boiler pass","valid_range":{"max":0.3,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the IEEETurbineGov model are:\n\tx_g1: First Governor integrator,\n\tx_g2: Governor output,\n\tx_g3: First Turbine integrator, \n\tx_g4: Second Turbine Integrator, \n\tx_g5: Third Turbine Integrator, \n\tx_g6: Fourth Turbine Integrator, ","internal_default":"[:x_g1, :x_g2, :x_g3, :x_g4, :x_g5, :x_g6]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEG1 has 6 states","internal_default":6},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEG1 has 6 differential states","internal_default":"[StateTypes.Differential, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Type 1 Speed-Governing Model","struct_name":"IEEETurbineGov1","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Droop parameter","valid_range":{"max":null,"min":0}},{"name":"Ts","data_type":"Float64","null_value":0,"comment":"Governor time constant","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"comment":"Servo time constant","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Transient gain time constant","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"Power fraction time constant","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"comment":"Reheat time constant","valid_range":{"max":null,"min":0}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits in MW"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the TGTypeI model are:\n\tx_g1: Governor state,\n\tx_g2: Servo state,\n\tx_g3: Reheat state","internal_default":"[:x_g1, :x_g2, :x_g3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGTypeI has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Turbine Governor Type I.","struct_name":"TGTypeI","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Droop parameter","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Transient gain time constant","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Power fraction time constant","valid_range":{"max":null,"min":0}},{"name":"τ_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power into the governor limits"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the TGTypeI model are:\n\tx_g1: lead-lag state","internal_default":"[:xg]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGTypeII has 1 state","internal_default":1},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Turbine Governor Type II.","struct_name":"TGTypeII","supertype":"TurbineGov"},{"fields":[{"name":"rated_voltage","data_type":"Float64","null_value":0,"comment":"rated voltage","valid_range":{"max":null,"min":0}},{"name":"rated_current","data_type":"Float64","null_value":0,"comment":"rated VA","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AverageConverter has no states","internal_default":0}],"docstring":"Parameters of an average converter model","struct_name":"AverageConverter","supertype":"Converter"},{"fields":[{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Converter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"Rrpwr","data_type":"Float64","null_value":0,"comment":"Low Voltage Power Logic (LVPL) ramp rate limit (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Brkpt","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 2 (pu)","valid_range":{"max":null,"min":0}},{"name":"Zerox","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 1 (pu)","valid_range":{"max":null,"min":0}},{"name":"Lvpl1","data_type":"Float64","null_value":0,"comment":"LVPL gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Vo_lim","data_type":"Float64","null_value":0,"comment":"Voltage limit for high voltage reactive current management (pu)","valid_range":{"max":null,"min":0}},{"name":"Lv_pnts","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage points for low voltage active current management (pu) (Lvpnt0, Lvpnt1)"},{"name":"Io_lim","data_type":"Float64","null_value":0,"comment":"Current limit (pu) for high voltage reactive current management (specified as a negative value)","valid_range":{"max":0,"min":null}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage filter time constant for low voltage active current management (s)","valid_range":{"max":null,"min":0}},{"name":"K_hv","data_type":"Float64","null_value":0,"comment":"Overvoltage compensation gain used in the high voltage reactive current management","valid_range":{"max":null,"min":0}},{"name":"Iqr_lims","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"Accel","data_type":"Float64","null_value":0,"comment":"Acceleration factor","valid_range":{"max":1,"min":0}},{"name":"Lvpl_sw","data_type":"Int","null_value":0,"comment":"Low voltage power logic (LVPL) switch. (0: LVPL not present, 1: LVPL present)","valid_range":{"max":1,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Initial machine reactive power from power flow","valid_range":{"max":null,"min":0}},{"name":"R_source","default":"0.0","data_type":"Float64","null_value":0,"comment":"Output resistor used for the Thevenin Equivalent","valid_range":{"max":null,"min":0}},{"name":"X_source","default":"1.0e5","data_type":"Float64","null_value":0,"comment":"Output resistor used for the Thevenin Equivalent","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tIp: Converter lag for Ipcmd,\tIq: Converter lag for Iqcmd,\tVmeas: Voltage filter for low voltage active current management","internal_default":"[:Ip, :Iq, :Vmeas]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RenewableEnergyConverterTypeA has 3 states","internal_default":3}],"docstring":"Parameters of a renewable energy generator/converter model, this model corresponds to REGCA1 in PSSE","struct_name":"RenewableEnergyConverterTypeA","supertype":"Converter"},{"fields":[{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Converter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"Rrpwr","data_type":"Float64","null_value":0,"comment":"Low Voltage Power Logic (LVPL) ramp rate limit (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Brkpt","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 2 (pu)","valid_range":{"max":null,"min":0}},{"name":"Zerox","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 1 (pu)","valid_range":{"max":null,"min":0}},{"name":"Lvpl1","data_type":"Float64","null_value":0,"comment":"LVPL gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Vo_lim","data_type":"Float64","null_value":0,"comment":"Voltage limit for high voltage reactive current management (pu)","valid_range":{"max":null,"min":0}},{"name":"Lv_pnts","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage points for low voltage active current management (pu) (Lvpnt0, Lvpnt1)"},{"name":"Io_lim","data_type":"Float64","null_value":0,"comment":"Current limit (pu) for high voltage reactive current management (specified as a negative value)","valid_range":{"max":0,"min":null}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage filter time constant for low voltage active current management (s)","valid_range":{"max":null,"min":0}},{"name":"K_hv","data_type":"Float64","null_value":0,"comment":"Overvoltage compensation gain used in the high voltage reactive current management","valid_range":{"max":null,"min":0}},{"name":"Iqr_lims","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"Accel","data_type":"Float64","null_value":0,"comment":"Acceleration factor","valid_range":{"max":1,"min":0}},{"name":"Lvpl_sw","data_type":"Int","null_value":0,"comment":"Low voltage power logic (LVPL) switch. (0: LVPL not present, 1: LVPL present)","valid_range":{"max":1,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Initial machine reactive power from power flow","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tIp: Converter lag for Ipcmd,\tIq: Converter lag for Iqcmd,\tVmeas: Voltage filter for low voltage active current management","internal_default":"[:Ip, :Iq, :Vmeas]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RenewableEnergyVoltageConverterTypeA has 3 states","internal_default":3}],"docstring":"Parameters of a renewable energy generator/converter model, this model corresponds to REGCA1 in PSSE, but to be interfaced using a Voltage Source instead of a Current Source.","struct_name":"RenewableEnergyVoltageConverterTypeA","supertype":"Converter"},{"fields":[{"name":"voltage","data_type":"Float64","null_value":0,"comment":"rated VA","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FixedDCSource has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Fixed DC Source that returns a fixed DC voltage","struct_name":"FixedDCSource","supertype":"DCSource"},{"fields":[{"name":"rated_voltage","data_type":"Float64","null_value":0,"comment":"rated voltage","valid_range":{"max":null,"min":0}},{"name":"rated_current","data_type":"Float64","null_value":0,"comment":"rated current","valid_range":{"max":null,"min":0}},{"name":"battery_voltage","data_type":"Float64","null_value":0,"comment":"battery voltage","valid_range":{"max":null,"min":0}},{"name":"battery_resistance","data_type":"Float64","null_value":0,"comment":"battery_resistance","valid_range":{"max":null,"min":0}},{"name":"dc_dc_inductor","data_type":"Float64","null_value":0,"comment":"DC/DC inductance","valid_range":{"max":null,"min":0}},{"name":"dc_link_capacitance","data_type":"Float64","null_value":0,"comment":"DC-link capacitor","valid_range":{"max":null,"min":0}},{"name":"fs","data_type":"Float64","null_value":0,"comment":"DC/DC converter switching frequency","valid_range":{"max":null,"min":0}},{"name":"kpv","data_type":"Float64","null_value":0,"comment":"voltage controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"voltage controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kpi","data_type":"Float64","null_value":0,"comment":"current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kii","data_type":"Float64","null_value":0,"comment":"current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"Vdc_ref","default":"1.1","data_type":"Float64","null_value":0,"comment":"Reference DC-Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ZeroOrderBESS model are:\n\tv_dc: DC-link votlage,\n\ti_b: Battery current,\n\t ν: integrator state of the voltage controller,\n\t ζ: integrator state of the PI current controller","internal_default":"[:v_dc, :i_b, :ν, :ζ]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ZeroOrderBESS has 4 states","internal_default":4}],"docstring":"Parameters for the DC-side with a Battery Energy Storage System from paper at https://arxiv.org/abs/2007.11776","struct_name":"ZeroOrderBESS","supertype":"DCSource"},{"fields":[{"name":"lf","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"Shunt capacitance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"lg","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"rg","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the LCLFilter model are:\n\tir_cnv: Real current out of the converter,\n\tii_cnv: Imaginary current out of the converter,\n\tvr_filter: Real voltage at the filter's capacitor,\n\tvi_filter: Imaginary voltage at the filter's capacitor,\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:ir_cnv, :ii_cnv, :vr_filter, :vi_filter, :ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"LCLFilter has 6 states","internal_default":6}],"docstring":"Parameters of a LCL filter outside the converter, the states are in the grid's reference frame","struct_name":"LCLFilter","supertype":"Filter"},{"fields":[{"name":"lf","data_type":"Float64","null_value":0,"comment":"filter inductance","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"filter resistance","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"filter capacitance","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the LCFilter model are:\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"LCFilter has two states","internal_default":2}],"docstring":"Parameters of a LCL filter outside the converter","struct_name":"LCFilter","supertype":"Filter"},{"fields":[{"name":"rf","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"lf","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"RLFilter has zero states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RLFilter has zero states","internal_default":0}],"docstring":"Parameters of RL series filter in algebraic representation","struct_name":"RLFilter","supertype":"Filter"},{"fields":[{"name":"ω_lp","data_type":"Float64","null_value":0,"comment":"PLL low-pass filter frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"PLL proportional gain","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"PLL integral gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the KauraPLL model are:\n\tvd_pll: d-axis of the measured voltage in the PLL synchronous reference frame (SRF),\n\tvq_pll: q-axis of the measured voltage in the PLL SRF,\n\tε_pll: Integrator state of the PI controller,\n\tθ_pll: Phase angle displacement in the PLL SRF","internal_default":"[:vd_pll, :vq_pll, :ε_pll, :θ_pll]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"KauraPLL has 4 states","internal_default":4}],"docstring":"Parameters of a Phase-Locked Loop (PLL) based on Kaura, Vikram, and Vladimir Blasko.\n\"Operation of a phase locked loop system under distorted utility conditions.\"\nIEEE Transactions on Industry applications 33.1 (1997): 58-63.","struct_name":"KauraPLL","supertype":"FrequencyEstimator"},{"fields":[{"name":"ω_lp","data_type":"Float64","null_value":0,"comment":"PLL low-pass filter frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"PLL proportional gain","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"PLL integral gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReducedOrderPLL model are:\n\tvq_pll: q-axis of the measured voltage in the PLL synchronous reference frame (SRF),\n\tε_pll: Integrator state of the PI controller,\n\tθ_pll: Phase angle displacement in the PLL SRF","internal_default":"[:vq_pll, :ε_pll, :θ_pll]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReducedOrderPLL has 3 states","internal_default":3}],"docstring":"Parameters of a Phase-Locked Loop (PLL) based on Purba, Dhople, Jafarpour, Bullo and Johnson.\n\"Reduced-order Structure-preserving Model for Parallel-connected Three-phase Grid-tied Inverters.\"\n2017 IEEE 18th Workshop on Control and Modeling for Power Electronics (COMPEL): 1-7.","struct_name":"ReducedOrderPLL","supertype":"FrequencyEstimator"},{"fields":[{"name":"frequency","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference used"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"FixedFrequency has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FixedFrequency has no states","internal_default":0}],"docstring":"Parameters of a Fixed Frequency Estimator (i.e. no PLL).","struct_name":"FixedFrequency","supertype":"FrequencyEstimator"},{"fields":[{"name":"Ta","data_type":"Float64","null_value":0,"comment":"VSM inertia constant","valid_range":{"max":null,"min":0}},{"name":"kd","data_type":"Float64","null_value":0,"comment":"VSM damping constant","valid_range":{"max":null,"min":0}},{"name":"kω","data_type":"Float64","null_value":0,"comment":"frequency droop gain","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the VirtualInertia model are:\n\tθ_oc: Phase angle displacement of the virtual synchronous generator model\n\tω_oc: Speed of the rotating reference frame of the virtual synchronous generator model","internal_default":"[:θ_oc, :ω_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"VirtualInertia has two states","internal_default":2}],"docstring":"Parameters of a Virtual Inertia with SRF using VSM for active power controller","struct_name":"VirtualInertia","supertype":"ActivePowerControl"},{"fields":[{"name":"Rp","data_type":"Float64","null_value":0,"comment":"Droop Gain","valid_range":{"max":null,"min":0}},{"name":"ωz","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActivePowerDroop model are:\n\tθ_oc: Phase angle displacement of the inverter model,\n\tp_oc: Measured active power of the inverter model","internal_default":"[:θ_oc, :p_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActivePowerDroop has two states","internal_default":2}],"docstring":"Parameters of an Active Power droop controller","struct_name":"ActivePowerDroop","supertype":"ActivePowerControl"},{"fields":[{"name":"Kp_p","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"Ki_p","data_type":"Float64","null_value":0,"comment":"Integral Gain","valid_range":{"max":null,"min":0}},{"name":"ωz","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActivePowerPI model are:\n\tσp_oc: Integrator state of the PI Controller,\n\tp_oc: Measured active power of the inverter model","internal_default":"[:σp_oc, :p_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActivePowerPI has two states","internal_default":2}],"docstring":"Parameters of a Proportional-Integral Active Power controller for a specified power reference","struct_name":"ActivePowerPI","supertype":"ActivePowerControl"},{"fields":[{"name":"k1","data_type":"Float64","null_value":0,"comment":"VOC Synchronization Gain","valid_range":{"max":null,"min":0}},{"name":"ψ","data_type":"Float64","null_value":0,"comment":"Rotation angle of the controller","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActiveVirtualOscillator model are:\n\tθ_oc: Phase angle displacement of the inverter model","internal_default":"[:θ_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActiveVirtualOscillator has one state","internal_default":1}],"docstring":"Parameters of an Active Virtual Oscillator controller. Model is based from the paper Model Reduction for Inverters with Current Limiting and Dispatchable Virtual Oscillator Control by O. Ajala et al.","struct_name":"ActiveVirtualOscillator","supertype":"ActivePowerControl"},{"fields":[{"name":"bus_control","data_type":"Int","null_value":0,"comment":"Bus Number for voltage control; ","valid_range":{"max":null,"min":0}},{"name":"from_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch FROM bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"to_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch TO bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"branch_id_control","data_type":"String","null_value":0,"comment":"Branch circuit id for line drop compensation (as a string). If 0 generator power will be used"},{"name":"Freq_Flag","data_type":"Int","null_value":0,"comment":"Frequency Flag for REPCA1: 0: disable, 1:enable","valid_range":{"max":1,"min":0}},{"name":"K_pg","data_type":"Float64","null_value":0,"comment":"Active power PI control proportional gain","valid_range":{"max":null,"min":0}},{"name":"K_ig","data_type":"Float64","null_value":0,"comment":"Active power PI control integral gain","valid_range":{"max":null,"min":0}},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Real power measurement filter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Frequency error dead band thresholds `(fdbd1, fdbd2)`"},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on frequency error `(fe_min, fe_max)`"},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference `(P_min, P_max)`"},{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Power Controller lag time constant","valid_range":{"max":null,"min":0}},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"Droop for over-frequency conditions","valid_range":{"max":0,"min":null}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"Droop for under-frequency conditions","valid_range":{"max":null,"min":0}},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference ramp rates`(dP_min, dP_max)`"},{"name":"P_lim_inner","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference for REECB`(P_min_inner, P_max_inner)`"},{"name":"T_pord","data_type":"Float64","null_value":0,"comment":"Power filter time constant REECB time constant","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_activeRETypeAB_states(Freq_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the ActiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_activeRETypeAB_states(Freq_Flag)[2]"}],"docstring":"Parameters of Active Power Controller including REPCA1 and REECB1","struct_name":"ActiveRenewableControllerAB","supertype":"ActivePowerControl"},{"fields":[{"name":"bus_control","data_type":"Int","null_value":0,"comment":"Bus Number for voltage control; ","valid_range":{"max":null,"min":0}},{"name":"from_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch FROM bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"to_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch TO bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"branch_id_control","data_type":"String","null_value":0,"comment":"Branch circuit id for line drop compensation (as a string). If 0 generator power will be used"},{"name":"VC_Flag","data_type":"Int","null_value":0,"comment":"Voltage Compensator Flag for REPCA1","valid_range":{"max":1,"min":0}},{"name":"Ref_Flag","data_type":"Int","null_value":0,"comment":"Flag for Reactive Power Control for REPCA1. 0: Q-control, 1: V-control","valid_range":{"max":1,"min":0}},{"name":"PF_Flag","data_type":"Int","null_value":0,"comment":"Flag for Power Factor Control for Outer Control of REECB1. 0: Q-control, 1: Power Factor Control","valid_range":{"max":1,"min":0}},{"name":"V_Flag","data_type":"Int","null_value":0,"comment":"Flag for Voltage Control for Outer Control of REECB1. 0: Voltage Control, 1: Q-Control","valid_range":{"max":1,"min":0}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage or Q-power of REPCA Filter Time Constant","valid_range":{"max":null,"min":0}},{"name":"K_p","data_type":"Float64","null_value":0,"comment":"Reactive power PI control proportional gain","valid_range":{"max":null,"min":0}},{"name":"K_i","data_type":"Float64","null_value":0,"comment":"Reactive power PI control integral gain","valid_range":{"max":null,"min":0}},{"name":"T_ft","data_type":"Float64","null_value":0,"comment":"Reactive power lead time constant (s)","valid_range":{"max":null,"min":0}},{"name":"T_fv","data_type":"Float64","null_value":0,"comment":"Reactive power lag time constant (s)","valid_range":{"max":null,"min":0}},{"name":"V_frz","data_type":"Float64","null_value":0,"comment":"Voltage below which state ξq_oc (integrator state) is freeze","valid_range":{"max":null,"min":0}},{"name":"R_c","data_type":"Float64","null_value":0,"comment":"Line drop compensation resistance (used when VC_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"X_c","data_type":"Float64","null_value":0,"comment":"Line drop compensation reactance (used when VC_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_c","data_type":"Float64","null_value":0,"comment":"Reactive current compensation gain (pu) (used when VC_Flag = 0)","valid_range":{"max":null,"min":0}},{"name":"e_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on Voltage or Q-power deadband output `(e_min, e_max)`"},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage or Q-power error dead band thresholds `(dbd1, dbd2)`"},{"name":"Q_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power V/Q control in REPCA `(Q_min, Q_max)`"},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Active power lag time constant in REECB (s). Used only when PF_Flag = 1","valid_range":{"max":null,"min":0}},{"name":"Q_lim_inner","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power input in REECB `(Q_min_inner, Q_max_inner)`. Only used when V_Flag = 1"},{"name":"V_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power PI controller in REECB `(V_min, V_max)`. Only used when V_Flag = 1"},{"name":"K_qp","data_type":"Float64","null_value":0,"comment":"Reactive power regulator proportional gain (used when V_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_qi","data_type":"Float64","null_value":0,"comment":"Reactive power regulator integral gain (used when V_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_reactiveRETypeAB_states(Ref_Flag, PF_Flag, V_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the ReactiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_reactiveRETypeAB_states(Ref_Flag, PF_Flag, V_Flag)[2]"}],"docstring":"Parameters of Reactive Power Controller including REPCA1 and REECB1","struct_name":"ReactiveRenewableControllerAB","supertype":"ReactivePowerControl"},{"fields":[{"name":"kq","data_type":"Float64","null_value":0,"comment":"frequency droop gain","valid_range":{"max":null,"min":0}},{"name":"ωf","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactivePowerDroop model are:\n\tq_oc: Filtered reactive output power","internal_default":"[:q_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactivePowerDroop has 1 state","internal_default":1}],"docstring":"Parameters of a Reactive Power droop controller","struct_name":"ReactivePowerDroop","supertype":"ReactivePowerControl"},{"fields":[{"name":"Kp_q","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"Ki_q","data_type":"Float64","null_value":0,"comment":"Integral Gain","valid_range":{"max":null,"min":0}},{"name":"ωf","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reactive Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactivePowerPI model are:\n\tσq_oc: Integrator state of the PI Controller,\n\tq_oc: Measured reactive power of the inverter model","internal_default":"[:σq_oc, :q_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactivePowerPI has two states","internal_default":2}],"docstring":"Parameters of a Proportional-Integral Reactive Power controller for a specified power reference","struct_name":"ReactivePowerPI","supertype":"ReactivePowerControl"},{"fields":[{"name":"k2","data_type":"Float64","null_value":0,"comment":"VOC voltage-amplitude control gain","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Reactive Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactiveVirtualOscilator model are:\n\tE_oc: voltage reference state for inner control in the d-axis","internal_default":"[:E_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactiveVirtualOscillator has 1 state","internal_default":1}],"docstring":"Parameters of a Reactive Virtual Oscillator controller. Model is based from the paper Model Reduction for Inverters with Current Limiting and Dispatchable Virtual Oscillator Control by O. Ajala et al.","struct_name":"ReactiveVirtualOscillator","supertype":"ReactivePowerControl"},{"fields":[{"name":"kpv","data_type":"Float64","null_value":0,"comment":"voltage controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"voltage controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffv","data_type":"Float64","null_value":0,"comment":"Binary variable to enable feed-forward gain of voltage.","valid_range":{"max":null,"min":0}},{"name":"rv","data_type":"Float64","null_value":0,"comment":"virtual resistance","valid_range":{"max":null,"min":0}},{"name":"lv","data_type":"Float64","null_value":0,"comment":"virtual inductance","valid_range":{"max":null,"min":0}},{"name":"kpc","data_type":"Float64","null_value":0,"comment":"current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffi","data_type":"Float64","null_value":0,"comment":"Binary variable to enable feed-forward gain of current","valid_range":{"max":null,"min":0}},{"name":"ωad","data_type":"Float64","null_value":0,"comment":"active damping filter cutoff frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kad","data_type":"Float64","null_value":0,"comment":"active damping gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the VoltageModeControl model are:\n\tξd_ic: d-axis integrator state of the PI voltage controller,\n\tξq_ic: q-axis integrator state of the PI voltage controller,\n\tγd_ic: d-axis integrator state of the PI current controller,\n\tγq_ic: q-axis integrator state of the PI current controller,\n\tϕd_ic: d-axis low-pass filter of active damping,\n\tϕq_ic: q-axis low-pass filter of active damping","internal_default":"[:ξd_ic, :ξq_ic, :γd_ic, :γq_ic, :ϕd_ic, :ϕq_ic]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"VoltageModeControl has 6 states","internal_default":6}],"docstring":"Parameters of an inner loop current control PID using virtual impedance based on D'Arco, Suul and Fosso.\n\"A Virtual Synchronous Machine implementation for distributed control of power converters in SmartGrids.\"\nElectric Power Systems Research 122 (2015) 180–197.","struct_name":"VoltageModeControl","supertype":"InnerControl"},{"fields":[{"name":"kpc","data_type":"Float64","null_value":0,"comment":"Current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"Current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffv","data_type":"Float64","null_value":0,"comment":"Gain to enable feed-forward gain of voltage.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the CurrentModeControl model are:\n\tγd_ic: d-axis integrator state of the PI current controller,\n\tγq_ic: q-axis integrator state of the PI current controller","internal_default":"[:γd_ic, :γq_ic]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"CurrentControl has 2 states","internal_default":2}],"docstring":"Parameters of an inner loop PI current control using based on Purba, Dhople, Jafarpour, Bullo and Johnson.\n\"Reduced-order Structure-preserving Model for Parallel-connected Three-phase Grid-tied Inverters.\"\n2017 IEEE 18th Workshop on Control and Modeling for Power Electronics (COMPEL): 1-7.","struct_name":"CurrentModeControl","supertype":"InnerControl"},{"fields":[{"name":"Q_Flag","data_type":"Int","null_value":0,"comment":"Q Flag used for I_qinj","valid_range":{"max":1,"min":0}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"PQ Flag used for the Current Limit Logic","valid_range":{"max":1,"min":0}},{"name":"Vdip_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for Voltage Dip Logic `(Vdip, Vup)`"},{"name":"T_rv","data_type":"Float64","null_value":0,"comment":"Voltage Filter Time Constant","valid_range":{"max":null,"min":0}},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage error deadband thresholds `(dbd1, dbd2)`"},{"name":"K_qv","data_type":"Float64","null_value":0,"comment":"Reactive current injection gain during over and undervoltage conditions","valid_range":{"max":null,"min":0}},{"name":"Iqinj_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for Iqinj `(I_qh1, I_ql1)`"},{"name":"V_ref0","data_type":"Float64","null_value":0,"comment":"User defined reference. If 0, PSID initializes to initial terminal voltage","valid_range":{"max":null,"min":0}},{"name":"K_vp","data_type":"Float64","null_value":0,"comment":"Voltage regulator proportional gain (used when QFlag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_vi","data_type":"Float64","null_value":0,"comment":"Voltage regulator integral gain (used when QFlag = 1)","valid_range":{"max":null,"min":0}},{"name":"T_iq","data_type":"Float64","null_value":0,"comment":"Time constant for low-pass filter for state q_V when QFlag = 0","valid_range":{"max":null,"min":0}},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on total converter current","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the RECurrentControlB depends on the Flags","internal_default":"PowerSystems.get_REControlB_states(Q_Flag)"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the RECurrentControlB depends on the Flags","internal_default":"2"}],"docstring":"Parameters of the Inner Control part of the REECB model in PSS/E","struct_name":"RECurrentControlB","supertype":"InnerControl"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"Pf_Flag","data_type":"Int","null_value":0,"comment":"Flag for Power Factor Control","valid_range":{"max":1,"min":0}},{"name":"Freq_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable frequency control","valid_range":{"max":1,"min":0}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"Flag used to enforce maximum current","valid_range":{"max":1,"min":0}},{"name":"Gen_Flag","data_type":"Int","null_value":0,"comment":"Flag to specify generator or storage","valid_range":{"max":1,"min":0}},{"name":"Vtrip_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable voltage trip logic","valid_range":{"max":1,"min":0}},{"name":"Ftrip_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable frequency trip logic","valid_range":{"max":1,"min":0}},{"name":"T_rv","data_type":"Float64","null_value":0,"comment":"Voltage measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"Trf","data_type":"Float64","null_value":0,"comment":"Frequency measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage deadband thresholds `(dbd1, dbd2)`"},{"name":"K_qv","data_type":"Float64","null_value":0,"comment":"Proportional voltage control gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Tp","data_type":"Float64","null_value":0,"comment":"Power measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"T_iq","data_type":"Float64","null_value":0,"comment":"Time constant for low-pass filter for state q_V when QFlag = 0","valid_range":{"max":null,"min":0}},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"Reciprocal of droop for over-frequency conditions (>0) (pu)","valid_range":{"max":null,"min":0}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"Reciprocal of droop for under-frequency conditions <=0) (pu)","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Frequency control deadband thresholds `(fdbd1, fdbd2)`"},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Frequency error limits (femin, femax)"},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power limits (Pmin, Pmax)"},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power reference ramp rate limits (dPmin, dPmax)"},{"name":"Tpord","data_type":"Float64","null_value":0,"comment":"Power filter time constant","valid_range":{"max":null,"min":0}},{"name":"Kpg","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Kig","data_type":"Float64","null_value":0,"comment":"PI controller integral gain (pu)","valid_range":{"max":null,"min":0}},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on total converter current (pu)","valid_range":{"max":null,"min":0}},{"name":"vl_pnts","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0), (0.0, 0.0)]","comment":"Low voltage cutout points `[(tv10, vl0), (tv11, vl1)]`"},{"name":"vh_pnts","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0), (0.0, 0.0)]","comment":"High voltage cutout points `[(tvh0, vh0), (tvh1, vh1)]`"},{"name":"Vrfrac","data_type":"Float64","null_value":0,"comment":"Fraction of device that recovers after voltage comes back to within vl1 < V < vh1 (0 <= Vrfrac <= 1)","valid_range":{"max":1,"min":0}},{"name":"fl","data_type":"Float64","null_value":0,"comment":"Inverter frequency break-point for low frequency cut-out (Hz)","valid_range":{"max":null,"min":0}},{"name":"fh","data_type":"Float64","null_value":0,"comment":"Inverter frequency break-point for high frequency cut-out (Hz)","valid_range":{"max":null,"min":0}},{"name":"tfl","data_type":"Float64","null_value":0,"comment":"Low frequency cut-out timer corresponding to frequency fl (s)","valid_range":{"max":null,"min":0}},{"name":"tfh","data_type":"Float64","null_value":0,"comment":"High frequency cut-out timer corresponding to frequency fh (s)","valid_range":{"max":null,"min":0}},{"name":"Tg","data_type":"Float64","null_value":0,"comment":"Current control time constant (to represent behavior of inner control loops) (> 0) (s)","valid_range":{"max":null,"min":0}},{"name":"rrpwr","data_type":"Float64","null_value":0,"comment":"Ramp rate for real power increase following a fault (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Tv","data_type":"Float64","null_value":0,"comment":"Time constant on the output of the multiplier (s)","valid_range":{"max":null,"min":0}},{"name":"Vpr","data_type":"Float64","null_value":0,"comment":"Voltage below which frequency tripping is disabled (pu)","valid_range":{"max":null,"min":0}},{"name":"Iq_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Reactive current injection limits (Iqll, Iqhl)"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"User defined voltage reference. If 0, PSID initializes to initial terminal voltage","valid_range":{"max":null,"min":0}},{"name":"Pfa_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference power factor","valid_range":{"max":null,"min":0}},{"name":"ω_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference frequency","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference reactive power, in pu","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference active power, in pu","valid_range":{"max":null,"min":0}},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of AggregateDistributedGenerationA depends on the Flags","internal_default":"PowerSystems.get_AggregateDistributedGenerationA_states(Freq_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of AggregateDistributedGenerationA depends on the Flags","internal_default":"PowerSystems.get_AggregateDistributedGenerationA_states(Freq_Flag)[2]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of the DERA1 model in PSS/E","struct_name":"AggregateDistributedGenerationA","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","data_type":"Float64","null_value":"0.0"},{"name":"R_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin resistance","valid_range":{"max":null,"min":0}},{"name":"X_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin reactance","valid_range":{"max":null,"min":0}},{"name":"internal_voltage","default":"1.0","data_type":"Float64","null_value":0,"comment":"Internal Voltage","valid_range":{"max":null,"min":0}},{"name":"internal_angle","default":"0.0","data_type":"Float64","null_value":0,"comment":"Internal Angle"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This struct acts as an infinity bus.","struct_name":"Source","supertype":"StaticInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin resistance","valid_range":{"max":null,"min":0}},{"name":"X_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin reactance","valid_range":{"max":null,"min":0}},{"name":"internal_voltage_bias","default":"0.0","data_type":"Float64","null_value":0,"comment":"a0 term of the Fourier Series for the voltage"},{"name":"internal_voltage_frequencies","default":"[0.0]","data_type":"Vector{Float64}","null_value":[0],"comment":"Frequencies in radians/s"},{"name":"internal_voltage_coefficients","default":"[(0.0, 0.0)]","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0)]","comment":"Coefficients for terms n > 1. First component corresponds to sin and second component to cos"},{"name":"internal_angle_bias","default":"0.0","data_type":"Float64","null_value":0,"comment":"a0 term of the Fourier Series for the angle"},{"name":"internal_angle_frequencies","default":"[0.0]","data_type":"Vector{Float64}","null_value":[0],"comment":"Frequencies in radians/s"},{"name":"internal_angle_coefficients","default":"[(0.0, 0.0)]","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0)]","comment":"Coefficients for terms n > 1. First component corresponds to sin and second component to cos"},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"State for time, voltage and angle","internal_default":"[:Vt, :θt]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"null_value":2,"internal_default":2},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This struct acts as an infinity bus with time varying phasor values magnitude and angle V(t) \theta(t). Time varying functions are represented using fourier series","struct_name":"PeriodicVariableSource","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"Qref_Flag","data_type":"Int","null_value":1,"comment":"Reactive Power Control Mode. 1 VoltVar Control, 2 Constant Q Control, 3 Constant PF Control","valid_range":{"max":3,"min":1}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"Active and reactive power priority mode. 0 for Q priority, 1 for P priority","valid_range":{"max":1,"min":0}},{"name":"Gen_Flag","data_type":"Int","null_value":0,"comment":"Define generator or storage system. 0 unit is a storage device, 1 unit is a generator","valid_range":{"max":1,"min":0}},{"name":"PerOp_Flag","data_type":"Int","null_value":0,"comment":"Defines operation of permisible region in VRT characteristic. 0 for cease, 1 for continuous operation","valid_range":{"max":1,"min":0}},{"name":"Recon_Flag","data_type":"Int","null_value":0,"comment":"Defines if DER can reconnect after voltage ride-through disconnection","valid_range":{"max":1,"min":0}},{"name":"Trv","data_type":"Float64","null_value":0,"comment":"Voltage measurement transducer's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"VV_pnts","data_type":"NamedTuple{(:V1, :V2, :V3, :V4), Tuple{Float64, Float64, Float64, Float64}}","null_value":"(V1=0.0, V2=0.0, V3=0.0, V4=0.0)","comment":"Y-axis Volt-var curve points (V1,V2,V3,V4)"},{"name":"Q_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Reactive power limits in pu (Q_min, Q_max)"},{"name":"Tp","data_type":"Float64","null_value":0,"comment":"Power measurement transducer's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"e_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Error limit in PI controller for q control (e_min, e_max)"},{"name":"Kpq","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain for q control","valid_range":{"max":null,"min":0}},{"name":"Kiq","data_type":"Float64","null_value":0,"comment":"PI controller integral gain for q control","valid_range":{"max":null,"min":0}},{"name":"Iqr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Max. inverter's current","valid_range":{"max":null,"min":0}},{"name":"Tg","data_type":"Float64","null_value":0,"comment":"Current control's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"kWh_Cap","data_type":"Float64","null_value":0,"comment":"BESS capacity in kWh","valid_range":{"max":null,"min":0}},{"name":"SOC_ini","data_type":"Float64","null_value":0,"comment":"Initial state of charge (SOC) in pu","valid_range":{"max":1,"min":0}},{"name":"SOC_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Battery's SOC limits (SOC_min, SOC_max)"},{"name":"Trf","data_type":"Float64","null_value":0,"comment":"Time constant to estimate system frequency, in s","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"NamedTuple{(:fdbd1, :fdbd2), Tuple{Float64, Float64}}","null_value":"(fdbd1=0.0, fdbd2=0.0)","comment":"Frequency error dead band thresholds `(fdbd1, fdbd2)`"},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"reciprocal of droop for over-frequency conditions, in pu","valid_range":{"max":null,"min":0}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"reciprocal of droop for under-frequency conditions, in pu","valid_range":{"max":null,"min":0}},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Frequency error limits in pu (fe_min, fe_max)"},{"name":"Kpp","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain for p control","valid_range":{"max":null,"min":0}},{"name":"Kip","data_type":"Float64","null_value":0,"comment":"PI controller integral gain for p control","valid_range":{"max":null,"min":0}},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Active power limits in pu (P_min, P_max)"},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Ramp rate limits for active power in pu/s (dP_min, dP_max)"},{"name":"T_pord","data_type":"Float64","null_value":0,"comment":"Power filter time constant in s","valid_range":{"max":null,"min":0}},{"name":"rrpwr","data_type":"Float64","null_value":0,"comment":"Ramp rate for real power increase following a fault, in pu/s","valid_range":{"max":null,"min":0}},{"name":"VRT_pnts","data_type":"NamedTuple{(:vrt1, :vrt2, :vrt3, :vrt4, :vrt5), Tuple{Float64, Float64, Float64, Float64, Float64}}","null_value":"(vrt1=0.0, vrt2=0.0, vrt3=0.0, vrt4=0.0, vrt5=0.0)","comment":"Voltage ride through v points (vrt1,vrt2,vrt3,vrt4,vrt5)"},{"name":"TVRT_pnts","data_type":"NamedTuple{(:tvrt1, :tvrt2, :tvrt3), Tuple{Float64, Float64, Float64}}","null_value":"(tvrt1=0.0, tvrt2=0.0, tvrt3=0.0)","comment":"Voltage ride through time points (tvrt1,tvrt2,tvrt3)"},{"name":"tV_delay","data_type":"Float64","null_value":0,"comment":"Time delay for reconnection after voltage ride-through disconnection","valid_range":{"max":null,"min":0}},{"name":"VES_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Min and max voltage for entering service (VES_min,VES_max)"},{"name":"FRT_pnts","data_type":"NamedTuple{(:frt1, :frt2, :frt3, :frt4), Tuple{Float64, Float64, Float64, Float64}}","null_value":"(frt1=0.0, frt2=0.0, frt3=0.0, frt4=0.0)","comment":"Frequency ride through v points (frt1,frt2,frt3,frt4)"},{"name":"TFRT_pnts","data_type":"NamedTuple{(:tfrt1, :tfrt2), Tuple{Float64, Float64}}","null_value":"(tfrt1=0.0, tfrt2=0.0)","comment":"Frequency ride through time points (tfrt1,tfrt2)"},{"name":"tF_delay","data_type":"Float64","null_value":0,"comment":"Time delay for reconnection after frequency ride-through disconnection","valid_range":{"max":null,"min":0}},{"name":"FES_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Min and max frequency for entering service (FES_min,FES_max)"},{"name":"Pfa_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference power factor","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference reactive power, in pu","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference active power, in pu","valid_range":{"max":null,"min":0}},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of GenericDER depend on the Flags","internal_default":"PowerSystems.get_GenericDER_states(Qref_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of GenericDER depend on the Flags","internal_default":"PowerSystems.get_GenericDER_states(Qref_Flag)[2]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Generic Distributed Energy Resource Model. Based on https://scholarspace.manoa.hawaii.edu/bitstream/10125/70994/0304.pdf","struct_name":"GenericDER","supertype":"DynamicInjection"},{"fields":[{"name":"device"},{"name":"droop","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"participation_factor","data_type":"UpDown"},{"name":"reserve_limit_dn","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"reserve_limit_up","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"inertia","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"cost","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"time_series_container","data_type":"InfrastructureSystems.TimeSeriesContainer"},{"name":"internal","data_type":"InfrastructureSystems.InfrastructureSystemsInternal"}],"struct_name":"RegulationDevice"}]} \ No newline at end of file +{"struct_validation_descriptors":[{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"fixed cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data in two parts: fixed and variable cost.","struct_name":"TwoPartCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data in Three parts fixed, variable cost and start - stop costs.","struct_name":"ThreePartCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"energy_shortage_cost","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Cost incurred by the model for being short of the energy target.","valid_range":{"max":null,"min":0}},{"name":"energy_surplus_cost","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Cost incurred by the model for surplus energy stored.","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure for Operational Cost Data like variable cost and start - stop costs and energy storage cost.","struct_name":"StorageManagementCost","supertype":"OperationalCost"},{"fields":[{"name":"no_load","data_type":"Float64","null_value":"0.0","comment":"no load cost"},{"name":"start_up","data_type":"NamedTuple{(:hot, :warm, :cold), NTuple{3, Float64}}","null_value":"(hot = START_COST, warm = START_COST, cold = START_COST)","comment":"start-up cost at different stages of the thermal cycle. Warm is also refered as intermediate in some markets"},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"variable","default":"nothing","data_type":"Union{Nothing, IS.TimeSeriesKey}","null_value":"nothing","comment":"Variable Cost TimeSeriesKey"},{"name":"ancillary_services","default":"Vector{Service}()","data_type":"Vector{Service}","null_value":"Vector{Service}()","comment":"Bids for the ancillary services"}],"docstring":"Data Structure Operational Cost to reflect market bids of energy and ancilliary services.\nCompatible with most US Market bidding mechanisms","struct_name":"MarketBidCost","supertype":"OperationalCost"},{"fields":[{"name":"variable","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"no_load","data_type":"Float64","null_value":"0.0","comment":"no load cost"},{"name":"fixed","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","data_type":"NamedTuple{(:hot, :warm, :cold), NTuple{3, Float64}}","null_value":"(hot = START_COST, warm = START_COST, cold = START_COST)","comment":"start-up cost"},{"name":"shut_down","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}}],"docstring":"Data Structure Operational Cost Data which includes fixed, variable cost, multiple start up cost and stop costs.","struct_name":"MultiStartCost","supertype":"OperationalCost"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"peak_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"peak_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"load_response","default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A collection of buses for control purposes.","struct_name":"Area","supertype":"AggregationTopology"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"peak_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"peak_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A collection of buses for electricity price analysis.","struct_name":"LoadZone","supertype":"AggregationTopology"},{"inner_constructor_check":"check_bus_params","fields":[{"name":"number","data_type":"Int","null_value":"0","comment":"number associated with the bus"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init","comment":"the name of the bus"},{"name":"bustype","data_type":"Union{Nothing, BusTypes}","null_value":"nothing","comment":"bus type"},{"name":"angle","data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","comment":"angle of the bus in radians","valid_range":{"max":1.571,"min":-1.571}},{"name":"magnitude","data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"warn","comment":"voltage as a multiple of basevoltage","valid_range":"voltage_limits"},{"name":"voltage_limits","data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)","comment":"limits on the voltage variation as multiples of basevoltage"},{"name":"base_voltage","data_type":"Union{Nothing, Float64}","null_value":"nothing","validation_action":"error","comment":"the base voltage in kV","valid_range":{"max":null,"min":0}},{"name":"area","default":"nothing","data_type":"Union{Nothing, Area}","null_value":"nothing","comment":"the area containing the bus"},{"name":"load_zone","default":"nothing","data_type":"Union{Nothing, LoadZone}","null_value":"nothing","comment":"the load zone containing the bus"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A power-system bus.","struct_name":"Bus","supertype":"Topology"},{"fields":[{"name":"from","data_type":"Bus","null_value":"Bus(nothing)","comment":"The initial bus"},{"name":"to","data_type":"Bus","null_value":"Bus(nothing)","comment":"The terminal bus"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"A topological Arc.","struct_name":"Arc","supertype":"Topology","custom_code":"get_name(arc::Arc) = (get_name ∘ get_from)(arc) * \" -> \" * (get_name ∘ get_to)(arc)"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"b","data_type":"FromTo","null_value":"(from=0.0, to=0.0)","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":100,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"angle_limits","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"Line","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"b","data_type":"FromTo","null_value":"(from=0.0, to=0.0)","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"flow_limits","needs_conversion":true,"data_type":"FromTo_ToFrom","null_value":"(from_to=0.0, to_from=0.0)","comment":"throw warning above max SIL"},{"name":"rate","needs_conversion":true,"data_type":"Float64","null_value":"0.0","comment":"compare to SIL (warn) (theoretical limit)"},{"name":"angle_limits","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"MonitoredLine","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":0}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","Comment":"System per-unit value","data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":{"max":2,"min":0}},{"name":"tap","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":2,"min":0}},{"name":"α","data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":{"max":1.571,"min":-1.571}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"phase_angle_limits","default":"(min=-1.571, max=1.571)","data_type":"MinMax","null_value":"(min=-1.571, max=1.571)","validation_action":"error","valid_range":{"max":1.571,"min":-1.571}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"PhaseShiftingTransformer","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":-2}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"tap","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":2,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"0.0","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"TapTransformer","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"x","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":4,"min":-2}},{"name":"primary_shunt","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"System per-unit value","valid_range":{"max":2,"min":0}},{"name":"rate","needs_conversion":true,"data_type":"Union{Nothing, Float64}","null_value":"nothing","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"The 2-W transformer model uses an equivalent circuit assuming the impedance is on the High Voltage Side of the transformer. The model allocates the iron losses and magnetizing susceptance to the primary side.","struct_name":"Transformer2W","supertype":"ACBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"active_power_limits_from","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"active_power_limits_to","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_from","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_to","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"loss","data_type":"NamedTuple{(:l0, :l1), Tuple{Float64, Float64}}","null_value":"(l0=0.0, l1=0.0)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"a High voltage DC line.","struct_name":"HVDCLine","supertype":"DCBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"arc","data_type":"Arc","null_value":"Arc(Bus(nothing), Bus(nothing))"},{"name":"rectifier_tap_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"rectifier_xrc","data_type":"Float64","null_value":"0.0"},{"name":"rectifier_firing_angle","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"inverter_tap_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"inverter_xrc","data_type":"Float64","null_value":"0.0"},{"name":"inverter_firing_angle","data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"As implemented in Milano's Book, Page 397.","struct_name":"VSCDCLine","supertype":"DCBranch"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","data_type":"TwoPartCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`TwoPartCost`](@ref)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"InterruptiblePowerLoad","supertype":"ControllableLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"Y","data_type":"Complex{Float64}","null_value":"0.0","comment":"System per-unit value"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection model for admittance"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"FixedAdmittance","supertype":"ElectricLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"Y","data_type":"Complex{Float64}","null_value":"0.0","comment":"Initial impedance at N = 0"},{"name":"number_of_steps","default":"0","data_type":"Int","null_value":"0","comment":"Number of steps for adjustable shunt"},{"name":"Y_increase","default":"0","data_type":"Complex{Float64}","null_value":"0","comment":"Admittance increment for each of step increase"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection model for admittance"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"SwitchedAdmittance","supertype":"ElectricLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a static power load.","struct_name":"PowerLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"constant_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"constant_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"impedance_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"impedance_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"current_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"current_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_constant_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_constant_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_impedance_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_impedance_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_current_active_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"max_current_reactive_power","needs_conversion":true,"default":"0.0","data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a standard load.","struct_name":"StandardLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"α","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Coefficient relating voltage dependence for power P = P0 * V^α","valid_range":{"max":null,"min":0}},{"name":"β","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Coefficient relating voltage dependence for power Q = Q0 * V^β","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"max_active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"max_reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a static exponential load.","struct_name":"ExponentialLoad","supertype":"StaticLoad"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_s","data_type":"Float64","null_value":0,"comment":"Armature stator resistance","valid_range":{"max":null,"min":0}},{"name":"R_r","data_type":"Float64","null_value":0,"comment":"Rotor resistance","valid_range":{"max":null,"min":0}},{"name":"X_ls","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_lr","data_type":"Float64","null_value":0,"comment":"Rotor Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_m","data_type":"Float64","null_value":0,"comment":"Stator-Rotor Mutual Reactance","valid_range":{"max":null,"min":0}},{"name":"H","data_type":"Float64","null_value":0,"comment":"Motor Inertia Constant [s]","valid_range":{"max":null,"min":0}},{"name":"A","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Quadratic Term","valid_range":{"max":1,"min":0}},{"name":"B","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Linear Term","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"C","data_type":"Float64","comment":"Torque-Speed Constant Term","internal_default":"PowerSystems.calculate_IM_torque_params(A, B)"},{"name":"τ_ref","data_type":"Float64","comment":"Reference torque parameter","internal_default":"1.0"},{"name":"B_shunt","data_type":"Float64","comment":"Susceptance Initialization Corrector Term","internal_default":"0.0"},{"name":"X_ad","data_type":"Float64","comment":"Equivalent d-axis reactance","internal_default":"(1.0 / X_m + 1.0 / X_ls + 1.0 / X_lr)^(-1)"},{"name":"X_aq","data_type":"Float64","comment":"Equivalent q-axis reactance","internal_default":"X_ad"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψ_qs: stator flux in the q-axis,\n\tψ_ds: stator flux in the d-axis,\n\tψ_qr: rotor flux in the q-axis,\n\tψ_dr: rotor flux in the d-axis, \n\tωr: Rotor speed [pu],","internal_default":"[:ψ_qs, :ψ_ds, :ψ_qr, :ψ_dr, :ωr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SingleCageInductionMachine has 5 states","internal_default":5},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 5-states three-phase single cage induction machine with quadratic torque-speed relationship.","struct_name":"SingleCageInductionMachine","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_s","data_type":"Float64","null_value":0,"comment":"Armature stator resistance","valid_range":{"max":null,"min":0}},{"name":"R_r","data_type":"Float64","null_value":0,"comment":"Rotor resistance","valid_range":{"max":null,"min":0}},{"name":"X_ls","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_lr","data_type":"Float64","null_value":0,"comment":"Rotor Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"X_m","data_type":"Float64","null_value":0,"comment":"Stator-Rotor Mutual Reactance","valid_range":{"max":null,"min":0}},{"name":"H","data_type":"Float64","null_value":0,"comment":"Motor Inertia Constant [s]","valid_range":{"max":null,"min":0}},{"name":"A","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Quadratic Term","valid_range":{"max":1,"min":0}},{"name":"B","data_type":"Float64","null_value":"0.0","comment":"Torque-Speed Linear Term","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"C","data_type":"Float64","comment":"Torque-Speed Constant Term","internal_default":"PowerSystems.calculate_IM_torque_params(A, B)"},{"name":"τ_ref","data_type":"Float64","comment":"Reference torque parameter","internal_default":"1.0"},{"name":"B_shunt","data_type":"Float64","comment":"Susceptance Initialization Corrector Term","internal_default":"0.0"},{"name":"X_ss","data_type":"Float64","comment":"Stator self reactance","internal_default":"X_ls + X_m"},{"name":"X_rr","data_type":"Float64","comment":"Rotor self reactance","internal_default":"X_lr + X_m"},{"name":"X_p","data_type":"Float64","comment":"Transient reactance","internal_default":"X_ss - X_m^2 / X_rr"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψ_qr: rotor flux in the q-axis,\n\tψ_dr: rotor flux in the d-axis, \n\tωr: Rotor speed [pu],","internal_default":"[:ψ_qr, :ψ_dr, :ωr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimplifiedSingleCageInductionMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 3-states three-phase single cage induction machine with quadratic torque-speed relationship.","struct_name":"SimplifiedSingleCageInductionMachine","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"a","data_type":"Float64","null_value":0,"comment":"Active power static exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"b","data_type":"Float64","null_value":0,"comment":"Reactive power static exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"α","data_type":"Float64","null_value":0,"comment":"Active power transient exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"β","data_type":"Float64","null_value":0,"comment":"Reactive power transient exponential coefficient","valid_range":{"max":null,"min":0}},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Active Power Time Constant","valid_range":{"max":null,"min":0}},{"name":"T_q","data_type":"Float64","null_value":0,"comment":"Reactive Power Time Constant","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"base_power","data_type":"Float64","comment":"Base Power","internal_default":"100.0"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p: Integrator state of the active power,\n\tx_q: Integrator state of the reactive power,","internal_default":"[:x_p, :x_q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"DynamicExponentialLoad has 2 states","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 2-states of a generic dynamic load model based on VOLTAGE STABILITY ANALYSIS USING GENERIC DYNAMIC LOAD MODELS by W. Xu and Y. Mansour, IEEE Transactions on Power Systems, 1994.","struct_name":"DynamicExponentialLoad","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"r_load","data_type":"Float64","null_value":0,"comment":"DC-side resistor","valid_range":{"max":null,"min":0}},{"name":"c_dc","data_type":"Float64","null_value":0,"comment":"DC-side capacitor","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"Converter side filter resistance","valid_range":{"max":null,"min":0}},{"name":"lf","data_type":"Float64","null_value":0,"comment":"Converter side filter inductance","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"AC Converter filter capacitance","valid_range":{"max":null,"min":0}},{"name":"rg","data_type":"Float64","null_value":0,"comment":"Network side filter resistance","valid_range":{"max":null,"min":0}},{"name":"lg","data_type":"Float64","null_value":0,"comment":"Network side filter inductance","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"Proportional constant for PI-PLL block","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"Integral constant for PI-PLL block","valid_range":{"max":null,"min":0}},{"name":"kpv","data_type":"Float64","null_value":0,"comment":"Proportional constant for Voltage Control block","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"Integral constant for Voltage Control block","valid_range":{"max":null,"min":0}},{"name":"kpc","data_type":"Float64","null_value":0,"comment":"Proportional constant for Current Control block","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"Integral constant for Current Control block","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":0,"comment":"Base power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"P_ref","data_type":"Float64","comment":"Reference active power parameter","internal_default":"1.0"},{"name":"Q_ref","data_type":"Float64","comment":"Reference reactive power parameter","internal_default":"1.0"},{"name":"V_ref","data_type":"Float64","comment":"Reference voltage parameter","internal_default":"1.0"},{"name":"ω_ref","data_type":"Float64","comment":"Reference frequency parameter","internal_default":"1.0"},{"name":"is_filter_differential","data_type":"Int","comment":"Boolean to decide if filter states are differential or algebraic","internal_default":"1"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tθ_pll: PLL deviation angle, \n\tϵ_pll: PLL integrator state, \n\tη: DC-voltage controller integrator state, \n\tv_dc: DC voltage at the capacitor, \n\tγd: d-axis Current controller integrator state, \n\tγq: q-axis Current controller integrator state, \n\tir_cnv: Real current out of the converter,\n\tii_cnv: Imaginary current out of the converter,\n\tvr_filter: Real voltage at the filter's capacitor,\n\tvi_filter: Imaginary voltage at the filter's capacitor,\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:θ_pll, :ϵ_pll, :η, :v_dc, :γd, :γq, :ir_cnv, :ii_cnv, :vr_filter, :vi_filter, :ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActiveConstantPowerLoad has 12 states","internal_default":12},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 12-states active power load based on the paper Dynamic Stability of a Microgrid With an Active Load from N. Bottrell, M. Prodanovic and T. Green in IEEE Transactions on Power Electronics, 2013.","struct_name":"ActiveConstantPowerLoad","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"storage_capacity","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Maximum storage capacity in the reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"inflow","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline inflow into the reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"initial_storage","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Initial storage capacity in the reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"storage_target","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Storage target at the end of simulation as ratio of storage capacity."},{"name":"conversion_factor","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion factor from flow/volume to energy: m^3 -> p.u-hr."},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroEnergyReservoir","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroDispatch","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.HY","comment":"Prime mover technology according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"rating_pump","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Withdrawl of the pump. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"active_power_limits_pump","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits_pump","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing","validation_action":"warn"},{"name":"ramp_limits_pump","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute of pump","valid_range":{"max":null,"min":0}},{"name":"time_limits_pump","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits of pump in hours","valid_range":{"max":null,"min":0}},{"name":"storage_capacity","needs_conversion":true,"data_type":"UpDown","null_value":"(up=0.0, down=0.0)","validation_action":"error","comment":"Maximum storage capacity in the upper and lower reservoirs (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"inflow","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline inflow into the upper reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"outflow","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Baseline outflow from the lower reservoir (units can be p.u. or m^3/hr)","valid_range":{"max":null,"min":0}},{"name":"initial_storage","needs_conversion":true,"data_type":"UpDown","null_value":"(up=0.0, down=0.0)","validation_action":"error","comment":"Initial storage capacity in the upper and lower reservoir (units can be p.u-hr or m^3).","valid_range":{"max":null,"min":0}},{"name":"storage_target","default":"(up=1.0, down=1.0)","data_type":"UpDown","null_value":"(up=0.0, down=0.0)","comment":"Storage target of upper reservoir at the end of simulation as ratio of storage capacity."},{"name":"operation_cost","default":"TwoPartCost(0.0, 0.0)","data_type":"OperationalCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`OperationalCost`](@ref)"},{"name":"pump_efficiency","default":"1.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Efficiency of pump","valid_range":{"max":1,"min":0}},{"name":"conversion_factor","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion factor from flow/volume to energy: m^3 -> p.u-hr."},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"HydroPumpedStorage","supertype":"HydroGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"power_factor","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":1,"min":0}},{"name":"operation_cost","data_type":"TwoPartCost","null_value":"TwoPartCost(nothing)","comment":"Operation Cost of Generation [`TwoPartCost`](@ref)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"RenewableDispatch","supertype":"RenewableGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"power_factor","data_type":"Float64","null_value":"1.0","validation_action":"error","valid_range":{"max":1,"min":0}},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for fixed renewable generation technologies.","struct_name":"RenewableFix","supertype":"RenewableGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"status","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"active_power_limits"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"warn","valid_range":{"max":null,"min":0}},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"ramp up and ramp down limits in MW (in component base per unit) per minute","valid_range":{"max":null,"min":0}},{"name":"operation_cost","data_type":"OperationalCost","null_value":"ThreePartCost(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"time_limits","default":"nothing","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"must_run","default":"false","data_type":"Bool","null_value":"false"},{"name":"prime_mover","default":"PrimeMovers.OT","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"fuel","default":"ThermalFuels.OTHER","data_type":"ThermalFuels","null_value":"ThermalFuels.OTHER","comment":"Prime mover fuel according to EIA 923"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for thermal generation technologies.","struct_name":"ThermalStandard","supertype":"ThermalGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"status","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"active_power_limits"},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Thermal limited MVA Power Output of the unit. <= Capacity","valid_range":{"max":null,"min":0}},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.OT","comment":"Prime mover technology according to EIA 923"},{"name":"fuel","data_type":"ThermalFuels","null_value":"ThermalFuels.OTHER","comment":"Prime mover fuel according to EIA 923"},{"name":"active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"nothing"},{"name":"ramp_limits","needs_conversion":true,"data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"power_trajectory","needs_conversion":true,"data_type":"Union{Nothing, StartUpShutDown}","null_value":"nothing","validation_action":"error","comment":"Power trajectory the unit will take during the start-up and shut-down ramp process","valid_range":{"max":null,"min":0}},{"name":"time_limits","data_type":"Union{Nothing, UpDown}","null_value":"nothing","validation_action":"error","comment":"Minimum up and Minimum down time limits in hours","valid_range":{"max":null,"min":0}},{"name":"start_time_limits","data_type":"Union{Nothing, NamedTuple{(:hot, :warm, :cold), Tuple{Float64, Float64, Float64}}}","null_value":"nothing","comment":" Time limits for start-up based on turbine temperature in hours"},{"name":"start_types","data_type":"Int","null_value":"1","validation_action":"error","comment":" Number of start-up based on turbine temperature","valid_range":{"max":3,"min":1}},{"name":"operation_cost","data_type":"OperationalCost","null_value":"MultiStartCost(nothing)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"time_at_status","default":"INFINITE_TIME","data_type":"Float64","null_value":"INFINITE_TIME"},{"name":"must_run","default":"false","data_type":"Bool","null_value":"false"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for thermal generation technologies.","struct_name":"ThermalMultiStart","supertype":"ThermalGen"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.BA","comment":"Prime mover technology according to EIA 923"},{"name":"initial_energy","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"State of Charge of the Battery p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"state_of_charge_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","comment":"Maximum and Minimum storage capacity in p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"input_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"output_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"efficiency","data_type":"NamedTuple{(:in, :out), Tuple{Float64, Float64}}","null_value":"(in=0.0, out=0.0)","validation_action":"warn","valid_range":{"max":1,"min":0}},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"nothing","data_type":"Union{Nothing, OperationalCost}","null_value":"nothing"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a generic battery","struct_name":"GenericBattery","supertype":"Storage"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"prime_mover","data_type":"PrimeMovers","null_value":"PrimeMovers.BA","comment":"Prime mover technology according to EIA 923"},{"name":"initial_energy","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"State of Charge of the Battery p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"state_of_charge_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","comment":"Maximum and Minimum storage capacity in p.u.-hr","valid_range":{"max":null,"min":0}},{"name":"rating","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0"},{"name":"input_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"output_active_power_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)","validation_action":"error","valid_range":{"max":null,"min":0}},{"name":"efficiency","data_type":"NamedTuple{(:in, :out), Tuple{Float64, Float64}}","null_value":"(in=0.0, out=0.0)","validation_action":"warn","valid_range":{"max":1,"min":0}},{"name":"reactive_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","valid_range":"reactive_power_limits"},{"name":"reactive_power_limits","needs_conversion":true,"data_type":"Union{Nothing, MinMax}","null_value":"(min=0.0, max=0.0)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the unit in MVA","valid_range":{"max":null,"min":0}},{"name":"operation_cost","default":"nothing","data_type":"Union{Nothing, OperationalCost}","null_value":"nothing"},{"name":"storage_target","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"Storage target at the end of simulation as ratio of storage capacity."},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data structure for a battery compatible with energy management formulations.","struct_name":"BatteryEMS","supertype":"Storage"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a proportional reserve product for system simulations.","parametric":"ReserveDirection","struct_name":"StaticReserve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a non-spinning reserve product for system simulations.","struct_name":"StaticReserveNonSpinning","supertype":"ReserveNonSpinning"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"requirement","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the static value of required reserves in system p.u.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"contributing_services","default":"Vector{Service}()","data_type":"Vector{Service}","exclude_setter":true,"null_value":"Vector{Service}()","comment":"Services that contribute for this requirement constraint"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a group reserve product for system simulations.","parametric":"ReserveDirection","struct_name":"StaticReserveGroup","supertype":"Service"},{"fields":[{"name":"variable","data_type":"Union{Nothing, IS.TimeSeriesKey}","null_value":"nothing","comment":"Variable Cost TimeSeriesKey"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for a operating reserve with demand curve product for system simulations.","parametric":"ReserveDirection","struct_name":"ReserveDemandCurve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for the procurement products for system simulations.","parametric":"ReserveDirection","struct_name":"VariableReserve","supertype":"Reserve{T}"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"time_frame","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the relative saturation time_frame","valid_range":{"max":null,"min":0}},{"name":"requirement","data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Data Structure for the procurement products for system simulations.","struct_name":"VariableReserveNonSpinning","supertype":"ReserveNonSpinning"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bias","data_type":"Float64","null_value":"0.0"},{"name":"K_p","data_type":"Float64","null_value":"0.0","comment":"PID Proportional Constant"},{"name":"K_i","data_type":"Float64","null_value":"0.0","comment":"PID Integral Constant"},{"name":"K_d","data_type":"Float64","null_value":"0.0","comment":"PID Derrivative Constant"},{"name":"delta_t","data_type":"Float64","null_value":"0.0","comment":"PID Discretization period [Seconds]"},{"name":"area","default":"nothing","data_type":"Union{Nothing, Area}","null_value":"Area(nothing)","comment":"the area controlled by the AGC"},{"name":"initial_ace","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"PID Discretization period [Seconds]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"AGC","supertype":"Service"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"requirement","data_type":"Float64","null_value":"0.0"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"time_series_container","default":"InfrastructureSystems.TimeSeriesContainer()","data_type":"InfrastructureSystems.TimeSeriesContainer","null_value":"InfrastructureSystems.TimeSeriesContainer()","comment":"internal time_series storage"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"struct_name":"Transfer","supertype":"Service"},{"fields":[{"name":"Vf","data_type":"Float64","null_value":0,"comment":"Fixed voltage field applied to the rotor winding","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"Fixed AVR has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"null_value":0,"comment":"Fixed AVR has no states","internal_default":0},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"Fixed AVR has no states","internal_default":"Vector{StateTypes}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a AVR that returns a fixed voltage to the rotor winding","struct_name":"AVRFixed","supertype":"AVR"},{"fields":[{"name":"Kv","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: field voltage","internal_default":"[:Vf]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"Fixed AVR has 1 states","internal_default":1},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"Simple AVR has 1 differential states","internal_default":"[StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a simple proportional AVR in the derivative of EMF\ni.e. an integrator controller on EMF","struct_name":"AVRSimple","supertype":"AVR"},{"fields":[{"name":"Ta_Tb","data_type":"Float64","null_value":0,"comment":"Ratio of lead and lag time constants","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"comment":"Lag time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"K","data_type":"Float64","null_value":0,"comment":"Gain","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field circuit time constant in s","valid_range":{"max":null,"min":0}},{"name":"V_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field voltage limits"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tVf: Voltage field,\tVr: Lead-lag state","internal_default":"[:Vf, :Vr]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SEXS has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"SEXS has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of Simplified Excitation System Model - SEXS in PSSE","struct_name":"SEXS","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter constant related to self-excited field","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":1,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr1: input lead lag,\n\tVr2: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vf, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The ESDC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESDC1A has 5 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Self-excited shunt fields with the voltage regulator operating in a mode commonly termed buck-boost. \nParameters of IEEE Std 421.5 Type DC1A Excitacion System. This model corresponds to ESDC1A in PSSE and PSLF","struct_name":"ESDC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter constant related to self-excited field","valid_range":{"max":1,"min":-1}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant. Appropiate Data: 5.0 <= Tf/Kf <= 15.0","valid_range":{"max":1.5,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr1: input lead lag,\n\tVr2: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vf, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The ESDC2A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESDC2A has 5 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Is used to represent field-controlled dc commutator exciters with continuously acting voltage regulators having power supplies derived from the generator or auxiliaries bus.\nParameters of IEEE Std 421.5 Type DC2A Excitacion System. This model corresponds to ESDC2A in PSSE and PSLF","struct_name":"ESDC2A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":500,"min":10}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":1,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter constant related to self-excited field","valid_range":{"max":1,"min":-1}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter time constant, integration rate associated with exciter control","valid_range":{"max":1,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant. Appropiate Data: 5 <= Tf/Kf <= 15","valid_range":{"max":null,"min":"eps()"}},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVt: Terminal Voltage,\n\tVr: Regulator Output,\n\tVf: Exciter Output, \n\tVr3: Rate feedback integrator","internal_default":"[:Vt, :Vr1, :Vf, :Vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The IEEET1 has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEET1 I has 4 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"1968 IEEE type 1 excitation system model","struct_name":"IEEET1","supertype":"AVR"},{"fields":[{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Amplifier Gain","valid_range":{"max":null,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Field circuit integral deviation","valid_range":{"max":null,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"comment":"Stabilizer Gain in s * pu/pu","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Amplifier Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field Circuit Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"comment":"Stabilizer Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Va_min, Va_max)`"},{"name":"Ae","data_type":"Float64","null_value":0,"comment":"1st ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"Be","data_type":"Float64","null_value":0,"comment":"2nd ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: Voltage field,\n\tVr1: Amplifier State,\n\tVr2: Stabilizing Feedback State,\n\tVm: Measured voltage","internal_default":"[:Vf, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The AVR Type I has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"AVR Type I has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of an Automatic Voltage Regulator Type I - Resembles IEEE Type DC1","struct_name":"AVRTypeI","supertype":"AVR"},{"fields":[{"name":"K0","data_type":"Float64","null_value":0,"comment":"Regulator Gain","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"First Pole in s","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"First zero in s","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"First Pole in s","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"First zero in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"comment":"Field Circuit Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Va_min, Va_max)`"},{"name":"Ae","data_type":"Float64","null_value":0,"comment":"1st ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"Be","data_type":"Float64","null_value":0,"comment":"2nd ceiling coefficient","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVf: Voltage field,\n\tVr1: First Lead-Lag state,\n\tVr2: Second lead-lag state,\n\tVm: Measured voltage","internal_default":"[:Vf, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AVR Type II has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"AVR Type II has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of an Automatic Voltage Regulator Type II - Typical static exciter model","struct_name":"AVRTypeII","supertype":"AVR"},{"fields":[{"name":"Ta_Tb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lead input constant ratio","valid_range":{"max":0.3,"min":0.05}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lag input constant in s","valid_range":{"max":20,"min":5}},{"name":"K","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator Gain","valid_range":{"max":100,"min":20}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator Time Constant","valid_range":{"max":1,"min":0}},{"name":"Efd_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field Voltage regulator limits (regulator output) (Efd_min, Efd_max)"},{"name":"switch","data_type":"Int","null_value":0,"validation_action":"error","comment":"Switch","valid_range":{"max":1,"min":0}},{"name":"rc_rfd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Field current capability. Set = 0 for negative current capability. Typical value 10","valid_range":{"max":10,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVr1: First integrator,\n\tVr2: Second integrator","internal_default":"[:Vr1, :Vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SCRX has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"SCRX has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This exciter is based on an IEEE type SCRX solid state exciter. The output field voltage is varied by a control system to maintain the system voltage at Vref. Please note that this exciter model has no initialization capabilities - this means that it will respond to whatever inputs it receives regardless of the state of the machine model.","struct_name":"SCRX","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage: `(Vr_min, Vr_max)`"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(x) = B(x - A)^2/x"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ESAC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESAC1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A Excitacion System. This model corresponds to ESAC1A in PSSE and PSLF","struct_name":"ESAC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage: `(Vr_min, Vr_max)`"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(x) = B(x - A)^2/x"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified ESAC1A. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A Excitacion System. EXAC1A in PSSE and PSLF","struct_name":"EXAC1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant in s","valid_range":{"max":2,"min":"eps()"}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":1.5,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC1 has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC1 has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified ESAC1A. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC1A. EXAC1 in PSSE and PSLF","struct_name":"EXAC1","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Kb","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Second Stage regulator gain","valid_range":{"max":500,"min":"eps()"}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant","valid_range":{"max":2,"min":"eps()"}},{"name":"Kl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter gain","valid_range":{"max":1.1,"min":0}},{"name":"Kh","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current regulator feedback gain","valid_range":{"max":1.1,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback excitation system stabilizer gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":1,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":1,"min":0}},{"name":"V_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum exciter field current","valid_range":{"max":null,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXAC2 has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXAC2 has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified AC2. This excitation systems consists of an alternator main exciter feeding its output via non-controlled rectifiers.\nThe exciter does not employ self-excitation, and the voltage regulator power is taken from a source that is not affected by external transients.\nParameters of IEEE Std 421.5 Type AC2A Excitacion System. The alternator main exciter is used, feeding its output via non-controlled rectifiers. The Type AC2C model is similar to that of Type AC1C except for the inclusion of exciter time constant compensation and exciter field current limiting elements. EXAC2 in PSSE and PSLF.","struct_name":"EXAC2","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output gain","valid_range":{"max":1000,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator output lag time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tk","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Regulator lead time constant","valid_range":{"max":10,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator numerator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter field voltage `(Vr_min, Vr_max)`"},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Exciter field time constant","valid_range":{"max":2,"min":"eps()"}},{"name":"VFE_lim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter reference","valid_range":{"max":20,"min":-5}},{"name":"Kh","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current regulator feedback gain","valid_range":{"max":100,"min":0}},{"name":"VH_max","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter maximum output","valid_range":{"max":100,"min":0}},{"name":"Th","data_type":"Float64","null_value":0,"comment":"Exciter field current limiter denominator (lag) time constant","valid_range":{"max":1,"min":0}},{"name":"Tj","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field current limiter numerator (lead) time constant","valid_range":{"max":1,"min":0}},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Kd","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Demagnetizing factor, function of exciter alternator reactances","valid_range":{"max":2,"min":0}},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter field proportional constant","valid_range":{"max":2,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: Lead-lag state,\n\tVr2: Regulator output state,\n\tVe: Integrator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Ve, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ESAC6A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ESAC6A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Modified AC6A. Used to represent field-controlled alternator-rectifier excitation systems with system-supplied electronic voltage regulators. \nParameters of IEEE Std 421.5 Type AC6A Excitacion System. ESAC6A in PSSE and PSLF.","struct_name":"ESAC6A","supertype":"AVR"},{"fields":[{"name":"UEL_flags","data_type":"Int","null_value":1,"validation_action":"warn","comment":"Code input for Underexcitization limiter (UEL) entry. Not supported.","valid_range":{"max":3,"min":1}},{"name":"PSS_flags","data_type":"Int","null_value":1,"comment":"Code input for Power System Stabilizer (PSS) or (VOS) entry.","valid_range":{"max":2,"min":1}},{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.1,"min":0}},{"name":"Vi_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage error limits (regulator input) (Vi_min, Vi_max)"},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"First regulator denominator (lead) time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"comment":"First regulator denominator (lag) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Tc1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Second regulator denominator (lead) time constant in s","valid_range":{"max":10,"min":0}},{"name":"Tb1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Second regulator denominator (lead) time constant in s","valid_range":{"max":20,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator gain","valid_range":{"max":1000,"min":50}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for regulator output `(Va_min, Va_max)`"},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for exciter output `(Vr_min, Vr_max)`"},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":0.3,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Rate feedback time constant in s","valid_range":{"max":1.5,"min":"eps()"}},{"name":"K_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter output current limiter gain","valid_range":{"max":5,"min":0}},{"name":"I_lr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter output current limit reference","valid_range":{"max":5,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: First Lead-lag state,\n\tVr2: Second lead-lag state,\n\tVa: Regulator output state,\n\tVr3: Feedback output state","internal_default":"[:Vm, :Vr1, :Vr2, :Va, :Vr3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ST1A has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ST1A has 5 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This excitation system supplies power through a transformer from the generator terminals and its regulated by a controlled rectifier (via thyristors).\nParameters of IEEE Std 421.5 Type ST1A Excitacion System. ESST1A in PSSE and PSLF","struct_name":"ESST1A","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator gain","valid_range":{"max":500,"min":1}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":10,"min":0}},{"name":"Va_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for pi controler `(Vr_min, Vr_max)`"},{"name":"Ta_2","data_type":"Float64","null_value":0,"comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ta_3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ta_4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vi_min, Vi_max)"},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate feedback gain","valid_range":{"max":0.3,"min":0}},{"name":"Tf_1","validation_actions":"error","data_type":"Float64","null_value":0,"comment":"Rate Feedback time constant in s","valid_range":{"max":15,"min":"eps()"}},{"name":"Tf_2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rate Feedback time constant in s","valid_range":{"max":5,"min":0}},{"name":"Efd_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Field Voltage regulator limits (regulator output) (Efd_min, Efd_max)"},{"name":"Ke","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter constant","valid_range":{"max":1,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter time constant","valid_range":{"max":2,"min":0}},{"name":"E_sat","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter output voltage for saturation factor: (E1, E2)"},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Exciter saturation factor at exciter output voltage: (Se(E1), Se(E2))"},{"name":"Kp","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Potential source gain","valid_range":{"max":5,"min":0}},{"name":"Ki","data_type":"Float64","null_value":0,"comment":"current source gain","valid_range":{"max":1.1,"min":0}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter regulation factor","valid_range":{"max":2,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"saturation_coeffs","default":"PowerSystems.get_avr_saturation(E_sat, Se)","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Coefficients (A,B) of the function: Se(V) = B(V - A)^2/V"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVr1: First Lead-lag state,\n\tVr2: Second regulator lead-lag state,\n\tVr2: Third regulator lead-lag state \n\tVf: Exciter output \n\tVr3: First feedback integrator,\n\tVr4: second feedback integrator","internal_default":"[:Vm, :Vr1, :Vr2, :Vf, :Vr3, :Vr4]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"EXPIC1 has 6 states","internal_default":6},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"EXPIC has 6 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Generic Proportional/Integral Excitation System","struct_name":"EXPIC1","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator input filter time constant in s","valid_range":{"max":0.5,"min":0}},{"name":"K_pr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator propotional gain","valid_range":{"max":75,"min":0}},{"name":"K_ir","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Regulator integral gain","valid_range":{"max":75,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (Vi_min, Vi_max)"},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator time constant in s","valid_range":{"max":1,"min":0}},{"name":"K_pm","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator proportional gain output","valid_range":{"max":1.2,"min":0}},{"name":"K_im","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage regulator integral gain output","valid_range":{"max":18,"min":0}},{"name":"Vm_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for inner loop output `(Vm_min, Vm_max)`"},{"name":"Kg","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Feedback gain constant of the inner loop field regulator","valid_range":{"max":1.1,"min":0}},{"name":"Kp","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Potential circuit (voltage) gain coefficient","valid_range":{"max":10,"min":0}},{"name":"Ki","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Compound circuit (current) gain coefficient","valid_range":{"max":1.1,"min":0}},{"name":"VB_max","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum available exciter voltage","valid_range":{"max":20,"min":1}},{"name":"Kc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Rectifier loading factor proportional to commutating reactance","valid_range":{"max":1,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Reactance associated with potential source","valid_range":{"max":0.5,"min":0}},{"name":"θp","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Potential circuit phase angle (degrees)","valid_range":{"max":90,"min":-90}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"θp_rad","default":"θp*π*inv(180)","data_type":"Float64","null_value":0,"comment":"Potential circuit phase angle (radians)"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed terminal voltage,\n\tVt: Sensed Terminal Voltage,\n\tVr1: Regulator Integrator,\n\tVr2: Regulator Output,\n\tVm: Output integrator","internal_default":"[:Vt, :Vr1, :Vr2, :Vm]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ST4B has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"ST4B has 4 states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"In these excitation systems, voltage (and also current in compounded systems) is transformed to an appropriate level. Rectifiers, either controlled or non-controlled, provide the necessary direct current for the generator field.\nParameters of IEEE Std 421.5 Type ST4B Excitacion System. ESST4B in PSSE and PSLF","struct_name":"ESST4B","supertype":"AVR"},{"fields":[{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Voltage Measurement Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vi_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage input limits (Vi_min, Vi_max)"},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Numerator lead-lag (lead) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Denominator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Amplifier Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"Vr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (Vr_min, Vr_max)"},{"name":"Kc","data_type":"Float64","null_value":0,"comment":"Current field constant limiter multiplier","valid_range":{"max":null,"min":0}},{"name":"Kf","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Excitation control system stabilizer gain","valid_range":{"max":0.3,"min":"eps()"}},{"name":"Tf","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Excitation control system stabilizer time constant","valid_range":{"max":null,"min":"eps()"}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVm: Sensed Terminal Voltage,\n\tVrll: Lead-Lag state,\n\tVr: Regulator Output, \n\tVfb: Feedback state","internal_default":"[:Vm, :Vrll, :Vr, :Vfb]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The EXST1 has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Type ST1 Excitation System (PTI version)","struct_name":"EXST1","supertype":"AVR"},{"fields":[{"name":"Iflim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL Field current limit","valid_range":{"max":null,"min":0}},{"name":"d","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter d","valid_range":{"max":null,"min":0}},{"name":"f","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter f","valid_range":{"max":null,"min":0}},{"name":"Spar","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter Spar","valid_range":{"max":null,"min":0}},{"name":"K1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL delay time constant","valid_range":{"max":null,"min":0}},{"name":"K2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"OEL parameter K2","valid_range":{"max":null,"min":0}},{"name":"Oel_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Oel integrator limits (Oel_min, Oel_max)"},{"name":"G","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"AVR Exciter Gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Numerator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Denominator lead-lag (lag) time constant in s","valid_range":{"max":null,"min":0}},{"name":"Te","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Exciter Time Constant in s","valid_range":{"max":null,"min":0}},{"name":"E_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage regulator limits (regulator output) (E_min, E_max)"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tVll: Lead-lag internal state,\n\tVex: Exciter Output, \n\toel: OEL integrator state","internal_default":"[:Vll, :Vex, :oel]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The EX4VSA has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Excitation System for Voltage Security Assesment","struct_name":"EX4VSA","supertype":"AVR"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"eq_p","data_type":"Float64","null_value":0,"comment":"Fixed EMF behind the impedance","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"BaseMachine has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"BaseMachine has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Classic Machine: GENCLS in PSSE and PSLF","struct_name":"BaseMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Armature resistance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit. Note: Xd_pp = Xq_pp","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator leakage reactance","valid_range":{"max":null,"min":0}},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Saturation factor at 1 and 1.2 pu flux: S(1.0) = B(|ψ_pp|-A)^2"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"γ_d1 parameter","internal_default":"(Xd_pp - Xl) / (Xd_p - Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"γ_q1 parameter","internal_default":"(Xd_pp - Xl) / (Xq_p - Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"γ_d2 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"γ_q2","data_type":"Float64","comment":"γ_q2 parameter","internal_default":"(Xq_p - Xd_pp) / (Xq_p - Xl)^2"},{"name":"γ_qd","data_type":"Float64","comment":"γ_qd parameter","internal_default":"(Xq - Xl) / (Xd - Xl)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis generator voltage behind the transient reactance,\n\ted_p: d-axis generator voltage behind the transient reactance,\n\tψ_kd: flux linkage in the first equivalent damping circuit in the d-axis,\n\tψ_kq: flux linkage in the first equivalent damping circuit in the d-axis","internal_default":"[:eq_p, :ed_p, :ψ_kd, :ψ_kq]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RoundRotorMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states round-rotor synchronous machine with quadratic/exponential saturation:\nIEEE Std 1110 §5.3.2 (Model 2.2). GENROU or GENROE model in PSSE and PSLF.","struct_name":"RoundRotorMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Armature resistance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit. Note: Xd_pp = Xq_pp","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator leakage reactance","valid_range":{"max":null,"min":0}},{"name":"Se","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Saturation factor at 1 and 1.2 pu flux: Se(eq_p) = B(eq_p-A)^2"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"γ_d1 parameter","internal_default":"(Xd_pp - Xl) / (Xd_p - Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"γ_q1 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"γ_d2 parameter","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis generator voltage behind the transient reactance,\n\tψ_kd: flux linkage in the first equivalent damping circuit in the d-axis,\n\tψq_pp: phasonf of the subtransient flux linkage in the q-axis","internal_default":"[:eq_p, :ψ_kd, :ψq_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SalientPoleMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 3-states salient-pole synchronous machine with quadratic/exponential saturation:\nIEEE Std 1110 §5.3.1 (Model 2.1). GENSAL or GENSAE model in PSSE and PSLF.","struct_name":"SalientPoleMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AndersonFouadMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 6-states synchronous machine: Anderson-Fouad model","struct_name":"AndersonFouadMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"R_f","data_type":"Float64","null_value":0,"comment":"Field rotor winding resistance in per unit","valid_range":{"max":null,"min":0}},{"name":"R_1d","data_type":"Float64","null_value":0,"comment":" Damping rotor winding resistance on d-axis in per unit. This value is denoted as RD in Machowski.","valid_range":{"max":null,"min":0}},{"name":"R_1q","data_type":"Float64","null_value":0,"comment":"Damping rotor winding resistance on q-axis in per unit. This value is denoted as RQ in Machowski.","valid_range":{"max":null,"min":0}},{"name":"L_d","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the d-axis of the rotor, in per unit. This value is denoted as L_ad + L_l in Kundur (and Ld in Machowski).","valid_range":{"max":null,"min":0}},{"name":"L_q","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the q-axis of the rotor, in per unit. This value is denoted as L_aq + L_l in Kundur.","valid_range":{"max":null,"min":0}},{"name":"L_ad","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor field (and damping) winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_aq","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor damping winding inductance on q-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_f1d","data_type":"Float64","null_value":1,"comment":"Mutual inductance between rotor field winding and rotor damping winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_ff","data_type":"Float64","null_value":2,"comment":"Field rotor winding inductance, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1d","data_type":"Float64","null_value":1,"comment":"Inductance of the d-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1q","data_type":"Float64","null_value":1,"comment":"Inductance of the q-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"inv_d_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.127, 3.130, 3.131 From Kundur","internal_default":"inv([[-L_d L_ad L_ad]; [-L_ad L_ff L_f1d]; [-L_ad L_f1d L_1d]])"},{"name":"inv_q_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.128, 3.132 From Kundur","internal_default":"inv([[-L_q L_aq]; [-L_aq L_1q]])"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψd: d-axis stator flux,\n\tψq: q-axis stator flux,\n\tψf: field rotor flux,\n\tψ1d: d-axis rotor damping flux,\n\tψ1q: q-axis rotor damping flux","internal_default":"[:ψd, :ψq, :ψf, :ψ1d, :ψ1q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FullMachine has 5 states","internal_default":5},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameter of a full order flux stator-rotor model without zero sequence flux in the stator.\n The derivative of stator fluxes (ψd and ψq) is NOT neglected. Only one q-axis damping circuit is considered. All parameters are in machine per unit.\n Refer to Chapter 3 of Power System Stability and Control by P. Kundur or Chapter 11 of Power System Dynamics: Stability and Control, by J. Machowski, J. Bialek and J. Bumby, for more details.\n Note that the models are somewhat different (but equivalent) due to the different Park Transformation used in both books.","struct_name":"FullMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xl","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γ_d1","data_type":"Float64","comment":"","internal_default":"(Xd_pp-Xl)/(Xd_p-Xl)"},{"name":"γ_q1","data_type":"Float64","comment":"","internal_default":"(Xq_pp-Xl)/(Xq_p-Xl)"},{"name":"γ_d2","data_type":"Float64","comment":"","internal_default":"(Xd_p - Xd_pp) / (Xd_p - Xl)^2"},{"name":"γ_q2","data_type":"Float64","comment":"","internal_default":"(Xq_p - Xq_pp) / (Xq_p - Xl)^2"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage\n\tψd_pp: subtransient flux linkage in the d-axis\n\tψq_pp: subtransient flux linkage in the q-axis","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :ψd_pp, :ψq_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SauerPaiMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of synchronous machine: Sauer Pai model","struct_name":"SauerPaiMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"T_AA","data_type":"Float64","null_value":0,"comment":"Time constant of d-axis additional leakage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γd","data_type":"Float64","comment":"","internal_default":"((Td0_pp*Xd_pp)/(Td0_p*Xd_p) )*(Xd-Xd_p)"},{"name":"γq","data_type":"Float64","comment":"","internal_default":"((Tq0_pp*Xq_pp)/(Tq0_p*Xq_p) )*(Xq-Xq_p)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψq: q-axis stator flux,\n\tψd: d-axis stator flux,\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:ψq, :ψd, :eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"MarconatoMachine has 6 states","internal_default":6},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 6-states synchronous machine: Marconato model","struct_name":"MarconatoMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage","internal_default":"[:eq_p, :ed_p]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"OneDOneQMachine has 2 states","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states synchronous machine: Simplified Marconato model\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when\n transmission network dynamics is neglected.","struct_name":"OneDOneQMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleAFMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states simplified Anderson-Fouad (SimpleAFMachine) model.\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when transmission network\n dynamics is neglected.\n If transmission dynamics is considered use the full order Anderson Fouad model.","struct_name":"SimpleAFMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"R_f","data_type":"Float64","null_value":0,"comment":"Field rotor winding resistance in per unit","valid_range":{"max":null,"min":0}},{"name":"R_1d","data_type":"Float64","null_value":0,"comment":" Damping rotor winding resistance on d-axis in per unit. This value is denoted as RD in Machowski.","valid_range":{"max":null,"min":0}},{"name":"R_1q","data_type":"Float64","null_value":0,"comment":"Damping rotor winding resistance on q-axis in per unit. This value is denoted as RQ in Machowski.","valid_range":{"max":null,"min":0}},{"name":"L_d","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the d-axis of the rotor, in per unit. This value is denoted as L_ad + L_l in Kundur (and Ld in Machowski).","valid_range":{"max":null,"min":0}},{"name":"L_q","data_type":"Float64","null_value":1,"comment":"Inductance of fictitious damping that represent the effect of the three-phase stator winding in the q-axis of the rotor, in per unit. This value is denoted as L_aq + L_l in Kundur.","valid_range":{"max":null,"min":0}},{"name":"L_ad","data_type":"Float64","null_value":2,"comment":"Mutual inductance between stator winding and rotor field (and damping) winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_aq","data_type":"Float64","null_value":1,"comment":"Mutual inductance between stator winding and rotor damping winding inductance on q-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_f1d","data_type":"Float64","null_value":1,"comment":"Mutual inductance between rotor field winding and rotor damping winding inductance on d-axis, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_ff","data_type":"Float64","null_value":2,"comment":"Field rotor winding inductance, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1d","data_type":"Float64","null_value":1,"comment":"Inductance of the d-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"L_1q","data_type":"Float64","null_value":2,"comment":"Inductance of the q-axis rotor damping circuit, in per unit","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"inv_d_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.127, 3.130, 3.131 From Kundur","internal_default":"inv([[-L_d L_ad L_ad]; [-L_ad L_ff L_f1d]; [-L_ad L_f1d L_1d]])"},{"name":"inv_q_fluxlink","data_type":"Array{Float64,2}","comment":"Equations 3.128, 3.132 From Kundur","internal_default":"inv([[-L_q L_aq]; [-L_aq L_1q]])"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tψf: field rotor flux,\n\tψ1d: d-axis rotor damping flux,\n\tψ1q: q-axis rotor damping flux","internal_default":"[:ψf, :ψ1d, :ψ1q]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleFullMachine has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameter of a full order flux stator-rotor model without zero sequence flux in the stator.\n The derivative of stator fluxes (ψd and ψq) is neglected. This is standard when\n transmission network dynamics is neglected. Only one q-axis damping circuit\n is considered. All per unit are in machine per unit.\n Refer to Chapter 3 of Power System Stability and Control by P. Kundur or Chapter 11 of Power System Dynamics: Stability and Control, by J. Machowski, J. Bialek and J. Bumby, for more details.\n Note that the models are somewhat different (but equivalent) due to the different Park Transformation used in both books.","struct_name":"SimpleFullMachine","supertype":"Machine"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Resistance after EMF in machine per unit","valid_range":{"max":null,"min":0}},{"name":"Xd","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq","data_type":"Float64","null_value":0,"comment":"Reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_p","data_type":"Float64","null_value":0,"comment":"Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xd_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in d-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Xq_pp","data_type":"Float64","null_value":0,"comment":"Sub-Transient reactance after EMF in q-axis per unit","valid_range":{"max":null,"min":0}},{"name":"Td0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_p","data_type":"Float64","null_value":0,"comment":"Time constant of transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Td0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient d-axis voltage","valid_range":{"max":null,"min":0}},{"name":"Tq0_pp","data_type":"Float64","null_value":0,"comment":"Time constant of sub-transient q-axis voltage","valid_range":{"max":null,"min":0}},{"name":"T_AA","data_type":"Float64","null_value":0,"comment":"Time constant of d-axis additional leakage","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"γd","data_type":"Float64","comment":"","internal_default":"((Td0_pp*Xd_pp)/(Td0_p*Xd_p) )*(Xd-Xd_p)"},{"name":"γq","data_type":"Float64","comment":"","internal_default":"((Tq0_pp*Xq_pp)/(Tq0_p*Xq_p) )*(Xq-Xq_p)"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\teq_p: q-axis transient voltage,\n\ted_p: d-axis transient voltage,\n\teq_pp: q-axis subtransient voltage,\n\ted_pp: d-axis subtransient voltage","internal_default":"[:eq_p, :ed_p, :eq_pp, :ed_pp]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SimpleMarconatoMachine has 4 states","internal_default":4},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 4-states synchronous machine: Simplified Marconato model\n The derivative of stator fluxes (ψd and ψq) is neglected and ωψd = ψd and\n ωψq = ψq is assumed (i.e. ω=1.0). This is standard when transmission network\n dynamics is neglected.","struct_name":"SimpleMarconatoMachine","supertype":"Machine"},{"fields":[{"name":"V_pss","data_type":"Float64","null_value":0,"comment":"Fixed voltage stabilization signal","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"PSSFixed has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a PSS that returns a fixed voltage to add to the reference for the AVR","struct_name":"PSSFixed","supertype":"PSS"},{"fields":[{"name":"K_ω","data_type":"Float64","null_value":0,"comment":"Proportional gain for frequency","valid_range":{"max":null,"min":0}},{"name":"K_p","data_type":"Float64","null_value":0,"comment":"Proportional gain for active power","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"PSSSimple has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a PSS that returns a proportional droop voltage to add to the reference for the AVR","struct_name":"PSSSimple","supertype":"PSS"},{"fields":[{"name":"input_code","data_type":"Int","null_value":1,"validation_action":"error","comment":"Code input for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control","data_type":"Int","null_value":0,"comment":"Remote Bus number for control."},{"name":"A1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A3","data_type":"Float64","null_value":0,"comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"A6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Filter coefficient","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant","valid_range":{"max":10,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Time constant","valid_range":{"max":"2.0","min":"eps()"}},{"name":"Ks","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Proportional gain","valid_range":{"max":null,"min":0}},{"name":"Ls_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits for regulator output `(Ls_min, Ls_max)`"},{"name":"Vcu","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Cutoff limiter upper bound","valid_range":{"max":"1.25","min":0}},{"name":"Vcl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Cutoff limiter lower bound","valid_range":{"max":"1.0","min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p1: 1st filter integration,\n\tx_p2: 2nd filter integration, \n\tx_p3: 3rd filter integration, \n\tx_p4: 4rd filter integration, \n\tx_p5: T1/T2 lead-lag integrator, \n\tx_p6: T3/T4 lead-lag integrator, \n\t:x_p7 last integer,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 7 states","internal_default":7},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 7 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Stabilizing Model PSS. ","struct_name":"IEEEST","supertype":"PSS"},{"fields":[{"name":"KT","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"K/T for washout filter","valid_range":{"max":null,"min":0}},{"name":"T","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant for washout filter","valid_range":{"max":null,"min":0.01}},{"name":"T1T3","data_type":"Float64","null_value":0,"comment":"Time constant division T1/T3","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant","valid_range":{"max":null,"min":0.01}},{"name":"T2T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant division T2/T4","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0.01,"validation_action":"warn","comment":"Time constant","valid_range":{"max":null,"min":0.01}},{"name":"H_lim","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"PSS output limit","valid_range":{"max":0.5,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tx_p1: washout filter,\n\tx_p2: T1/T3 lead-lag block, \n\tx_p3: T2/T4 lead-lag block,","internal_default":"[:x_p1, :x_p2, :x_p3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"STAB1 has 3 states","internal_default":3},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"STAB1 has 3 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Speed-Sensitive Stabilizing Model","struct_name":"STAB1","supertype":"PSS"},{"fields":[{"name":"H","data_type":"Float64","null_value":0,"comment":"Rotor inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"D","data_type":"Float64","null_value":0,"comment":"Rotor natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tδ: rotor angle,\n\tω: rotor speed","internal_default":"[:δ, :ω]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"SingleMass has 1 state","internal_default":2},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of single mass shaft model. Typically represents the rotor mass.","struct_name":"SingleMass","supertype":"Shaft"},{"fields":[{"name":"H","data_type":"Float64","null_value":0,"comment":"Rotor inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"H_ex","data_type":"Float64","null_value":0,"comment":" Exciter inertia constant in MWs/MVA","valid_range":{"max":null,"min":0}},{"name":"D","data_type":"Float64","null_value":0,"comment":"Rotor natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_ex","data_type":"Float64","null_value":0,"comment":"Exciter natural damping in pu","valid_range":{"max":null,"min":0}},{"name":"D_12","data_type":"Float64","null_value":0,"comment":"High-Intermediate pressure turbine damping","valid_range":{"max":null,"min":0}},{"name":"D_23","data_type":"Float64","null_value":0,"comment":"Intermediate-Low pressure turbine damping","valid_range":{"max":null,"min":0}},{"name":"D_34","data_type":"Float64","null_value":0,"comment":"Low pressure turbine-Rotor damping","valid_range":{"max":null,"min":0}},{"name":"D_45","data_type":"Float64","null_value":0,"comment":"Rotor-Exciter damping","valid_range":{"max":null,"min":0}},{"name":"K_hp","data_type":"Float64","null_value":0,"comment":"High pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_ip","data_type":"Float64","null_value":0,"comment":"Intermediate pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_lp","data_type":"Float64","null_value":0,"comment":"Low pressure turbine angle coefficient","valid_range":{"max":null,"min":0}},{"name":"K_ex","data_type":"Float64","null_value":0,"comment":"Exciter angle coefficient","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tδ: rotor angle,\n\tω: rotor speed,\n\tδ_hp: rotor angle of high pressure turbine,\n\tω_hp: rotor speed of high pressure turbine,\n\tδ_ip: rotor angle of intermediate pressure turbine,\n\tω_ip: rotor speed of intermediate pressure turbine,\n\tδ_lp: rotor angle of low pressure turbine,\n\tω_lp: rotor speed of low pressure turbine,\n\tδ_ex: rotor angle of exciter,\n\tω_lp: rotor speed of exciter","internal_default":"[:δ, :ω, :δ_hp, :ω_hp, :δ_ip, :ω_ip, :δ_lp, :ω_lp, :δ_ex, :ω_ex]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FiveMassShaft has 10 states","internal_default":10},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of 5 mass-spring shaft model.\n It contains a High-Pressure (HP) steam turbine, Intermediate-Pressure (IP)\n steam turbine, Low-Pressure (LP) steam turbine, the Rotor and an Exciter (EX) mover.","struct_name":"FiveMassShaft","supertype":"Shaft"},{"fields":[{"name":"efficiency","data_type":"Float64","null_value":0,"comment":" Efficiency factor that multiplies P_ref","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGFixed has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a fixed Turbine Governor that returns a fixed mechanical torque\n given by the product of P_ref*efficiency","struct_name":"TGFixed","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Speed droop parameter","valid_range":{"max":0.1,"min":"eps()"}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Governor time constant in s","valid_range":{"max":0.5,"min":"eps()"}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Combustion chamber time constant","valid_range":{"max":0.5,"min":"eps()"}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Load limit time constant (exhaust gas measurement time)","valid_range":{"max":5,"min":"eps()"}},{"name":"AT","data_type":"Float64","null_value":0,"comment":"Ambient temperature load limit","valid_range":{"max":1,"min":0}},{"name":"Kt","data_type":"Float64","null_value":0,"comment":"Load limit feedback gain","valid_range":{"max":5,"min":0}},{"name":"V_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Operational control limits on fuel valve opening (V_min, V_max)"},{"name":"D_turb","data_type":"Float64","null_value":0,"comment":"Speed damping coefficient of gas turbine rotor","valid_range":{"max":0.5,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Load Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the GAST model are:\n\tx_g1: Fuel valve opening,\n\tx_g2: Fuel flow,\n\tx_g3: Exhaust temperature load","internal_default":"[:x_g1, :x_g2, :x_g3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"GasTG has 3 states","internal_default":3},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"GAST has 3 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of Gas Turbine-Governor. GAST in PSSE and GAST_PTI in PowerWorld.","struct_name":"GasTG","supertype":"TurbineGov"},{"fields":[{"name":"Rselect","data_type":"Int","null_value":1,"validation_action":"error","comment":"Feedback signal for governor droop","valid_range":{"max":1,"min":-2}},{"name":"fuel_flag","data_type":"Int","null_value":0,"validation_action":"error","comment":"Flag Switch for fuel source characteristic","valid_range":{"max":1,"min":0}},{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Speed droop parameter","valid_range":{"max":null,"min":"eps()"}},{"name":"Tpelec","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Electrical power transducer time constant, seconds","valid_range":{"max":null,"min":"eps()"}},{"name":"speed_error_signal","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Speed error signal limits"},{"name":"Kp_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor proportional gain","valid_range":{"max":null,"min":0}},{"name":"Ki_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor integral gain","valid_range":{"max":null,"min":0}},{"name":"Kd_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor derivative gain","valid_range":{"max":null,"min":0}},{"name":"Td_gov","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor derivative time constant","valid_range":{"max":null,"min":0}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits"},{"name":"T_act","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Actuator time constant","valid_range":{"max":null,"min":0}},{"name":"K_turb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine gain","valid_range":{"max":null,"min":0}},{"name":"Wf_nl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"No load fuel flow, pu","valid_range":{"max":null,"min":0}},{"name":"Tb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine lag time constant, sec","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine lead time constant, sec","valid_range":{"max":null,"min":0}},{"name":"T_eng","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Transport lag time constant for diesel engine, sec","valid_range":{"max":null,"min":0}},{"name":"Tf_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter time constant","valid_range":{"max":null,"min":0}},{"name":"Kp_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter proportional gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Ki_load","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load integral gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Ld_ref","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Load limiter integral gain for PI controller","valid_range":{"max":null,"min":0}},{"name":"Dm","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Mechanical damping coefficient, pu","valid_range":{"max":null,"min":0}},{"name":"R_open","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum valve opening rate, pu/sec","valid_range":{"max":null,"min":0}},{"name":"R_close","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum valve closing rate, pu/sec","valid_range":{"max":null,"min":0}},{"name":"Ki_mw","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Power controller (reset) gain","valid_range":{"max":null,"min":0}},{"name":"A_set","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Acceleration limiter setpoint, pu/sec","valid_range":{"max":null,"min":0}},{"name":"Ka","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Acceleration limiter gain","valid_range":{"max":null,"min":0}},{"name":"Ta","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Acceleration limiter time constant ","valid_range":{"max":null,"min":"eps()"}},{"name":"T_rate","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine rating","valid_range":{"max":null,"min":0}},{"name":"db","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Speed governor deadband","valid_range":{"max":null,"min":0}},{"name":"Tsa","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temperature detection lead time constant","valid_range":{"max":null,"min":0}},{"name":"Tsb","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temperature detection lag time constant","valid_range":{"max":null,"min":0}},{"name":"R_lim","data_type":"UpDown","null_value":"(up = 0.0, down = 0.0)","comment":"Maximum rate of load increa"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the GGOV1 model are:\n\tPe: Machine Electrical Power Measurement,\n\tx_g1: Governor differential control,\n\tx_g2: Governor integral control, \n\tx_g3: Turbine actuator, \n\tx_g4: Turbine Lead-Lag, \n\tx_g5: Turbine load limiter measurement, \n\tx_g6: Turbine Load Limiter Integral Control, \n\tx_g7: Supervisory Load Control, \n\tx_g8: Acceleration Control, \n\tx_g9 Temperature Detection Lead - Lag:","internal_default":"[:Pe, :x_g1, :x_g2, :x_g3, :x_g4, :x_g5, :x_g6, :x_g7, :x_g8, :x_g9]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"GeneralGovModel has 10 states","internal_default":10},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"GGOV1 has 10 differential states","internal_default":"[StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Differential, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"GE General Governor/Turbine Model. The GeneralGovModel (GGOV1) model is a general purpose governor model used for a variety of prime movers controlled by proportional-integral-derivative (PID) governors including gas turbines.","struct_name":"GeneralGovModel","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Droop parameter","valid_range":{"max":0.1,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Governor time constant","valid_range":{"max":0.5,"min":"eps()"}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits"},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Lead Lag Lead Time constant ","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Lead Lag Lag Time constant ","valid_range":{"max":10,"min":"eps()"}},{"name":"D_T","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Damping","valid_range":{"max":0.5,"min":0}},{"name":"DB_h","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Deadband for overspeed","valid_range":{"max":null,"min":0}},{"name":"DB_l","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Deadband for underspeed","valid_range":{"max":0,"min":null}},{"name":"T_rate","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Rate (MW). If zero, generator base is used.","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the SteamTurbineGov1 model are:\n\tx_g1: Valve Opening,\n\tx_g2: Lead-lag state","internal_default":"[:x_g1, :x_g2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGOV1 has 2 states","internal_default":2},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"TGOV1 has 2 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Steam Turbine-Governor. This model considers both TGOV1 or TGOV1DU in PSS/E.","struct_name":"SteamTurbineGov1","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Permanent droop parameter","valid_range":{"max":0.1,"min":0}},{"name":"r","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Temporary Droop","valid_range":{"max":2,"min":0}},{"name":"Tr","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Governor time constant","valid_range":{"max":30,"min":"eps()"}},{"comment":"Filter Time constant","name":"Tf","data_type":"Float64","null_value":0,"valiation_action":"error","valid_range":{"max":0.1,"min":"eps()"}},{"name":"Tg","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Servo time constant","valid_range":{"max":1,"min":"eps()"}},{"name":"VELM","data_type":"Float64","null_value":0,"validation_action":"error","comment":"gate velocity limit","valid_range":{"max":0.3,"min":"eps()"}},{"name":"gate_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Gate position limits"},{"name":"Tw","data_type":"Float64","null_value":0,"validation_action":"error","comment":"water time constant","valid_range":{"max":3,"min":"eps()"}},{"name":"At","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine gain","valid_range":{"max":1.5,"min":0.8}},{"name":"D_T","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Turbine Damping","valid_range":{"max":0.5,"min":0}},{"name":"q_nl","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"No-power flow","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the HydroTurbineGov model are:\n\tx_g1: filter_output,\n\tx_g2: desired gate, \n\tx_g3: gate opening, \n\tx_g4: turbine flow","internal_default":"[:x_g1, :x_g2, :x_g3, :x_g4]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"HYGOV has 4 states","internal_default":4},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"HYGOV has 4 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Hydro Turbine-Governor.","struct_name":"HydroTurbineGov","supertype":"TurbineGov"},{"fields":[{"name":"K","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Governor Gain","valid_range":{"max":30,"min":5}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Input Filter Lag","valid_range":{"max":5,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Input Filter Lead","valid_range":{"max":10,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Valve position Time Constant","valid_range":{"max":1,"min":"eps()"}},{"name":"U0","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum Valve Opening Rate","valid_range":{"max":0.03,"min":0.01}},{"name":"U_c","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Maximum Valve closing rate","valid_range":{"max":0,"min":-0.3}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits in MW"},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time Constant inlet steam","valid_range":{"max":1,"min":0}},{"name":"K1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power","valid_range":{"max":1,"min":-2}},{"name":"K2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second boiler pass","valid_range":{"max":10,"min":0}},{"name":"K3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power second boiler pass","valid_range":{"max":0.5,"min":0}},{"name":"K4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power second boiler pass","valid_range":{"max":0.5,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third boiler pass","valid_range":{"max":10,"min":0}},{"name":"K5","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power third boiler pass","valid_range":{"max":0.35,"min":0}},{"name":"K6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power third boiler pass","valid_range":{"max":0.55,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth boiler pass","valid_range":{"max":10,"min":0}},{"name":"K7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of high presure shaft power fourth boiler pass","valid_range":{"max":0.3,"min":0}},{"name":"K8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Fraction of low presure shaft power fourth boiler pass","valid_range":{"max":0.3,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the IEEETurbineGov model are:\n\tx_g1: First Governor integrator,\n\tx_g2: Governor output,\n\tx_g3: First Turbine integrator, \n\tx_g4: Second Turbine Integrator, \n\tx_g5: Third Turbine Integrator, \n\tx_g6: Fourth Turbine Integrator, ","internal_default":"[:x_g1, :x_g2, :x_g3, :x_g4, :x_g5, :x_g6]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEG1 has 6 states","internal_default":6},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEG1 has 6 differential states","internal_default":"[StateTypes.Differential, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid, StateTypes.Hybrid]"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"IEEE Type 1 Speed-Governing Model","struct_name":"IEEETurbineGov1","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Droop parameter","valid_range":{"max":null,"min":0}},{"name":"Ts","data_type":"Float64","null_value":0,"comment":"Governor time constant","valid_range":{"max":null,"min":0}},{"name":"Tc","data_type":"Float64","null_value":0,"comment":"Servo time constant","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Transient gain time constant","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"Power fraction time constant","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"comment":"Reheat time constant","valid_range":{"max":null,"min":0}},{"name":"valve_position_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Valve position limits in MW"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the TGTypeI model are:\n\tx_g1: Governor state,\n\tx_g2: Servo state,\n\tx_g3: Reheat state","internal_default":"[:x_g1, :x_g2, :x_g3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGTypeI has 3 states","internal_default":3},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Turbine Governor Type I.","struct_name":"TGTypeI","supertype":"TurbineGov"},{"fields":[{"name":"R","data_type":"Float64","null_value":0,"comment":"Droop parameter","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Transient gain time constant","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Power fraction time constant","valid_range":{"max":null,"min":0}},{"name":"τ_limits","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power into the governor limits"},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the TGTypeI model are:\n\tx_g1: lead-lag state","internal_default":"[:xg]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"TGTypeII has 1 state","internal_default":1},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Turbine Governor Type II.","struct_name":"TGTypeII","supertype":"TurbineGov"},{"fields":[{"name":"rated_voltage","data_type":"Float64","null_value":0,"comment":"rated voltage","valid_range":{"max":null,"min":0}},{"name":"rated_current","data_type":"Float64","null_value":0,"comment":"rated VA","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"AverageConverter has no states","internal_default":0}],"docstring":"Parameters of an average converter model","struct_name":"AverageConverter","supertype":"Converter"},{"fields":[{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Converter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"Rrpwr","data_type":"Float64","null_value":0,"comment":"Low Voltage Power Logic (LVPL) ramp rate limit (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Brkpt","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 2 (pu)","valid_range":{"max":null,"min":0}},{"name":"Zerox","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 1 (pu)","valid_range":{"max":null,"min":0}},{"name":"Lvpl1","data_type":"Float64","null_value":0,"comment":"LVPL gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Vo_lim","data_type":"Float64","null_value":0,"comment":"Voltage limit for high voltage reactive current management (pu)","valid_range":{"max":null,"min":0}},{"name":"Lv_pnts","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage points for low voltage active current management (pu) (Lvpnt0, Lvpnt1)"},{"name":"Io_lim","data_type":"Float64","null_value":0,"comment":"Current limit (pu) for high voltage reactive current management (specified as a negative value)","valid_range":{"max":0,"min":null}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage filter time constant for low voltage active current management (s)","valid_range":{"max":null,"min":0}},{"name":"K_hv","data_type":"Float64","null_value":0,"comment":"Overvoltage compensation gain used in the high voltage reactive current management","valid_range":{"max":null,"min":0}},{"name":"Iqr_lims","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"Accel","data_type":"Float64","null_value":0,"comment":"Acceleration factor","valid_range":{"max":1,"min":0}},{"name":"Lvpl_sw","data_type":"Int","null_value":0,"comment":"Low voltage power logic (LVPL) switch. (0: LVPL not present, 1: LVPL present)","valid_range":{"max":1,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Initial machine reactive power from power flow","valid_range":{"max":null,"min":0}},{"name":"R_source","default":"0.0","data_type":"Float64","null_value":0,"comment":"Output resistor used for the Thevenin Equivalent","valid_range":{"max":null,"min":0}},{"name":"X_source","default":"1.0e5","data_type":"Float64","null_value":0,"comment":"Output resistor used for the Thevenin Equivalent","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tIp: Converter lag for Ipcmd,\tIq: Converter lag for Iqcmd,\tVmeas: Voltage filter for low voltage active current management","internal_default":"[:Ip, :Iq, :Vmeas]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RenewableEnergyConverterTypeA has 3 states","internal_default":3}],"docstring":"Parameters of a renewable energy generator/converter model, this model corresponds to REGCA1 in PSSE","struct_name":"RenewableEnergyConverterTypeA","supertype":"Converter"},{"fields":[{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Converter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"Rrpwr","data_type":"Float64","null_value":0,"comment":"Low Voltage Power Logic (LVPL) ramp rate limit (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Brkpt","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 2 (pu)","valid_range":{"max":null,"min":0}},{"name":"Zerox","data_type":"Float64","null_value":0,"comment":"LVPL characteristic voltage 1 (pu)","valid_range":{"max":null,"min":0}},{"name":"Lvpl1","data_type":"Float64","null_value":0,"comment":"LVPL gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Vo_lim","data_type":"Float64","null_value":0,"comment":"Voltage limit for high voltage reactive current management (pu)","valid_range":{"max":null,"min":0}},{"name":"Lv_pnts","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Voltage points for low voltage active current management (pu) (Lvpnt0, Lvpnt1)"},{"name":"Io_lim","data_type":"Float64","null_value":0,"comment":"Current limit (pu) for high voltage reactive current management (specified as a negative value)","valid_range":{"max":0,"min":null}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage filter time constant for low voltage active current management (s)","valid_range":{"max":null,"min":0}},{"name":"K_hv","data_type":"Float64","null_value":0,"comment":"Overvoltage compensation gain used in the high voltage reactive current management","valid_range":{"max":null,"min":0}},{"name":"Iqr_lims","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"Accel","data_type":"Float64","null_value":0,"comment":"Acceleration factor","valid_range":{"max":1,"min":0}},{"name":"Lvpl_sw","data_type":"Int","null_value":0,"comment":"Low voltage power logic (LVPL) switch. (0: LVPL not present, 1: LVPL present)","valid_range":{"max":1,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Initial machine reactive power from power flow","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\tIp: Converter lag for Ipcmd,\tIq: Converter lag for Iqcmd,\tVmeas: Voltage filter for low voltage active current management","internal_default":"[:Ip, :Iq, :Vmeas]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RenewableEnergyVoltageConverterTypeA has 3 states","internal_default":3}],"docstring":"Parameters of a renewable energy generator/converter model, this model corresponds to REGCA1 in PSSE, but to be interfaced using a Voltage Source instead of a Current Source.","struct_name":"RenewableEnergyVoltageConverterTypeA","supertype":"Converter"},{"fields":[{"name":"voltage","data_type":"Float64","null_value":0,"comment":"rated VA","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FixedDCSource has no states","internal_default":0},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Fixed DC Source that returns a fixed DC voltage","struct_name":"FixedDCSource","supertype":"DCSource"},{"fields":[{"name":"rated_voltage","data_type":"Float64","null_value":0,"comment":"rated voltage","valid_range":{"max":null,"min":0}},{"name":"rated_current","data_type":"Float64","null_value":0,"comment":"rated current","valid_range":{"max":null,"min":0}},{"name":"battery_voltage","data_type":"Float64","null_value":0,"comment":"battery voltage","valid_range":{"max":null,"min":0}},{"name":"battery_resistance","data_type":"Float64","null_value":0,"comment":"battery_resistance","valid_range":{"max":null,"min":0}},{"name":"dc_dc_inductor","data_type":"Float64","null_value":0,"comment":"DC/DC inductance","valid_range":{"max":null,"min":0}},{"name":"dc_link_capacitance","data_type":"Float64","null_value":0,"comment":"DC-link capacitor","valid_range":{"max":null,"min":0}},{"name":"fs","data_type":"Float64","null_value":0,"comment":"DC/DC converter switching frequency","valid_range":{"max":null,"min":0}},{"name":"kpv","data_type":"Float64","null_value":0,"comment":"voltage controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"voltage controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kpi","data_type":"Float64","null_value":0,"comment":"current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kii","data_type":"Float64","null_value":0,"comment":"current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"Vdc_ref","default":"1.1","data_type":"Float64","null_value":0,"comment":"Reference DC-Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ZeroOrderBESS model are:\n\tv_dc: DC-link votlage,\n\ti_b: Battery current,\n\t ν: integrator state of the voltage controller,\n\t ζ: integrator state of the PI current controller","internal_default":"[:v_dc, :i_b, :ν, :ζ]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ZeroOrderBESS has 4 states","internal_default":4}],"docstring":"Parameters for the DC-side with a Battery Energy Storage System from paper at https://arxiv.org/abs/2007.11776","struct_name":"ZeroOrderBESS","supertype":"DCSource"},{"fields":[{"name":"lf","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"Shunt capacitance in p.u. of converter filter","valid_range":{"max":null,"min":0}},{"name":"lg","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"rg","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the LCLFilter model are:\n\tir_cnv: Real current out of the converter,\n\tii_cnv: Imaginary current out of the converter,\n\tvr_filter: Real voltage at the filter's capacitor,\n\tvi_filter: Imaginary voltage at the filter's capacitor,\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:ir_cnv, :ii_cnv, :vr_filter, :vi_filter, :ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"LCLFilter has 6 states","internal_default":6}],"docstring":"Parameters of a LCL filter outside the converter, the states are in the grid's reference frame","struct_name":"LCLFilter","supertype":"Filter"},{"fields":[{"name":"lf","data_type":"Float64","null_value":0,"comment":"filter inductance","valid_range":{"max":null,"min":0}},{"name":"rf","data_type":"Float64","null_value":0,"comment":"filter resistance","valid_range":{"max":null,"min":0}},{"name":"cf","data_type":"Float64","null_value":0,"comment":"filter capacitance","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the LCFilter model are:\n\tir_filter: Real current out of the filter,\n\tii_filter: Imaginary current out of the filter","internal_default":"[:ir_filter, :ii_filter]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"LCFilter has two states","internal_default":2}],"docstring":"Parameters of a LCL filter outside the converter","struct_name":"LCFilter","supertype":"Filter"},{"fields":[{"name":"rf","data_type":"Float64","null_value":0,"comment":"Series resistance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"lf","data_type":"Float64","null_value":0,"comment":"Series inductance in p.u. of converter filter to the grid","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"RLFilter has zero states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"RLFilter has zero states","internal_default":0}],"docstring":"Parameters of RL series filter in algebraic representation","struct_name":"RLFilter","supertype":"Filter"},{"fields":[{"name":"ω_lp","data_type":"Float64","null_value":0,"comment":"PLL low-pass filter frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"PLL proportional gain","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"PLL integral gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the KauraPLL model are:\n\tvd_pll: d-axis of the measured voltage in the PLL synchronous reference frame (SRF),\n\tvq_pll: q-axis of the measured voltage in the PLL SRF,\n\tε_pll: Integrator state of the PI controller,\n\tθ_pll: Phase angle displacement in the PLL SRF","internal_default":"[:vd_pll, :vq_pll, :ε_pll, :θ_pll]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"KauraPLL has 4 states","internal_default":4}],"docstring":"Parameters of a Phase-Locked Loop (PLL) based on Kaura, Vikram, and Vladimir Blasko.\n\"Operation of a phase locked loop system under distorted utility conditions.\"\nIEEE Transactions on Industry applications 33.1 (1997): 58-63.","struct_name":"KauraPLL","supertype":"FrequencyEstimator"},{"fields":[{"name":"ω_lp","data_type":"Float64","null_value":0,"comment":"PLL low-pass filter frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kp_pll","data_type":"Float64","null_value":0,"comment":"PLL proportional gain","valid_range":{"max":null,"min":0}},{"name":"ki_pll","data_type":"Float64","null_value":0,"comment":"PLL integral gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReducedOrderPLL model are:\n\tvq_pll: q-axis of the measured voltage in the PLL synchronous reference frame (SRF),\n\tε_pll: Integrator state of the PI controller,\n\tθ_pll: Phase angle displacement in the PLL SRF","internal_default":"[:vq_pll, :ε_pll, :θ_pll]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReducedOrderPLL has 3 states","internal_default":3}],"docstring":"Parameters of a Phase-Locked Loop (PLL) based on Purba, Dhople, Jafarpour, Bullo and Johnson.\n\"Reduced-order Structure-preserving Model for Parallel-connected Three-phase Grid-tied Inverters.\"\n2017 IEEE 18th Workshop on Control and Modeling for Power Electronics (COMPEL): 1-7.","struct_name":"ReducedOrderPLL","supertype":"FrequencyEstimator"},{"fields":[{"name":"frequency","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference used"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"FixedFrequency has no states","internal_default":"Vector{Symbol}()"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"FixedFrequency has no states","internal_default":0}],"docstring":"Parameters of a Fixed Frequency Estimator (i.e. no PLL).","struct_name":"FixedFrequency","supertype":"FrequencyEstimator"},{"fields":[{"name":"Ta","data_type":"Float64","null_value":0,"comment":"VSM inertia constant","valid_range":{"max":null,"min":0}},{"name":"kd","data_type":"Float64","null_value":0,"comment":"VSM damping constant","valid_range":{"max":null,"min":0}},{"name":"kω","data_type":"Float64","null_value":0,"comment":"frequency droop gain","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the VirtualInertia model are:\n\tθ_oc: Phase angle displacement of the virtual synchronous generator model\n\tω_oc: Speed of the rotating reference frame of the virtual synchronous generator model","internal_default":"[:θ_oc, :ω_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"VirtualInertia has two states","internal_default":2}],"docstring":"Parameters of a Virtual Inertia with SRF using VSM for active power controller","struct_name":"VirtualInertia","supertype":"ActivePowerControl"},{"fields":[{"name":"Rp","data_type":"Float64","null_value":0,"comment":"Droop Gain","valid_range":{"max":null,"min":0}},{"name":"ωz","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActivePowerDroop model are:\n\tθ_oc: Phase angle displacement of the inverter model,\n\tp_oc: Measured active power of the inverter model","internal_default":"[:θ_oc, :p_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActivePowerDroop has two states","internal_default":2}],"docstring":"Parameters of an Active Power droop controller","struct_name":"ActivePowerDroop","supertype":"ActivePowerControl"},{"fields":[{"name":"Kp_p","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"Ki_p","data_type":"Float64","null_value":0,"comment":"Integral Gain","valid_range":{"max":null,"min":0}},{"name":"ωz","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActivePowerPI model are:\n\tσp_oc: Integrator state of the PI Controller,\n\tp_oc: Measured active power of the inverter model","internal_default":"[:σp_oc, :p_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActivePowerPI has two states","internal_default":2}],"docstring":"Parameters of a Proportional-Integral Active Power controller for a specified power reference","struct_name":"ActivePowerPI","supertype":"ActivePowerControl"},{"fields":[{"name":"k1","data_type":"Float64","null_value":0,"comment":"VOC Synchronization Gain","valid_range":{"max":null,"min":0}},{"name":"ψ","data_type":"Float64","null_value":0,"comment":"Rotation angle of the controller","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActiveVirtualOscillator model are:\n\tθ_oc: Phase angle displacement of the inverter model","internal_default":"[:θ_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ActiveVirtualOscillator has one state","internal_default":1}],"docstring":"Parameters of an Active Virtual Oscillator controller. Model is based from the paper Model Reduction for Inverters with Current Limiting and Dispatchable Virtual Oscillator Control by O. Ajala et al.","struct_name":"ActiveVirtualOscillator","supertype":"ActivePowerControl"},{"fields":[{"name":"bus_control","data_type":"Int","null_value":0,"comment":"Bus Number for voltage control; ","valid_range":{"max":null,"min":0}},{"name":"from_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch FROM bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"to_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch TO bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"branch_id_control","data_type":"String","null_value":0,"comment":"Branch circuit id for line drop compensation (as a string). If 0 generator power will be used"},{"name":"Freq_Flag","data_type":"Int","null_value":0,"comment":"Frequency Flag for REPCA1: 0: disable, 1:enable","valid_range":{"max":1,"min":0}},{"name":"K_pg","data_type":"Float64","null_value":0,"comment":"Active power PI control proportional gain","valid_range":{"max":null,"min":0}},{"name":"K_ig","data_type":"Float64","null_value":0,"comment":"Active power PI control integral gain","valid_range":{"max":null,"min":0}},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Real power measurement filter time constant (s)","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Frequency error dead band thresholds `(fdbd1, fdbd2)`"},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on frequency error `(fe_min, fe_max)`"},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference `(P_min, P_max)`"},{"name":"T_g","data_type":"Float64","null_value":0,"comment":"Power Controller lag time constant","valid_range":{"max":null,"min":0}},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"Droop for over-frequency conditions","valid_range":{"max":0,"min":null}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"Droop for under-frequency conditions","valid_range":{"max":null,"min":0}},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference ramp rates`(dP_min, dP_max)`"},{"name":"P_lim_inner","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on power reference for REECB`(P_min_inner, P_max_inner)`"},{"name":"T_pord","data_type":"Float64","null_value":0,"comment":"Power filter time constant REECB time constant","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ActiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_activeRETypeAB_states(Freq_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the ActiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_activeRETypeAB_states(Freq_Flag)[2]"}],"docstring":"Parameters of Active Power Controller including REPCA1 and REECB1","struct_name":"ActiveRenewableControllerAB","supertype":"ActivePowerControl"},{"fields":[{"name":"bus_control","data_type":"Int","null_value":0,"comment":"Bus Number for voltage control; ","valid_range":{"max":null,"min":0}},{"name":"from_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch FROM bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"to_branch_control","data_type":"Int","null_value":0,"comment":"Monitored branch TO bus number for line drop compensation (if 0 generator power will be used)","valid_range":{"max":null,"min":0}},{"name":"branch_id_control","data_type":"String","null_value":0,"comment":"Branch circuit id for line drop compensation (as a string). If 0 generator power will be used"},{"name":"VC_Flag","data_type":"Int","null_value":0,"comment":"Voltage Compensator Flag for REPCA1","valid_range":{"max":1,"min":0}},{"name":"Ref_Flag","data_type":"Int","null_value":0,"comment":"Flag for Reactive Power Control for REPCA1. 0: Q-control, 1: V-control","valid_range":{"max":1,"min":0}},{"name":"PF_Flag","data_type":"Int","null_value":0,"comment":"Flag for Power Factor Control for Outer Control of REECB1. 0: Q-control, 1: Power Factor Control","valid_range":{"max":1,"min":0}},{"name":"V_Flag","data_type":"Int","null_value":0,"comment":"Flag for Voltage Control for Outer Control of REECB1. 0: Voltage Control, 1: Q-Control","valid_range":{"max":1,"min":0}},{"name":"T_fltr","data_type":"Float64","null_value":0,"comment":"Voltage or Q-power of REPCA Filter Time Constant","valid_range":{"max":null,"min":0}},{"name":"K_p","data_type":"Float64","null_value":0,"comment":"Reactive power PI control proportional gain","valid_range":{"max":null,"min":0}},{"name":"K_i","data_type":"Float64","null_value":0,"comment":"Reactive power PI control integral gain","valid_range":{"max":null,"min":0}},{"name":"T_ft","data_type":"Float64","null_value":0,"comment":"Reactive power lead time constant (s)","valid_range":{"max":null,"min":0}},{"name":"T_fv","data_type":"Float64","null_value":0,"comment":"Reactive power lag time constant (s)","valid_range":{"max":null,"min":0}},{"name":"V_frz","data_type":"Float64","null_value":0,"comment":"Voltage below which state ξq_oc (integrator state) is freeze","valid_range":{"max":null,"min":0}},{"name":"R_c","data_type":"Float64","null_value":0,"comment":"Line drop compensation resistance (used when VC_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"X_c","data_type":"Float64","null_value":0,"comment":"Line drop compensation reactance (used when VC_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_c","data_type":"Float64","null_value":0,"comment":"Reactive current compensation gain (pu) (used when VC_Flag = 0)","valid_range":{"max":null,"min":0}},{"name":"e_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on Voltage or Q-power deadband output `(e_min, e_max)`"},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage or Q-power error dead band thresholds `(dbd1, dbd2)`"},{"name":"Q_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power V/Q control in REPCA `(Q_min, Q_max)`"},{"name":"T_p","data_type":"Float64","null_value":0,"comment":"Active power lag time constant in REECB (s). Used only when PF_Flag = 1","valid_range":{"max":null,"min":0}},{"name":"Q_lim_inner","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power input in REECB `(Q_min_inner, Q_max_inner)`. Only used when V_Flag = 1"},{"name":"V_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Upper/Lower limit on reactive power PI controller in REECB `(V_min, V_max)`. Only used when V_Flag = 1"},{"name":"K_qp","data_type":"Float64","null_value":0,"comment":"Reactive power regulator proportional gain (used when V_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_qi","data_type":"Float64","null_value":0,"comment":"Reactive power regulator integral gain (used when V_Flag = 1)","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Power Set-point","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_reactiveRETypeAB_states(Ref_Flag, PF_Flag, V_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the ReactiveRenewableControllerAB model depends on the Flag","internal_default":"PowerSystems.get_reactiveRETypeAB_states(Ref_Flag, PF_Flag, V_Flag)[2]"}],"docstring":"Parameters of Reactive Power Controller including REPCA1 and REECB1","struct_name":"ReactiveRenewableControllerAB","supertype":"ReactivePowerControl"},{"fields":[{"name":"kq","data_type":"Float64","null_value":0,"comment":"frequency droop gain","valid_range":{"max":null,"min":0}},{"name":"ωf","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactivePowerDroop model are:\n\tq_oc: Filtered reactive output power","internal_default":"[:q_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactivePowerDroop has 1 state","internal_default":1}],"docstring":"Parameters of a Reactive Power droop controller","struct_name":"ReactivePowerDroop","supertype":"ReactivePowerControl"},{"fields":[{"name":"Kp_q","data_type":"Float64","null_value":0,"comment":"Proportional Gain","valid_range":{"max":null,"min":0}},{"name":"Ki_q","data_type":"Float64","null_value":0,"comment":"Integral Gain","valid_range":{"max":null,"min":0}},{"name":"ωf","data_type":"Float64","null_value":0,"comment":"filter frequency cutoff","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reactive Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactivePowerPI model are:\n\tσq_oc: Integrator state of the PI Controller,\n\tq_oc: Measured reactive power of the inverter model","internal_default":"[:σq_oc, :q_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactivePowerPI has two states","internal_default":2}],"docstring":"Parameters of a Proportional-Integral Reactive Power controller for a specified power reference","struct_name":"ReactivePowerPI","supertype":"ReactivePowerControl"},{"fields":[{"name":"k2","data_type":"Float64","null_value":0,"comment":"VOC voltage-amplitude control gain","valid_range":{"max":null,"min":0}},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Voltage Set-point","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference Reactive Power Set-point","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the ReactiveVirtualOscilator model are:\n\tE_oc: voltage reference state for inner control in the d-axis","internal_default":"[:E_oc]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"ReactiveVirtualOscillator has 1 state","internal_default":1}],"docstring":"Parameters of a Reactive Virtual Oscillator controller. Model is based from the paper Model Reduction for Inverters with Current Limiting and Dispatchable Virtual Oscillator Control by O. Ajala et al.","struct_name":"ReactiveVirtualOscillator","supertype":"ReactivePowerControl"},{"fields":[{"name":"kpv","data_type":"Float64","null_value":0,"comment":"voltage controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kiv","data_type":"Float64","null_value":0,"comment":"voltage controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffv","data_type":"Float64","null_value":0,"comment":"Binary variable to enable feed-forward gain of voltage.","valid_range":{"max":null,"min":0}},{"name":"rv","data_type":"Float64","null_value":0,"comment":"virtual resistance","valid_range":{"max":null,"min":0}},{"name":"lv","data_type":"Float64","null_value":0,"comment":"virtual inductance","valid_range":{"max":null,"min":0}},{"name":"kpc","data_type":"Float64","null_value":0,"comment":"current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffi","data_type":"Float64","null_value":0,"comment":"Binary variable to enable feed-forward gain of current","valid_range":{"max":null,"min":0}},{"name":"ωad","data_type":"Float64","null_value":0,"comment":"active damping filter cutoff frequency (rad/sec)","valid_range":{"max":null,"min":0}},{"name":"kad","data_type":"Float64","null_value":0,"comment":"active damping gain","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the VoltageModeControl model are:\n\tξd_ic: d-axis integrator state of the PI voltage controller,\n\tξq_ic: q-axis integrator state of the PI voltage controller,\n\tγd_ic: d-axis integrator state of the PI current controller,\n\tγq_ic: q-axis integrator state of the PI current controller,\n\tϕd_ic: d-axis low-pass filter of active damping,\n\tϕq_ic: q-axis low-pass filter of active damping","internal_default":"[:ξd_ic, :ξq_ic, :γd_ic, :γq_ic, :ϕd_ic, :ϕq_ic]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"VoltageModeControl has 6 states","internal_default":6}],"docstring":"Parameters of an inner loop current control PID using virtual impedance based on D'Arco, Suul and Fosso.\n\"A Virtual Synchronous Machine implementation for distributed control of power converters in SmartGrids.\"\nElectric Power Systems Research 122 (2015) 180–197.","struct_name":"VoltageModeControl","supertype":"InnerControl"},{"fields":[{"name":"kpc","data_type":"Float64","null_value":0,"comment":"Current controller proportional gain","valid_range":{"max":null,"min":0}},{"name":"kic","data_type":"Float64","null_value":0,"comment":"Current controller integral gain","valid_range":{"max":null,"min":0}},{"name":"kffv","data_type":"Float64","null_value":0,"comment":"Gain to enable feed-forward gain of voltage.","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the CurrentModeControl model are:\n\tγd_ic: d-axis integrator state of the PI current controller,\n\tγq_ic: q-axis integrator state of the PI current controller","internal_default":"[:γd_ic, :γq_ic]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"CurrentControl has 2 states","internal_default":2}],"docstring":"Parameters of an inner loop PI current control using based on Purba, Dhople, Jafarpour, Bullo and Johnson.\n\"Reduced-order Structure-preserving Model for Parallel-connected Three-phase Grid-tied Inverters.\"\n2017 IEEE 18th Workshop on Control and Modeling for Power Electronics (COMPEL): 1-7.","struct_name":"CurrentModeControl","supertype":"InnerControl"},{"fields":[{"name":"Q_Flag","data_type":"Int","null_value":0,"comment":"Q Flag used for I_qinj","valid_range":{"max":1,"min":0}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"PQ Flag used for the Current Limit Logic","valid_range":{"max":1,"min":0}},{"name":"Vdip_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for Voltage Dip Logic `(Vdip, Vup)`"},{"name":"T_rv","data_type":"Float64","null_value":0,"comment":"Voltage Filter Time Constant","valid_range":{"max":null,"min":0}},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage error deadband thresholds `(dbd1, dbd2)`"},{"name":"K_qv","data_type":"Float64","null_value":0,"comment":"Reactive current injection gain during over and undervoltage conditions","valid_range":{"max":null,"min":0}},{"name":"Iqinj_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limits for Iqinj `(I_qh1, I_ql1)`"},{"name":"V_ref0","data_type":"Float64","null_value":0,"comment":"User defined reference. If 0, PSID initializes to initial terminal voltage","valid_range":{"max":null,"min":0}},{"name":"K_vp","data_type":"Float64","null_value":0,"comment":"Voltage regulator proportional gain (used when QFlag = 1)","valid_range":{"max":null,"min":0}},{"name":"K_vi","data_type":"Float64","null_value":0,"comment":"Voltage regulator integral gain (used when QFlag = 1)","valid_range":{"max":null,"min":0}},{"name":"T_iq","data_type":"Float64","null_value":0,"comment":"Time constant for low-pass filter for state q_V when QFlag = 0","valid_range":{"max":null,"min":0}},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on total converter current","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of the RECurrentControlB depends on the Flags","internal_default":"PowerSystems.get_REControlB_states(Q_Flag)"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of the RECurrentControlB depends on the Flags","internal_default":"2"}],"docstring":"Parameters of the Inner Control part of the REECB model in PSS/E","struct_name":"RECurrentControlB","supertype":"InnerControl"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"Pf_Flag","data_type":"Int","null_value":0,"comment":"Flag for Power Factor Control","valid_range":{"max":1,"min":0}},{"name":"Freq_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable frequency control","valid_range":{"max":1,"min":0}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"Flag used to enforce maximum current","valid_range":{"max":1,"min":0}},{"name":"Gen_Flag","data_type":"Int","null_value":0,"comment":"Flag to specify generator or storage","valid_range":{"max":1,"min":0}},{"name":"Vtrip_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable voltage trip logic","valid_range":{"max":1,"min":0}},{"name":"Ftrip_Flag","data_type":"Int","null_value":0,"comment":"Flag to enable/disable frequency trip logic","valid_range":{"max":1,"min":0}},{"name":"T_rv","data_type":"Float64","null_value":0,"comment":"Voltage measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"Trf","data_type":"Float64","null_value":0,"comment":"Frequency measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"dbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Voltage deadband thresholds `(dbd1, dbd2)`"},{"name":"K_qv","data_type":"Float64","null_value":0,"comment":"Proportional voltage control gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Tp","data_type":"Float64","null_value":0,"comment":"Power measurement transducer time constant","valid_range":{"max":null,"min":0}},{"name":"T_iq","data_type":"Float64","null_value":0,"comment":"Time constant for low-pass filter for state q_V when QFlag = 0","valid_range":{"max":null,"min":0}},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"Reciprocal of droop for over-frequency conditions (>0) (pu)","valid_range":{"max":null,"min":0}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"Reciprocal of droop for under-frequency conditions <=0) (pu)","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Frequency control deadband thresholds `(fdbd1, fdbd2)`"},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Frequency error limits (femin, femax)"},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power limits (Pmin, Pmax)"},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Power reference ramp rate limits (dPmin, dPmax)"},{"name":"Tpord","data_type":"Float64","null_value":0,"comment":"Power filter time constant","valid_range":{"max":null,"min":0}},{"name":"Kpg","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain (pu)","valid_range":{"max":null,"min":0}},{"name":"Kig","data_type":"Float64","null_value":0,"comment":"PI controller integral gain (pu)","valid_range":{"max":null,"min":0}},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on total converter current (pu)","valid_range":{"max":null,"min":0}},{"name":"vl_pnts","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0), (0.0, 0.0)]","comment":"Low voltage cutout points `[(tv10, vl0), (tv11, vl1)]`"},{"name":"vh_pnts","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0), (0.0, 0.0)]","comment":"High voltage cutout points `[(tvh0, vh0), (tvh1, vh1)]`"},{"name":"Vrfrac","data_type":"Float64","null_value":0,"comment":"Fraction of device that recovers after voltage comes back to within vl1 < V < vh1 (0 <= Vrfrac <= 1)","valid_range":{"max":1,"min":0}},{"name":"fl","data_type":"Float64","null_value":0,"comment":"Inverter frequency break-point for low frequency cut-out (Hz)","valid_range":{"max":null,"min":0}},{"name":"fh","data_type":"Float64","null_value":0,"comment":"Inverter frequency break-point for high frequency cut-out (Hz)","valid_range":{"max":null,"min":0}},{"name":"tfl","data_type":"Float64","null_value":0,"comment":"Low frequency cut-out timer corresponding to frequency fl (s)","valid_range":{"max":null,"min":0}},{"name":"tfh","data_type":"Float64","null_value":0,"comment":"High frequency cut-out timer corresponding to frequency fh (s)","valid_range":{"max":null,"min":0}},{"name":"Tg","data_type":"Float64","null_value":0,"comment":"Current control time constant (to represent behavior of inner control loops) (> 0) (s)","valid_range":{"max":null,"min":0}},{"name":"rrpwr","data_type":"Float64","null_value":0,"comment":"Ramp rate for real power increase following a fault (pu/s)","valid_range":{"max":null,"min":0}},{"name":"Tv","data_type":"Float64","null_value":0,"comment":"Time constant on the output of the multiplier (s)","valid_range":{"max":null,"min":0}},{"name":"Vpr","data_type":"Float64","null_value":0,"comment":"Voltage below which frequency tripping is disabled (pu)","valid_range":{"max":null,"min":0}},{"name":"Iq_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Reactive current injection limits (Iqll, Iqhl)"},{"name":"V_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"User defined voltage reference. If 0, PSID initializes to initial terminal voltage","valid_range":{"max":null,"min":0}},{"name":"Pfa_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference power factor","valid_range":{"max":null,"min":0}},{"name":"ω_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference frequency","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference reactive power, in pu","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference active power, in pu","valid_range":{"max":null,"min":0}},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of AggregateDistributedGenerationA depends on the Flags","internal_default":"PowerSystems.get_AggregateDistributedGenerationA_states(Freq_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of AggregateDistributedGenerationA depends on the Flags","internal_default":"PowerSystems.get_AggregateDistributedGenerationA_states(Freq_Flag)[2]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of the DERA1 model in PSS/E","struct_name":"AggregateDistributedGenerationA","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"bus","data_type":"Bus","null_value":"Bus(nothing)"},{"name":"active_power","data_type":"Float64","null_value":"0.0"},{"name":"reactive_power","data_type":"Float64","null_value":"0.0"},{"name":"R_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin resistance","valid_range":{"max":null,"min":0}},{"name":"X_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin reactance","valid_range":{"max":null,"min":0}},{"name":"internal_voltage","default":"1.0","data_type":"Float64","null_value":0,"comment":"Internal Voltage","valid_range":{"max":null,"min":0}},{"name":"internal_angle","default":"0.0","data_type":"Float64","null_value":0,"comment":"Internal Angle"},{"name":"dynamic_injector","default":"nothing","data_type":"Union{Nothing, DynamicInjection}","exclude_setter":true,"null_value":"nothing","comment":"corresponding dynamic injection device"},{"name":"services","default":"Device[]","data_type":"Vector{Service}","null_value":"Device[]","comment":"Services that this device contributes to"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This struct acts as an infinity bus.","struct_name":"Source","supertype":"StaticInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"R_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin resistance","valid_range":{"max":null,"min":0}},{"name":"X_th","data_type":"Float64","null_value":0,"comment":"Source Thevenin reactance","valid_range":{"max":null,"min":0}},{"name":"internal_voltage_bias","default":"0.0","data_type":"Float64","null_value":0,"comment":"a0 term of the Fourier Series for the voltage"},{"name":"internal_voltage_frequencies","default":"[0.0]","data_type":"Vector{Float64}","null_value":[0],"comment":"Frequencies in radians/s"},{"name":"internal_voltage_coefficients","default":"[(0.0, 0.0)]","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0)]","comment":"Coefficients for terms n > 1. First component corresponds to sin and second component to cos"},{"name":"internal_angle_bias","default":"0.0","data_type":"Float64","null_value":0,"comment":"a0 term of the Fourier Series for the angle"},{"name":"internal_angle_frequencies","default":"[0.0]","data_type":"Vector{Float64}","null_value":[0],"comment":"Frequencies in radians/s"},{"name":"internal_angle_coefficients","default":"[(0.0, 0.0)]","data_type":"Vector{Tuple{Float64,Float64}}","null_value":"[(0.0, 0.0)]","comment":"Coefficients for terms n > 1. First component corresponds to sin and second component to cos"},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"State for time, voltage and angle","internal_default":"[:Vt, :θt]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"null_value":2,"internal_default":2},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"This struct acts as an infinity bus with time varying phasor values magnitude and angle V(t) \theta(t). Time varying functions are represented using fourier series","struct_name":"PeriodicVariableSource","supertype":"DynamicInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"Qref_Flag","data_type":"Int","null_value":1,"comment":"Reactive Power Control Mode. 1 VoltVar Control, 2 Constant Q Control, 3 Constant PF Control","valid_range":{"max":3,"min":1}},{"name":"PQ_Flag","data_type":"Int","null_value":0,"comment":"Active and reactive power priority mode. 0 for Q priority, 1 for P priority","valid_range":{"max":1,"min":0}},{"name":"Gen_Flag","data_type":"Int","null_value":0,"comment":"Define generator or storage system. 0 unit is a storage device, 1 unit is a generator","valid_range":{"max":1,"min":0}},{"name":"PerOp_Flag","data_type":"Int","null_value":0,"comment":"Defines operation of permisible region in VRT characteristic. 0 for cease, 1 for continuous operation","valid_range":{"max":1,"min":0}},{"name":"Recon_Flag","data_type":"Int","null_value":0,"comment":"Defines if DER can reconnect after voltage ride-through disconnection","valid_range":{"max":1,"min":0}},{"name":"Trv","data_type":"Float64","null_value":0,"comment":"Voltage measurement transducer's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"VV_pnts","data_type":"NamedTuple{(:V1, :V2, :V3, :V4), Tuple{Float64, Float64, Float64, Float64}}","null_value":"(V1=0.0, V2=0.0, V3=0.0, V4=0.0)","comment":"Y-axis Volt-var curve points (V1,V2,V3,V4)"},{"name":"Q_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Reactive power limits in pu (Q_min, Q_max)"},{"name":"Tp","data_type":"Float64","null_value":0,"comment":"Power measurement transducer's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"e_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Error limit in PI controller for q control (e_min, e_max)"},{"name":"Kpq","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain for q control","valid_range":{"max":null,"min":0}},{"name":"Kiq","data_type":"Float64","null_value":0,"comment":"PI controller integral gain for q control","valid_range":{"max":null,"min":0}},{"name":"Iqr_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Limit on rate of change for reactive current (pu/s) (Iqr_min, Iqr_max)"},{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Max. inverter's current","valid_range":{"max":null,"min":0}},{"name":"Tg","data_type":"Float64","null_value":0,"comment":"Current control's time constant, in s","valid_range":{"max":null,"min":0}},{"name":"kWh_Cap","data_type":"Float64","null_value":0,"comment":"BESS capacity in kWh","valid_range":{"max":null,"min":0}},{"name":"SOC_ini","data_type":"Float64","null_value":0,"comment":"Initial state of charge (SOC) in pu","valid_range":{"max":1,"min":0}},{"name":"SOC_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Battery's SOC limits (SOC_min, SOC_max)"},{"name":"Trf","data_type":"Float64","null_value":0,"comment":"Time constant to estimate system frequency, in s","valid_range":{"max":null,"min":0}},{"name":"fdbd_pnts","data_type":"NamedTuple{(:fdbd1, :fdbd2), Tuple{Float64, Float64}}","null_value":"(fdbd1=0.0, fdbd2=0.0)","comment":"Frequency error dead band thresholds `(fdbd1, fdbd2)`"},{"name":"D_dn","data_type":"Float64","null_value":0,"comment":"reciprocal of droop for over-frequency conditions, in pu","valid_range":{"max":null,"min":0}},{"name":"D_up","data_type":"Float64","null_value":0,"comment":"reciprocal of droop for under-frequency conditions, in pu","valid_range":{"max":null,"min":0}},{"name":"fe_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Frequency error limits in pu (fe_min, fe_max)"},{"name":"Kpp","data_type":"Float64","null_value":0,"comment":"PI controller proportional gain for p control","valid_range":{"max":null,"min":0}},{"name":"Kip","data_type":"Float64","null_value":0,"comment":"PI controller integral gain for p control","valid_range":{"max":null,"min":0}},{"name":"P_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Active power limits in pu (P_min, P_max)"},{"name":"dP_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Ramp rate limits for active power in pu/s (dP_min, dP_max)"},{"name":"T_pord","data_type":"Float64","null_value":0,"comment":"Power filter time constant in s","valid_range":{"max":null,"min":0}},{"name":"rrpwr","data_type":"Float64","null_value":0,"comment":"Ramp rate for real power increase following a fault, in pu/s","valid_range":{"max":null,"min":0}},{"name":"VRT_pnts","data_type":"NamedTuple{(:vrt1, :vrt2, :vrt3, :vrt4, :vrt5), Tuple{Float64, Float64, Float64, Float64, Float64}}","null_value":"(vrt1=0.0, vrt2=0.0, vrt3=0.0, vrt4=0.0, vrt5=0.0)","comment":"Voltage ride through v points (vrt1,vrt2,vrt3,vrt4,vrt5)"},{"name":"TVRT_pnts","data_type":"NamedTuple{(:tvrt1, :tvrt2, :tvrt3), Tuple{Float64, Float64, Float64}}","null_value":"(tvrt1=0.0, tvrt2=0.0, tvrt3=0.0)","comment":"Voltage ride through time points (tvrt1,tvrt2,tvrt3)"},{"name":"tV_delay","data_type":"Float64","null_value":0,"comment":"Time delay for reconnection after voltage ride-through disconnection","valid_range":{"max":null,"min":0}},{"name":"VES_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Min and max voltage for entering service (VES_min,VES_max)"},{"name":"FRT_pnts","data_type":"NamedTuple{(:frt1, :frt2, :frt3, :frt4), Tuple{Float64, Float64, Float64, Float64}}","null_value":"(frt1=0.0, frt2=0.0, frt3=0.0, frt4=0.0)","comment":"Frequency ride through v points (frt1,frt2,frt3,frt4)"},{"name":"TFRT_pnts","data_type":"NamedTuple{(:tfrt1, :tfrt2), Tuple{Float64, Float64}}","null_value":"(tfrt1=0.0, tfrt2=0.0)","comment":"Frequency ride through time points (tfrt1,tfrt2)"},{"name":"tF_delay","data_type":"Float64","null_value":0,"comment":"Time delay for reconnection after frequency ride-through disconnection","valid_range":{"max":null,"min":0}},{"name":"FES_lim","data_type":"MinMax","null_value":"(min=0.0, max=0.0)","comment":"Min and max frequency for entering service (FES_min,FES_max)"},{"name":"Pfa_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference power factor","valid_range":{"max":null,"min":0}},{"name":"Q_ref","default":"0.0","data_type":"Float64","null_value":0,"comment":"Reference reactive power, in pu","valid_range":{"max":null,"min":0}},{"name":"P_ref","default":"1.0","data_type":"Float64","null_value":0,"comment":"Reference active power, in pu","valid_range":{"max":null,"min":0}},{"name":"base_power","default":"100.0","data_type":"Float64","null_value":0,"comment":"Base power"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states of GenericDER depend on the Flags","internal_default":"PowerSystems.get_GenericDER_states(Qref_Flag)[1]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"The states of GenericDER depend on the Flags","internal_default":"PowerSystems.get_GenericDER_states(Qref_Flag)[2]"},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"},{"name":"internal","data_type":"InfrastructureSystemsInternal","exclude_setter":true,"comment":"power system internal reference, do not modify","internal_default":"InfrastructureSystemsInternal()"}],"docstring":"Parameters of a Generic Distributed Energy Resource Model. Based on https://scholarspace.manoa.hawaii.edu/bitstream/10125/70994/0304.pdf","struct_name":"GenericDER","supertype":"DynamicInjection"},{"fields":[{"name":"device"},{"name":"droop","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"participation_factor","data_type":"UpDown"},{"name":"reserve_limit_dn","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"reserve_limit_up","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"inertia","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"cost","data_type":"Float64","valid_range":{"max":null,"min":0}},{"name":"time_series_container","data_type":"InfrastructureSystems.TimeSeriesContainer"},{"name":"internal","data_type":"InfrastructureSystems.InfrastructureSystemsInternal"}],"struct_name":"RegulationDevice"}]} \ No newline at end of file diff --git a/test/test_case34_exp_load.jl b/test/test_case34_exp_load.jl index 7a263c501..e39d266cc 100644 --- a/test/test_case34_exp_load.jl +++ b/test/test_case34_exp_load.jl @@ -25,8 +25,8 @@ for l in collect(get_components(PSY.StandardLoad, sys_exp)) bus = PSY.get_bus(l), active_power = PSY.get_constant_active_power(l), reactive_power = PSY.get_constant_reactive_power(l), - active_power_coefficient = 0.0, # Constant Power - reactive_power_coefficient = 0.0, # Constant Power + α = 0.0, # Constant Power + β = 0.0, # Constant Power base_power = PSY.get_base_power(l), max_active_power = PSY.get_max_constant_active_power(l), max_reactive_power = PSY.get_max_constant_reactive_power(l), diff --git a/test/test_case56_powerload.jl b/test/test_case56_powerload.jl index 3485f9592..010cc4f20 100644 --- a/test/test_case56_powerload.jl +++ b/test/test_case56_powerload.jl @@ -26,8 +26,8 @@ for l in collect(get_components(PSY.StandardLoad, sys_power)) bus = PSY.get_bus(l), active_power = PSY.get_constant_active_power(l), reactive_power = PSY.get_constant_reactive_power(l), - #active_power_coefficient = 0.0, # Constant Power - #reactive_power_coefficient = 0.0, # Constant Power + #α = 0.0, # Constant Power + #β = 0.0, # Constant Power base_power = PSY.get_base_power(l), max_active_power = PSY.get_max_constant_active_power(l), max_reactive_power = PSY.get_max_constant_reactive_power(l),