From fb3ec9f386937efa577fa581f13efe892f608163 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Thu, 4 Jan 2024 20:50:35 +0000 Subject: [PATCH] build based on a7b3b76 --- dev/api/internal/index.html | 8 +- dev/api/public/index.html | 62 ++--- .../developer/index.html | 2 +- dev/component_models/avr/index.html | 2 +- dev/component_models/converter/index.html | 2 +- dev/component_models/dc_source/index.html | 2 +- dev/component_models/filters/index.html | 2 +- dev/component_models/freq_esti/index.html | 2 +- dev/component_models/inner_control/index.html | 2 +- dev/component_models/loads/index.html | 2 +- dev/component_models/machines/index.html | 2 +- dev/component_models/network/index.html | 2 +- dev/component_models/outer_control/index.html | 2 +- dev/component_models/pss/index.html | 2 +- dev/component_models/shafts/index.html | 2 +- dev/component_models/turbine_gov/index.html | 2 +- dev/execute/index.html | 2 +- dev/generic/index.html | 2 +- dev/index.html | 2 +- dev/initialization/index.html | 2 +- dev/models/index.html | 2 +- dev/perturbations/index.html | 2 +- dev/power-simulations-dynamics.log | 58 ++--- dev/quick_start_guide/index.html | 22 +- dev/reference_frames/index.html | 2 +- dev/search/index.html | 2 +- dev/small/index.html | 2 +- dev/tutorials/modified_sys.json | 2 +- .../modified_sys_validation_descriptors.json | 2 +- dev/tutorials/threebus_sys.json | 2 +- .../threebus_sys_validation_descriptors.json | 2 +- dev/tutorials/tutorial_240bus/index.html | 215 +++++++++++++----- dev/tutorials/tutorial_activeload/index.html | 6 +- .../tutorial_continuation_pf/index.html | 27 ++- .../tutorial_dynamic_data/index.html | 61 +++-- .../tutorial_dynamic_lines/index.html | 47 ++-- .../tutorial_inverter_modeling/index.html | 96 ++++---- dev/tutorials/tutorial_omib/index.html | 4 +- dev/tutorials_page/index.html | 2 +- 39 files changed, 388 insertions(+), 274 deletions(-) diff --git a/dev/api/internal/index.html b/dev/api/internal/index.html index 80b176f8d..5dd0df025 100644 --- a/dev/api/internal/index.html +++ b/dev/api/internal/index.html @@ -1,10 +1,10 @@ -Internal API Reference · PowerSimulationsDynamics.jl

Internal

PowerSimulationsDynamics.generator_inner_varsType

Generator Inner Vars:

  • τe_var :: Electric torque
  • τm_var :: Mechanical torque
  • Vf_var :: Field voltage
  • V_pss_var :: Additional PSS voltage
  • VR_gen_var :: Real part of the terminal voltage
  • VI_gen_var :: Imaginary part of the terminal voltage
  • ψd_var :: Stator Flux (if defined) in the d-axis
  • ψq_var :: Stator Flux (if defined) in the q-axis
source
PowerSimulationsDynamics.inverter_inner_varsType

Inverter Inner Vars:

  • md_var :: Modulation signal on the d-component
  • mq_var :: Modulation signal on the q-component
  • Vdc_var :: DC voltage supplied by the DC source
  • Vr_filter_var :: Voltage seen in the capacitor of the filter in the R-component
  • Vi_filter_var :: Voltage seen in the capacitor of the filter in the I-component
  • θ_freq_estimator_var :: Angle estimated by the frequency estimator.
  • ω_freq_estimator_var :: Frequency estimated by the frequency estimator.
  • V_oc_var :: Control voltage reference in the d-axis supplied from the outer loop control to the inner loop (for Voltage Mode Control)
  • Id_oc_var :: Control current reference in the d-axis supplied from the outer loop control to the inner loop (for Current Mode Control)
  • Iq_oc_var :: Control current reference in the q-axis supplied from the outer loop control to the inner loop (for Current Mode Control)
  • Id_ic_var :: Control current reference in the d-axis supplied from the inner loop control to the converter (for Generic Models)
  • Iq_ic_var :: Control current reference in the q-axis supplied from the inner loop control to the converter (for Generic Models)
  • Ir_cnv_var :: Control current reference in the R-axis supplied from the converter to the filter (for Generic Models)
  • Ii_cnv_var :: Control current reference in the I-axis supplied from the converter to the filter (for Generic Models)
  • ω_oc_var :: Control frequency supplied from the outer loop control the inner loop
  • θ_oc_var :: Variation of the angle (PLL or VSM) of the inverter
  • Vr_inv_var :: Real terminal voltage on the inverter
  • Vi_inv_var :: Imaginary terminal voltage on the inverter
  • Vr_cnv_var :: Voltage supplied from the converter in the R-component
  • Vi_cnv_var :: Voltage supplied from the converter in the I-component
  • P_ES_var :: Power supplied from the Energy Source side
source
PowerSimulationsDynamics._field_currentMethod

Function to obtain the field current time series of a Dynamic Generator. It is dispatched via the machine type. By default, machine does not have support for field current

source
PowerSimulationsDynamics._field_voltageMethod

Function to obtain the field voltage time series of a Dynamic Generator with avrs that have the field voltage as a state. By default it is assumed that the models have that state.

source
PowerSimulationsDynamics._frequencyMethod

Function to obtain the frequency time series of a virtual inertia grid forming inverter out of the DAE Solution. It is dispatched via the OuterControl type.

source
PowerSimulationsDynamics._frequencyMethod

Function to obtain the frequency time series of a grid-following inverter with KauraPLL out of the DAE Solution. It is dispatched via the OuterControl and FrequencyEstimator type.

source
PowerSimulationsDynamics._frequencyMethod

Function to obtain the frequency time series of a grid-following inverter with ReducedOrderPLL out of the DAE Solution. It is dispatched via the OuterControl and FrequencyEstimator type.

source
PowerSimulationsDynamics.compute_field_currentMethod

Function to obtain the field current time series of a Dynamic Generator model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific current.

source
PowerSimulationsDynamics.compute_field_currentMethod

Function to obtain the field current time series of a Dynamic Inverter model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It must return nothing since field current does not exists in inverters.

source
PowerSimulationsDynamics.compute_field_voltageMethod

Function to obtain the field voltage time series of a Dynamic Generator model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific voltage.

source
PowerSimulationsDynamics.compute_field_voltageMethod

Function to obtain the field current time series of a Dynamic Inverter model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It must return nothing since field voltage does not exists in inverters.

source
PowerSimulationsDynamics.compute_mechanical_torqueMethod

Function to obtain the mechanical torque time series of a Dynamic Generator model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific torque.

source
PowerSimulationsDynamics.compute_mechanical_torqueMethod

Function to obtain the mechanical torque time series of a Dynamic Inverter model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It must return nothing since mechanical torque is not used in inverters.

source
PowerSimulationsDynamics.compute_output_currentMethod

Function to obtain the output current time series of a PeriodicVariableSource model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific current. computeoutputcurrent(::SimulationResults, ::PeriodicVariableSource, ::Vector{Float64}, ::Vector{Float64}, ::Nothing)

source
PowerSimulationsDynamics.compute_output_currentMethod

Function to obtain the output current time series of a Dynamic Generator model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific current.

source
PowerSimulationsDynamics.compute_output_currentMethod

Function to obtain the output current time series of a Dynamic Inverter model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific current.

source
PowerSimulationsDynamics.compute_pss_outputMethod

Function to obtain the pss output time series of a Dynamic Generator model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific output.

source
PowerSimulationsDynamics.configure_loggingMethod
configure_logging(;
+Internal API Reference · PowerSimulationsDynamics.jl

Internal

PowerSimulationsDynamics.generator_inner_varsType

Generator Inner Vars:

  • τe_var :: Electric torque
  • τm_var :: Mechanical torque
  • Vf_var :: Field voltage
  • V_pss_var :: Additional PSS voltage
  • VR_gen_var :: Real part of the terminal voltage
  • VI_gen_var :: Imaginary part of the terminal voltage
  • ψd_var :: Stator Flux (if defined) in the d-axis
  • ψq_var :: Stator Flux (if defined) in the q-axis
source
PowerSimulationsDynamics.inverter_inner_varsType

Inverter Inner Vars:

  • md_var :: Modulation signal on the d-component
  • mq_var :: Modulation signal on the q-component
  • Vdc_var :: DC voltage supplied by the DC source
  • Vr_filter_var :: Voltage seen in the capacitor of the filter in the R-component
  • Vi_filter_var :: Voltage seen in the capacitor of the filter in the I-component
  • θ_freq_estimator_var :: Angle estimated by the frequency estimator.
  • ω_freq_estimator_var :: Frequency estimated by the frequency estimator.
  • V_oc_var :: Control voltage reference in the d-axis supplied from the outer loop control to the inner loop (for Voltage Mode Control)
  • Id_oc_var :: Control current reference in the d-axis supplied from the outer loop control to the inner loop (for Current Mode Control)
  • Iq_oc_var :: Control current reference in the q-axis supplied from the outer loop control to the inner loop (for Current Mode Control)
  • Id_ic_var :: Control current reference in the d-axis supplied from the inner loop control to the converter (for Generic Models)
  • Iq_ic_var :: Control current reference in the q-axis supplied from the inner loop control to the converter (for Generic Models)
  • Ir_cnv_var :: Control current reference in the R-axis supplied from the converter to the filter (for Generic Models)
  • Ii_cnv_var :: Control current reference in the I-axis supplied from the converter to the filter (for Generic Models)
  • ω_oc_var :: Control frequency supplied from the outer loop control the inner loop
  • θ_oc_var :: Variation of the angle (PLL or VSM) of the inverter
  • Vr_inv_var :: Real terminal voltage on the inverter
  • Vi_inv_var :: Imaginary terminal voltage on the inverter
  • Vr_cnv_var :: Voltage supplied from the converter in the R-component
  • Vi_cnv_var :: Voltage supplied from the converter in the I-component
  • P_ES_var :: Power supplied from the Energy Source side
source
PowerSimulationsDynamics._field_currentMethod

Function to obtain the field current time series of a Dynamic Generator. It is dispatched via the machine type. By default, machine does not have support for field current

source
PowerSimulationsDynamics._field_voltageMethod

Function to obtain the field voltage time series of a Dynamic Generator with avrs that have the field voltage as a state. By default it is assumed that the models have that state.

source
PowerSimulationsDynamics._frequencyMethod

Function to obtain the frequency time series of a virtual inertia grid forming inverter out of the DAE Solution. It is dispatched via the OuterControl type.

source
PowerSimulationsDynamics._frequencyMethod

Function to obtain the frequency time series of a grid-following inverter with KauraPLL out of the DAE Solution. It is dispatched via the OuterControl and FrequencyEstimator type.

source
PowerSimulationsDynamics._frequencyMethod

Function to obtain the frequency time series of a grid-following inverter with ReducedOrderPLL out of the DAE Solution. It is dispatched via the OuterControl and FrequencyEstimator type.

source
PowerSimulationsDynamics.compute_field_currentMethod

Function to obtain the field current time series of a Dynamic Generator model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific current.

source
PowerSimulationsDynamics.compute_field_currentMethod

Function to obtain the field current time series of a Dynamic Inverter model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It must return nothing since field current does not exists in inverters.

source
PowerSimulationsDynamics.compute_field_voltageMethod

Function to obtain the field voltage time series of a Dynamic Generator model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific voltage.

source
PowerSimulationsDynamics.compute_field_voltageMethod

Function to obtain the field current time series of a Dynamic Inverter model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It must return nothing since field voltage does not exists in inverters.

source
PowerSimulationsDynamics.compute_mechanical_torqueMethod

Function to obtain the mechanical torque time series of a Dynamic Generator model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific torque.

source
PowerSimulationsDynamics.compute_mechanical_torqueMethod

Function to obtain the mechanical torque time series of a Dynamic Inverter model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It must return nothing since mechanical torque is not used in inverters.

source
PowerSimulationsDynamics.compute_output_currentMethod

Function to obtain the output current time series of a PeriodicVariableSource model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific current. computeoutputcurrent(::SimulationResults, ::PeriodicVariableSource, ::Vector{Float64}, ::Vector{Float64}, ::Nothing)

source
PowerSimulationsDynamics.compute_output_currentMethod

Function to obtain the output current time series of a Dynamic Generator model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific current.

source
PowerSimulationsDynamics.compute_output_currentMethod

Function to obtain the output current time series of a Dynamic Inverter model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific current.

source
PowerSimulationsDynamics.compute_pss_outputMethod

Function to obtain the pss output time series of a Dynamic Generator model out of the DAE Solution. It receives the simulation inputs, the dynamic device and bus voltage. It is dispatched for device type to compute the specific output.

source
PowerSimulationsDynamics.configure_loggingMethod
configure_logging(;
     console_level = Logging.Error,
     file_level = Logging.Info,
     filename = "power-simulations.log",
 )

Creates console and file loggers.

Note: Log messages may not be written to the file until flush() or close() is called on the returned logger.

Arguments

  • console_level = Logging.Error: level for console messages
  • file_level = Logging.Info: level for file messages
  • filename::String = power-simulations.log: log file

Example

logger = configure_logging(console_level = Logging.Info)
 @info "log message"
-close(logger)
source
PowerSimulationsDynamics.device!Method

Model of 12-state Active Constant Power Load in Julia. Based on the paper Malicious Control of an Active Load in an Islanded Mixed-Source Microgrid by C. Roberts, U. Markovic, D. Arnold and D. Callaway.

source
PowerSimulationsDynamics.device!Method

Model of 3-state (SimplifiedSingleCageInductionMachine) induction motor in Julia. Based on the 3rd order model derived in Prabha Kundur's Book and the equations in "Analysis of Electric Machinery and Drive Systems" by Paul Krause, Oleg Wasynczuk and Scott Sudhoff.

source
PowerSimulationsDynamics.device!Method

Model of 5-state (SingleCageInductionMachine) induction motor in Julia. Refer to "Analysis of Electric Machinery and Drive Systems" by Paul Krause, Oleg Wasynczuk and Scott Sudhoff for the equations

source
PowerSimulationsDynamics.mdl_zip_load!Method

Model for ZIP Load model given by:

Pzip = Ppower + Pcurrent * (V / V0) + Pimpedance * (V / V0)^2 Qzip = Qpower + Qcurrent * (V / V0) + Qimpedance * (V / V0)^2

with V = sqrt(Vr^2 + Vi^2) and V0 the voltage magnitude from the power flow solution

The current taken for the load is computed as: Izip = (Pzip + j Qzip)^* / (Vr + j Vi)^* Izip = (Pzip - j Qzip) / (Vr - j Vi)

For constant impedance it is obtained: Izre = (1 / V0)^2 * (Vr * Pimpedance + Vi * Qimpedance) Izim = (1 / V0)^2 * (Vi * Pimpedance - Vr * Qimpedance)

For constant current it is obtained: Iire = (1 / V0) * ( (Vr * Pcurrent + Vi * Qcurrent) / V ) Iiim = (1 / V0) * ( (Vi * Pcurrent - Vr * Qcurrent) / V )

For constant power it is obtained: Ipre = (Vr * Ppower + Vi * Qpower) / V^2 Ipim = (Vi * Ppower - Vr * Qpower) / V^2

Model for Exponential Load model given by:

Pexp = P0 * (V / V0)^α Qexp = Q0 * (V / V0)^β

The current taken for the load is computed as: Iexp = (Pexp + j Qexp)^* / (Vr + j Vi)^* Iexp = (Pexp - j Qexp) / (Vr - j Vi)

It results: Irexp = Vr * P0 * (V^(α - 2) / V0^α) + Vi * Q0 * (V^(β - 2)/ V0^β) Iiim = Vi * P0 * (V^(α - 2) / V0^α) - Vr * Q0 * (V^(β - 2)/ V0^β)

source
+close(logger)
source
PowerSimulationsDynamics.device!Method

Model of 12-state Active Constant Power Load in Julia. Based on the paper Malicious Control of an Active Load in an Islanded Mixed-Source Microgrid by C. Roberts, U. Markovic, D. Arnold and D. Callaway.

source
PowerSimulationsDynamics.device!Method

Model of 3-state (SimplifiedSingleCageInductionMachine) induction motor in Julia. Based on the 3rd order model derived in Prabha Kundur's Book and the equations in "Analysis of Electric Machinery and Drive Systems" by Paul Krause, Oleg Wasynczuk and Scott Sudhoff.

source
PowerSimulationsDynamics.device!Method

Model of 5-state (SingleCageInductionMachine) induction motor in Julia. Refer to "Analysis of Electric Machinery and Drive Systems" by Paul Krause, Oleg Wasynczuk and Scott Sudhoff for the equations

source
PowerSimulationsDynamics.mdl_zip_load!Method

Model for ZIP Load model given by:

Pzip = Ppower + Pcurrent * (V / V0) + Pimpedance * (V / V0)^2 Qzip = Qpower + Qcurrent * (V / V0) + Qimpedance * (V / V0)^2

with V = sqrt(Vr^2 + Vi^2) and V0 the voltage magnitude from the power flow solution

The current taken for the load is computed as: Izip = (Pzip + j Qzip)^* / (Vr + j Vi)^* Izip = (Pzip - j Qzip) / (Vr - j Vi)

For constant impedance it is obtained: Izre = (1 / V0)^2 * (Vr * Pimpedance + Vi * Qimpedance) Izim = (1 / V0)^2 * (Vi * Pimpedance - Vr * Qimpedance)

For constant current it is obtained: Iire = (1 / V0) * ( (Vr * Pcurrent + Vi * Qcurrent) / V ) Iiim = (1 / V0) * ( (Vi * Pcurrent - Vr * Qcurrent) / V )

For constant power it is obtained: Ipre = (Vr * Ppower + Vi * Qpower) / V^2 Ipim = (Vi * Ppower - Vr * Qpower) / V^2

Model for Exponential Load model given by:

Pexp = P0 * (V / V0)^α Qexp = Q0 * (V / V0)^β

The current taken for the load is computed as: Iexp = (Pexp + j Qexp)^* / (Vr + j Vi)^* Iexp = (Pexp - j Qexp) / (Vr - j Vi)

It results: Irexp = Vr * P0 * (V^(α - 2) / V0^α) + Vi * Q0 * (V^(β - 2)/ V0^β) Iiim = Vi * P0 * (V^(α - 2) / V0^α) - Vr * Q0 * (V^(β - 2)/ V0^β)

source
diff --git a/dev/api/public/index.html b/dev/api/public/index.html index 175282633..b82cc9a5a 100644 --- a/dev/api/public/index.html +++ b/dev/api/public/index.html @@ -4,114 +4,114 @@ branch_type::Type{<:PSY.ACBranch} branch_name::String multiplier::Float64 -end

A BranchImpedanceChange change the impedance of a branch by a user defined multiplier. Currently there is only support for static branches disconnection, PowerSystems.Line and PowerSystems.Transformer2W. Future releases will provide support for a Dynamic Line disconnection.

Arguments:

source
PowerSimulationsDynamics.BranchTripType
mutable struct BranchTrip <: Perturbation
+end

A BranchImpedanceChange change the impedance of a branch by a user defined multiplier. Currently there is only support for static branches disconnection, PowerSystems.Line and PowerSystems.Transformer2W. Future releases will provide support for a Dynamic Line disconnection.

Arguments:

  • time::Float64 : Defines when the Branch Impedance Change will happen. This time should be inside the time span considered in the Simulation
  • branch_tipe::Type{<:PowerSystems.ACBranch} : Type of branch modified
  • branch_name::String : User defined name for identifying the branch
  • multiplier::Float64 : User defined value for impedance multiplier.
source
PowerSimulationsDynamics.BranchTripType
mutable struct BranchTrip <: Perturbation
     time::Float64
     branch_type::Type{<:PowerSystems.ACBranch}
     branch_name::String
-end

A BranchTrip completely disconnects a branch from the system. Currently there is only support for static branches disconnection, PowerSystems.Line and PowerSystems.Transformer2W. Future releases will provide support for a Dynamic Line disconnection. Note: Islanding is currently not supported in PowerSimulationsDynamics.jl. If a BranchTrip isolates a generation unit, the system may diverge due to the isolated generator.

Arguments:

  • time::Float64 : Defines when the Branch Trip will happen. This time should be inside the time span considered in the Simulation
  • branch_tipe::Type{<:PowerSystems.ACBranch} : Type of branch disconnected
  • branch_name::String : User defined name for identifying the branch
source
PowerSimulationsDynamics.ControlReferenceChangeType
mutable struct ControlReferenceChange <: Perturbation
+end

A BranchTrip completely disconnects a branch from the system. Currently there is only support for static branches disconnection, PowerSystems.Line and PowerSystems.Transformer2W. Future releases will provide support for a Dynamic Line disconnection. Note: Islanding is currently not supported in PowerSimulationsDynamics.jl. If a BranchTrip isolates a generation unit, the system may diverge due to the isolated generator.

Arguments:

  • time::Float64 : Defines when the Branch Trip will happen. This time should be inside the time span considered in the Simulation
  • branch_tipe::Type{<:PowerSystems.ACBranch} : Type of branch disconnected
  • branch_name::String : User defined name for identifying the branch
source
PowerSimulationsDynamics.ControlReferenceChangeType
mutable struct ControlReferenceChange <: Perturbation
     time::Float64
     device::PowerSystems.DynamicInjection
     signal::Symbol
     ref_value::Float64
-end

A ControlReferenceChange allows to change the reference setpoint provided by a generator/inverter.

Arguments:

  • time::Float64 : Defines when the Control Reference Change will happen. This time should be inside the time span considered in the Simulation
  • device::Type{<:PowerSystems.DynamicInjection} : Dynamic device modified
  • signal::Symbol : determines which reference setpoint will be modified. The accepted signals are:
    • :P_ref: Modifies the active power reference setpoint.
    • :V_ref: Modifies the voltage magnitude reference setpoint (if used).
    • :Q_ref: Modifies the reactive power reference setpoint (if used).
    • :ω_ref: Modifies the frequency setpoint.
  • ref_value::Float64 : User defined value for setpoint reference.
source
PowerSimulationsDynamics.GeneratorTripType
mutable struct GeneratorTrip <: Perturbation
+end

A ControlReferenceChange allows to change the reference setpoint provided by a generator/inverter.

Arguments:

  • time::Float64 : Defines when the Control Reference Change will happen. This time should be inside the time span considered in the Simulation
  • device::Type{<:PowerSystems.DynamicInjection} : Dynamic device modified
  • signal::Symbol : determines which reference setpoint will be modified. The accepted signals are:
    • :P_ref: Modifies the active power reference setpoint.
    • :V_ref: Modifies the voltage magnitude reference setpoint (if used).
    • :Q_ref: Modifies the reactive power reference setpoint (if used).
    • :ω_ref: Modifies the frequency setpoint.
  • ref_value::Float64 : User defined value for setpoint reference.
source
PowerSimulationsDynamics.GeneratorTripType
mutable struct GeneratorTrip <: Perturbation
     time::Float64
     device::PowerSystems.DynamicInjection
-end

A GeneratorTrip allows to disconnect a Dynamic Generation unit from the system at a specified time.

Arguments:

  • time::Float64 : Defines when the Generator Trip will happen. This time should be inside the time span considered in the Simulation
  • device::Type{<:PowerSystems.DynamicInjection} : Device to be disconnected
source
PowerSimulationsDynamics.LoadChangeType
mutable struct LoadChange <: Perturbation
+end

A GeneratorTrip allows to disconnect a Dynamic Generation unit from the system at a specified time.

Arguments:

  • time::Float64 : Defines when the Generator Trip will happen. This time should be inside the time span considered in the Simulation
  • device::Type{<:PowerSystems.DynamicInjection} : Device to be disconnected
source
PowerSimulationsDynamics.LoadChangeType
mutable struct LoadChange <: Perturbation
     time::Float64
     device::PowerSystems.ElectricLoad
     signal::Symbol
     ref_value::Float64
-end

A LoadChange allows to change the active or reactive power setpoint from a load.

Arguments:

  • time::Float64 : Defines when the Load Change will happen. This time should be inside the time span considered in the Simulation
  • device::Type{<:PowerSystems.ElectricLoad} : Dynamic device modified
  • signal::Symbol : determines which reference setpoint will be modified. The accepted signals are:
    • :P_ref: Modifies the active power reference setpoint.
    • :Q_ref: Modifies the reactive power reference setpoint.
  • ref_value::Float64 : User defined value for setpoint reference.
source
PowerSimulationsDynamics.LoadTripType
mutable struct LoadTrip <: Perturbation
+end

A LoadChange allows to change the active or reactive power setpoint from a load.

Arguments:

  • time::Float64 : Defines when the Load Change will happen. This time should be inside the time span considered in the Simulation
  • device::Type{<:PowerSystems.ElectricLoad} : Dynamic device modified
  • signal::Symbol : determines which reference setpoint will be modified. The accepted signals are:
    • :P_ref: Modifies the active power reference setpoint.
    • :Q_ref: Modifies the reactive power reference setpoint.
  • ref_value::Float64 : User defined value for setpoint reference.
source
PowerSimulationsDynamics.LoadTripType
mutable struct LoadTrip <: Perturbation
     time::Float64
     device::PowerSystems.ElectricLoad
-end

A LoadTrip allows the user to disconnect a load from the system.

Arguments:

  • time::Float64 : Defines when the Generator Trip will happen. This time should be inside the time span considered in the Simulation
  • device::Type{<:PowerSystems.ElectricLoad} : Device to be disconnected
source
PowerSimulationsDynamics.MassMatrixModelMethod

Instantiate a MassMatrixModel for ODE inputs.

source
PowerSimulationsDynamics.NetworkSwitchType
function NetworkSwitch(
+end

A LoadTrip allows the user to disconnect a load from the system.

Arguments:

  • time::Float64 : Defines when the Generator Trip will happen. This time should be inside the time span considered in the Simulation
  • device::Type{<:PowerSystems.ElectricLoad} : Device to be disconnected
source
PowerSimulationsDynamics.MassMatrixModelMethod

Instantiate a MassMatrixModel for ODE inputs.

source
PowerSimulationsDynamics.NetworkSwitchType
function NetworkSwitch(
     time::Float64,
     ybus::SparseArrays.SparseMatrixCSC{Complex{Float64}, Int},
-)

Allows to modify directly the admittance matrix, Ybus, used in the Simulation. This allows the user to perform branch modifications, three phase faults (with impedance larger than zero) or branch trips, as long as the new Ybus provided captures that perturbation.

Arguments:

  • time::Float64 : Defines when the Network Switch will happen. This time should be inside the time span considered in the Simulation
  • ybus::SparseArrays.SparseMatrixCSC{Complex{Float64}, Int} : Complex admittance matrix
source
PowerSimulationsDynamics.PerturbStateType
function PerturbState(
+)

Allows to modify directly the admittance matrix, Ybus, used in the Simulation. This allows the user to perform branch modifications, three phase faults (with impedance larger than zero) or branch trips, as long as the new Ybus provided captures that perturbation.

Arguments:

  • time::Float64 : Defines when the Network Switch will happen. This time should be inside the time span considered in the Simulation
  • ybus::SparseArrays.SparseMatrixCSC{Complex{Float64}, Int} : Complex admittance matrix
source
PowerSimulationsDynamics.PerturbStateType
function PerturbState(
     time::Float64,
     index::Int,
     value::Float64,
-)

Allows the user to modify the state index by adding value. The user should modify dynamic states only, since algebraic state may require to do a reinitialization.

Arguments:

  • time::Float64 : Defines when the modification of the state will happen. This time should be inside the time span considered in the Simulation.
  • index::Int : Defines which state index you want to modify
  • value::Float64 : Defines how much the state will increase in value
source
PowerSimulationsDynamics.ResidualModelMethod

Instantiate an ResidualModel for ODE inputs.

source
PowerSimulationsDynamics.ResidualModelMethod

Instantiate an ResidualModel for ForwardDiff calculations

source
PowerSimulationsDynamics.SimulationMethod
function Simulation
+)

Allows the user to modify the state index by adding value. The user should modify dynamic states only, since algebraic state may require to do a reinitialization.

Arguments:

  • time::Float64 : Defines when the modification of the state will happen. This time should be inside the time span considered in the Simulation.
  • index::Int : Defines which state index you want to modify
  • value::Float64 : Defines how much the state will increase in value
source
PowerSimulationsDynamics.ResidualModelMethod

Instantiate an ResidualModel for ODE inputs.

source
PowerSimulationsDynamics.ResidualModelMethod

Instantiate an ResidualModel for ForwardDiff calculations

source
PowerSimulationsDynamics.SimulationMethod
function Simulation
     ::SimulationModel
     system::PowerSystems.System
     simulation_folder::String
     tspan::NTuple{2, Float64},
     perturbations::Vector{<:Perturbation} = Vector{Perturbation}();
     kwargs...,
-end

Builds the simulation object and conducts the indexing process. The original system is not modified and a copy its created and stored in the Simulation.

Arguments:

  • ::SimulationModel : Type of Simulation Model. ResidualModel or MassMatrixModel. See Models Section for more details
  • system::PowerSystems.System : System data
  • simulation_folder::String : Folder directory
  • tspan::NTuple{2, Float64} : Time span for simulation
  • perturbations::Vector{<:Perturbation} : Vector of Perturbations for the Simulation. Default: No Perturbations
  • initialize_simulation::Bool : Runs the initialization routine. If false, simulation runs based on the operation point stored in System
  • initial_conditions::Vector{Float64} : Allows the user to pass a vector with the initial condition values desired in the simulation. If initialize_simulation = true, these values are used as a first guess and overwritten.
  • frequency_reference : Default ReferenceBus. Determines which frequency model is used for the network. Currently there are two options available:
    • ConstantFrequency assumes that the network frequency is 1.0 per unit at all times.
    • ReferenceBus will use the frequency state of a Dynamic Generator (rotor speed) or Dynamic Inverter (virtual speed) connected to the Reference Bus (defined in the Power Flow data) as the network frequency. If multiple devices are connected to such bus, the device with larger base power will be used as a reference. If a Voltage Source is connected to the Reference Bus, then a ConstantFrequency model will be used.
  • system_to_file::Bool : Default false. Serializes the initialized system
  • console_level::Logging : Default Logging.Warn. Sets the level of logging output to the console. Can be set to Logging.Error, Logging.Warn, Logging.Info or Logging.Debug
  • file_level::Logging : Default Logging.Info. Sets the level of logging output to file. Can be set to Logging.Error, Logging.Warn, Logging.Info or Logging.Debug
  • disable_timer_outputs::Bool : Default false. Allows the user to display timer information about the construction and initilization of the Simulation.
source
PowerSimulationsDynamics.SourceBusVoltageChangeType
mutable struct SourceBusVoltageChange <: Perturbation
+end

Builds the simulation object and conducts the indexing process. The original system is not modified and a copy its created and stored in the Simulation.

Arguments:

  • ::SimulationModel : Type of Simulation Model. ResidualModel or MassMatrixModel. See Models Section for more details
  • system::PowerSystems.System : System data
  • simulation_folder::String : Folder directory
  • tspan::NTuple{2, Float64} : Time span for simulation
  • perturbations::Vector{<:Perturbation} : Vector of Perturbations for the Simulation. Default: No Perturbations
  • initialize_simulation::Bool : Runs the initialization routine. If false, simulation runs based on the operation point stored in System
  • initial_conditions::Vector{Float64} : Allows the user to pass a vector with the initial condition values desired in the simulation. If initialize_simulation = true, these values are used as a first guess and overwritten.
  • frequency_reference : Default ReferenceBus. Determines which frequency model is used for the network. Currently there are two options available:
    • ConstantFrequency assumes that the network frequency is 1.0 per unit at all times.
    • ReferenceBus will use the frequency state of a Dynamic Generator (rotor speed) or Dynamic Inverter (virtual speed) connected to the Reference Bus (defined in the Power Flow data) as the network frequency. If multiple devices are connected to such bus, the device with larger base power will be used as a reference. If a Voltage Source is connected to the Reference Bus, then a ConstantFrequency model will be used.
  • system_to_file::Bool : Default false. Serializes the initialized system
  • console_level::Logging : Default Logging.Warn. Sets the level of logging output to the console. Can be set to Logging.Error, Logging.Warn, Logging.Info or Logging.Debug
  • file_level::Logging : Default Logging.Info. Sets the level of logging output to file. Can be set to Logging.Error, Logging.Warn, Logging.Info or Logging.Debug
  • disable_timer_outputs::Bool : Default false. Allows the user to display timer information about the construction and initilization of the Simulation.
source
PowerSimulationsDynamics.SourceBusVoltageChangeType
mutable struct SourceBusVoltageChange <: Perturbation
     time::Float64
     device::PSY.Source
     signal::Symbol
     ref_value::Float64
-end

A SourceBusVoltageChange allows to change the reference setpoint provided by a voltage source.

Arguments:

  • time::Float64 : Defines when the Control Reference Change will happen. This time should be inside the time span considered in the Simulation
  • device::Type{<:PowerSystems.Source} : Device modified
  • signal::Symbol : determines which reference setpoint will be modified. The accepted signals are:
    • :V_ref Modifies the internal voltage magnitude reference setpoint.
    • :θ_ref Modifies the internal voltage angle reference setpoint.
  • ref_value::Float64 : User defined value for setpoint reference.
source
PowerSimulationsDynamics.Simulation!Method
function Simulation!
+end

A SourceBusVoltageChange allows to change the reference setpoint provided by a voltage source.

Arguments:

  • time::Float64 : Defines when the Control Reference Change will happen. This time should be inside the time span considered in the Simulation
  • device::Type{<:PowerSystems.Source} : Device modified
  • signal::Symbol : determines which reference setpoint will be modified. The accepted signals are:
    • :V_ref Modifies the internal voltage magnitude reference setpoint.
    • :θ_ref Modifies the internal voltage angle reference setpoint.
  • ref_value::Float64 : User defined value for setpoint reference.
source
PowerSimulationsDynamics.Simulation!Method
function Simulation!
     ::SimulationModel
     system::PowerSystems.System
     simulation_folder::String
     tspan::NTuple{2, Float64},
     perturbations::Vector{<:Perturbation} = Vector{Perturbation}();
     kwargs...,
-end

Builds the simulation object and conducts the indexing process. The initial conditions are stored in the system.

Arguments:

  • ::SimulationModel : Type of Simulation Model. ResidualModel or MassMatrixModel. See Models Section for more details
  • system::PowerSystems.System : System data
  • simulation_folder::String : Folder directory
  • tspan::NTuple{2, Float64} : Time span for simulation
  • perturbations::Vector{<:Perturbation} : Vector of Perturbations for the Simulation. Default: No Perturbations
  • initialize_simulation::Bool : Runs the initialization routine. If false, simulation runs based on the operation point stored in System
  • initial_conditions::Vector{Float64} : Allows the user to pass a vector with the initial condition values desired in the simulation. If initialize_simulation = true, these values are used as a first guess and overwritten.
  • frequency_reference : Default ReferenceBus. Determines which frequency model is used for the network. Currently there are two options available:
    • ConstantFrequency assumes that the network frequency is 1.0 per unit at all times.
    • ReferenceBus will use the frequency state of a Dynamic Generator (rotor speed) or Dynamic Inverter (virtual speed) connected to the Reference Bus (defined in the Power Flow data) as the network frequency. If multiple devices are connected to such bus, the device with larger base power will be used as a reference. If a Voltage Source is connected to the Reference Bus, then a ConstantFrequency model will be used.
  • system_to_file::Bool : Default false. Serializes the initialized system
  • console_level::Logging : Default Logging.Warn. Sets the level of logging output to the console. Can be set to Logging.Error, Logging.Warn, Logging.Info or Logging.Debug
  • file_level::Logging : Default Logging.Info. Sets the level of logging output to file. Can be set to Logging.Error, Logging.Warn, Logging.Info or Logging.Debug
  • disable_timer_outputs::Bool : Default false. Allows the user to display timer information about the construction and initilization of the Simulation.
source
PowerSimulationsDynamics.execute!Method
execute!(
+end

Builds the simulation object and conducts the indexing process. The initial conditions are stored in the system.

Arguments:

  • ::SimulationModel : Type of Simulation Model. ResidualModel or MassMatrixModel. See Models Section for more details
  • system::PowerSystems.System : System data
  • simulation_folder::String : Folder directory
  • tspan::NTuple{2, Float64} : Time span for simulation
  • perturbations::Vector{<:Perturbation} : Vector of Perturbations for the Simulation. Default: No Perturbations
  • initialize_simulation::Bool : Runs the initialization routine. If false, simulation runs based on the operation point stored in System
  • initial_conditions::Vector{Float64} : Allows the user to pass a vector with the initial condition values desired in the simulation. If initialize_simulation = true, these values are used as a first guess and overwritten.
  • frequency_reference : Default ReferenceBus. Determines which frequency model is used for the network. Currently there are two options available:
    • ConstantFrequency assumes that the network frequency is 1.0 per unit at all times.
    • ReferenceBus will use the frequency state of a Dynamic Generator (rotor speed) or Dynamic Inverter (virtual speed) connected to the Reference Bus (defined in the Power Flow data) as the network frequency. If multiple devices are connected to such bus, the device with larger base power will be used as a reference. If a Voltage Source is connected to the Reference Bus, then a ConstantFrequency model will be used.
  • system_to_file::Bool : Default false. Serializes the initialized system
  • console_level::Logging : Default Logging.Warn. Sets the level of logging output to the console. Can be set to Logging.Error, Logging.Warn, Logging.Info or Logging.Debug
  • file_level::Logging : Default Logging.Info. Sets the level of logging output to file. Can be set to Logging.Error, Logging.Warn, Logging.Info or Logging.Debug
  • disable_timer_outputs::Bool : Default false. Allows the user to display timer information about the construction and initilization of the Simulation.
source
PowerSimulationsDynamics.execute!Method
execute!(
     sim::Simulation,
     solver;
     kwargs...
-)

Solves the time-domain dynamic simulation model.

Arguments

  • sim::Simulation : Initialized simulation object
  • solver : Solver used for numerical integration. Must be passed correctly depending on the Type of Simulation Model
  • enable_progress_bar::Bool : Default: true. Enables progress bar for the integration routine.
  • Additional solver keyword arguments can be included. See Common Solver Options in the DifferentialEquations.jl documentation for more details.
source
PowerSimulationsDynamics.get_activepower_branch_flowMethod
get_activepower_branch_flow(
+)

Solves the time-domain dynamic simulation model.

Arguments

  • sim::Simulation : Initialized simulation object
  • solver : Solver used for numerical integration. Must be passed correctly depending on the Type of Simulation Model
  • enable_progress_bar::Bool : Default: true. Enables progress bar for the integration routine.
  • Additional solver keyword arguments can be included. See Common Solver Options in the DifferentialEquations.jl documentation for more details.
source
PowerSimulationsDynamics.get_activepower_branch_flowMethod
get_activepower_branch_flow(
         res::SimulationResults,
         name::String,
         location::Symbol,
-)

Function to obtain the active power flowing through the series element of a Branch. The user must specified is the power should be computed in the :from or to :bus, by specifying a symbol.

If :from is specified, the power is computed flowing outwards the :from bus. If :to is specified, the power is computed flowing into the :to bus.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified line
  • location::Symbol : :from or :to to specify a bus
source
PowerSimulationsDynamics.get_activepower_seriesMethod
get_activepower_series(
+)

Function to obtain the active power flowing through the series element of a Branch. The user must specified is the power should be computed in the :from or to :bus, by specifying a symbol.

If :from is specified, the power is computed flowing outwards the :from bus. If :to is specified, the power is computed flowing into the :to bus.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified line
  • location::Symbol : :from or :to to specify a bus
source
PowerSimulationsDynamics.get_activepower_seriesMethod
get_activepower_series(
         res::SimulationResults,
         name::String,
-)

Function to obtain the active power output time series of a Dynamic Injection series out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_field_current_seriesMethod
get_field_current_series(
+)

Function to obtain the active power output time series of a Dynamic Injection series out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_field_current_seriesMethod
get_field_current_series(
         res::SimulationResults,
         name::String,
-)

Function to obtain the field current time series of a Dynamic Generator out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_field_voltage_seriesMethod
get_field_voltage_series(
+)

Function to obtain the field current time series of a Dynamic Generator out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_field_voltage_seriesMethod
get_field_voltage_series(
         res::SimulationResults,
         name::String,
-)

Function to obtain the field voltage time series of a Dynamic Generator out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_frequency_seriesMethod
get_frequency_series(
+)

Function to obtain the field voltage time series of a Dynamic Generator out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_frequency_seriesMethod
get_frequency_series(
         res::SimulationResults,
         name::String,
-)

Function to obtain the frequency time series of a Dynamic Injection out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_imaginary_current_branch_flowMethod
get_imaginary_current_branch_flow(
+)

Function to obtain the frequency time series of a Dynamic Injection out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_imaginary_current_branch_flowMethod
get_imaginary_current_branch_flow(
         res::SimulationResults,
         name::String,
-)

Function to obtain the imaginary current flowing through the series element of a Branch

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified line
source
PowerSimulationsDynamics.get_imaginary_current_seriesMethod
get_imaginary_current_series(
+)

Function to obtain the imaginary current flowing through the series element of a Branch

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified line
source
PowerSimulationsDynamics.get_imaginary_current_seriesMethod
get_imaginary_current_series(
         res::SimulationResults,
         name::String,
-)

Function to obtain the imaginary current time series of a Dynamic Injection series out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_jacobianMethod
function get_jacobian(
+)

Function to obtain the imaginary current time series of a Dynamic Injection series out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_jacobianMethod
function get_jacobian(
 ::Type{T},
 system::PSY.System,
 sparse_retrieve_loop::Int = 3,
-) where {T <: SimulationModel}

Returns the jacobian function of the system model resulting from the system data.

Arguments:

  • ::SimulationModel : Type of Simulation Model. ResidualModel or MassMatrixModel. See Models Section for more details
  • system::PowerSystems.System : System data
  • sparse_retrieve_loop::Int : Number of loops for sparsity detection. If 0, builds the Jacobian with a DenseMatrix
source
PowerSimulationsDynamics.get_mechanical_torque_seriesMethod
get_mechanical_torque_series(
+) where {T <: SimulationModel}

Returns the jacobian function of the system model resulting from the system data.

Arguments:

  • ::SimulationModel : Type of Simulation Model. ResidualModel or MassMatrixModel. See Models Section for more details
  • system::PowerSystems.System : System data
  • sparse_retrieve_loop::Int : Number of loops for sparsity detection. If 0, builds the Jacobian with a DenseMatrix
source
PowerSimulationsDynamics.get_mechanical_torque_seriesMethod
get_mechanical_torque_series(
         res::SimulationResults,
         name::String,
-)

Function to obtain the mechanical torque time series of the mechanical torque out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_pss_output_seriesMethod
get_pss_output_series(
+)

Function to obtain the mechanical torque time series of the mechanical torque out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_pss_output_seriesMethod
get_pss_output_series(
         res::SimulationResults,
         name::String,
-)

Function to obtain the pss output time series of a Dynamic Generator out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_reactivepower_branch_flowMethod
get_reactivepower_branch_flow(
+)

Function to obtain the pss output time series of a Dynamic Generator out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_reactivepower_branch_flowMethod
get_reactivepower_branch_flow(
         res::SimulationResults,
         name::String,
         location::Symbol,
-)

Function to obtain the reactive power flowing through the series element of a Branch. The user must specified is the power should be computed in the :from or to :bus, by specifying a symbol.

If :from is specified, the power is computed flowing outwards the :from bus. If :to is specified, the power is computed flowing into the :to bus.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified line
  • location::Symbol : :from or :to to specify a bus
source
PowerSimulationsDynamics.get_reactivepower_seriesMethod
get_reactivepower_series(
+)

Function to obtain the reactive power flowing through the series element of a Branch. The user must specified is the power should be computed in the :from or to :bus, by specifying a symbol.

If :from is specified, the power is computed flowing outwards the :from bus. If :to is specified, the power is computed flowing into the :to bus.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified line
  • location::Symbol : :from or :to to specify a bus
source
PowerSimulationsDynamics.get_reactivepower_seriesMethod
get_reactivepower_series(
         res::SimulationResults,
         name::String,
-)

Function to obtain the reactive power output time series of a Dynamic Injection series out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_real_current_branch_flowMethod
get_real_current_branch_flow(
+)

Function to obtain the reactive power output time series of a Dynamic Injection series out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_real_current_branch_flowMethod
get_real_current_branch_flow(
         res::SimulationResults,
         name::String,
-)

Function to obtain the real current flowing through the series element of a Branch

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified line
source
PowerSimulationsDynamics.get_real_current_seriesMethod
get_real_current_series(
+)

Function to obtain the real current flowing through the series element of a Branch

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified line
source
PowerSimulationsDynamics.get_real_current_seriesMethod
get_real_current_series(
         res::SimulationResults,
         name::String,
-)

Function to obtain the real current time series of a Dynamic Injection series out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_setpointsMethod
get_setpoints(sim::Simulation)

Function that returns the reference setpoints for all the dynamic devices.

Arguments

  • sim::Simulation : Simulation object that contains the initial condition and setpoints.
source
PowerSimulationsDynamics.get_source_imaginary_current_seriesFunction

Function to obtain output imaginary current for a source. It receives the simulation results, the Source name and an optional argument of the time step of the results.

source
PowerSimulationsDynamics.get_source_real_current_seriesFunction

Function to obtain output real current for a source. It receives the simulation results, the Source name and an optional argument of the time step of the results.

source
PowerSimulationsDynamics.get_state_seriesMethod
get_state_series(
+)

Function to obtain the real current time series of a Dynamic Injection series out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • name::String : Name to identify the specified device
source
PowerSimulationsDynamics.get_setpointsMethod
get_setpoints(sim::Simulation)

Function that returns the reference setpoints for all the dynamic devices.

Arguments

  • sim::Simulation : Simulation object that contains the initial condition and setpoints.
source
PowerSimulationsDynamics.get_source_imaginary_current_seriesFunction

Function to obtain output imaginary current for a source. It receives the simulation results, the Source name and an optional argument of the time step of the results.

source
PowerSimulationsDynamics.get_source_real_current_seriesFunction

Function to obtain output real current for a source. It receives the simulation results, the Source name and an optional argument of the time step of the results.

source
PowerSimulationsDynamics.get_state_seriesMethod
get_state_series(
     res::SimulationResults,
     ref::Tuple{String, Symbol};
     dt::Union{Nothing, Float64} = nothing
 )
-end

Function to obtain series of states out of DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • ref:Tuple{String, Symbol} : Tuple used to identify the dynamic device, via its name, as a String, and the associated state as a Symbol.
source
PowerSimulationsDynamics.get_voltage_angle_seriesMethod
get_voltage_angle_series(
+end

Function to obtain series of states out of DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • ref:Tuple{String, Symbol} : Tuple used to identify the dynamic device, via its name, as a String, and the associated state as a Symbol.
source
PowerSimulationsDynamics.get_voltage_angle_seriesMethod
get_voltage_angle_series(
     res::SimulationResults,
     bus_number::Int
-)

Function to obtain the voltage angle series out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • bus_number::Int : Bus number identifier
source
PowerSimulationsDynamics.get_voltage_magnitude_seriesMethod
get_voltage_magnitude_series(
+)

Function to obtain the voltage angle series out of the DAE Solution.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
  • bus_number::Int : Bus number identifier
source
PowerSimulationsDynamics.get_voltage_magnitude_seriesMethod
get_voltage_magnitude_series(
     res::SimulationResults,
     bus_number::Int
-)

Function to obtain the voltage magnitude series out of the DAE Solution.

Arguments:

  • res::SimulationResults : Simulation Results object that contains the solution
  • bus_number::Int : Bus number identifier
source
PowerSimulationsDynamics.read_initial_conditionsMethod

Returns a Dictionary with the resulting initial conditions of the simulation

source
PowerSimulationsDynamics.show_states_initial_valueMethod
show_states_initial_value(res::SimulationResults)

Function to print initial states.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
source
PowerSimulationsDynamics.show_states_initial_valueMethod
show_states_initial_value(sim::Simulation)

Function to print initial states.

Arguments

  • sim::Simulation : Simulation object that contains the initial condition
source
PowerSimulationsDynamics.summary_eigenvaluesMethod
summary_eigenvalues(
+)

Function to obtain the voltage magnitude series out of the DAE Solution.

Arguments:

  • res::SimulationResults : Simulation Results object that contains the solution
  • bus_number::Int : Bus number identifier
source
PowerSimulationsDynamics.read_initial_conditionsMethod

Returns a Dictionary with the resulting initial conditions of the simulation

source
PowerSimulationsDynamics.show_states_initial_valueMethod
show_states_initial_value(res::SimulationResults)

Function to print initial states.

Arguments

  • res::SimulationResults : Simulation Results object that contains the solution
source
PowerSimulationsDynamics.show_states_initial_valueMethod
show_states_initial_value(sim::Simulation)

Function to print initial states.

Arguments

  • sim::Simulation : Simulation object that contains the initial condition
source
PowerSimulationsDynamics.summary_eigenvaluesMethod
summary_eigenvalues(
         sm::SmallSignalOutput,
-)

Function to obtain a summary of the eigenvalues of the Jacobian at the operating point. It returns a DataFrame with the most associated state for each eigenvalue, its real and imaginary part, damping and frequency.

Arguments

  • sm::SmallSignalOutput : Small Signal Output object that contains the eigenvalues and participation factors
source
PowerSimulationsDynamics.summary_participation_factorsMethod
summary_participation_factors(
+)

Function to obtain a summary of the eigenvalues of the Jacobian at the operating point. It returns a DataFrame with the most associated state for each eigenvalue, its real and imaginary part, damping and frequency.

Arguments

  • sm::SmallSignalOutput : Small Signal Output object that contains the eigenvalues and participation factors
source
PowerSimulationsDynamics.summary_participation_factorsMethod
summary_participation_factors(
         sm::SmallSignalOutput,
-)

Function to obtain the participation factor of each state to each eigenvalue. It returns a DataFrame with the participation factors of each state to all eigenvalues.

Arguments

  • sm::SmallSignalOutput : Small Signal Output object that contains the eigenvalues and participation factors
source
+)

Function to obtain the participation factor of each state to each eigenvalue. It returns a DataFrame with the participation factors of each state to all eigenvalues.

Arguments

source diff --git a/dev/code_base_developer_guide/developer/index.html b/dev/code_base_developer_guide/developer/index.html index 48fdd5f76..5a612fd0e 100644 --- a/dev/code_base_developer_guide/developer/index.html +++ b/dev/code_base_developer_guide/developer/index.html @@ -1,2 +1,2 @@ -Developer Guide · PowerSimulationsDynamics.jl
+Developer Guide · PowerSimulationsDynamics.jl
diff --git a/dev/component_models/avr/index.html b/dev/component_models/avr/index.html index c7609d352..4ec00a44a 100644 --- a/dev/component_models/avr/index.html +++ b/dev/component_models/avr/index.html @@ -72,4 +72,4 @@ \sqrt{0.75 - I_N^2} & \text{ if } 0.433 < I_N \le 0.75 \\ 1.732(1-I_N) & \text{ if } 0.75 < I_N \le 1 \\ 0 & \text{ if } I_N > 1 \end{array} \right. -\end{align*}\]

on which $X_{ad}I_{fd}$ is the field current coming from the generator and $V_{h}$ is the terminal voltage, and $A,B$ are the saturation coefficients computed using the $E_1, E_2, S_e(E_1), S_e(E_2)$ data.

+\end{align*}\]

on which $X_{ad}I_{fd}$ is the field current coming from the generator and $V_{h}$ is the terminal voltage, and $A,B$ are the saturation coefficients computed using the $E_1, E_2, S_e(E_1), S_e(E_2)$ data.

diff --git a/dev/component_models/converter/index.html b/dev/component_models/converter/index.html index e62385758..ffbf5c15e 100644 --- a/dev/component_models/converter/index.html +++ b/dev/component_models/converter/index.html @@ -22,4 +22,4 @@ Z_{sorce} &= R_{sorce} + jX_{sorce} \\ I_{cv} &= I_r + jI_i \\ v_r^\text{cv} + jv_i^\text{cv} &= \frac{I_{cv} + \frac{v^\text{grid}}{Z_f}}{\frac{1}{Z_{sorce}} + \frac{1}{Z_f}} \tag{2i} -\end{align*}\]

+\end{align*}\]

diff --git a/dev/component_models/dc_source/index.html b/dev/component_models/dc_source/index.html index d19a82b54..c141950a5 100644 --- a/dev/component_models/dc_source/index.html +++ b/dev/component_models/dc_source/index.html @@ -1,2 +1,2 @@ -DC Sources · PowerSimulationsDynamics.jl

DC Source

This component can be used to model the dynamics of the DC side of the converter.

Fixed DC Source [FixedDCSource]

This is a model that set the DC voltage to a fixed value $v_{\text{dc}} = v_{\text{dc}}^{\text{fix}}$.

+DC Sources · PowerSimulationsDynamics.jl

DC Source

This component can be used to model the dynamics of the DC side of the converter.

Fixed DC Source [FixedDCSource]

This is a model that set the DC voltage to a fixed value $v_{\text{dc}} = v_{\text{dc}}^{\text{fix}}$.

diff --git a/dev/component_models/filters/index.html b/dev/component_models/filters/index.html index 79929c161..4a35cf7ca 100644 --- a/dev/component_models/filters/index.html +++ b/dev/component_models/filters/index.html @@ -10,4 +10,4 @@ v_r^\text{cv} + jv_i^\text{cv} = (v_d^\text{cv} + jv_q^\text{cv})e^{j\delta\theta_{olc}} \end{align*}\]

that comes from the converter model.

RL Filter [RLFilter]

The algebraic RL filter is used to connect the output of the converter through a RL series filter using algebraic phasor equations. The equations for the output current are:

\[\begin{align} i_r + ji_i &= \frac{(v_r^\text{cv} + j v_i^\text{cv}) - (v_r^\text{grid} + jv_i^\text{grid})}{r_f + jl_f} \tag{2a} -\end{align}\]

on which $v_r^\text{cv} + jv_i^\text{cv}$ comes from the converter model.

+\end{align}\]

on which $v_r^\text{cv} + jv_i^\text{cv}$ comes from the converter model.

diff --git a/dev/component_models/freq_esti/index.html b/dev/component_models/freq_esti/index.html index f24fb5295..fb0da601d 100644 --- a/dev/component_models/freq_esti/index.html +++ b/dev/component_models/freq_esti/index.html @@ -17,4 +17,4 @@ \delta\omega_{\text{pll}} &= 1.0 - \omega_{\text{sys}} + k_{p,\text{pll}} v_{q,\text{pll}} + k_{i,\text{pll}} \varepsilon_{\text{pll}} \tag{2d} \\ \omega_{\text{pll}} &= \delta\omega_{\text{pll}} + \omega_{\text{sys}} \tag{2e} \\ v_{d,\text{out}} + jv_{q,\text{out}} &= (v_r + jv_i)e^{-\delta\theta_\text{pll}} \tag{2f} -\end{align}\]

on which $v_r + jv_i$ is the voltage in the grid reference frame on which the PLL is measuring (i.e. point of common coupling), that could be in the capacitor of an LCL filter or the last branch of such filter.

+\end{align}\]

on which $v_r + jv_i$ is the voltage in the grid reference frame on which the PLL is measuring (i.e. point of common coupling), that could be in the capacitor of an LCL filter or the last branch of such filter.

diff --git a/dev/component_models/inner_control/index.html b/dev/component_models/inner_control/index.html index e4774c81b..d9c68c751 100644 --- a/dev/component_models/inner_control/index.html +++ b/dev/component_models/inner_control/index.html @@ -41,4 +41,4 @@ I_\text{pcmd} &= I_\text{oc, pcmd} \tag{3i} \\ I_\text{qcmd} &= I_{icv} + I_\text{qinj} \tag{3j} \\ I_{\text{qinj}} &= K_{qv} (V_\text{ref0} - V_\text{t,flt}) \tag{3k} -\end{align}\]

+\end{align}\]

diff --git a/dev/component_models/loads/index.html b/dev/component_models/loads/index.html index 21ba65b59..fbe599ba2 100644 --- a/dev/component_models/loads/index.html +++ b/dev/component_models/loads/index.html @@ -61,4 +61,4 @@ \end{align*}\]

Finally, the withdrawed current from the bus is:

\[\begin{align*} I_r = \left(\frac{S_\text{motor}}{S_\text{base}}\right) (i_{ds} - v_{qs} B_{sh}) \\ I_i = \left(\frac{S_\text{motor}}{S_\text{base}}\right) (i_{qs} + v_{ds} B_{sh}) -\end{align*}\]

+\end{align*}\]

diff --git a/dev/component_models/machines/index.html b/dev/component_models/machines/index.html index 6a78fb521..2984c1ab2 100644 --- a/dev/component_models/machines/index.html +++ b/dev/component_models/machines/index.html @@ -100,4 +100,4 @@ \gamma_q1 &= \frac{x_q'' - x_l}{x_q' - x_l} \\ \gamma_d2 &= \frac{1 - \gamma_d1}{x_d' - x_l} \\ \gamma_q2 &= \frac{1 - \gamma_q1}{x_q' - x_l} -\end{align*}\]

+\end{align*}\]

diff --git a/dev/component_models/network/index.html b/dev/component_models/network/index.html index 64da55a82..67222a4df 100644 --- a/dev/component_models/network/index.html +++ b/dev/component_models/network/index.html @@ -10,4 +10,4 @@ \frac{l}{\Omega_b} \frac{d\boldsymbol{i}_{\ell}}{dt} &= (\boldsymbol{v}_n - \boldsymbol{v}_m) - (r+jl) \boldsymbol{i}_{\ell} \\ \frac{c_n}{\Omega_b} \frac{d\boldsymbol{v}_n}{dt} &= \boldsymbol{i}_n^{\text{cap}} - jc_n\boldsymbol{v}_n \\ \frac{c_m}{\Omega_b} \frac{d\boldsymbol{v}_m}{dt} &= \boldsymbol{i}_m^{\text{cap}} - jc_m\boldsymbol{v}_m -\end{align}\]

Since all the values are in per unit, the reactance is equal to the inductance.

A detail discussion about the effects of different line models in the modeling of inverters is presented in Grid Forming Inverter Small Signal Stability: Examining Role of Line and Voltage Dynamics

+\end{align}\]

Since all the values are in per unit, the reactance is equal to the inductance.

A detail discussion about the effects of different line models in the modeling of inverters is presented in Grid Forming Inverter Small Signal Stability: Examining Role of Line and Voltage Dynamics

diff --git a/dev/component_models/outer_control/index.html b/dev/component_models/outer_control/index.html index 2010f5111..9b3817a09 100644 --- a/dev/component_models/outer_control/index.html +++ b/dev/component_models/outer_control/index.html @@ -66,4 +66,4 @@ \dot{q}_\text{flt} &= \frac{1}{T_\text{fltr}} (q_e - q_\text{flt}) \tag{5t} \\ \dot{\xi}_\text{q,oc} &= q_\text{err} \tag{5u} \\ \dot{q}_{LL} &= \frac{1}{T_{fv}}(Q_\text{pi} ( 1 - T_{ft}/T_{fv}) - q_{LL}) \tag{5v} \\ -\end{align}\]

The remaining models for other flags will be included when implemented in PowerSimulationsDynamics.jl.

+\end{align}\]

The remaining models for other flags will be included when implemented in PowerSimulationsDynamics.jl.

diff --git a/dev/component_models/pss/index.html b/dev/component_models/pss/index.html index 7abb6cb12..da4b3121d 100644 --- a/dev/component_models/pss/index.html +++ b/dev/component_models/pss/index.html @@ -23,4 +23,4 @@ y_{LL} = x_2 + \frac{T_1}{T_3} x_1 \\ y_{out} = x_3 + \frac{T_2}{T_4} y_{LL} \\ V_s = \text{clamp}(y_{out}, -H_{lim}, H_{lim}) -\end{align*}\]

+\end{align*}\]

diff --git a/dev/component_models/shafts/index.html b/dev/component_models/shafts/index.html index b1bbaa643..1b1bc722a 100644 --- a/dev/component_models/shafts/index.html +++ b/dev/component_models/shafts/index.html @@ -13,4 +13,4 @@ \dot{\omega}_{lp} &= \frac{1}{2H_{lp}} \left[ - D_{lp}(\omega_{lp}-\omega_s) - D_{23}(\omega_{lp} - \omega_{ip}) -D_{34}(\omega_{lp} - \omega ) + K_{ip}(\delta_{ip} - \delta_{lp}) + K_{lp}(\delta-\delta_{lp}) \right] \tag{2h} \\ \dot{\delta}_{ex} &= \Omega_b(\omega_{ex}-\omega_s) \tag{2i} \\ \dot{\omega}_{ex} &= \frac{1}{2H_{ex}} \left[ - D_{ex}(\omega_{ex}-\omega_s) - D_{45}(\omega_{ex} - \omega) + K_{ex}(\delta - \delta_{ex}) \right] \tag{2j} -\end{align}\]

+\end{align}\]

diff --git a/dev/component_models/turbine_gov/index.html b/dev/component_models/turbine_gov/index.html index f62cd5b7d..5dc1fa64a 100644 --- a/dev/component_models/turbine_gov/index.html +++ b/dev/component_models/turbine_gov/index.html @@ -42,4 +42,4 @@ c &= \frac{x_{g1}}{r} + \frac{x_{g2}}{rT_r} \tag{5f} \\ h &= \left(\frac{x_{g4}}{x_{g3}}\right)^2 \tag{5g}\\ \tau_m &= h\cdot A_t(x_{g4} - q_{NL}) - D_{turb} \Delta\omega \cdot x_{g3} \tag{5h} -\end{align}\]

+\end{align}\]

diff --git a/dev/execute/index.html b/dev/execute/index.html index 0ebf9b843..3e883365c 100644 --- a/dev/execute/index.html +++ b/dev/execute/index.html @@ -15,4 +15,4 @@ (0.0, 20.0), perturbation, ) -execute!(sim2, Rodas4())

Exploring the Solution

Once a Simulation is executed and the results are stored via results = read_results(sim), the following functions can be used to explore the Simulation solution:

Show initial conditions

The function show_states_initial_value(results) can be used to display the initial condition of the voltages and dynamic states of each dynamic component.

Explore bus voltages

The function get_voltage_magnitude_series(results, BusNumber) can be used to obtain the voltage magnitude time series of the specified bus. Similarly, get_voltage_angle_series(results, BusNumber) can be used to obtain the voltage angle time series of the specified bus.

Explore output currents

The functions get_real_current_series(results, "DeviceName") and get_imaginary_current_series(results, "DeviceName") can be used to obtain the output current time series of the specified device.

Explore output power

The functions get_activepower_series(results, "DeviceName") and get_reactivepower_series(results, "DeviceName") can be used to obtain the output power time series of the specified device.

Explore dynamic states

The function get_state_series(results, ("DeviceName", :StateSymbol) can be used to obtain the specified state time series of the specified device.

Explore Reference Setpoints

The function get_setpoints(sim) can be used to obtain the reference setpoints of each dynamic device. Note: If a setpoint was changed via a perturbation, this function will return the modified setpoint.

Keyword Arguments

Any solver option available in DifferentialEquations.jl can be passed as keyword arguments in the execute! function. Please see the Common Solver Options in the DifferentialEquations.jl documentation for more details.

Most common solver options used are dtmax to control the maximum dt for adaptive timestepping. abstol and reltol are also commonly used to control the tolerance in the adaptive timestepping. saveat is also used to store the results at a specified time stamps. For example, the following code is valid to further specify your solver options:

execute!(sim, IDA(), dtmax = 0.01, abstol = 1e-9, reltol = 1e-6, saveat = 0.01)

In addition, the keyword argument enable_progress_bar = false can be used to disable the progress bar.

+execute!(sim2, Rodas4())

Exploring the Solution

Once a Simulation is executed and the results are stored via results = read_results(sim), the following functions can be used to explore the Simulation solution:

Show initial conditions

The function show_states_initial_value(results) can be used to display the initial condition of the voltages and dynamic states of each dynamic component.

Explore bus voltages

The function get_voltage_magnitude_series(results, BusNumber) can be used to obtain the voltage magnitude time series of the specified bus. Similarly, get_voltage_angle_series(results, BusNumber) can be used to obtain the voltage angle time series of the specified bus.

Explore output currents

The functions get_real_current_series(results, "DeviceName") and get_imaginary_current_series(results, "DeviceName") can be used to obtain the output current time series of the specified device.

Explore output power

The functions get_activepower_series(results, "DeviceName") and get_reactivepower_series(results, "DeviceName") can be used to obtain the output power time series of the specified device.

Explore dynamic states

The function get_state_series(results, ("DeviceName", :StateSymbol) can be used to obtain the specified state time series of the specified device.

Explore Reference Setpoints

The function get_setpoints(sim) can be used to obtain the reference setpoints of each dynamic device. Note: If a setpoint was changed via a perturbation, this function will return the modified setpoint.

Keyword Arguments

Any solver option available in DifferentialEquations.jl can be passed as keyword arguments in the execute! function. Please see the Common Solver Options in the DifferentialEquations.jl documentation for more details.

Most common solver options used are dtmax to control the maximum dt for adaptive timestepping. abstol and reltol are also commonly used to control the tolerance in the adaptive timestepping. saveat is also used to store the results at a specified time stamps. For example, the following code is valid to further specify your solver options:

execute!(sim, IDA(), dtmax = 0.01, abstol = 1e-9, reltol = 1e-6, saveat = 0.01)

In addition, the keyword argument enable_progress_bar = false can be used to disable the progress bar.

diff --git a/dev/generic/index.html b/dev/generic/index.html index b9ed02a67..99f8e4bb8 100644 --- a/dev/generic/index.html +++ b/dev/generic/index.html @@ -1,2 +1,2 @@ -Industrial Renewable Models · PowerSimulationsDynamics.jl

Industrial (Generic) Renewable Models

Connection with the Inverter Metamodel

Generic Renewable Models for PV solar or battery devices used in industrial tools, such as PSS/E or PowerWorld, does not necessary resemble the proposed structure of our proposed metamodel.

In general terms, a generic renewable model (for PV plant or battery) is typically a Grid Following inverter that uses a Renewable Energy Plant Controller (REPC), a Renewable Energy Electrical Controller (REEC) and a Renewable Energy Generic Converter (REGC) model. The following figure is useful to understand the general structure of such models:

In comparison to the proposed inverter metamodel it is clear that the REPC resembles the Outer Control. However, the REEC has a purpose of both Outer Control and Inner Control and the REGC has a similar purpose of the Converter and Filter in the proposed structure. For such purpose, it was necessary to split the REEC and part of its model was included in both Outer Control and Inner Control.

Example of implementation of generic models

The following includes examples of the implementation of the proposed model in the inverter metamodel.

Active Renewable Outer Control

The following example join the active power controllers from REPCA and REECB as ActiveRenewableControllerAB in PowerSimulationsDynamics.jl

An important thing to consider with the industrial models, is that the change of Flags can significantly vary the model and purpose of the controller.

Reactive Renewable Outer Control

Similar to the active controller, the following figure presents the reactive controller part from REPCA and REECB as ReactiveRenewableControllerAB in PowerSimulationsDynamics.jl

Inner Controller

Finally, the remaining part from REECB was included RECurrentControllerB

The REGCAmodel was directly included in a Converter Block, and the filter can be bypassed using an RLFilter block with rf = lf = 0.

Current availability of model flags in PSID

Active Controller

For the active controller, both Freq_Flag = 0 (ignoring frequency regulation) and Freq_Flag = 1 (considering frequency regulation) are available.

Reactive Controller

The following table describes the current available combination of flags in PSID:

REF_FlagPF_FlagV_FlagQ_Flag
0000
0010
1011
1000

Any combination outside of these cases may not converge to a feasible operating point. Check the following CAISO report for the description and compliance of each flag combination.

+Industrial Renewable Models · PowerSimulationsDynamics.jl

Industrial (Generic) Renewable Models

Connection with the Inverter Metamodel

Generic Renewable Models for PV solar or battery devices used in industrial tools, such as PSS/E or PowerWorld, does not necessary resemble the proposed structure of our proposed metamodel.

In general terms, a generic renewable model (for PV plant or battery) is typically a Grid Following inverter that uses a Renewable Energy Plant Controller (REPC), a Renewable Energy Electrical Controller (REEC) and a Renewable Energy Generic Converter (REGC) model. The following figure is useful to understand the general structure of such models:

In comparison to the proposed inverter metamodel it is clear that the REPC resembles the Outer Control. However, the REEC has a purpose of both Outer Control and Inner Control and the REGC has a similar purpose of the Converter and Filter in the proposed structure. For such purpose, it was necessary to split the REEC and part of its model was included in both Outer Control and Inner Control.

Example of implementation of generic models

The following includes examples of the implementation of the proposed model in the inverter metamodel.

Active Renewable Outer Control

The following example join the active power controllers from REPCA and REECB as ActiveRenewableControllerAB in PowerSimulationsDynamics.jl

An important thing to consider with the industrial models, is that the change of Flags can significantly vary the model and purpose of the controller.

Reactive Renewable Outer Control

Similar to the active controller, the following figure presents the reactive controller part from REPCA and REECB as ReactiveRenewableControllerAB in PowerSimulationsDynamics.jl

Inner Controller

Finally, the remaining part from REECB was included RECurrentControllerB

The REGCAmodel was directly included in a Converter Block, and the filter can be bypassed using an RLFilter block with rf = lf = 0.

Current availability of model flags in PSID

Active Controller

For the active controller, both Freq_Flag = 0 (ignoring frequency regulation) and Freq_Flag = 1 (considering frequency regulation) are available.

Reactive Controller

The following table describes the current available combination of flags in PSID:

REF_FlagPF_FlagV_FlagQ_Flag
0000
0010
1011
1000

Any combination outside of these cases may not converge to a feasible operating point. Check the following CAISO report for the description and compliance of each flag combination.

diff --git a/dev/index.html b/dev/index.html index 3dffeeb14..1fc1ccc60 100644 --- a/dev/index.html +++ b/dev/index.html @@ -4,4 +4,4 @@ author={Lara, Jose Daniel and Henriquez-Auba, Rodrigo and Ramasubramanian, Deepak and Dhople, Sairaj and Callaway, Duncan S and Sanders, Seth}, journal={arXiv preprint arXiv:2301.10043}, year={2023} -}

Installation

The latest stable release of PowerSimulationsDynamics.jl can be installed using the Julia package manager with

] add PowerSimulationsDynamics

For the current development version, "checkout" this package with

] add PowerSimulationsDynamics#master

Structure

The following figure shows the interactions between PowerSimulationsDynamics.jl, PowerSystems.jl, ForwardDiff.jl, DiffEqBase.jl and the integrators. The architecture of PowerSimulationsDynamics.jl is such that the power system models are all self-contained and return the model function evaluations. The Jacobian is calculated using automatic differentiation through ForwardDiff.jl, that is used for both numerical integration and small signal analysis. Considering that the resulting models are differential-algebraic equations (DAE), the implementation focuses on the use of implicit solvers, in particular BDF and Rosenbrock methods.


PowerSimulationsDynamics.jl has been developed as part of the Scalable Integrated Infrastructure Planning (SIIP) initiative at the U.S. Department of Energy's National Renewable Energy Laboratory (NREL)

+}

Installation

The latest stable release of PowerSimulationsDynamics.jl can be installed using the Julia package manager with

] add PowerSimulationsDynamics

For the current development version, "checkout" this package with

] add PowerSimulationsDynamics#master

Structure

The following figure shows the interactions between PowerSimulationsDynamics.jl, PowerSystems.jl, ForwardDiff.jl, DiffEqBase.jl and the integrators. The architecture of PowerSimulationsDynamics.jl is such that the power system models are all self-contained and return the model function evaluations. The Jacobian is calculated using automatic differentiation through ForwardDiff.jl, that is used for both numerical integration and small signal analysis. Considering that the resulting models are differential-algebraic equations (DAE), the implementation focuses on the use of implicit solvers, in particular BDF and Rosenbrock methods.


PowerSimulationsDynamics.jl has been developed as part of the Scalable Integrated Infrastructure Planning (SIIP) initiative at the U.S. Department of Energy's National Renewable Energy Laboratory (NREL)

diff --git a/dev/initialization/index.html b/dev/initialization/index.html index 17b804d61..28667681e 100644 --- a/dev/initialization/index.html +++ b/dev/initialization/index.html @@ -20,4 +20,4 @@ (0.0, 20.0); initialize_simulation = false, initial_conditions = x0_init, - )

<span style="color:red">WARNING!</span>: when the initialize_simulation is set to false, neither the device set points nor the inner vars are initialized. Use these keywords with care and make sure the values in the system components match the initial conditions provided.

System-wide initialization routine

The initialization routine starts from the solution of the power flow equations. For each dynamic injection device PowerSimulationsDynamics.jl finds the solution of the systems of non-linear equations for each dynamic component following the sequences described in the forthcoming sections.

Once each device is individually initialized, the system-wide initial guess is used to solve the system (1). In a first attempt at finding the solution, the tolerance is set to a stringent tolerance. If the non-linear solver is unable to get a solution, it might usually reflect small signal stability problems in the system. In a second attempt, the tolerances are relaxed. If the solver succeeds, the simulation continues, but the user is warned.

Initialization of the Synchronous Machines

The initialization of Synchronous Machines is standard in power systems and follows the scheme shown in the figure. Other internal variables are calculated recursively from the power flow solution for the node on which the dynamic device isconnected. (Adapted from Power System Modelling and Scripting Figure 9.2)

init_machine

Initialization of the Inverters

Initializing the inverters follows the sequence shown in the figure and has been developed to be compatible with the implementation of custom dynamic components. Given that the process is less studied and standard than the one of the synchronous machine, this page contains more detailed documentation of the process.

init_machine

  1. The first component to be initialized is the filter. Given that the filter is an RLC circuit connected to the grid, its currents and voltages need to match the results of the power flow. The initialization of the filter provides the values for the $P$ and $Q$ used in the outer control and the $V$ and $I$ needed in the inner controls.
  2. Based on the bus voltage in the system's reference frame $V_r$ and the bus angle $\theta$ the PLL's can be initialized to obtain the angle and frequency estimates needed by the outer control.
  3. The Outer Control calculates the internal angle $\delta_{olc}$ required by the inner control to estimate the voltage and current phase difference.
  4. The DC Source uses the power set-point consistent with the power outputs of the filter to initialize the $V_{dc}$ set-points. This value is used in the inner control.
  5. The inner control takes the phase angle $\delta_{olc}$ and the $V_{dc}$ to estimate the modulation values of the PWM converter.

Note: The initialization of an inverter through the proposed meta-model is actively under development and subject to change. This page will maintain the latest version of the sequence.

+ )

<span style="color:red">WARNING!</span>: when the initialize_simulation is set to false, neither the device set points nor the inner vars are initialized. Use these keywords with care and make sure the values in the system components match the initial conditions provided.

System-wide initialization routine

The initialization routine starts from the solution of the power flow equations. For each dynamic injection device PowerSimulationsDynamics.jl finds the solution of the systems of non-linear equations for each dynamic component following the sequences described in the forthcoming sections.

Once each device is individually initialized, the system-wide initial guess is used to solve the system (1). In a first attempt at finding the solution, the tolerance is set to a stringent tolerance. If the non-linear solver is unable to get a solution, it might usually reflect small signal stability problems in the system. In a second attempt, the tolerances are relaxed. If the solver succeeds, the simulation continues, but the user is warned.

Initialization of the Synchronous Machines

The initialization of Synchronous Machines is standard in power systems and follows the scheme shown in the figure. Other internal variables are calculated recursively from the power flow solution for the node on which the dynamic device isconnected. (Adapted from Power System Modelling and Scripting Figure 9.2)

init_machine

Initialization of the Inverters

Initializing the inverters follows the sequence shown in the figure and has been developed to be compatible with the implementation of custom dynamic components. Given that the process is less studied and standard than the one of the synchronous machine, this page contains more detailed documentation of the process.

init_machine

  1. The first component to be initialized is the filter. Given that the filter is an RLC circuit connected to the grid, its currents and voltages need to match the results of the power flow. The initialization of the filter provides the values for the $P$ and $Q$ used in the outer control and the $V$ and $I$ needed in the inner controls.
  2. Based on the bus voltage in the system's reference frame $V_r$ and the bus angle $\theta$ the PLL's can be initialized to obtain the angle and frequency estimates needed by the outer control.
  3. The Outer Control calculates the internal angle $\delta_{olc}$ required by the inner control to estimate the voltage and current phase difference.
  4. The DC Source uses the power set-point consistent with the power outputs of the filter to initialize the $V_{dc}$ set-points. This value is used in the inner control.
  5. The inner control takes the phase angle $\delta_{olc}$ and the $V_{dc}$ to estimate the modulation values of the PWM converter.

Note: The initialization of an inverter through the proposed meta-model is actively under development and subject to change. This page will maintain the latest version of the sequence.

diff --git a/dev/models/index.html b/dev/models/index.html index 8b839142c..19c2bff88 100644 --- a/dev/models/index.html +++ b/dev/models/index.html @@ -5,4 +5,4 @@ r(t) = \frac{dx(t)}{dt} - f(x(t)) \end{align}\]

At this stage we have not conducted extensive tests with all the solvers in DifferentialEquations if you are solving a larger system use IDA().

The dynamic system model in PowerSimulationsDynamics

In order to support both formulations, the default implementation of the ResidualModel solves the following problem:

\[\begin{align} r(t) = M\frac{dx(t)}{dt} - f(x(t)) -\end{align}\]

Solution approaches

PowerSimulationsDynamics.jl construct the entire function that is passed to DifferentialEquations to solve it using different solvers. This is called the Simultaneous-solution approach to numerically integrate over time. It gives the user the flexibility to model devices with a combination of differential and algebraic states. In addition, it gives the flexibility to model the network using an algebraic or differential model.

On the other hand, industrial tools such as PSS/E uses a Partitioned-solution approach, on which the network must be modeled using an algebraic approach, and the differential equations and algebraic equations are solved sequentially. This method is usually faster if the heuristics for convergence when solving sequentially are properly tuned. However, boundary techniques must be considered when the connection with the devices and network is not converging when applying the partitioned-solution approach.

The difference in solution methods can complicate the validation and comparison between software tools. In addition it can affect the computational properties due to reliance of heuristics. These solution aspects are important to consider when using different tools for simulating power systems dynamics.

For more details, check Brian Stott paper "Power system dynamic response calculations".

Generator Models

Here we discuss the structure and models used to model generators in PowerSimulationsDynamics.jl. See PowerSystems.jl dynamic devices for details.

Each generator is a data structure composed of the following components defined in PowerSystems.jl:

The implementation of Synchronous generators as components uses the following structure to share values across components.

Inverter Models

Here we discuss the structure and models used to model inverters in PowerSimulationsDynamics.jl. See PowerSystems.jl dynamic devices for details. One of the key contributions in this software package is a separation of the components in a way that resembles current practices for synchronoues machine modeling.

The following figure summarizes the components of a inverter and which variables they share:

Contrary to the generator, there are many control structures that can be used to model inverter controllers (e.g. grid-following, grid feeding or virtual synchronous machine). For this purpose, more variables are shared among the components in order to cover all these posibilities.

Reference

For models, check the library in PowerSystems.jl

+\end{align}\]

Solution approaches

PowerSimulationsDynamics.jl construct the entire function that is passed to DifferentialEquations to solve it using different solvers. This is called the Simultaneous-solution approach to numerically integrate over time. It gives the user the flexibility to model devices with a combination of differential and algebraic states. In addition, it gives the flexibility to model the network using an algebraic or differential model.

On the other hand, industrial tools such as PSS/E uses a Partitioned-solution approach, on which the network must be modeled using an algebraic approach, and the differential equations and algebraic equations are solved sequentially. This method is usually faster if the heuristics for convergence when solving sequentially are properly tuned. However, boundary techniques must be considered when the connection with the devices and network is not converging when applying the partitioned-solution approach.

The difference in solution methods can complicate the validation and comparison between software tools. In addition it can affect the computational properties due to reliance of heuristics. These solution aspects are important to consider when using different tools for simulating power systems dynamics.

For more details, check Brian Stott paper "Power system dynamic response calculations".

Generator Models

Here we discuss the structure and models used to model generators in PowerSimulationsDynamics.jl. See PowerSystems.jl dynamic devices for details.

Each generator is a data structure composed of the following components defined in PowerSystems.jl:

The implementation of Synchronous generators as components uses the following structure to share values across components.

Inverter Models

Here we discuss the structure and models used to model inverters in PowerSimulationsDynamics.jl. See PowerSystems.jl dynamic devices for details. One of the key contributions in this software package is a separation of the components in a way that resembles current practices for synchronoues machine modeling.

The following figure summarizes the components of a inverter and which variables they share:

Contrary to the generator, there are many control structures that can be used to model inverter controllers (e.g. grid-following, grid feeding or virtual synchronous machine). For this purpose, more variables are shared among the components in order to cover all these posibilities.

Reference

For models, check the library in PowerSystems.jl

diff --git a/dev/perturbations/index.html b/dev/perturbations/index.html index e4aa9da10..eb334732a 100644 --- a/dev/perturbations/index.html +++ b/dev/perturbations/index.html @@ -41,4 +41,4 @@ crc = ControlReferenceChange(1.0, g, :P_ref, 0.5)

Example 7: LoadChange

Consider that you have a load at bus 103, named "load-103-1" in your system called sys. The constructor to change is active power reference to 0.8 per unit at $t = 1.0$ seconds is:

l_device = get_component(ElectricLoad, sys, "load-103-1")
 l_change = LoadChange(1.0, l_device, :P_ref, 0.8)

Example 8: LoadTrip

Consider that you have a load at bus 103, named "load-103-1" in your system called sys. The constructor to disconnect such load at $t = 1.0$ seconds is:

l_device = get_component(ElectricLoad, sys, "load-103-1")
 l_trip = LoadTrip(1.0, l_device)

Example 9: SourceBusVoltageChange

Consider that you have a voltage source at bus 101, named "source-101-1" in your system called sys. The constructor to change is voltage magnitude reference to 1.02 per unit at $t = 1.0$ seconds is:

s_device = get_component(Source, sys, "source-101-1")
-s_change = SourceBusVoltageChange(1.0, s_device, 1, 1.02)
+s_change = SourceBusVoltageChange(1.0, s_device, 1, 1.02) diff --git a/dev/power-simulations-dynamics.log b/dev/power-simulations-dynamics.log index c141fb8ae..d88fb70e4 100644 --- a/dev/power-simulations-dynamics.log +++ b/dev/power-simulations-dynamics.log @@ -1,44 +1,44 @@ -┌ Info: 2023-12-12T01:33:41.372 [5173:1]: The reference Bus has a Source connected to it. The frequency reference model will change to ConstantFrequency +┌ Info: 2024-01-04T20:47:32.616 [5251:1]: The reference Bus has a Source connected to it. The frequency reference model will change to ConstantFrequency └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/frequency_reference.jl:70 -┌ Info: 2023-12-12T01:33:41.401 [5173:1]: Pre-Initializing Simulation States +┌ Info: 2024-01-04T20:47:32.643 [5251:1]: Pre-Initializing Simulation States └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:265 -┌ Info: 2023-12-12T01:33:41.401 [5173:1]: Unit System changed to UnitSystem.SYSTEM_BASE = 0 -└ @ PowerSystems /home/runner/.julia/packages/PowerSystems/gXgwy/src/base.jl:395 -┌ Info: 2023-12-12T01:33:42.494 [5173:1]: PowerFlow solve converged, the results have been stored in the system -└ @ PowerFlows /home/runner/.julia/packages/PowerFlows/2Elwp/src/nlsolve_ac_powerflow.jl:47 -┌ Info: 2023-12-12T01:33:42.494 [5173:1]: Unit System changed to UnitSystem.DEVICE_BASE = 1 -└ @ PowerSystems /home/runner/.julia/packages/PowerSystems/gXgwy/src/base.jl:395 -┌ Info: 2023-12-12T01:33:52.121 [5173:1]: Residual from initial guess: max = 4.212807880321634e-11 at 4, total = 5.4841923110646186e-11 +┌ Info: 2024-01-04T20:47:32.643 [5251:1]: Unit System changed to UnitSystem.SYSTEM_BASE = 0 +└ @ PowerSystems /home/runner/.julia/packages/PowerSystems/diJIg/src/base.jl:395 +┌ Info: 2024-01-04T20:47:34.285 [5251:1]: PowerFlow solve converged, the results have been stored in the system +└ @ PowerFlows /home/runner/.julia/packages/PowerFlows/8MBjq/src/nlsolve_ac_powerflow.jl:47 +┌ Info: 2024-01-04T20:47:34.285 [5251:1]: Unit System changed to UnitSystem.DEVICE_BASE = 1 +└ @ PowerSystems /home/runner/.julia/packages/PowerSystems/diJIg/src/base.jl:395 +┌ Info: 2024-01-04T20:47:46.625 [5251:1]: Residual from initial guess: max = 4.212807880321634e-11 at 4, total = 5.4841923110646186e-11 └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/nlsolve_wrapper.jl:101 -┌ Info: 2023-12-12T01:33:52.140 [5173:1]: Initialization non-linear solve succeeded with a tolerance of 1.0e-9 using solver trust_region. Saving solution. +┌ Info: 2024-01-04T20:47:46.663 [5251:1]: Initialization non-linear solve succeeded with a tolerance of 1.0e-9 using solver trust_region. Saving solution. └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/nlsolve_wrapper.jl:68 -┌ Info: 2023-12-12T01:33:52.140 [5173:1]: Attaching Perturbations +┌ Info: 2024-01-04T20:47:46.663 [5251:1]: Attaching Perturbations └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:296 -┌ Info: 2023-12-12T01:33:52.632 [5173:1]: Simulations status = BUILT +┌ Info: 2024-01-04T20:47:47.160 [5251:1]: Simulations status = BUILT └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:428 -┌ Info: 2023-12-12T01:33:52.633 [5173:1]: +┌ Info: 2024-01-04T20:47:47.160 [5251:1]: │ ─────────────────────────────────────────────────────────────────────────────── │ Time Allocations │ ─────────────── ─────────────── -│ Total measured: 13.2s 918MiB +│ Total measured: 16.4s 811MiB │ │ Section ncalls time %tot alloc %tot │ ─────────────────────────────────────────────────────────────────────────────── -│ Build Simulation 1 13.2s 100.0% 918MiB 100.0% -│ Build Simulation Inputs 1 1.95s 14.8% 147MiB 16.0% -│ Wrap Branches 1 8.91μs 0.0% 240B 0.0% -│ Wrap Dynamic Injectors 1 1.08s 8.2% 88.5MiB 9.6% -│ Calculate MM, DAE_vector, Tota... 1 62.7ms 0.5% 6.96MiB 0.8% -│ Wrap Static Injectors 1 58.6ms 0.4% 2.51MiB 0.3% -│ Pre-initialization 1 4.04s 30.7% 296MiB 32.2% -│ Power Flow solution 1 1.13s 8.6% 39.0MiB 4.3% -│ Initialize Static Injectors 1 1.37s 10.4% 29.5MiB 3.2% -│ Initialize Dynamic Injectors 1 1.54s 11.7% 227MiB 24.8% -│ Calculate Jacobian 1 3.67s 27.9% 415MiB 45.2% -│ Make Model Function 1 5.83ms 0.0% 95.3KiB 0.0% -│ Initial Condition NLsolve refine... 1 3.02s 22.9% 30.5MiB 3.3% -│ Build Perturbations 1 202ms 1.5% 13.6MiB 1.5% -│ Make DiffEq Problem 1 285ms 2.2% 15.4MiB 1.7% +│ Build Simulation 1 16.4s 100.0% 811MiB 100.0% +│ Build Simulation Inputs 1 1.84s 11.3% 127MiB 15.7% +│ Wrap Branches 1 9.07μs 0.0% 208B 0.0% +│ Wrap Dynamic Injectors 1 1.02s 6.3% 80.1MiB 9.9% +│ Calculate MM, DAE_vector, Tota... 1 70.6ms 0.4% 6.31MiB 0.8% +│ Wrap Static Injectors 1 57.6ms 0.4% 1.63MiB 0.2% +│ Pre-initialization 1 4.68s 28.6% 229MiB 28.3% +│ Power Flow solution 1 1.68s 10.3% 41.6MiB 5.1% +│ Initialize Static Injectors 1 2.15s 13.1% 27.5MiB 3.4% +│ Initialize Dynamic Injectors 1 846ms 5.2% 160MiB 19.7% +│ Calculate Jacobian 1 4.51s 27.6% 398MiB 49.0% +│ Make Model Function 1 6.11ms 0.0% 122KiB 0.0% +│ Initial Condition NLsolve refine... 1 4.82s 29.5% 29.7MiB 3.7% +│ Build Perturbations 1 214ms 1.3% 13.3MiB 1.6% +│ Make DiffEq Problem 1 278ms 1.7% 14.0MiB 1.7% │ ─────────────────────────────────────────────────────────────────────────────── │ └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:453 diff --git a/dev/quick_start_guide/index.html b/dev/quick_start_guide/index.html index 1c41638fc..86fda8645 100644 --- a/dev/quick_start_guide/index.html +++ b/dev/quick_start_guide/index.html @@ -2,21 +2,21 @@ Quick Start Guide · PowerSimulationsDynamics.jl

Quick Start Guide

The data for these tutorials is provided in PowerSystemCaseBuilder. If you want to build your own case, take a look at the tutorial Creating and Handling Data for Dynamic Simulations

For more details about loading data and adding more dynamic components check the Creating a System with Dynamic devices section of the documentation in PowerSystems.jl.

For a detailed tutorial about this case visit One Machine against Infinite Bus (OMIB) Simulation

Loading data

Data can be loaded from a pss/e raw file and a pss/e dyr file.

julia> using PowerSystems
julia> using PowerSimulationsDynamics
julia> using PowerSystemCaseBuilder
julia> using Sundials
julia> using Plots
julia> omib_sys = build_system(PSIDSystems, "OMIB System")┌ Info: Building new system OMIB System from raw data └ sys_descriptor.raw_data = "" ┌ Warning: System is saved in the data format version 2.0.0 will be automatically upgraded to 3.0.0 upon saving -└ @ PowerSystems ~/.julia/packages/PowerSystems/gXgwy/src/data_format_conversions.jl:82 +└ @ PowerSystems ~/.julia/packages/PowerSystems/diJIg/src/data_format_conversions.jl:82 ┌ Warning: struct ACBus does not exist in validation configuration file, validation skipped -└ @ InfrastructureSystems ~/.julia/packages/InfrastructureSystems/swXsu/src/validation.jl:51 +└ @ InfrastructureSystems ~/.julia/packages/InfrastructureSystems/LWhzb/src/validation.jl:51 ┌ Warning: struct ACBus does not exist in validation configuration file, validation skipped -└ @ InfrastructureSystems ~/.julia/packages/InfrastructureSystems/swXsu/src/validation.jl:51 +└ @ InfrastructureSystems ~/.julia/packages/InfrastructureSystems/LWhzb/src/validation.jl:51 ┌ Warning: struct DynamicGenerator does not exist in validation configuration file, validation skipped -└ @ InfrastructureSystems ~/.julia/packages/InfrastructureSystems/swXsu/src/validation.jl:51 +└ @ InfrastructureSystems ~/.julia/packages/InfrastructureSystems/LWhzb/src/validation.jl:51 ┌ Warning: field prime_mover_type does not exist in ThermalStandard validation config -└ @ InfrastructureSystems ~/.julia/packages/InfrastructureSystems/swXsu/src/validation.jl:65 +└ @ InfrastructureSystems ~/.julia/packages/InfrastructureSystems/LWhzb/src/validation.jl:65 ┌ Warning: struct DynamicGenerator does not exist in validation configuration file, validation skipped -└ @ InfrastructureSystems ~/.julia/packages/InfrastructureSystems/swXsu/src/validation.jl:51 +└ @ InfrastructureSystems ~/.julia/packages/InfrastructureSystems/LWhzb/src/validation.jl:51 ┌ Warning: System is saved in the data format version 2.0.0 will be automatically upgraded to 3.0.0 upon saving -└ @ PowerSystems ~/.julia/packages/PowerSystems/gXgwy/src/data_format_conversions.jl:110 +└ @ PowerSystems ~/.julia/packages/PowerSystems/diJIg/src/data_format_conversions.jl:110 ┌ Warning: There are no ElectricLoad Components in the System -└ @ PowerSystems ~/.julia/packages/PowerSystems/gXgwy/src/utils/IO/system_checks.jl:59 +└ @ PowerSystems ~/.julia/packages/PowerSystems/diJIg/src/utils/IO/system_checks.jl:59 [ Info: Serialized System to /home/runner/.julia/packages/PowerSystemCaseBuilder/E76Gu/data/serialized_system/NoArgs/OMIB System.json [ Info: Serialized System metadata to /home/runner/.julia/packages/PowerSystemCaseBuilder/E76Gu/data/serialized_system/NoArgs/OMIB System_metadata.json System @@ -84,7 +84,7 @@ ==================== δ 0.1685 ω 1.0 -====================

Obtain small signal results for initial conditions

Show eigenvalues for operating point

julia>     small_sig = small_signal_analysis(sim)The system is small signal stable
julia> summary_eigenvalues(small_sig)2×6 DataFrame +====================

Obtain small signal results for initial conditions

Show eigenvalues for operating point

julia>     small_sig = small_signal_analysis(sim)The system is small signal stable
julia> summary_eigenvalues(small_sig)2×6 DataFrame Row │ Most Associated Part. Factor Real Part Imag. Part Damping [%] Fr ⋯ │ Any Any Any Any Any An ⋯ ─────┼────────────────────────────────────────────────────────────────────────── @@ -99,5 +99,5 @@ │ Time Span │ (0.0, 30.0) │ │ Total Time Steps │ 1503 │ │ Number of States │ 6 │ -│ Total solve time │ 4.233619582 │ -└────────────────────────────┴─────────────┘
julia> angle = get_state_series(results, ("generator-102-1", :δ));
julia> plot(angle, xlabel = "time", ylabel = "rotor angle [rad]", label = "gen-102-1")Plot{Plots.GRBackend() n=1}

plot

If you miss PSS/e's plotting aesthetics and want something that resembles that, you can use UnicodePlots.

julia> using UnicodePlots
julia> unicodeplots()Plots.UnicodePlotsBackend()
julia> plot(angle, xlabel = "time", ylabel = "rotor angle [rad]", label = "gen-102-1");

plot

+│ Total solve time │ 3.218990378 │ +└────────────────────────────┴─────────────┘
julia> angle = get_state_series(results, ("generator-102-1", :δ));
julia> plot(angle, xlabel = "time", ylabel = "rotor angle [rad]", label = "gen-102-1")Plot{Plots.GRBackend() n=1}

plot

If you miss PSS/e's plotting aesthetics and want something that resembles that, you can use UnicodePlots.

julia> using UnicodePlots
julia> unicodeplots()Plots.UnicodePlotsBackend()
julia> plot(angle, xlabel = "time", ylabel = "rotor angle [rad]", label = "gen-102-1");

plot

diff --git a/dev/reference_frames/index.html b/dev/reference_frames/index.html index 7f3521afa..11309a7b4 100644 --- a/dev/reference_frames/index.html +++ b/dev/reference_frames/index.html @@ -8,4 +8,4 @@ v_d + jv_q &= (v_r + jv_i) e^{-j \delta} \tag{2a} \\ v_d &= v_h \cos(\delta - \theta) \tag{2b} \\ v_q &= -v_h \sin(\delta - \theta) \tag{2c} -\end{align}\]

That, contrary to the previous case, when $\delta = \theta = 0$ implies that $v_d = 1.0$ and $v_q = 0.0$. This yields the typical PLL conditions that steer $v_q \to 0$ when $\delta$ locks in $\theta$, or when both SRF lock between each other.

Transformation used

Given the predominancy of both convention in current work, the software uses both conventions depending on the device modeled. For synchronous machines we used the standard convention (1a)-(1d), while for inverter models we use the predominant convention used nowadays in such models, i.e. (2a)-(2c).

+\end{align}\]

That, contrary to the previous case, when $\delta = \theta = 0$ implies that $v_d = 1.0$ and $v_q = 0.0$. This yields the typical PLL conditions that steer $v_q \to 0$ when $\delta$ locks in $\theta$, or when both SRF lock between each other.

Transformation used

Given the predominancy of both convention in current work, the software uses both conventions depending on the device modeled. For synchronous machines we used the standard convention (1a)-(1d), while for inverter models we use the predominant convention used nowadays in such models, i.e. (2a)-(2c).

diff --git a/dev/search/index.html b/dev/search/index.html index 22825f53e..618135a21 100644 --- a/dev/search/index.html +++ b/dev/search/index.html @@ -1,2 +1,2 @@ -Search · PowerSimulationsDynamics.jl

Loading search...

    +Search · PowerSimulationsDynamics.jl

    Loading search...

      diff --git a/dev/small/index.html b/dev/small/index.html index 3b6c8f852..2e3ca4f45 100644 --- a/dev/small/index.html +++ b/dev/small/index.html @@ -29,4 +29,4 @@ \Delta \dot{x} = J_{\text{red}} \Delta x \end{align}\]

      on which we can compute its eigenvalues to analyze local stability.

      Accessing the Jacobian function

      You can retrieve the Jacobian function for a simulation using the get_jacobian function as follows:

      jacobian = function get_jacobian(ResidualModel, system)

      optionally you can pass the number of iterations to check for sparsity as follows:

      jacobian = function get_jacobian(ResidualModel, system, 0)

      if you specify 0, the jacobian function will use a full matrix.

      The return of get_jacobian is known as a functor in Julia and can be used to make evaluations. Currently, any function can be evaluated with the following inputs:

      jacobian(x)

      This version of the function is type unstable should only be used for non-critial ops. It works to get the eigenvalues given an operating point x

      jacobian(JM, x)

      This version evaluates in place the value of the jacobian for an operating point x and writes to the matrix JM

      jacobian(JM, x, p, t)

      This version complied with the requirements to be used in DiffEq for ODE solvers. p and t aren't used they just mean to match the interfaces. See DiffEqDocs

      jacobian(JM, dx, x, p, gamma, t)

      This version complied with the requirements to be used in DiffEq for DAE solvers. p and t aren't used they just mean to match the interfaces. It assumes that the jacobian has the form:

      \[\begin{align} JM = \gamma * I + J(x) -\end{align}\]

      See DiffEqDocs for additional details.

      +\end{align}\]

      See DiffEqDocs for additional details.

      diff --git a/dev/tutorials/modified_sys.json b/dev/tutorials/modified_sys.json index 11837de59..6ca0981f4 100644 --- a/dev/tutorials/modified_sys.json +++ b/dev/tutorials/modified_sys.json @@ -1 +1 @@ -{"internal":{"uuid":{"value":"19942e3e-4578-411f-8e82-e7969ca35c6c"},"ext":{},"units_info":null},"data":{"time_series_in_memory":false,"masked_components":[],"version_info":{"julia_version":"1.9.4","package_info":"Status `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/docs/Manifest.toml`\n [47edcb42] ADTypes v0.2.5\n [a4c015fc] ANSIColoredPrinters v0.0.1\n [1520ce14] AbstractTrees v0.4.4\n [79e6a3ab] Adapt v3.7.2\n [ec485272] ArnoldiMethod v0.2.0\n [4fba245c] ArrayInterface v7.6.1\n [d1d4a3ce] BitFlags v0.1.8\n [62783981] BitTwiddlingConvenienceFunctions v0.1.5\n [a74b3585] Blosc v0.7.3\n [fa961155] CEnum v0.5.0\n [2a0fbf3d] CPUSummary v0.2.4\n [336ed68f] CSV v0.10.11\n [d360d2e6] ChainRulesCore v1.18.0\n [fb6a15b2] CloseOpenIntervals v0.1.12\n [944b1d66] CodecZlib v0.7.3\n [35d6a980] ColorSchemes v3.24.0\n [3da002f7] ColorTypes v0.11.4\n [c3611d14] ColorVectorSpace v0.10.0\n [5ae59095] Colors v0.12.10\n [38540f10] CommonSolve v0.2.4\n [bbf7d656] CommonSubexpressions v0.3.0\n [34da2185] Compat v4.10.1\n [2569d6c7] ConcreteStructs v0.2.3\n [f0e56b4a] ConcurrentUtilities v2.3.0\n [187b0558] ConstructionBase v1.5.4\n [d38c429a] Contour v0.6.2\n [adafc99b] CpuId v0.3.1\n [a8cc5b0e] Crayons v4.1.1\n [9a962f9c] DataAPI v1.15.0\n [a93c6f00] DataFrames v1.6.1\n [864edb3b] DataStructures v0.18.15\n [e2d170a0] DataValueInterfaces v1.0.0\n [8bb1440f] DelimitedFiles v1.9.1\n⌃ [2b5f629d] DiffEqBase v6.130.0\n [163ba53b] DiffResults v1.1.0\n [b552c78f] DiffRules v1.15.1\n [b4f34e82] Distances v0.10.11\n [ffbed154] DocStringExtensions v0.9.3\n⌅ [e30172f5] Documenter v0.27.25\n [35a29f4d] DocumenterTools v0.1.18\n [4e289a0a] EnumX v1.0.4\n [f151be2c] EnzymeCore v0.6.4\n [460bff9d] ExceptionUnwrapping v0.1.9\n [d4d017d3] ExponentialUtilities v1.25.0\n [e2ba6199] ExprTools v0.1.10\n [c87230d0] FFMPEG v0.4.1\n [7034ab61] FastBroadcast v0.2.8\n [9aa1b823] FastClosures v0.3.2\n [29a986be] FastLapackInterface v2.0.0\n [48062228] FilePathsBase v0.9.21\n [1a297f60] FillArrays v1.9.2\n [6a86dc24] FiniteDiff v2.21.1\n [53c48c17] FixedPointNumbers v0.8.4\n [59287772] Formatting v0.4.2\n [f6369f11] ForwardDiff v0.10.36\n [069b7b12] FunctionWrappers v1.1.3\n [77dc65aa] FunctionWrappersWrappers v0.1.3\n [46192b85] GPUArraysCore v0.1.5\n [28b8d3ca] GR v0.72.10\n [c145ed77] GenericSchur v0.5.3\n [86223c79] Graphs v1.9.0\n [42e2da0e] Grisu v1.0.2\n [708ec375] Gumbo v0.8.2\n [c8ec2601] H5Zblosc v0.1.2\n [f67ccb44] HDF5 v0.17.1\n [cd3eb016] HTTP v1.10.1\n [3e5b6fbb] HostCPUFeatures v0.1.16\n [b5f81e59] IOCapture v0.2.3\n [615f187c] IfElse v0.1.1\n [d25df0c9] Inflate v0.1.4\n [2cd47ed4] InfrastructureSystems v1.22.0\n [842dd82b] InlineStrings v1.4.0\n [41ab1584] InvertedIndices v1.3.0\n [92d709cd] IrrationalConstants v0.2.2\n [82899510] IteratorInterfaceExtensions v1.0.0\n [1019f520] JLFzf v0.1.7\n [692b3bcd] JLLWrappers v1.5.0\n [682c06a0] JSON v0.21.4\n [0f8b85d8] JSON3 v1.13.2\n [ef3ab10e] KLU v0.4.1\n [ba0b0d4f] Krylov v0.9.5\n [b964fa9f] LaTeXStrings v1.3.1\n [23fbe1c1] Latexify v0.16.1\n [10f19ff3] LayoutPointers v0.1.15\n [50d2b5c4] Lazy v0.15.1\n [1d6d02ad] LeftChildRightSiblingTrees v0.2.0\n [d3d80556] LineSearches v7.2.0\n⌃ [7ed4a6bd] LinearSolve v2.16.2\n [2ab3a3ac] LogExpFunctions v0.3.26\n [e6f89c97] LoggingExtras v1.0.3\n [bdcacae8] LoopVectorization v0.12.166\n [33e6dc65] MKL v0.6.1\n [3da0fdf6] MPIPreferences v0.1.10\n [1914dd2f] MacroTools v0.5.11\n [d125e4d3] ManualMemory v0.1.8\n [299715c1] MarchingCubes v0.1.9\n [739be429] MbedTLS v1.1.9\n [442fdcdd] Measures v0.3.2\n [e1d29d7a] Missings v1.1.0\n [46d2c3a1] MuladdMacro v0.2.4\n [ffc61752] Mustache v1.0.19\n [d41bc354] NLSolversBase v7.8.3\n [2774e3e8] NLsolve v4.5.1\n [77ba4419] NaNMath v1.0.2\n⌅ [8913a72c] NonlinearSolve v2.1.0\n [6fe1bfb0] OffsetArrays v1.12.10\n [4d8831e6] OpenSSL v1.4.1\n [bac558e1] OrderedCollections v1.6.3\n⌃ [1dea7af3] OrdinaryDiffEq v6.58.2\n [65ce6f38] PackageExtensionCompat v1.0.2\n [d96e819e] Parameters v0.12.3\n [46dd5b70] Pardiso v0.5.4\n [69de0a69] Parsers v2.8.0\n [b98c9c47] Pipe v1.3.0\n [ccf2f8ad] PlotThemes v3.1.0\n [995b91a9] PlotUtils v1.3.5\n [91a5bcdd] Plots v1.39.0\n [f517fe37] Polyester v0.7.9\n [1d0040c9] PolyesterWeave v0.2.1\n [2dfb63ee] PooledArrays v1.4.3\n [dd99e9e3] PowerFlowData v1.5.0\n [94fada2c] PowerFlows v0.6.0\n [bed98974] PowerNetworkMatrices v0.9.6\n [398b2ede] PowerSimulationsDynamics v0.13.0 `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl`\n [f00506e0] PowerSystemCaseBuilder v1.2.2\n [bcd98974] PowerSystems v3.1.2\n [d236fae5] PreallocationTools v0.4.12\n [aea7be01] PrecompileTools v1.2.0\n [21216c6a] Preferences v1.4.1\n [08abe8d2] PrettyTables v2.3.1\n [33c8b6b6] ProgressLogging v0.1.4\n [3cdcf5f2] RecipesBase v1.3.4\n [01d81517] RecipesPipeline v0.6.12\n [731186ca] RecursiveArrayTools v2.38.10\n [f2c3362d] RecursiveFactorization v0.2.21\n [189a3867] Reexport v1.2.2\n [05181044] RelocatableFolders v1.0.1\n [ae029012] Requires v1.3.0\n [7e49a35a] RuntimeGeneratedFunctions v0.5.12\n [94e857df] SIMDTypes v0.1.0\n [476501e8] SLEEFPirates v0.6.42\n [322a6be2] Sass v0.2.0\n⌅ [0bca4576] SciMLBase v1.98.1\n [e9a6253c] SciMLNLSolve v0.1.9\n [c0aeaf25] SciMLOperators v0.3.7\n [6c6a2e73] Scratch v1.2.1\n [91c51154] SentinelArrays v1.4.1\n [efcf1570] Setfield v1.1.1\n [992d4aef] Showoff v1.0.3\n [777ac1f9] SimpleBufferStream v1.1.0\n⌅ [727e6d20] SimpleNonlinearSolve v0.1.23\n [699a6c99] SimpleTraits v0.9.4\n [ce78b400] SimpleUnPack v1.1.0\n [a2af1166] SortingAlgorithms v1.2.0\n [47a9eef4] SparseDiffTools v2.14.0\n [e56a9233] Sparspak v0.3.9\n [276daf66] SpecialFunctions v2.3.1\n [aedffcd0] Static v0.8.8\n [0d7ed370] StaticArrayInterface v1.4.1\n [90137ffa] StaticArrays v1.7.0\n [1e83bf80] StaticArraysCore v1.4.2\n [82ae8749] StatsAPI v1.7.0\n [2913bbd2] StatsBase v0.34.2\n [7792a7ef] StrideArraysCore v0.5.2\n [69024149] StringEncodings v0.3.7\n [892a3eda] StringManipulation v0.3.4\n [856f2bd8] StructTypes v1.10.0\n⌃ [c3572dad] Sundials v4.20.1\n⌅ [2efcf032] SymbolicIndexingInterface v0.2.2\n [3783bdb8] TableTraits v1.0.1\n [bd369af6] Tables v1.11.1\n [62fd8b95] TensorCore v0.1.1\n [5d786b92] TerminalLoggers v0.1.7\n [8290d209] ThreadingUtilities v0.5.2\n⌅ [9e3dc215] TimeSeries v0.23.2\n [a759f4b9] TimerOutputs v0.5.23\n [3bb67fe8] TranscodingStreams v0.10.2\n [d5829a12] TriangularSolve v0.1.20\n [410a4b4d] Tricks v0.1.8\n [781d530d] TruncatedStacktraces v1.4.0\n [5c2747f8] URIs v1.5.1\n [3a884ed6] UnPack v1.0.2\n [1cfade01] UnicodeFun v0.4.1\n [b8865327] UnicodePlots v3.6.0\n [1986cc42] Unitful v1.19.0\n [45397f5d] UnitfulLatexify v1.6.3\n [41fe7b60] Unzip v0.2.0\n [3d5dd08c] VectorizationBase v0.21.65\n [19fa3120] VertexSafeGraphs v0.2.0\n [ea10d353] WeakRefStrings v1.4.2\n [76eceee3] WorkerUtilities v1.6.1\n [ddb6d928] YAML v0.4.9\n [700de1a5] ZygoteRules v0.2.4\n [0b7ba130] Blosc_jll v1.21.5+0\n [6e34b625] Bzip2_jll v1.0.8+0\n [83423d85] Cairo_jll v1.16.1+1\n [2702e6a9] EpollShim_jll v0.0.20230411+0\n [2e619515] Expat_jll v2.5.0+0\n⌃ [b22a6f82] FFMPEG_jll v4.4.2+2\n [a3f928ae] Fontconfig_jll v2.13.93+0\n [d7e528f0] FreeType2_jll v2.13.1+0\n [559328eb] FriBidi_jll v1.0.10+0\n [0656b61e] GLFW_jll v3.3.8+0\n [d2c73de3] GR_jll v0.72.10+0\n [78b55507] Gettext_jll v0.21.0+0\n [7746bdde] Glib_jll v2.76.5+0\n [3b182d85] Graphite2_jll v1.3.14+0\n [528830af] Gumbo_jll v0.10.2+0\n⌃ [0234f1f7] HDF5_jll v1.12.2+2\n [2e76f6c2] HarfBuzz_jll v2.8.1+1\n⌅ [1d5cc7b8] IntelOpenMP_jll v2023.2.0+0\n [aacddb02] JpegTurbo_jll v3.0.1+0\n [c1c5ebd0] LAME_jll v3.100.1+0\n [88015f11] LERC_jll v3.0.0+1\n [1d63c593] LLVMOpenMP_jll v15.0.4+0\n [dd4b983a] LZO_jll v2.10.1+0\n⌅ [e9f186c6] Libffi_jll v3.2.2+1\n [d4300ac3] Libgcrypt_jll v1.8.7+0\n [7e76a0d4] Libglvnd_jll v1.6.0+0\n [7add5ba3] Libgpg_error_jll v1.42.0+0\n [94ce4f54] Libiconv_jll v1.17.0+0\n [4b2f31a3] Libmount_jll v2.35.0+0\n⌅ [89763e89] Libtiff_jll v4.5.1+1\n [38a345b3] Libuuid_jll v2.36.0+0\n [5ced341a] Lz4_jll v1.9.4+0\n⌅ [856f044c] MKL_jll v2022.2.0+0\n [e7412a2a] Ogg_jll v1.3.5+1\n⌅ [9bd350c2] OpenSSH_jll v8.9.0+1\n⌅ [458c3c95] OpenSSL_jll v1.1.23+0\n [efe28fd5] OpenSpecFun_jll v0.5.5+0\n [91d4177d] Opus_jll v1.3.2+0\n [30392449] Pixman_jll v0.42.2+0\n⌃ [c0090381] Qt6Base_jll v6.5.2+2\n⌅ [fb77eaff] Sundials_jll v5.2.1+0\n [a44049a8] Vulkan_Loader_jll v1.3.243+0\n [a2964d1f] Wayland_jll v1.21.0+1\n [2381bf8a] Wayland_protocols_jll v1.25.0+0\n [02c8fc9c] XML2_jll v2.12.2+0\n [aed1982a] XSLT_jll v1.1.34+0\n [ffd25f8a] XZ_jll v5.4.5+0\n [f67eecfb] Xorg_libICE_jll v1.0.10+1\n [c834827a] Xorg_libSM_jll v1.2.3+0\n [4f6342f7] Xorg_libX11_jll v1.8.6+0\n [0c0b7dd1] Xorg_libXau_jll v1.0.11+0\n [935fb764] Xorg_libXcursor_jll v1.2.0+4\n [a3789734] Xorg_libXdmcp_jll v1.1.4+0\n [1082639a] Xorg_libXext_jll v1.3.4+4\n [d091e8ba] Xorg_libXfixes_jll v5.0.3+4\n [a51aa0fd] Xorg_libXi_jll v1.7.10+4\n [d1454406] Xorg_libXinerama_jll v1.1.4+4\n [ec84b674] Xorg_libXrandr_jll v1.5.2+4\n [ea2f1a96] Xorg_libXrender_jll v0.9.10+4\n [14d82f49] Xorg_libpthread_stubs_jll v0.1.1+0\n [c7cfdc94] Xorg_libxcb_jll v1.15.0+0\n [cc61e674] Xorg_libxkbfile_jll v1.1.2+0\n [e920d4aa] Xorg_xcb_util_cursor_jll v0.1.4+0\n [12413925] Xorg_xcb_util_image_jll v0.4.0+1\n [2def613f] Xorg_xcb_util_jll v0.4.0+1\n [975044d2] Xorg_xcb_util_keysyms_jll v0.4.0+1\n [0d47668e] Xorg_xcb_util_renderutil_jll v0.3.9+1\n [c22f9ab0] Xorg_xcb_util_wm_jll v0.4.1+1\n [35661453] Xorg_xkbcomp_jll v1.4.6+0\n [33bec58e] Xorg_xkeyboard_config_jll v2.39.0+0\n [c5fb5394] Xorg_xtrans_jll v1.5.0+0\n [3161d3a3] Zstd_jll v1.5.5+0\n [35ca27e7] eudev_jll v3.2.9+0\n [214eeab7] fzf_jll v0.43.0+0\n [1a1c6b14] gperf_jll v3.1.1+0\n [a4ae2306] libaom_jll v3.4.0+0\n [0ac62f75] libass_jll v0.15.1+0\n [2db6ffa8] libevdev_jll v1.11.0+0\n [f638f0a6] libfdk_aac_jll v2.0.2+0\n [36db933b] libinput_jll v1.18.0+0\n [b53b4c65] libpng_jll v1.6.40+0\n [47bcb7c8] libsass_jll v3.6.4+0\n [f27f6e37] libvorbis_jll v1.3.7+1\n [009596ad] mtdev_jll v1.1.6+0\n [1270edf5] x264_jll v2021.5.5+0\n [dfaa095f] x265_jll v3.5.0+0\n [d8fb68d0] xkbcommon_jll v1.4.1+1\n [0dad84c5] ArgTools v1.1.1\n [56f22d72] Artifacts\n [2a0f44e3] Base64\n [ade2ca70] Dates\n [8ba89e20] Distributed\n [f43a241f] Downloads v1.6.0\n [7b1f6079] FileWatching\n [9fa8497b] Future\n [b77e0a4c] InteractiveUtils\n [4af54fe1] LazyArtifacts\n [b27032c2] LibCURL v0.6.4\n [76f85450] LibGit2\n [8f399da3] Libdl\n [37e2e46d] LinearAlgebra\n [56ddb016] Logging\n [d6f4376e] Markdown\n [a63ad114] Mmap\n [ca575930] NetworkOptions v1.2.0\n [44cfe95a] Pkg v1.9.2\n [de0858da] Printf\n [3fa0cd96] REPL\n [9a3f8284] Random\n [ea8e919c] SHA v0.7.0\n [9e88b42a] Serialization\n [1a1011a3] SharedArrays\n [6462fe0b] Sockets\n [2f01184e] SparseArrays\n [10745b16] Statistics v1.9.0\n [4607b0f0] SuiteSparse\n [fa267f1f] TOML v1.0.3\n [a4e569a6] Tar v1.10.0\n [8dfed614] Test\n [cf7118a7] UUIDs\n [4ec0a83e] Unicode\n [e66e0078] CompilerSupportLibraries_jll v1.0.5+0\n [deac9b47] LibCURL_jll v8.4.0+0\n [29816b5a] LibSSH2_jll v1.11.0+1\n [c8ffd9c3] MbedTLS_jll v2.28.2+0\n [14a3606d] MozillaCACerts_jll v2022.10.11\n [4536629a] OpenBLAS_jll v0.3.21+4\n [05823500] OpenLibm_jll v0.8.1+0\n [efcefdf7] PCRE2_jll v10.42.0+0\n [bea87d4a] SuiteSparse_jll v5.10.1+6\n [83775a58] Zlib_jll v1.2.13+0\n [8e850b90] libblastrampoline_jll v5.8.0+0\n [8e850ede] nghttp2_jll v1.52.0+1\n [3f19e933] p7zip_jll v17.4.0+0\nInfo Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`\n"},"internal":{"uuid":{"value":"c9c6367e-0354-4372-ac19-a78e663ca382"},"ext":{},"units_info":null},"time_series_compression_enabled":false,"components":[{"base_power":100.0,"services":[],"bus":{"value":"300bab18-f7b3-4306-b2cf-52cdd86ce8cd"},"max_constant_active_power":0.5,"available":true,"time_series_container":[],"name":"load1011","max_current_active_power":0.0,"constant_active_power":0.5,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"7edf3228-c9d4-425e-85e7-82fcf74a59aa"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.1,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.1,"max_impedance_reactive_power":0.0},{"base_power":100.0,"services":[],"bus":{"value":"617b36a4-5b52-4458-991d-359c6c18b7b7"},"max_constant_active_power":0.3,"available":true,"time_series_container":[],"name":"load1031","max_current_active_power":0.0,"constant_active_power":0.3,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"a61a7d67-97dc-4e20-9aec-7c26d146a66c"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.1,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.1,"max_impedance_reactive_power":0.0},{"base_power":100.0,"services":[],"bus":{"value":"3a0b59f0-7e79-403c-b398-634538a7490e"},"max_constant_active_power":1.0,"available":true,"time_series_container":[],"name":"load1021","max_current_active_power":0.0,"constant_active_power":1.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"3141f36a-026e-44e4-af36-37db9189dbda"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.3,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.3,"max_impedance_reactive_power":0.0},{"base_power":100.0,"shaft":{"internal":{"uuid":{"value":"13b5b861-502f-4ed9-b7be-31d19e970357"},"ext":null,"units_info":null},"n_states":2,"ext":{},"D":2.0,"states":["δ","ω"],"H":3.148,"__metadata__":{"module":"PowerSystems","type":"SingleMass"}},"states":["δ","ω"],"name":"generator-102-1","n_states":2,"ω_ref":1.0,"__metadata__":{"parameters":["BaseMachine","SingleMass","AVRFixed","TGFixed","PSSFixed"],"module":"PowerSystems","type":"DynamicGenerator"},"avr":{"states_types":[],"internal":{"uuid":{"value":"ce6018fb-64e3-4bf8-9d28-262538c2a944"},"ext":null,"units_info":null},"n_states":0,"ext":{},"V_ref":1.0,"states":[],"Vf":0.0,"__metadata__":{"module":"PowerSystems","type":"AVRFixed"}},"internal":{"uuid":{"value":"20b366a6-682d-44dd-83aa-00026f0044fc"},"ext":null,"units_info":null},"ext":{},"machine":{"internal":{"uuid":{"value":"17f75e75-4b3d-4487-8079-59edb52915c7"},"ext":null,"units_info":null},"n_states":0,"ext":{},"Xd_p":0.2995,"eq_p":0.7087,"R":0.0,"states":[],"__metadata__":{"module":"PowerSystems","type":"BaseMachine"}},"pss":{"V_pss":0.0,"internal":{"uuid":{"value":"0f87c8c0-9221-4826-b0ae-3c19fc8df69b"},"ext":null,"units_info":null},"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"PSSFixed"}},"prime_mover":{"P_ref":1.0,"internal":{"uuid":{"value":"b502ecd4-b32f-4dd0-ac56-4e48772c2ef8"},"ext":null,"units_info":null},"efficiency":1.0,"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"TGFixed"}}},{"load_response":0.0,"name":"1","__metadata__":{"module":"PowerSystems","type":"Area"},"internal":{"uuid":{"value":"25d1a7dc-8845-4e08-99dc-12090db39635"},"ext":null,"units_info":null},"peak_active_power":0.0,"peak_reactive_power":0.0,"time_series_container":[]},{"__metadata__":{"module":"PowerSystems","type":"LoadZone"},"name":"1","internal":{"uuid":{"value":"c05fd9dd-4541-45c6-ac11-a62d0f506746"},"ext":null,"units_info":null},"peak_active_power":1.8,"peak_reactive_power":0.5,"time_series_container":[]},{"services":[],"x":0.12,"b":{"from":0.1,"to":0.1},"r":0.01,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 1-BUS 3-i_1","reactive_power_flow":0.0,"arc":{"value":"4edafeae-0c5a-42c7-8e25-1c5f7e55bf7f"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"0bfbc98b-79ad-4c97-90b6-6ac1d424e747"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"services":[],"x":0.12,"b":{"from":0.1,"to":0.1},"r":0.01,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 1-BUS 2-i_1","reactive_power_flow":0.0,"arc":{"value":"3df90cd2-404c-4810-87ca-ac18b363b93f"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"78c942af-2bee-4d11-9990-32ff3a109b0e"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"services":[],"x":0.9,"b":{"from":0.5,"to":0.5},"r":0.02,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 2-BUS 3-i_1","reactive_power_flow":0.0,"arc":{"value":"4b8b7b6b-9df0-4993-bf22-b8c233662b0d"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"00ef3b10-588f-41f2-9b3e-64cfe4fb77da"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"internal":{"uuid":{"value":"4edafeae-0c5a-42c7-8e25-1c5f7e55bf7f"},"ext":null,"units_info":null},"to":{"value":"617b36a4-5b52-4458-991d-359c6c18b7b7"},"from":{"value":"300bab18-f7b3-4306-b2cf-52cdd86ce8cd"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"3df90cd2-404c-4810-87ca-ac18b363b93f"},"ext":null,"units_info":null},"to":{"value":"3a0b59f0-7e79-403c-b398-634538a7490e"},"from":{"value":"300bab18-f7b3-4306-b2cf-52cdd86ce8cd"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"4b8b7b6b-9df0-4993-bf22-b8c233662b0d"},"ext":null,"units_info":null},"to":{"value":"617b36a4-5b52-4458-991d-359c6c18b7b7"},"from":{"value":"3a0b59f0-7e79-403c-b398-634538a7490e"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"3a0b59f0-7e79-403c-b398-634538a7490e"},"available":true,"time_series_container":[],"name":"generator-102-1","status":true,"active_power":0.7,"dynamic_injector":{"value":"20b366a6-682d-44dd-83aa-00026f0044fc"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"b5aac680-4efe-4621-89a8-36d840d95aa3"},"ext":null,"units_info":null},"reactive_power_limits":{"min":-1.0,"max":1.0},"ext":{"z_source":{"r":0.0,"x":1.0}},"operation_cost":{"start_up":0.0,"fixed":0.0,"shut_down":0.0,"variable":{"cost":[0.0,1.0]},"__metadata__":{"module":"PowerSystems","type":"ThreePartCost"}},"time_limits":null,"must_run":false,"ramp_limits":{"up":3.18,"down":3.18},"time_at_status":10000.0,"active_power_limits":{"min":0.0,"max":3.18},"reactive_power":0.0},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"617b36a4-5b52-4458-991d-359c6c18b7b7"},"available":true,"time_series_container":[],"name":"generator-103-1","status":true,"active_power":0.8,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"113f7fc9-1455-4441-88aa-d9357dc837a3"},"ext":null,"units_info":null},"reactive_power_limits":{"min":-1.0,"max":1.0},"ext":{"z_source":{"r":0.0,"x":1.0}},"operation_cost":{"start_up":0.0,"fixed":0.0,"shut_down":0.0,"variable":{"cost":[0.0,1.0]},"__metadata__":{"module":"PowerSystems","type":"ThreePartCost"}},"time_limits":null,"must_run":false,"ramp_limits":{"up":3.18,"down":3.18},"time_at_status":10000.0,"active_power_limits":{"min":0.0,"max":3.18},"reactive_power":0.0},{"internal_voltage":1.0,"services":[],"bus":{"value":"300bab18-f7b3-4306-b2cf-52cdd86ce8cd"},"available":true,"name":"InfBus","internal_angle":0.0,"active_power":0.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"Source"},"internal":{"uuid":{"value":"82aa4991-82a2-45c2-b9a0-b8218eb5cab9"},"ext":null,"units_info":null},"ext":{},"X_th":5.0e-6,"R_th":0.0,"reactive_power":0.0},{"number":103,"base_voltage":138.0,"bustype":"PV","angle":0.0,"name":"BUS 3","magnitude":1.0059,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"617b36a4-5b52-4458-991d-359c6c18b7b7"},"ext":null,"units_info":null},"area":{"value":"25d1a7dc-8845-4e08-99dc-12090db39635"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"c05fd9dd-4541-45c6-ac11-a62d0f506746"}},{"number":101,"base_voltage":138.0,"bustype":"REF","angle":0.0,"name":"BUS 1","magnitude":1.02,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"300bab18-f7b3-4306-b2cf-52cdd86ce8cd"},"ext":null,"units_info":null},"area":{"value":"25d1a7dc-8845-4e08-99dc-12090db39635"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"c05fd9dd-4541-45c6-ac11-a62d0f506746"}},{"number":102,"base_voltage":138.0,"bustype":"PV","angle":0.0,"name":"BUS 2","magnitude":1.0142,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"3a0b59f0-7e79-403c-b398-634538a7490e"},"ext":null,"units_info":null},"area":{"value":"25d1a7dc-8845-4e08-99dc-12090db39635"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"c05fd9dd-4541-45c6-ac11-a62d0f506746"}}],"validation_descriptor_file":"modified_sys_validation_descriptors.json","time_series_params":{"__metadata__":{"module":"InfrastructureSystems","type":"TimeSeriesParameters"},"resolution":{"value":0,"type":"Minute"},"forecast_params":{"initial_timestamp":"0001-01-01T00:00:00.0","interval":{"value":0,"type":"Minute"},"horizon":0,"count":0,"__metadata__":{"module":"InfrastructureSystems","type":"ForecastParameters"}}}},"units_settings":{"base_value":100.0,"unit_system":"SYSTEM_BASE"},"frequency":60.0,"runchecks":true,"metadata":{"name":null,"description":null,"__metadata__":{"module":"PowerSystems","type":"SystemMetadata"}},"data_format_version":"3.0.0"} \ No newline at end of file +{"internal":{"uuid":{"value":"0a54f5e8-6539-460c-9784-b4b645ba0b1b"},"ext":{},"units_info":null},"data":{"time_series_in_memory":false,"masked_components":[],"version_info":{"julia_version":"1.10.0","package_info":"Status `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/docs/Manifest.toml`\n [47edcb42] ADTypes v0.2.6\n [a4c015fc] ANSIColoredPrinters v0.0.1\n [1520ce14] AbstractTrees v0.4.4\n⌅ [79e6a3ab] Adapt v3.7.2\n [ec485272] ArnoldiMethod v0.2.0\n [4fba245c] ArrayInterface v7.7.0\n [d1d4a3ce] BitFlags v0.1.8\n [62783981] BitTwiddlingConvenienceFunctions v0.1.5\n [a74b3585] Blosc v0.7.3\n [fa961155] CEnum v0.5.0\n [2a0fbf3d] CPUSummary v0.2.4\n [336ed68f] CSV v0.10.12\n [d360d2e6] ChainRulesCore v1.19.0\n [fb6a15b2] CloseOpenIntervals v0.1.12\n [944b1d66] CodecZlib v0.7.3\n [35d6a980] ColorSchemes v3.24.0\n [3da002f7] ColorTypes v0.11.4\n [c3611d14] ColorVectorSpace v0.10.0\n [5ae59095] Colors v0.12.10\n [38540f10] CommonSolve v0.2.4\n [bbf7d656] CommonSubexpressions v0.3.0\n [34da2185] Compat v4.10.1\n [2569d6c7] ConcreteStructs v0.2.3\n [f0e56b4a] ConcurrentUtilities v2.3.0\n [187b0558] ConstructionBase v1.5.4\n [d38c429a] Contour v0.6.2\n [adafc99b] CpuId v0.3.1\n [a8cc5b0e] Crayons v4.1.1\n [9a962f9c] DataAPI v1.15.0\n [a93c6f00] DataFrames v1.6.1\n [864edb3b] DataStructures v0.18.15\n [e2d170a0] DataValueInterfaces v1.0.0\n [8bb1440f] DelimitedFiles v1.9.1\n⌃ [2b5f629d] DiffEqBase v6.130.0\n [163ba53b] DiffResults v1.1.0\n [b552c78f] DiffRules v1.15.1\n [b4f34e82] Distances v0.10.11\n [ffbed154] DocStringExtensions v0.9.3\n⌅ [e30172f5] Documenter v0.27.25\n [35a29f4d] DocumenterTools v0.1.18\n [4e289a0a] EnumX v1.0.4\n [f151be2c] EnzymeCore v0.6.4\n [460bff9d] ExceptionUnwrapping v0.1.10\n [d4d017d3] ExponentialUtilities v1.25.0\n [e2ba6199] ExprTools v0.1.10\n [c87230d0] FFMPEG v0.4.1\n [7034ab61] FastBroadcast v0.2.8\n [9aa1b823] FastClosures v0.3.2\n [29a986be] FastLapackInterface v2.0.0\n [48062228] FilePathsBase v0.9.21\n [1a297f60] FillArrays v1.9.3\n [6a86dc24] FiniteDiff v2.22.0\n [53c48c17] FixedPointNumbers v0.8.4\n [59287772] Formatting v0.4.2\n [f6369f11] ForwardDiff v0.10.36\n [069b7b12] FunctionWrappers v1.1.3\n [77dc65aa] FunctionWrappersWrappers v0.1.3\n⌃ [46192b85] GPUArraysCore v0.1.5\n⌅ [28b8d3ca] GR v0.72.10\n [c145ed77] GenericSchur v0.5.3\n [86223c79] Graphs v1.9.0\n [42e2da0e] Grisu v1.0.2\n [708ec375] Gumbo v0.8.2\n [c8ec2601] H5Zblosc v0.1.2\n [f67ccb44] HDF5 v0.17.1\n [cd3eb016] HTTP v1.10.1\n [3e5b6fbb] HostCPUFeatures v0.1.16\n [b5f81e59] IOCapture v0.2.3\n [615f187c] IfElse v0.1.1\n [d25df0c9] Inflate v0.1.4\n [2cd47ed4] InfrastructureSystems v1.22.1\n [842dd82b] InlineStrings v1.4.0\n [41ab1584] InvertedIndices v1.3.0\n [92d709cd] IrrationalConstants v0.2.2\n [82899510] IteratorInterfaceExtensions v1.0.0\n [1019f520] JLFzf v0.1.7\n [692b3bcd] JLLWrappers v1.5.0\n [682c06a0] JSON v0.21.4\n [0f8b85d8] JSON3 v1.14.0\n [ef3ab10e] KLU v0.4.1\n [ba0b0d4f] Krylov v0.9.5\n [b964fa9f] LaTeXStrings v1.3.1\n [23fbe1c1] Latexify v0.16.1\n [10f19ff3] LayoutPointers v0.1.15\n [50d2b5c4] Lazy v0.15.1\n [1d6d02ad] LeftChildRightSiblingTrees v0.2.0\n [d3d80556] LineSearches v7.2.0\n⌃ [7ed4a6bd] LinearSolve v2.16.2\n [2ab3a3ac] LogExpFunctions v0.3.26\n [e6f89c97] LoggingExtras v1.0.3\n [bdcacae8] LoopVectorization v0.12.166\n [33e6dc65] MKL v0.6.2\n [3da0fdf6] MPIPreferences v0.1.10\n [1914dd2f] MacroTools v0.5.12\n [d125e4d3] ManualMemory v0.1.8\n [299715c1] MarchingCubes v0.1.9\n [739be429] MbedTLS v1.1.9\n [442fdcdd] Measures v0.3.2\n [e1d29d7a] Missings v1.1.0\n [46d2c3a1] MuladdMacro v0.2.4\n [ffc61752] Mustache v1.0.19\n [d41bc354] NLSolversBase v7.8.3\n [2774e3e8] NLsolve v4.5.1\n [77ba4419] NaNMath v1.0.2\n⌅ [8913a72c] NonlinearSolve v2.1.0\n [6fe1bfb0] OffsetArrays v1.13.0\n [4d8831e6] OpenSSL v1.4.1\n [bac558e1] OrderedCollections v1.6.3\n⌃ [1dea7af3] OrdinaryDiffEq v6.58.2\n [65ce6f38] PackageExtensionCompat v1.0.2\n [d96e819e] Parameters v0.12.3\n [46dd5b70] Pardiso v0.5.4\n [69de0a69] Parsers v2.8.1\n [b98c9c47] Pipe v1.3.0\n [ccf2f8ad] PlotThemes v3.1.0\n [995b91a9] PlotUtils v1.4.0\n [91a5bcdd] Plots v1.39.0\n [f517fe37] Polyester v0.7.9\n [1d0040c9] PolyesterWeave v0.2.1\n [2dfb63ee] PooledArrays v1.4.3\n [dd99e9e3] PowerFlowData v1.5.0\n [94fada2c] PowerFlows v0.6.1\n [bed98974] PowerNetworkMatrices v0.9.6\n [398b2ede] PowerSimulationsDynamics v0.13.0 `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl`\n [f00506e0] PowerSystemCaseBuilder v1.2.2\n [bcd98974] PowerSystems v3.2.0\n [d236fae5] PreallocationTools v0.4.17\n [aea7be01] PrecompileTools v1.2.0\n [21216c6a] Preferences v1.4.1\n [08abe8d2] PrettyTables v2.3.1\n [33c8b6b6] ProgressLogging v0.1.4\n [3cdcf5f2] RecipesBase v1.3.4\n [01d81517] RecipesPipeline v0.6.12\n⌅ [731186ca] RecursiveArrayTools v2.38.10\n [f2c3362d] RecursiveFactorization v0.2.21\n [189a3867] Reexport v1.2.2\n [05181044] RelocatableFolders v1.0.1\n [ae029012] Requires v1.3.0\n [7e49a35a] RuntimeGeneratedFunctions v0.5.12\n [94e857df] SIMDTypes v0.1.0\n [476501e8] SLEEFPirates v0.6.42\n [322a6be2] Sass v0.2.0\n⌅ [0bca4576] SciMLBase v1.98.1\n [e9a6253c] SciMLNLSolve v0.1.9\n [c0aeaf25] SciMLOperators v0.3.7\n [6c6a2e73] Scratch v1.2.1\n [91c51154] SentinelArrays v1.4.1\n [efcf1570] Setfield v1.1.1\n [992d4aef] Showoff v1.0.3\n [777ac1f9] SimpleBufferStream v1.1.0\n⌅ [727e6d20] SimpleNonlinearSolve v0.1.23\n [699a6c99] SimpleTraits v0.9.4\n [ce78b400] SimpleUnPack v1.1.0\n [a2af1166] SortingAlgorithms v1.2.1\n [47a9eef4] SparseDiffTools v2.15.0\n [e56a9233] Sparspak v0.3.9\n [276daf66] SpecialFunctions v2.3.1\n [aedffcd0] Static v0.8.8\n [0d7ed370] StaticArrayInterface v1.5.0\n [90137ffa] StaticArrays v1.9.0\n [1e83bf80] StaticArraysCore v1.4.2\n [82ae8749] StatsAPI v1.7.0\n [2913bbd2] StatsBase v0.34.2\n [7792a7ef] StrideArraysCore v0.5.2\n [69024149] StringEncodings v0.3.7\n [892a3eda] StringManipulation v0.3.4\n [856f2bd8] StructTypes v1.10.0\n⌃ [c3572dad] Sundials v4.20.1\n⌅ [2efcf032] SymbolicIndexingInterface v0.2.2\n [3783bdb8] TableTraits v1.0.1\n [bd369af6] Tables v1.11.1\n [62fd8b95] TensorCore v0.1.1\n [5d786b92] TerminalLoggers v0.1.7\n [8290d209] ThreadingUtilities v0.5.2\n⌅ [9e3dc215] TimeSeries v0.23.2\n [a759f4b9] TimerOutputs v0.5.23\n [3bb67fe8] TranscodingStreams v0.10.2\n [d5829a12] TriangularSolve v0.1.20\n [410a4b4d] Tricks v0.1.8\n [781d530d] TruncatedStacktraces v1.4.0\n [5c2747f8] URIs v1.5.1\n [3a884ed6] UnPack v1.0.2\n [1cfade01] UnicodeFun v0.4.1\n [b8865327] UnicodePlots v3.6.3\n [1986cc42] Unitful v1.19.0\n [45397f5d] UnitfulLatexify v1.6.3\n [41fe7b60] Unzip v0.2.0\n [3d5dd08c] VectorizationBase v0.21.65\n [19fa3120] VertexSafeGraphs v0.2.0\n [ea10d353] WeakRefStrings v1.4.2\n [76eceee3] WorkerUtilities v1.6.1\n [ddb6d928] YAML v0.4.9\n [700de1a5] ZygoteRules v0.2.4\n [0b7ba130] Blosc_jll v1.21.5+0\n [6e34b625] Bzip2_jll v1.0.8+0\n [83423d85] Cairo_jll v1.16.1+1\n [2702e6a9] EpollShim_jll v0.0.20230411+0\n [2e619515] Expat_jll v2.5.0+0\n⌃ [b22a6f82] FFMPEG_jll v4.4.2+2\n [a3f928ae] Fontconfig_jll v2.13.93+0\n [d7e528f0] FreeType2_jll v2.13.1+0\n [559328eb] FriBidi_jll v1.0.10+0\n [0656b61e] GLFW_jll v3.3.9+0\n⌅ [d2c73de3] GR_jll v0.72.10+0\n [78b55507] Gettext_jll v0.21.0+0\n [7746bdde] Glib_jll v2.76.5+0\n [3b182d85] Graphite2_jll v1.3.14+0\n [528830af] Gumbo_jll v0.10.2+0\n⌃ [0234f1f7] HDF5_jll v1.12.2+2\n [2e76f6c2] HarfBuzz_jll v2.8.1+1\n⌅ [1d5cc7b8] IntelOpenMP_jll v2023.2.0+0\n [aacddb02] JpegTurbo_jll v3.0.1+0\n [c1c5ebd0] LAME_jll v3.100.1+0\n [88015f11] LERC_jll v3.0.0+1\n [1d63c593] LLVMOpenMP_jll v15.0.7+0\n [dd4b983a] LZO_jll v2.10.1+0\n⌅ [e9f186c6] Libffi_jll v3.2.2+1\n [d4300ac3] Libgcrypt_jll v1.8.7+0\n [7e76a0d4] Libglvnd_jll v1.6.0+0\n [7add5ba3] Libgpg_error_jll v1.42.0+0\n [94ce4f54] Libiconv_jll v1.17.0+0\n [4b2f31a3] Libmount_jll v2.35.0+0\n⌅ [89763e89] Libtiff_jll v4.5.1+1\n [38a345b3] Libuuid_jll v2.36.0+0\n [5ced341a] Lz4_jll v1.9.4+0\n⌅ [856f044c] MKL_jll v2022.2.0+0\n [e7412a2a] Ogg_jll v1.3.5+1\n⌅ [9bd350c2] OpenSSH_jll v8.9.0+1\n⌅ [458c3c95] OpenSSL_jll v1.1.23+0\n [efe28fd5] OpenSpecFun_jll v0.5.5+0\n [91d4177d] Opus_jll v1.3.2+0\n [30392449] Pixman_jll v0.42.2+0\n⌃ [c0090381] Qt6Base_jll v6.5.2+2\n⌅ [fb77eaff] Sundials_jll v5.2.2+0\n [a44049a8] Vulkan_Loader_jll v1.3.243+0\n [a2964d1f] Wayland_jll v1.21.0+1\n [2381bf8a] Wayland_protocols_jll v1.31.0+0\n [02c8fc9c] XML2_jll v2.12.2+0\n [aed1982a] XSLT_jll v1.1.34+0\n [ffd25f8a] XZ_jll v5.4.5+0\n [f67eecfb] Xorg_libICE_jll v1.0.10+1\n [c834827a] Xorg_libSM_jll v1.2.3+0\n [4f6342f7] Xorg_libX11_jll v1.8.6+0\n [0c0b7dd1] Xorg_libXau_jll v1.0.11+0\n [935fb764] Xorg_libXcursor_jll v1.2.0+4\n [a3789734] Xorg_libXdmcp_jll v1.1.4+0\n [1082639a] Xorg_libXext_jll v1.3.4+4\n [d091e8ba] Xorg_libXfixes_jll v5.0.3+4\n [a51aa0fd] Xorg_libXi_jll v1.7.10+4\n [d1454406] Xorg_libXinerama_jll v1.1.4+4\n [ec84b674] Xorg_libXrandr_jll v1.5.2+4\n [ea2f1a96] Xorg_libXrender_jll v0.9.10+4\n [14d82f49] Xorg_libpthread_stubs_jll v0.1.1+0\n [c7cfdc94] Xorg_libxcb_jll v1.15.0+0\n [cc61e674] Xorg_libxkbfile_jll v1.1.2+0\n [e920d4aa] Xorg_xcb_util_cursor_jll v0.1.4+0\n [12413925] Xorg_xcb_util_image_jll v0.4.0+1\n [2def613f] Xorg_xcb_util_jll v0.4.0+1\n [975044d2] Xorg_xcb_util_keysyms_jll v0.4.0+1\n [0d47668e] Xorg_xcb_util_renderutil_jll v0.3.9+1\n [c22f9ab0] Xorg_xcb_util_wm_jll v0.4.1+1\n [35661453] Xorg_xkbcomp_jll v1.4.6+0\n [33bec58e] Xorg_xkeyboard_config_jll v2.39.0+0\n [c5fb5394] Xorg_xtrans_jll v1.5.0+0\n [3161d3a3] Zstd_jll v1.5.5+0\n [35ca27e7] eudev_jll v3.2.9+0\n [214eeab7] fzf_jll v0.43.0+0\n [1a1c6b14] gperf_jll v3.1.1+0\n [a4ae2306] libaom_jll v3.4.0+0\n [0ac62f75] libass_jll v0.15.1+0\n [2db6ffa8] libevdev_jll v1.11.0+0\n [f638f0a6] libfdk_aac_jll v2.0.2+0\n [36db933b] libinput_jll v1.18.0+0\n [b53b4c65] libpng_jll v1.6.40+0\n [47bcb7c8] libsass_jll v3.6.4+0\n [f27f6e37] libvorbis_jll v1.3.7+1\n [009596ad] mtdev_jll v1.1.6+0\n [1270edf5] x264_jll v2021.5.5+0\n [dfaa095f] x265_jll v3.5.0+0\n [d8fb68d0] xkbcommon_jll v1.4.1+1\n [0dad84c5] ArgTools v1.1.1\n [56f22d72] Artifacts\n [2a0f44e3] Base64\n [ade2ca70] Dates\n [8ba89e20] Distributed\n [f43a241f] Downloads v1.6.0\n [7b1f6079] FileWatching\n [9fa8497b] Future\n [b77e0a4c] InteractiveUtils\n [4af54fe1] LazyArtifacts\n [b27032c2] LibCURL v0.6.4\n [76f85450] LibGit2\n [8f399da3] Libdl\n [37e2e46d] LinearAlgebra\n [56ddb016] Logging\n [d6f4376e] Markdown\n [a63ad114] Mmap\n [ca575930] NetworkOptions v1.2.0\n [44cfe95a] Pkg v1.10.0\n [de0858da] Printf\n [3fa0cd96] REPL\n [9a3f8284] Random\n [ea8e919c] SHA v0.7.0\n [9e88b42a] Serialization\n [1a1011a3] SharedArrays\n [6462fe0b] Sockets\n [2f01184e] SparseArrays v1.10.0\n [10745b16] Statistics v1.10.0\n [4607b0f0] SuiteSparse\n [fa267f1f] TOML v1.0.3\n [a4e569a6] Tar v1.10.0\n [8dfed614] Test\n [cf7118a7] UUIDs\n [4ec0a83e] Unicode\n [e66e0078] CompilerSupportLibraries_jll v1.0.5+1\n [deac9b47] LibCURL_jll v8.4.0+0\n [e37daf67] LibGit2_jll v1.6.4+0\n [29816b5a] LibSSH2_jll v1.11.0+1\n [c8ffd9c3] MbedTLS_jll v2.28.2+1\n [14a3606d] MozillaCACerts_jll v2023.1.10\n [4536629a] OpenBLAS_jll v0.3.23+2\n [05823500] OpenLibm_jll v0.8.1+2\n [efcefdf7] PCRE2_jll v10.42.0+1\n [bea87d4a] SuiteSparse_jll v7.2.1+1\n [83775a58] Zlib_jll v1.2.13+1\n [8e850b90] libblastrampoline_jll v5.8.0+1\n [8e850ede] nghttp2_jll v1.52.0+1\n [3f19e933] p7zip_jll v17.4.0+2\nInfo Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`\n"},"internal":{"uuid":{"value":"c060e4d4-f885-448b-a8a4-d1e3174716b5"},"ext":{},"units_info":null},"time_series_compression_enabled":false,"components":[{"__metadata__":{"module":"PowerSystems","type":"LoadZone"},"name":"1","internal":{"uuid":{"value":"375cf694-3b28-4391-b486-07e0cef03a17"},"ext":null,"units_info":null},"peak_active_power":1.8,"peak_reactive_power":0.5,"time_series_container":[]},{"internal_voltage":1.0,"services":[],"bus":{"value":"73b8ffa7-e539-4e0c-bed9-20ab53ef3ef1"},"available":true,"name":"InfBus","internal_angle":0.0,"active_power":0.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"Source"},"internal":{"uuid":{"value":"e99aa35a-06a4-47fd-91ab-eebdc6e9fc91"},"ext":null,"units_info":null},"ext":{},"X_th":5.0e-6,"R_th":0.0,"reactive_power":0.0},{"base_power":100.0,"shaft":{"internal":{"uuid":{"value":"dfa8fed4-7aa4-454f-8892-da0e0c72036e"},"ext":null,"units_info":null},"n_states":2,"ext":{},"D":2.0,"states":["δ","ω"],"H":3.148,"__metadata__":{"module":"PowerSystems","type":"SingleMass"}},"states":["δ","ω"],"name":"generator-102-1","n_states":2,"ω_ref":1.0,"__metadata__":{"parameters":["BaseMachine","SingleMass","AVRFixed","TGFixed","PSSFixed"],"module":"PowerSystems","type":"DynamicGenerator"},"avr":{"states_types":[],"internal":{"uuid":{"value":"a597b733-dd50-40e6-be74-6d4b75e94007"},"ext":null,"units_info":null},"n_states":0,"ext":{},"V_ref":1.0,"states":[],"Vf":0.0,"__metadata__":{"module":"PowerSystems","type":"AVRFixed"}},"internal":{"uuid":{"value":"5bfd6556-b1a2-4e11-8ebc-050edcce93d4"},"ext":null,"units_info":null},"ext":{},"machine":{"internal":{"uuid":{"value":"3f725a55-be65-4143-8356-4eb090287b05"},"ext":null,"units_info":null},"n_states":0,"ext":{},"Xd_p":0.2995,"eq_p":0.7087,"R":0.0,"states":[],"__metadata__":{"module":"PowerSystems","type":"BaseMachine"}},"pss":{"V_pss":0.0,"internal":{"uuid":{"value":"f7ea80ab-826f-41d2-91b0-a16999611031"},"ext":null,"units_info":null},"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"PSSFixed"}},"prime_mover":{"P_ref":1.0,"internal":{"uuid":{"value":"342f0411-e146-458d-8571-fc04eaac4395"},"ext":null,"units_info":null},"efficiency":1.0,"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"TGFixed"}}},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"3c00b01e-11e4-4067-a0db-c3ec99831f0c"},"available":true,"time_series_container":[],"name":"generator-102-1","status":true,"active_power":0.7,"dynamic_injector":{"value":"5bfd6556-b1a2-4e11-8ebc-050edcce93d4"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"133d8fc9-27d5-4272-bb58-77f32491c3bf"},"ext":null,"units_info":null},"reactive_power_limits":{"min":-1.0,"max":1.0},"ext":{"z_source":{"r":0.0,"x":1.0}},"operation_cost":{"start_up":0.0,"fixed":0.0,"shut_down":0.0,"variable":{"cost":[0.0,1.0]},"__metadata__":{"module":"PowerSystems","type":"ThreePartCost"}},"time_limits":null,"must_run":false,"ramp_limits":{"up":3.18,"down":3.18},"time_at_status":10000.0,"active_power_limits":{"min":0.0,"max":3.18},"reactive_power":0.0},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"65fd1de6-338f-46b2-bf87-01f6af971198"},"available":true,"time_series_container":[],"name":"generator-103-1","status":true,"active_power":0.8,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"2b31e530-868f-4e1f-bbdb-f0ef75531981"},"ext":null,"units_info":null},"reactive_power_limits":{"min":-1.0,"max":1.0},"ext":{"z_source":{"r":0.0,"x":1.0}},"operation_cost":{"start_up":0.0,"fixed":0.0,"shut_down":0.0,"variable":{"cost":[0.0,1.0]},"__metadata__":{"module":"PowerSystems","type":"ThreePartCost"}},"time_limits":null,"must_run":false,"ramp_limits":{"up":3.18,"down":3.18},"time_at_status":10000.0,"active_power_limits":{"min":0.0,"max":3.18},"reactive_power":0.0},{"load_response":0.0,"name":"1","__metadata__":{"module":"PowerSystems","type":"Area"},"internal":{"uuid":{"value":"b7336194-2919-44d1-9d99-8d79bea19658"},"ext":null,"units_info":null},"peak_active_power":0.0,"peak_reactive_power":0.0,"time_series_container":[]},{"number":103,"base_voltage":138.0,"bustype":"PV","angle":0.0,"name":"BUS 3","magnitude":1.0059,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"65fd1de6-338f-46b2-bf87-01f6af971198"},"ext":null,"units_info":null},"area":{"value":"b7336194-2919-44d1-9d99-8d79bea19658"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"375cf694-3b28-4391-b486-07e0cef03a17"}},{"number":101,"base_voltage":138.0,"bustype":"REF","angle":0.0,"name":"BUS 1","magnitude":1.02,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"73b8ffa7-e539-4e0c-bed9-20ab53ef3ef1"},"ext":null,"units_info":null},"area":{"value":"b7336194-2919-44d1-9d99-8d79bea19658"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"375cf694-3b28-4391-b486-07e0cef03a17"}},{"number":102,"base_voltage":138.0,"bustype":"PV","angle":0.0,"name":"BUS 2","magnitude":1.0142,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"3c00b01e-11e4-4067-a0db-c3ec99831f0c"},"ext":null,"units_info":null},"area":{"value":"b7336194-2919-44d1-9d99-8d79bea19658"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"375cf694-3b28-4391-b486-07e0cef03a17"}},{"internal":{"uuid":{"value":"f23f5fbc-d345-4858-b2f4-61dc7cfb156c"},"ext":null,"units_info":null},"to":{"value":"65fd1de6-338f-46b2-bf87-01f6af971198"},"from":{"value":"73b8ffa7-e539-4e0c-bed9-20ab53ef3ef1"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"59409a49-d1c5-460b-ba9c-a812250ca2d8"},"ext":null,"units_info":null},"to":{"value":"3c00b01e-11e4-4067-a0db-c3ec99831f0c"},"from":{"value":"73b8ffa7-e539-4e0c-bed9-20ab53ef3ef1"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"b92b3451-541f-4007-9e15-400735d2714c"},"ext":null,"units_info":null},"to":{"value":"65fd1de6-338f-46b2-bf87-01f6af971198"},"from":{"value":"3c00b01e-11e4-4067-a0db-c3ec99831f0c"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"services":[],"x":0.12,"b":{"from":0.1,"to":0.1},"r":0.01,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 1-BUS 3-i_1","reactive_power_flow":0.0,"arc":{"value":"f23f5fbc-d345-4858-b2f4-61dc7cfb156c"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"5f88f6ff-8319-4bc9-a7de-f4b6f70f05a9"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"services":[],"x":0.12,"b":{"from":0.1,"to":0.1},"r":0.01,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 1-BUS 2-i_1","reactive_power_flow":0.0,"arc":{"value":"59409a49-d1c5-460b-ba9c-a812250ca2d8"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"b325d8a3-0f6c-4adf-b6db-a8e774e46bf5"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"services":[],"x":0.9,"b":{"from":0.5,"to":0.5},"r":0.02,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 2-BUS 3-i_1","reactive_power_flow":0.0,"arc":{"value":"b92b3451-541f-4007-9e15-400735d2714c"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"e9ae7b8f-3ad9-4e05-a257-77bbc742e67e"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"base_power":100.0,"services":[],"bus":{"value":"73b8ffa7-e539-4e0c-bed9-20ab53ef3ef1"},"max_constant_active_power":0.5,"available":true,"time_series_container":[],"name":"load1011","max_current_active_power":0.0,"constant_active_power":0.5,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"79de4362-d335-4f68-a481-58f6635183f8"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.1,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.1,"max_impedance_reactive_power":0.0},{"base_power":100.0,"services":[],"bus":{"value":"65fd1de6-338f-46b2-bf87-01f6af971198"},"max_constant_active_power":0.3,"available":true,"time_series_container":[],"name":"load1031","max_current_active_power":0.0,"constant_active_power":0.3,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"a9d26c07-1ded-4084-8bad-b2eb9c9fd925"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.1,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.1,"max_impedance_reactive_power":0.0},{"base_power":100.0,"services":[],"bus":{"value":"3c00b01e-11e4-4067-a0db-c3ec99831f0c"},"max_constant_active_power":1.0,"available":true,"time_series_container":[],"name":"load1021","max_current_active_power":0.0,"constant_active_power":1.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"e687cd83-b2ce-4e0f-8abb-324b548124bd"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.3,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.3,"max_impedance_reactive_power":0.0}],"validation_descriptor_file":"modified_sys_validation_descriptors.json","time_series_params":{"__metadata__":{"module":"InfrastructureSystems","type":"TimeSeriesParameters"},"resolution":{"value":0,"type":"Minute"},"forecast_params":{"initial_timestamp":"0001-01-01T00:00:00.0","interval":{"value":0,"type":"Minute"},"horizon":0,"count":0,"__metadata__":{"module":"InfrastructureSystems","type":"ForecastParameters"}}}},"units_settings":{"base_value":100.0,"unit_system":"SYSTEM_BASE"},"frequency":60.0,"runchecks":true,"metadata":{"name":null,"description":null,"__metadata__":{"module":"PowerSystems","type":"SystemMetadata"}},"data_format_version":"3.0.0"} \ No newline at end of file diff --git a/dev/tutorials/modified_sys_validation_descriptors.json b/dev/tutorials/modified_sys_validation_descriptors.json index 8e5ff6bcd..ba401f09a 100644 --- a/dev/tutorials/modified_sys_validation_descriptors.json +++ b/dev/tutorials/modified_sys_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","default":"VariableCost((0.0, 0.0))","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"energy_shortage_cost","default":"0.0","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","default":"0.0","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"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"violation_penalty","default":"INFINITE_COST","data_type":"Float64","null_value":"0.0","comment":"Penalty for violating the flow limits in the interface"},{"name":"direction_mapping","default":"Dict{String, Int}()","data_type":"Dict{String, Int}","null_value":"Dict{String, Int}()","comment":"Map to set of multiplier to the flow in the line for cases when the line has a reverse direction with respect to the interface"},{"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 branches that make up an interface or corridor for the transfer of power.","struct_name":"TransmissionInterface","supertype":"Service"},{"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, ACBusTypes}","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":"ACBus","supertype":"Bus"},{"fields":[{"name":"number","data_type":"Int","null_value":"0","comment":"number associated with the DC bus"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init","comment":"the name of the DC bus"},{"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 DC bus"},{"name":"load_zone","default":"nothing","data_type":"Union{Nothing, LoadZone}","null_value":"nothing","comment":"the load zone containing the DC 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 DC bus.","struct_name":"DCBus","supertype":"Bus"},{"fields":[{"name":"from","data_type":"Bus","null_value":"ACBus(nothing)","comment":"The initial bus"},{"name":"to","data_type":"Bus","null_value":"ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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":"TwoTerminalHVDCLine","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(ACBus(nothing), ACBus(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":"TwoTerminalVSCDCLine","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(DCBus(nothing), DCBus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","comment":"Series Resistance system per-unit value"},{"name":"l","data_type":"Float64","null_value":"0.0","comment":"Series Inductance system per-unit value"},{"name":"c","data_type":"Float64","null_value":"0.0","comment":"Shunt capacitance system per-unit value"},{"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":"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":"a HVDC T-Model DC line.","struct_name":"TModelHVDCLine","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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(nothing)"},{"name":"dc_bus","data_type":"DCBus","null_value":"DCBus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Active Power on the DCSide","valid_range":"active_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 converter. <= 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)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the converter 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":"efficiency","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion efficiency from AC Power to DC Power"},{"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":"Interconnecting Power Converter (IPC) for transforming power from an ACBus to a DCBus","struct_name":"InterconnectingConverter","supertype":"StaticInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"K","data_type":"Float64","null_value":0,"comment":"Gain in pu","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":"eps()"}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"Rmin","data_type":"Float64","null_value":0,"comment":"Reactor minimum Mvar","valid_range":{"max":null,"min":0}},{"name":"Vmax","data_type":"Float64","null_value":0,"comment":"Maximum voltage in pu","valid_range":{"max":null,"min":0}},{"name":"Vmin","data_type":"Float64","null_value":0,"comment":"Minimum voltage in pu","valid_range":{"max":null,"min":0}},{"name":"CBase","data_type":"Float64","null_value":0,"comment":"Capacitor Mvar","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":"R_th","data_type":"Float64","comment":"Source Thevenin resistance","internal_default":"0.0"},{"name":"X_th","data_type":"Float64","comment":"Source Thevenin reactance","internal_default":"0.0"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tthy: thyristor,\n\tvr1: regulator output 1,\n\tvr2: regulator output 2","internal_default":"[:thy, :vr1, :vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"CSVGN1 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 static shunt compensator: CSVGN1 in PSSE","struct_name":"CSVGN1","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(nothing)"},{"name":"prime_mover_type","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":"StorageManagementCost()","data_type":"Union{StorageManagementCost, MarketBidCost}","null_value":"StorageManagementCost()"},{"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":"ACBus","null_value":"ACBus(nothing)"},{"name":"prime_mover_type","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":"Union{StorageManagementCost, MarketBidCost}","data_type":"StorageManagementCost","null_value":"StorageManagementCost()"},{"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":"cycle_limits","default":"1e4","data_type":"Int","null_value":"0","comment":"Storage Maximum number of cycles per year"},{"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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","needs_conversion":true,"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 saturation time_frame in minutes to provide reserve contribution","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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"sustained_time","default":"14400.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 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":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 16 states","internal_default":16},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 16 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE Dual-Input Stabilizer Model","struct_name":"PSS2A","supertype":"PSS"},{"fields":[{"name":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T10","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T11","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vs1_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"First input limits `(Vs1_min, Vs1_max)`"},{"name":"Vs2_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Second input limits `(Vs2_min, Vs2_max)`"},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag, \n\tx_p17: 3rd lead-lag,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16, :x_p17]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 17 states","internal_default":17},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 17 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE 421.5 2005 PSS2B IEEE Dual-Input Stabilizer Model","struct_name":"PSS2B","supertype":"PSS"},{"fields":[{"name":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":7,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T10","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T11","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vs1_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"First input limits `(Vs1_min, Vs1_max)`"},{"name":"Vs2_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Second input limits `(Vs2_min, Vs2_max)`"},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"name":"T12","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T13","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth lead-lag block","valid_range":{"max":null,"min":0}},{"name":"PSS_Hysteresis_param","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output hysteresis parameters `(PSSOFF, PSSON)`"},{"name":"Xcomp","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"Tcomp","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Time measured with compensated frequency","valid_range":{"max":null,"min":"eps()"}},{"name":"hysteresis_binary_logic","default":"1","data_type":"Int","null_value":0,"comment":"Hysteresis memory variable"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag, \n\tx_p17: 3rd lead-lag, \n\tx_p18: 4th lead-lag, \n\tx_p19: washout block for compensated frequency,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16, :x_p17, :x_p18, :x_p19]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 19 states","internal_default":19},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 19 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE 421.5 2016 PSS2C IEEE Dual-Input Stabilizer Model","struct_name":"PSS2C","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()"}},{"valiation_action":"error","name":"Tf","data_type":"Float64","null_value":0,"comment":"Filter Time constant","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":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Magnitude (Circular) Current Controller Limiter","struct_name":"MagnitudeCurrentLimiter","supertype":"InverterLimiter"},{"fields":[{"name":"Id_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on d-axis current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"Iq_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on d-axis current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Instantaneous (Square) Current Controller Limiter","struct_name":"InstantaneousCurrentLimiter","supertype":"InverterLimiter"},{"fields":[{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ϕ_I","data_type":"Float64","null_value":0,"comment":"Pre-defined angle (measured against the d-axis) for Iref once limit is hit","valid_range":{"max":1.571,"min":-1.571}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Priority-Based Current Controller Limiter","struct_name":"PriorityCurrentLimiter","supertype":"InverterLimiter"},{"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":"ACBus","null_value":"ACBus(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","default":"VariableCost((0.0, 0.0))","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"energy_shortage_cost","default":"0.0","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","default":"0.0","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"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"violation_penalty","default":"INFINITE_COST","data_type":"Float64","null_value":"0.0","comment":"Penalty for violating the flow limits in the interface"},{"name":"direction_mapping","default":"Dict{String, Int}()","data_type":"Dict{String, Int}","null_value":"Dict{String, Int}()","comment":"Map to set of multiplier to the flow in the line for cases when the line has a reverse direction with respect to the interface"},{"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 branches that make up an interface or corridor for the transfer of power.","struct_name":"TransmissionInterface","supertype":"Service"},{"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, ACBusTypes}","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":"ACBus","supertype":"Bus"},{"fields":[{"name":"number","data_type":"Int","null_value":"0","comment":"number associated with the DC bus"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init","comment":"the name of the DC bus"},{"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 DC bus"},{"name":"load_zone","default":"nothing","data_type":"Union{Nothing, LoadZone}","null_value":"nothing","comment":"the load zone containing the DC 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 DC bus.","struct_name":"DCBus","supertype":"Bus"},{"fields":[{"name":"from","data_type":"Bus","null_value":"ACBus(nothing)","comment":"The initial bus"},{"name":"to","data_type":"Bus","null_value":"ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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":"TwoTerminalHVDCLine","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(ACBus(nothing), ACBus(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":"TwoTerminalVSCDCLine","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(DCBus(nothing), DCBus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","comment":"Series Resistance system per-unit value"},{"name":"l","data_type":"Float64","null_value":"0.0","comment":"Series Inductance system per-unit value"},{"name":"c","data_type":"Float64","null_value":"0.0","comment":"Shunt capacitance system per-unit value"},{"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":"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":"a HVDC T-Model DC line.","struct_name":"TModelHVDCLine","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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(nothing)"},{"name":"dc_bus","data_type":"DCBus","null_value":"DCBus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Active Power on the DCSide","valid_range":"active_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 converter. <= 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)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the converter 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":"efficiency","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion efficiency from AC Power to DC Power"},{"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":"Interconnecting Power Converter (IPC) for transforming power from an ACBus to a DCBus","struct_name":"InterconnectingConverter","supertype":"StaticInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"K","data_type":"Float64","null_value":0,"comment":"Gain in pu","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":"eps()"}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"Rmin","data_type":"Float64","null_value":0,"comment":"Reactor minimum Mvar","valid_range":{"max":null,"min":0}},{"name":"Vmax","data_type":"Float64","null_value":0,"comment":"Maximum voltage in pu","valid_range":{"max":null,"min":0}},{"name":"Vmin","data_type":"Float64","null_value":0,"comment":"Minimum voltage in pu","valid_range":{"max":null,"min":0}},{"name":"CBase","data_type":"Float64","null_value":0,"comment":"Capacitor Mvar","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":"R_th","data_type":"Float64","comment":"Source Thevenin resistance","internal_default":"0.0"},{"name":"X_th","data_type":"Float64","comment":"Source Thevenin reactance","internal_default":"0.0"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tthy: thyristor,\n\tvr1: regulator output 1,\n\tvr2: regulator output 2","internal_default":"[:thy, :vr1, :vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"CSVGN1 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 static shunt compensator: CSVGN1 in PSSE","struct_name":"CSVGN1","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(nothing)"},{"name":"prime_mover_type","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":"StorageManagementCost()","data_type":"Union{StorageManagementCost, MarketBidCost}","null_value":"StorageManagementCost()"},{"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":"ACBus","null_value":"ACBus(nothing)"},{"name":"prime_mover_type","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":"Union{StorageManagementCost, MarketBidCost}","data_type":"StorageManagementCost","null_value":"StorageManagementCost()"},{"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":"cycle_limits","default":"1e4","data_type":"Int","null_value":"0","comment":"Storage Maximum number of cycles per year"},{"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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","needs_conversion":true,"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 saturation time_frame in minutes to provide reserve contribution","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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"sustained_time","default":"14400.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 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":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 16 states","internal_default":16},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 16 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE Dual-Input Stabilizer Model","struct_name":"PSS2A","supertype":"PSS"},{"fields":[{"name":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T10","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T11","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vs1_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"First input limits `(Vs1_min, Vs1_max)`"},{"name":"Vs2_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Second input limits `(Vs2_min, Vs2_max)`"},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag, \n\tx_p17: 3rd lead-lag,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16, :x_p17]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 17 states","internal_default":17},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 17 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE 421.5 2005 PSS2B IEEE Dual-Input Stabilizer Model","struct_name":"PSS2B","supertype":"PSS"},{"fields":[{"name":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":7,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T10","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T11","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vs1_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"First input limits `(Vs1_min, Vs1_max)`"},{"name":"Vs2_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Second input limits `(Vs2_min, Vs2_max)`"},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"name":"T12","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T13","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth lead-lag block","valid_range":{"max":null,"min":0}},{"name":"PSS_Hysteresis_param","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output hysteresis parameters `(PSSOFF, PSSON)`"},{"name":"Xcomp","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"Tcomp","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Time measured with compensated frequency","valid_range":{"max":null,"min":"eps()"}},{"name":"hysteresis_binary_logic","default":"1","data_type":"Int","null_value":0,"comment":"Hysteresis memory variable"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag, \n\tx_p17: 3rd lead-lag, \n\tx_p18: 4th lead-lag, \n\tx_p19: washout block for compensated frequency,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16, :x_p17, :x_p18, :x_p19]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 19 states","internal_default":19},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 19 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE 421.5 2016 PSS2C IEEE Dual-Input Stabilizer Model","struct_name":"PSS2C","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":"T1","data_type":"Float64","null_value":0,"comment":"Governor mechanism time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Turbine power time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Turbine exhaust temperature time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"K","data_type":"Float64","null_value":0,"comment":"Governor gain (reciprocal of droop)","valid_range":{"max":100,"min":"eps()"}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"Governor lead time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"T5","data_type":"Float64","null_value":0,"comment":"Governor lag time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"T6","data_type":"Float64","null_value":0,"comment":"Actuator time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"Td","data_type":"Float64","null_value":0,"comment":"Engine time delay","valid_range":{"max":100,"min":"eps()"}},{"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 DEGOV model are:\n\tx_ecb1: Electric control box 1,\n\tx_ecb2: Electric control box 2,\n\tx_a1: Actuator 1,\n\tx_a2: Actuator 2,\n\tx_a3: Actuator 3,","internal_default":"[:x_ecb1, :x_ecb2, :x_a1, :x_a2, :x_a3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"DEGOV has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"DEGOV has 5 differential states","internal_default":"[StateTypes.Differential, 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 Woodward Diesel Governor Model. DEGOV in PowerWorld.","struct_name":"DEGOV","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()"}},{"valiation_action":"error","name":"Tf","data_type":"Float64","null_value":0,"comment":"Filter Time constant","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":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Magnitude (Circular) Current Controller Limiter","struct_name":"MagnitudeCurrentLimiter","supertype":"InverterLimiter"},{"fields":[{"name":"Id_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on d-axis current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"Iq_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on d-axis current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Instantaneous (Square) Current Controller Limiter","struct_name":"InstantaneousCurrentLimiter","supertype":"InverterLimiter"},{"fields":[{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ϕ_I","data_type":"Float64","null_value":0,"comment":"Pre-defined angle (measured against the d-axis) for Iref once limit is hit","valid_range":{"max":1.571,"min":-1.571}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Priority-Based Current Controller Limiter","struct_name":"PriorityCurrentLimiter","supertype":"InverterLimiter"},{"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":"ACBus","null_value":"ACBus(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/dev/tutorials/threebus_sys.json b/dev/tutorials/threebus_sys.json index 660e010dc..ed3fdae1b 100644 --- a/dev/tutorials/threebus_sys.json +++ b/dev/tutorials/threebus_sys.json @@ -1 +1 @@ -{"internal":{"uuid":{"value":"61b53850-71bc-41fe-80e7-3f4d7241ac5f"},"ext":{},"units_info":null},"data":{"time_series_in_memory":false,"masked_components":[],"version_info":{"julia_version":"1.9.4","package_info":"Status `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/docs/Manifest.toml`\n [47edcb42] ADTypes v0.2.5\n [a4c015fc] ANSIColoredPrinters v0.0.1\n [1520ce14] AbstractTrees v0.4.4\n [79e6a3ab] Adapt v3.7.2\n [ec485272] ArnoldiMethod v0.2.0\n [4fba245c] ArrayInterface v7.6.1\n [d1d4a3ce] BitFlags v0.1.8\n [62783981] BitTwiddlingConvenienceFunctions v0.1.5\n [a74b3585] Blosc v0.7.3\n [fa961155] CEnum v0.5.0\n [2a0fbf3d] CPUSummary v0.2.4\n [336ed68f] CSV v0.10.11\n [d360d2e6] ChainRulesCore v1.18.0\n [fb6a15b2] CloseOpenIntervals v0.1.12\n [944b1d66] CodecZlib v0.7.3\n [35d6a980] ColorSchemes v3.24.0\n [3da002f7] ColorTypes v0.11.4\n [c3611d14] ColorVectorSpace v0.10.0\n [5ae59095] Colors v0.12.10\n [38540f10] CommonSolve v0.2.4\n [bbf7d656] CommonSubexpressions v0.3.0\n [34da2185] Compat v4.10.1\n [2569d6c7] ConcreteStructs v0.2.3\n [f0e56b4a] ConcurrentUtilities v2.3.0\n [187b0558] ConstructionBase v1.5.4\n [d38c429a] Contour v0.6.2\n [adafc99b] CpuId v0.3.1\n [a8cc5b0e] Crayons v4.1.1\n [9a962f9c] DataAPI v1.15.0\n [a93c6f00] DataFrames v1.6.1\n [864edb3b] DataStructures v0.18.15\n [e2d170a0] DataValueInterfaces v1.0.0\n [8bb1440f] DelimitedFiles v1.9.1\n⌃ [2b5f629d] DiffEqBase v6.130.0\n [163ba53b] DiffResults v1.1.0\n [b552c78f] DiffRules v1.15.1\n [b4f34e82] Distances v0.10.11\n [ffbed154] DocStringExtensions v0.9.3\n⌅ [e30172f5] Documenter v0.27.25\n [35a29f4d] DocumenterTools v0.1.18\n [4e289a0a] EnumX v1.0.4\n [f151be2c] EnzymeCore v0.6.4\n [460bff9d] ExceptionUnwrapping v0.1.9\n [d4d017d3] ExponentialUtilities v1.25.0\n [e2ba6199] ExprTools v0.1.10\n [c87230d0] FFMPEG v0.4.1\n [7034ab61] FastBroadcast v0.2.8\n [9aa1b823] FastClosures v0.3.2\n [29a986be] FastLapackInterface v2.0.0\n [48062228] FilePathsBase v0.9.21\n [1a297f60] FillArrays v1.9.2\n [6a86dc24] FiniteDiff v2.21.1\n [53c48c17] FixedPointNumbers v0.8.4\n [59287772] Formatting v0.4.2\n [f6369f11] ForwardDiff v0.10.36\n [069b7b12] FunctionWrappers v1.1.3\n [77dc65aa] FunctionWrappersWrappers v0.1.3\n [46192b85] GPUArraysCore v0.1.5\n [28b8d3ca] GR v0.72.10\n [c145ed77] GenericSchur v0.5.3\n [86223c79] Graphs v1.9.0\n [42e2da0e] Grisu v1.0.2\n [708ec375] Gumbo v0.8.2\n [c8ec2601] H5Zblosc v0.1.2\n [f67ccb44] HDF5 v0.17.1\n [cd3eb016] HTTP v1.10.1\n [3e5b6fbb] HostCPUFeatures v0.1.16\n [b5f81e59] IOCapture v0.2.3\n [615f187c] IfElse v0.1.1\n [d25df0c9] Inflate v0.1.4\n [2cd47ed4] InfrastructureSystems v1.22.0\n [842dd82b] InlineStrings v1.4.0\n [41ab1584] InvertedIndices v1.3.0\n [92d709cd] IrrationalConstants v0.2.2\n [82899510] IteratorInterfaceExtensions v1.0.0\n [1019f520] JLFzf v0.1.7\n [692b3bcd] JLLWrappers v1.5.0\n [682c06a0] JSON v0.21.4\n [0f8b85d8] JSON3 v1.13.2\n [ef3ab10e] KLU v0.4.1\n [ba0b0d4f] Krylov v0.9.5\n [b964fa9f] LaTeXStrings v1.3.1\n [23fbe1c1] Latexify v0.16.1\n [10f19ff3] LayoutPointers v0.1.15\n [50d2b5c4] Lazy v0.15.1\n [1d6d02ad] LeftChildRightSiblingTrees v0.2.0\n [d3d80556] LineSearches v7.2.0\n⌃ [7ed4a6bd] LinearSolve v2.16.2\n [2ab3a3ac] LogExpFunctions v0.3.26\n [e6f89c97] LoggingExtras v1.0.3\n [bdcacae8] LoopVectorization v0.12.166\n [33e6dc65] MKL v0.6.1\n [3da0fdf6] MPIPreferences v0.1.10\n [1914dd2f] MacroTools v0.5.11\n [d125e4d3] ManualMemory v0.1.8\n [299715c1] MarchingCubes v0.1.9\n [739be429] MbedTLS v1.1.9\n [442fdcdd] Measures v0.3.2\n [e1d29d7a] Missings v1.1.0\n [46d2c3a1] MuladdMacro v0.2.4\n [ffc61752] Mustache v1.0.19\n [d41bc354] NLSolversBase v7.8.3\n [2774e3e8] NLsolve v4.5.1\n [77ba4419] NaNMath v1.0.2\n⌅ [8913a72c] NonlinearSolve v2.1.0\n [6fe1bfb0] OffsetArrays v1.12.10\n [4d8831e6] OpenSSL v1.4.1\n [bac558e1] OrderedCollections v1.6.3\n⌃ [1dea7af3] OrdinaryDiffEq v6.58.2\n [65ce6f38] PackageExtensionCompat v1.0.2\n [d96e819e] Parameters v0.12.3\n [46dd5b70] Pardiso v0.5.4\n [69de0a69] Parsers v2.8.0\n [b98c9c47] Pipe v1.3.0\n [ccf2f8ad] PlotThemes v3.1.0\n [995b91a9] PlotUtils v1.3.5\n [91a5bcdd] Plots v1.39.0\n [f517fe37] Polyester v0.7.9\n [1d0040c9] PolyesterWeave v0.2.1\n [2dfb63ee] PooledArrays v1.4.3\n [dd99e9e3] PowerFlowData v1.5.0\n [94fada2c] PowerFlows v0.6.0\n [bed98974] PowerNetworkMatrices v0.9.6\n [398b2ede] PowerSimulationsDynamics v0.13.0 `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl`\n [f00506e0] PowerSystemCaseBuilder v1.2.2\n [bcd98974] PowerSystems v3.1.2\n [d236fae5] PreallocationTools v0.4.12\n [aea7be01] PrecompileTools v1.2.0\n [21216c6a] Preferences v1.4.1\n [08abe8d2] PrettyTables v2.3.1\n [33c8b6b6] ProgressLogging v0.1.4\n [3cdcf5f2] RecipesBase v1.3.4\n [01d81517] RecipesPipeline v0.6.12\n [731186ca] RecursiveArrayTools v2.38.10\n [f2c3362d] RecursiveFactorization v0.2.21\n [189a3867] Reexport v1.2.2\n [05181044] RelocatableFolders v1.0.1\n [ae029012] Requires v1.3.0\n [7e49a35a] RuntimeGeneratedFunctions v0.5.12\n [94e857df] SIMDTypes v0.1.0\n [476501e8] SLEEFPirates v0.6.42\n [322a6be2] Sass v0.2.0\n⌅ [0bca4576] SciMLBase v1.98.1\n [e9a6253c] SciMLNLSolve v0.1.9\n [c0aeaf25] SciMLOperators v0.3.7\n [6c6a2e73] Scratch v1.2.1\n [91c51154] SentinelArrays v1.4.1\n [efcf1570] Setfield v1.1.1\n [992d4aef] Showoff v1.0.3\n [777ac1f9] SimpleBufferStream v1.1.0\n⌅ [727e6d20] SimpleNonlinearSolve v0.1.23\n [699a6c99] SimpleTraits v0.9.4\n [ce78b400] SimpleUnPack v1.1.0\n [a2af1166] SortingAlgorithms v1.2.0\n [47a9eef4] SparseDiffTools v2.14.0\n [e56a9233] Sparspak v0.3.9\n [276daf66] SpecialFunctions v2.3.1\n [aedffcd0] Static v0.8.8\n [0d7ed370] StaticArrayInterface v1.4.1\n [90137ffa] StaticArrays v1.7.0\n [1e83bf80] StaticArraysCore v1.4.2\n [82ae8749] StatsAPI v1.7.0\n [2913bbd2] StatsBase v0.34.2\n [7792a7ef] StrideArraysCore v0.5.2\n [69024149] StringEncodings v0.3.7\n [892a3eda] StringManipulation v0.3.4\n [856f2bd8] StructTypes v1.10.0\n⌃ [c3572dad] Sundials v4.20.1\n⌅ [2efcf032] SymbolicIndexingInterface v0.2.2\n [3783bdb8] TableTraits v1.0.1\n [bd369af6] Tables v1.11.1\n [62fd8b95] TensorCore v0.1.1\n [5d786b92] TerminalLoggers v0.1.7\n [8290d209] ThreadingUtilities v0.5.2\n⌅ [9e3dc215] TimeSeries v0.23.2\n [a759f4b9] TimerOutputs v0.5.23\n [3bb67fe8] TranscodingStreams v0.10.2\n [d5829a12] TriangularSolve v0.1.20\n [410a4b4d] Tricks v0.1.8\n [781d530d] TruncatedStacktraces v1.4.0\n [5c2747f8] URIs v1.5.1\n [3a884ed6] UnPack v1.0.2\n [1cfade01] UnicodeFun v0.4.1\n [b8865327] UnicodePlots v3.6.0\n [1986cc42] Unitful v1.19.0\n [45397f5d] UnitfulLatexify v1.6.3\n [41fe7b60] Unzip v0.2.0\n [3d5dd08c] VectorizationBase v0.21.65\n [19fa3120] VertexSafeGraphs v0.2.0\n [ea10d353] WeakRefStrings v1.4.2\n [76eceee3] WorkerUtilities v1.6.1\n [ddb6d928] YAML v0.4.9\n [700de1a5] ZygoteRules v0.2.4\n [0b7ba130] Blosc_jll v1.21.5+0\n [6e34b625] Bzip2_jll v1.0.8+0\n [83423d85] Cairo_jll v1.16.1+1\n [2702e6a9] EpollShim_jll v0.0.20230411+0\n [2e619515] Expat_jll v2.5.0+0\n⌃ [b22a6f82] FFMPEG_jll v4.4.2+2\n [a3f928ae] Fontconfig_jll v2.13.93+0\n [d7e528f0] FreeType2_jll v2.13.1+0\n [559328eb] FriBidi_jll v1.0.10+0\n [0656b61e] GLFW_jll v3.3.8+0\n [d2c73de3] GR_jll v0.72.10+0\n [78b55507] Gettext_jll v0.21.0+0\n [7746bdde] Glib_jll v2.76.5+0\n [3b182d85] Graphite2_jll v1.3.14+0\n [528830af] Gumbo_jll v0.10.2+0\n⌃ [0234f1f7] HDF5_jll v1.12.2+2\n [2e76f6c2] HarfBuzz_jll v2.8.1+1\n⌅ [1d5cc7b8] IntelOpenMP_jll v2023.2.0+0\n [aacddb02] JpegTurbo_jll v3.0.1+0\n [c1c5ebd0] LAME_jll v3.100.1+0\n [88015f11] LERC_jll v3.0.0+1\n [1d63c593] LLVMOpenMP_jll v15.0.4+0\n [dd4b983a] LZO_jll v2.10.1+0\n⌅ [e9f186c6] Libffi_jll v3.2.2+1\n [d4300ac3] Libgcrypt_jll v1.8.7+0\n [7e76a0d4] Libglvnd_jll v1.6.0+0\n [7add5ba3] Libgpg_error_jll v1.42.0+0\n [94ce4f54] Libiconv_jll v1.17.0+0\n [4b2f31a3] Libmount_jll v2.35.0+0\n⌅ [89763e89] Libtiff_jll v4.5.1+1\n [38a345b3] Libuuid_jll v2.36.0+0\n [5ced341a] Lz4_jll v1.9.4+0\n⌅ [856f044c] MKL_jll v2022.2.0+0\n [e7412a2a] Ogg_jll v1.3.5+1\n⌅ [9bd350c2] OpenSSH_jll v8.9.0+1\n⌅ [458c3c95] OpenSSL_jll v1.1.23+0\n [efe28fd5] OpenSpecFun_jll v0.5.5+0\n [91d4177d] Opus_jll v1.3.2+0\n [30392449] Pixman_jll v0.42.2+0\n⌃ [c0090381] Qt6Base_jll v6.5.2+2\n⌅ [fb77eaff] Sundials_jll v5.2.1+0\n [a44049a8] Vulkan_Loader_jll v1.3.243+0\n [a2964d1f] Wayland_jll v1.21.0+1\n [2381bf8a] Wayland_protocols_jll v1.25.0+0\n [02c8fc9c] XML2_jll v2.12.2+0\n [aed1982a] XSLT_jll v1.1.34+0\n [ffd25f8a] XZ_jll v5.4.5+0\n [f67eecfb] Xorg_libICE_jll v1.0.10+1\n [c834827a] Xorg_libSM_jll v1.2.3+0\n [4f6342f7] Xorg_libX11_jll v1.8.6+0\n [0c0b7dd1] Xorg_libXau_jll v1.0.11+0\n [935fb764] Xorg_libXcursor_jll v1.2.0+4\n [a3789734] Xorg_libXdmcp_jll v1.1.4+0\n [1082639a] Xorg_libXext_jll v1.3.4+4\n [d091e8ba] Xorg_libXfixes_jll v5.0.3+4\n [a51aa0fd] Xorg_libXi_jll v1.7.10+4\n [d1454406] Xorg_libXinerama_jll v1.1.4+4\n [ec84b674] Xorg_libXrandr_jll v1.5.2+4\n [ea2f1a96] Xorg_libXrender_jll v0.9.10+4\n [14d82f49] Xorg_libpthread_stubs_jll v0.1.1+0\n [c7cfdc94] Xorg_libxcb_jll v1.15.0+0\n [cc61e674] Xorg_libxkbfile_jll v1.1.2+0\n [e920d4aa] Xorg_xcb_util_cursor_jll v0.1.4+0\n [12413925] Xorg_xcb_util_image_jll v0.4.0+1\n [2def613f] Xorg_xcb_util_jll v0.4.0+1\n [975044d2] Xorg_xcb_util_keysyms_jll v0.4.0+1\n [0d47668e] Xorg_xcb_util_renderutil_jll v0.3.9+1\n [c22f9ab0] Xorg_xcb_util_wm_jll v0.4.1+1\n [35661453] Xorg_xkbcomp_jll v1.4.6+0\n [33bec58e] Xorg_xkeyboard_config_jll v2.39.0+0\n [c5fb5394] Xorg_xtrans_jll v1.5.0+0\n [3161d3a3] Zstd_jll v1.5.5+0\n [35ca27e7] eudev_jll v3.2.9+0\n [214eeab7] fzf_jll v0.43.0+0\n [1a1c6b14] gperf_jll v3.1.1+0\n [a4ae2306] libaom_jll v3.4.0+0\n [0ac62f75] libass_jll v0.15.1+0\n [2db6ffa8] libevdev_jll v1.11.0+0\n [f638f0a6] libfdk_aac_jll v2.0.2+0\n [36db933b] libinput_jll v1.18.0+0\n [b53b4c65] libpng_jll v1.6.40+0\n [47bcb7c8] libsass_jll v3.6.4+0\n [f27f6e37] libvorbis_jll v1.3.7+1\n [009596ad] mtdev_jll v1.1.6+0\n [1270edf5] x264_jll v2021.5.5+0\n [dfaa095f] x265_jll v3.5.0+0\n [d8fb68d0] xkbcommon_jll v1.4.1+1\n [0dad84c5] ArgTools v1.1.1\n [56f22d72] Artifacts\n [2a0f44e3] Base64\n [ade2ca70] Dates\n [8ba89e20] Distributed\n [f43a241f] Downloads v1.6.0\n [7b1f6079] FileWatching\n [9fa8497b] Future\n [b77e0a4c] InteractiveUtils\n [4af54fe1] LazyArtifacts\n [b27032c2] LibCURL v0.6.4\n [76f85450] LibGit2\n [8f399da3] Libdl\n [37e2e46d] LinearAlgebra\n [56ddb016] Logging\n [d6f4376e] Markdown\n [a63ad114] Mmap\n [ca575930] NetworkOptions v1.2.0\n [44cfe95a] Pkg v1.9.2\n [de0858da] Printf\n [3fa0cd96] REPL\n [9a3f8284] Random\n [ea8e919c] SHA v0.7.0\n [9e88b42a] Serialization\n [1a1011a3] SharedArrays\n [6462fe0b] Sockets\n [2f01184e] SparseArrays\n [10745b16] Statistics v1.9.0\n [4607b0f0] SuiteSparse\n [fa267f1f] TOML v1.0.3\n [a4e569a6] Tar v1.10.0\n [8dfed614] Test\n [cf7118a7] UUIDs\n [4ec0a83e] Unicode\n [e66e0078] CompilerSupportLibraries_jll v1.0.5+0\n [deac9b47] LibCURL_jll v8.4.0+0\n [29816b5a] LibSSH2_jll v1.11.0+1\n [c8ffd9c3] MbedTLS_jll v2.28.2+0\n [14a3606d] MozillaCACerts_jll v2022.10.11\n [4536629a] OpenBLAS_jll v0.3.21+4\n [05823500] OpenLibm_jll v0.8.1+0\n [efcefdf7] PCRE2_jll v10.42.0+0\n [bea87d4a] SuiteSparse_jll v5.10.1+6\n [83775a58] Zlib_jll v1.2.13+0\n [8e850b90] libblastrampoline_jll v5.8.0+0\n [8e850ede] nghttp2_jll v1.52.0+1\n [3f19e933] p7zip_jll v17.4.0+0\nInfo Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`\n"},"internal":{"uuid":{"value":"c9c6367e-0354-4372-ac19-a78e663ca382"},"ext":{},"units_info":null},"time_series_compression_enabled":false,"components":[{"base_power":100.0,"shaft":{"internal":{"uuid":{"value":"e99a09e1-da0d-43a5-b86c-31674c5f534d"},"ext":null,"units_info":null},"n_states":2,"ext":{},"D":0.0,"states":["δ","ω"],"H":3.01,"__metadata__":{"module":"PowerSystems","type":"SingleMass"}},"states":["eq_p","ed_p","δ","ω","Vf","Vr1","Vr2","Vm"],"name":"generator-102-1","n_states":8,"ω_ref":1.0,"__metadata__":{"parameters":["OneDOneQMachine","SingleMass","AVRTypeI","TGFixed","PSSFixed"],"module":"PowerSystems","type":"DynamicGenerator"},"avr":{"Ta":0.2,"Te":0.314,"states_types":["Differential","Differential","Differential","Differential"],"__metadata__":{"module":"PowerSystems","type":"AVRTypeI"},"internal":{"uuid":{"value":"0d403d2e-f2bd-4a2c-8b7b-3f77043017cb"},"ext":null,"units_info":null},"Ke":0.01,"ext":{},"Kf":0.063,"V_ref":1.0,"states":["Vf","Vr1","Vr2","Vm"],"Ae":0.0039,"n_states":4,"Tf":0.35,"Tr":0.001,"Va_lim":{"min":-5.0,"max":5.0},"Be":1.555,"Ka":20.0},"internal":{"uuid":{"value":"f11aa3c8-df86-4a0f-b86c-0888163e953f"},"ext":null,"units_info":null},"ext":{},"machine":{"internal":{"uuid":{"value":"e9b8c812-3bda-4675-9a2a-68839304c142"},"ext":null,"units_info":null},"Xq":1.2578,"ext":{},"states":["eq_p","ed_p"],"Tq0_p":0.6,"n_states":2,"Xd":1.3125,"Xd_p":0.1813,"Xq_p":0.25,"Td0_p":5.89,"R":0.0,"__metadata__":{"module":"PowerSystems","type":"OneDOneQMachine"}},"pss":{"V_pss":0.0,"internal":{"uuid":{"value":"3152d1af-e645-48a9-a2a4-7c0145b2ecc4"},"ext":null,"units_info":null},"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"PSSFixed"}},"prime_mover":{"P_ref":1.0,"internal":{"uuid":{"value":"3b013886-d102-40e2-98c4-7ffbf6c421eb"},"ext":null,"units_info":null},"efficiency":1.0,"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"TGFixed"}}},{"base_power":100.0,"filter":{"rg":0.01,"cf":0.074,"n_states":6,"ext":{},"lf":0.08,"lg":0.2,"states":["ir_cnv","ii_cnv","vr_filter","vi_filter","ir_filter","ii_filter"],"rf":0.003,"__metadata__":{"module":"PowerSystems","type":"LCLFilter"}},"states":["θ_oc","ω_oc","q_oc","ξd_ic","ξq_ic","γd_ic","γq_ic","ϕd_ic","ϕq_ic","vd_pll","vq_pll","ε_pll","θ_pll","ir_cnv","ii_cnv","vr_filter","vi_filter","ir_filter","ii_filter"],"dc_source":{"__metadata__":{"module":"PowerSystems","type":"FixedDCSource"},"internal":{"uuid":{"value":"d57ffe37-1612-4904-8f54-f8a7b9f2a88b"},"ext":null,"units_info":null},"n_states":0,"ext":{},"states":[],"voltage":600.0},"name":"generator-103-1","converter":{"rated_voltage":138.0,"n_states":0,"ext":{},"rated_current":100.0,"states":[],"__metadata__":{"module":"PowerSystems","type":"AverageConverter"}},"n_states":19,"ω_ref":1.0,"__metadata__":{"parameters":["AverageConverter","OuterControl","VoltageModeControl","FixedDCSource","KauraPLL","LCLFilter","Nothing"],"module":"PowerSystems","type":"DynamicInverter"},"internal":{"uuid":{"value":"1d3b80d7-8000-4f1c-9109-95af8b05d8cf"},"ext":null,"units_info":null},"ext":{},"outer_control":{"active_power_control":{"__metadata__":{"module":"PowerSystems","type":"VirtualInertia"},"P_ref":1.0,"kω":20.0,"n_states":2,"ext":{},"states":["θ_oc","ω_oc"],"kd":400.0,"Ta":2.0},"reactive_power_control":{"kq":0.2,"n_states":1,"ext":{},"V_ref":1.0,"ωf":1000.0,"states":["q_oc"],"__metadata__":{"module":"PowerSystems","type":"ReactivePowerDroop"}},"n_states":3,"ext":{},"states":["θ_oc","ω_oc","q_oc"],"__metadata__":{"parameters":["VirtualInertia","ReactivePowerDroop"],"module":"PowerSystems","type":"OuterControl"}},"freq_estimator":{"ω_lp":500.0,"n_states":4,"ki_pll":4.69,"ext":{},"kp_pll":0.084,"states":["vd_pll","vq_pll","ε_pll","θ_pll"],"__metadata__":{"module":"PowerSystems","type":"KauraPLL"}},"inner_control":{"rv":0.0,"lv":0.2,"ωad":50.0,"kpc":1.27,"ext":{},"states":["ξd_ic","ξq_ic","γd_ic","γq_ic","ϕd_ic","ϕq_ic"],"kffi":0.0,"kffv":0.0,"n_states":6,"kpv":0.59,"kiv":736.0,"kad":0.2,"kic":14.3,"__metadata__":{"module":"PowerSystems","type":"VoltageModeControl"}},"limiter":null},{"base_power":100.0,"services":[],"bus":{"value":"50423bf3-c319-459d-9c2a-14e1a7d97a58"},"max_constant_active_power":0.5,"available":true,"time_series_container":[],"name":"load1011","max_current_active_power":0.0,"constant_active_power":0.5,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"8c4ab00f-5775-477b-bb84-ac65440972c7"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.1,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.1,"max_impedance_reactive_power":0.0},{"base_power":100.0,"services":[],"bus":{"value":"5ad4f65b-2031-4efd-af1f-a97495047c28"},"max_constant_active_power":0.3,"available":true,"time_series_container":[],"name":"load1031","max_current_active_power":0.0,"constant_active_power":0.3,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"085fe145-bba1-4c71-a68a-4670b10f368b"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.1,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.1,"max_impedance_reactive_power":0.0},{"base_power":100.0,"services":[],"bus":{"value":"5854721c-4cbe-4fd9-b639-099801661053"},"max_constant_active_power":1.0,"available":true,"time_series_container":[],"name":"load1021","max_current_active_power":0.0,"constant_active_power":1.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"62400016-e354-4a7d-bca3-488ee2da4b0e"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.3,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.3,"max_impedance_reactive_power":0.0},{"load_response":0.0,"name":"1","__metadata__":{"module":"PowerSystems","type":"Area"},"internal":{"uuid":{"value":"9e7dcd2c-1cdd-4731-b47e-66475d153f24"},"ext":null,"units_info":null},"peak_active_power":0.0,"peak_reactive_power":0.0,"time_series_container":[]},{"__metadata__":{"module":"PowerSystems","type":"LoadZone"},"name":"1","internal":{"uuid":{"value":"dcaf75db-8e06-4dad-9d64-a83468d56792"},"ext":null,"units_info":null},"peak_active_power":1.8,"peak_reactive_power":0.5,"time_series_container":[]},{"internal":{"uuid":{"value":"21caed6d-3e41-4a7d-bf07-5844b3e92dbe"},"ext":null,"units_info":null},"to":{"value":"5ad4f65b-2031-4efd-af1f-a97495047c28"},"from":{"value":"50423bf3-c319-459d-9c2a-14e1a7d97a58"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"48817d1d-85d5-4cf3-9622-8215a35cb975"},"ext":null,"units_info":null},"to":{"value":"5854721c-4cbe-4fd9-b639-099801661053"},"from":{"value":"50423bf3-c319-459d-9c2a-14e1a7d97a58"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"96f7d437-ce3d-45d9-9569-e5bf137ab022"},"ext":null,"units_info":null},"to":{"value":"5ad4f65b-2031-4efd-af1f-a97495047c28"},"from":{"value":"5854721c-4cbe-4fd9-b639-099801661053"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"services":[],"x":0.12,"b":{"from":0.1,"to":0.1},"r":0.01,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 1-BUS 3-i_1","reactive_power_flow":0.0,"arc":{"value":"21caed6d-3e41-4a7d-bf07-5844b3e92dbe"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"9674b7b2-cef9-4327-9134-e4e74356e064"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"services":[],"x":0.12,"b":{"from":0.1,"to":0.1},"r":0.01,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 1-BUS 2-i_1","reactive_power_flow":0.0,"arc":{"value":"48817d1d-85d5-4cf3-9622-8215a35cb975"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"dd020cfd-7382-41ef-b03e-0f7c2c54c86e"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"services":[],"x":0.9,"b":{"from":0.5,"to":0.5},"r":0.02,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 2-BUS 3-i_1","reactive_power_flow":0.0,"arc":{"value":"96f7d437-ce3d-45d9-9569-e5bf137ab022"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"26e1be98-1a05-4b7e-8bbf-445004bb2b87"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"5854721c-4cbe-4fd9-b639-099801661053"},"available":true,"time_series_container":[],"name":"generator-102-1","status":true,"active_power":0.7,"dynamic_injector":{"value":"f11aa3c8-df86-4a0f-b86c-0888163e953f"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"7d9fd29e-6f5f-41af-b591-4cbf6a01f4a7"},"ext":null,"units_info":null},"reactive_power_limits":{"min":-1.0,"max":1.0},"ext":{"z_source":{"x":1,"r":0}},"operation_cost":{"start_up":0.0,"fixed":0.0,"shut_down":0.0,"variable":{"cost":[0.0,1.0]},"__metadata__":{"module":"PowerSystems","type":"ThreePartCost"}},"time_limits":null,"must_run":false,"ramp_limits":{"up":3.18,"down":3.18},"time_at_status":10000.0,"active_power_limits":{"min":0.0,"max":3.18},"reactive_power":0.0},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"5ad4f65b-2031-4efd-af1f-a97495047c28"},"available":true,"time_series_container":[],"name":"generator-103-1","status":true,"active_power":0.8,"dynamic_injector":{"value":"1d3b80d7-8000-4f1c-9109-95af8b05d8cf"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"a97b2cfc-1060-43d6-8e0b-0bfd3a74705b"},"ext":null,"units_info":null},"reactive_power_limits":{"min":-1.0,"max":1.0},"ext":{"z_source":{"x":1,"r":0}},"operation_cost":{"start_up":0.0,"fixed":0.0,"shut_down":0.0,"variable":{"cost":[0.0,1.0]},"__metadata__":{"module":"PowerSystems","type":"ThreePartCost"}},"time_limits":null,"must_run":false,"ramp_limits":{"up":3.18,"down":3.18},"time_at_status":10000.0,"active_power_limits":{"min":0.0,"max":3.18},"reactive_power":0.0},{"internal_voltage":1.0,"services":[],"bus":{"value":"300bab18-f7b3-4306-b2cf-52cdd86ce8cd"},"available":true,"name":"InfBus","internal_angle":0.0,"active_power":0.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"Source"},"internal":{"uuid":{"value":"e25729d1-5830-4795-afad-bb42dae5015c"},"ext":null,"units_info":null},"ext":{},"X_th":5.0e-6,"R_th":0.0,"reactive_power":0.0},{"number":103,"base_voltage":138.0,"bustype":"PV","angle":0.0,"name":"BUS 3","magnitude":1.0059,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"5ad4f65b-2031-4efd-af1f-a97495047c28"},"ext":null,"units_info":null},"area":{"value":"9e7dcd2c-1cdd-4731-b47e-66475d153f24"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"dcaf75db-8e06-4dad-9d64-a83468d56792"}},{"number":101,"base_voltage":138.0,"bustype":"REF","angle":0.0,"name":"BUS 1","magnitude":1.02,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"50423bf3-c319-459d-9c2a-14e1a7d97a58"},"ext":null,"units_info":null},"area":{"value":"9e7dcd2c-1cdd-4731-b47e-66475d153f24"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"dcaf75db-8e06-4dad-9d64-a83468d56792"}},{"number":102,"base_voltage":138.0,"bustype":"PV","angle":0.0,"name":"BUS 2","magnitude":1.0142,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"5854721c-4cbe-4fd9-b639-099801661053"},"ext":null,"units_info":null},"area":{"value":"9e7dcd2c-1cdd-4731-b47e-66475d153f24"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"dcaf75db-8e06-4dad-9d64-a83468d56792"}}],"validation_descriptor_file":"threebus_sys_validation_descriptors.json","time_series_params":{"__metadata__":{"module":"InfrastructureSystems","type":"TimeSeriesParameters"},"resolution":{"value":0,"type":"Minute"},"forecast_params":{"initial_timestamp":"0001-01-01T00:00:00.0","interval":{"value":0,"type":"Minute"},"horizon":0,"count":0,"__metadata__":{"module":"InfrastructureSystems","type":"ForecastParameters"}}}},"units_settings":{"base_value":100.0,"unit_system":"SYSTEM_BASE"},"frequency":60.0,"runchecks":true,"metadata":{"name":null,"description":null,"__metadata__":{"module":"PowerSystems","type":"SystemMetadata"}},"data_format_version":"3.0.0"} \ No newline at end of file +{"internal":{"uuid":{"value":"ba39ed35-e9fe-4a35-afcc-291cb8319f79"},"ext":{},"units_info":null},"data":{"time_series_in_memory":false,"masked_components":[],"version_info":{"julia_version":"1.10.0","package_info":"Status `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/docs/Manifest.toml`\n [47edcb42] ADTypes v0.2.6\n [a4c015fc] ANSIColoredPrinters v0.0.1\n [1520ce14] AbstractTrees v0.4.4\n⌅ [79e6a3ab] Adapt v3.7.2\n [ec485272] ArnoldiMethod v0.2.0\n [4fba245c] ArrayInterface v7.7.0\n [d1d4a3ce] BitFlags v0.1.8\n [62783981] BitTwiddlingConvenienceFunctions v0.1.5\n [a74b3585] Blosc v0.7.3\n [fa961155] CEnum v0.5.0\n [2a0fbf3d] CPUSummary v0.2.4\n [336ed68f] CSV v0.10.12\n [d360d2e6] ChainRulesCore v1.19.0\n [fb6a15b2] CloseOpenIntervals v0.1.12\n [944b1d66] CodecZlib v0.7.3\n [35d6a980] ColorSchemes v3.24.0\n [3da002f7] ColorTypes v0.11.4\n [c3611d14] ColorVectorSpace v0.10.0\n [5ae59095] Colors v0.12.10\n [38540f10] CommonSolve v0.2.4\n [bbf7d656] CommonSubexpressions v0.3.0\n [34da2185] Compat v4.10.1\n [2569d6c7] ConcreteStructs v0.2.3\n [f0e56b4a] ConcurrentUtilities v2.3.0\n [187b0558] ConstructionBase v1.5.4\n [d38c429a] Contour v0.6.2\n [adafc99b] CpuId v0.3.1\n [a8cc5b0e] Crayons v4.1.1\n [9a962f9c] DataAPI v1.15.0\n [a93c6f00] DataFrames v1.6.1\n [864edb3b] DataStructures v0.18.15\n [e2d170a0] DataValueInterfaces v1.0.0\n [8bb1440f] DelimitedFiles v1.9.1\n⌃ [2b5f629d] DiffEqBase v6.130.0\n [163ba53b] DiffResults v1.1.0\n [b552c78f] DiffRules v1.15.1\n [b4f34e82] Distances v0.10.11\n [ffbed154] DocStringExtensions v0.9.3\n⌅ [e30172f5] Documenter v0.27.25\n [35a29f4d] DocumenterTools v0.1.18\n [4e289a0a] EnumX v1.0.4\n [f151be2c] EnzymeCore v0.6.4\n [460bff9d] ExceptionUnwrapping v0.1.10\n [d4d017d3] ExponentialUtilities v1.25.0\n [e2ba6199] ExprTools v0.1.10\n [c87230d0] FFMPEG v0.4.1\n [7034ab61] FastBroadcast v0.2.8\n [9aa1b823] FastClosures v0.3.2\n [29a986be] FastLapackInterface v2.0.0\n [48062228] FilePathsBase v0.9.21\n [1a297f60] FillArrays v1.9.3\n [6a86dc24] FiniteDiff v2.22.0\n [53c48c17] FixedPointNumbers v0.8.4\n [59287772] Formatting v0.4.2\n [f6369f11] ForwardDiff v0.10.36\n [069b7b12] FunctionWrappers v1.1.3\n [77dc65aa] FunctionWrappersWrappers v0.1.3\n⌃ [46192b85] GPUArraysCore v0.1.5\n⌅ [28b8d3ca] GR v0.72.10\n [c145ed77] GenericSchur v0.5.3\n [86223c79] Graphs v1.9.0\n [42e2da0e] Grisu v1.0.2\n [708ec375] Gumbo v0.8.2\n [c8ec2601] H5Zblosc v0.1.2\n [f67ccb44] HDF5 v0.17.1\n [cd3eb016] HTTP v1.10.1\n [3e5b6fbb] HostCPUFeatures v0.1.16\n [b5f81e59] IOCapture v0.2.3\n [615f187c] IfElse v0.1.1\n [d25df0c9] Inflate v0.1.4\n [2cd47ed4] InfrastructureSystems v1.22.1\n [842dd82b] InlineStrings v1.4.0\n [41ab1584] InvertedIndices v1.3.0\n [92d709cd] IrrationalConstants v0.2.2\n [82899510] IteratorInterfaceExtensions v1.0.0\n [1019f520] JLFzf v0.1.7\n [692b3bcd] JLLWrappers v1.5.0\n [682c06a0] JSON v0.21.4\n [0f8b85d8] JSON3 v1.14.0\n [ef3ab10e] KLU v0.4.1\n [ba0b0d4f] Krylov v0.9.5\n [b964fa9f] LaTeXStrings v1.3.1\n [23fbe1c1] Latexify v0.16.1\n [10f19ff3] LayoutPointers v0.1.15\n [50d2b5c4] Lazy v0.15.1\n [1d6d02ad] LeftChildRightSiblingTrees v0.2.0\n [d3d80556] LineSearches v7.2.0\n⌃ [7ed4a6bd] LinearSolve v2.16.2\n [2ab3a3ac] LogExpFunctions v0.3.26\n [e6f89c97] LoggingExtras v1.0.3\n [bdcacae8] LoopVectorization v0.12.166\n [33e6dc65] MKL v0.6.2\n [3da0fdf6] MPIPreferences v0.1.10\n [1914dd2f] MacroTools v0.5.12\n [d125e4d3] ManualMemory v0.1.8\n [299715c1] MarchingCubes v0.1.9\n [739be429] MbedTLS v1.1.9\n [442fdcdd] Measures v0.3.2\n [e1d29d7a] Missings v1.1.0\n [46d2c3a1] MuladdMacro v0.2.4\n [ffc61752] Mustache v1.0.19\n [d41bc354] NLSolversBase v7.8.3\n [2774e3e8] NLsolve v4.5.1\n [77ba4419] NaNMath v1.0.2\n⌅ [8913a72c] NonlinearSolve v2.1.0\n [6fe1bfb0] OffsetArrays v1.13.0\n [4d8831e6] OpenSSL v1.4.1\n [bac558e1] OrderedCollections v1.6.3\n⌃ [1dea7af3] OrdinaryDiffEq v6.58.2\n [65ce6f38] PackageExtensionCompat v1.0.2\n [d96e819e] Parameters v0.12.3\n [46dd5b70] Pardiso v0.5.4\n [69de0a69] Parsers v2.8.1\n [b98c9c47] Pipe v1.3.0\n [ccf2f8ad] PlotThemes v3.1.0\n [995b91a9] PlotUtils v1.4.0\n [91a5bcdd] Plots v1.39.0\n [f517fe37] Polyester v0.7.9\n [1d0040c9] PolyesterWeave v0.2.1\n [2dfb63ee] PooledArrays v1.4.3\n [dd99e9e3] PowerFlowData v1.5.0\n [94fada2c] PowerFlows v0.6.1\n [bed98974] PowerNetworkMatrices v0.9.6\n [398b2ede] PowerSimulationsDynamics v0.13.0 `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl`\n [f00506e0] PowerSystemCaseBuilder v1.2.2\n [bcd98974] PowerSystems v3.2.0\n [d236fae5] PreallocationTools v0.4.17\n [aea7be01] PrecompileTools v1.2.0\n [21216c6a] Preferences v1.4.1\n [08abe8d2] PrettyTables v2.3.1\n [33c8b6b6] ProgressLogging v0.1.4\n [3cdcf5f2] RecipesBase v1.3.4\n [01d81517] RecipesPipeline v0.6.12\n⌅ [731186ca] RecursiveArrayTools v2.38.10\n [f2c3362d] RecursiveFactorization v0.2.21\n [189a3867] Reexport v1.2.2\n [05181044] RelocatableFolders v1.0.1\n [ae029012] Requires v1.3.0\n [7e49a35a] RuntimeGeneratedFunctions v0.5.12\n [94e857df] SIMDTypes v0.1.0\n [476501e8] SLEEFPirates v0.6.42\n [322a6be2] Sass v0.2.0\n⌅ [0bca4576] SciMLBase v1.98.1\n [e9a6253c] SciMLNLSolve v0.1.9\n [c0aeaf25] SciMLOperators v0.3.7\n [6c6a2e73] Scratch v1.2.1\n [91c51154] SentinelArrays v1.4.1\n [efcf1570] Setfield v1.1.1\n [992d4aef] Showoff v1.0.3\n [777ac1f9] SimpleBufferStream v1.1.0\n⌅ [727e6d20] SimpleNonlinearSolve v0.1.23\n [699a6c99] SimpleTraits v0.9.4\n [ce78b400] SimpleUnPack v1.1.0\n [a2af1166] SortingAlgorithms v1.2.1\n [47a9eef4] SparseDiffTools v2.15.0\n [e56a9233] Sparspak v0.3.9\n [276daf66] SpecialFunctions v2.3.1\n [aedffcd0] Static v0.8.8\n [0d7ed370] StaticArrayInterface v1.5.0\n [90137ffa] StaticArrays v1.9.0\n [1e83bf80] StaticArraysCore v1.4.2\n [82ae8749] StatsAPI v1.7.0\n [2913bbd2] StatsBase v0.34.2\n [7792a7ef] StrideArraysCore v0.5.2\n [69024149] StringEncodings v0.3.7\n [892a3eda] StringManipulation v0.3.4\n [856f2bd8] StructTypes v1.10.0\n⌃ [c3572dad] Sundials v4.20.1\n⌅ [2efcf032] SymbolicIndexingInterface v0.2.2\n [3783bdb8] TableTraits v1.0.1\n [bd369af6] Tables v1.11.1\n [62fd8b95] TensorCore v0.1.1\n [5d786b92] TerminalLoggers v0.1.7\n [8290d209] ThreadingUtilities v0.5.2\n⌅ [9e3dc215] TimeSeries v0.23.2\n [a759f4b9] TimerOutputs v0.5.23\n [3bb67fe8] TranscodingStreams v0.10.2\n [d5829a12] TriangularSolve v0.1.20\n [410a4b4d] Tricks v0.1.8\n [781d530d] TruncatedStacktraces v1.4.0\n [5c2747f8] URIs v1.5.1\n [3a884ed6] UnPack v1.0.2\n [1cfade01] UnicodeFun v0.4.1\n [b8865327] UnicodePlots v3.6.3\n [1986cc42] Unitful v1.19.0\n [45397f5d] UnitfulLatexify v1.6.3\n [41fe7b60] Unzip v0.2.0\n [3d5dd08c] VectorizationBase v0.21.65\n [19fa3120] VertexSafeGraphs v0.2.0\n [ea10d353] WeakRefStrings v1.4.2\n [76eceee3] WorkerUtilities v1.6.1\n [ddb6d928] YAML v0.4.9\n [700de1a5] ZygoteRules v0.2.4\n [0b7ba130] Blosc_jll v1.21.5+0\n [6e34b625] Bzip2_jll v1.0.8+0\n [83423d85] Cairo_jll v1.16.1+1\n [2702e6a9] EpollShim_jll v0.0.20230411+0\n [2e619515] Expat_jll v2.5.0+0\n⌃ [b22a6f82] FFMPEG_jll v4.4.2+2\n [a3f928ae] Fontconfig_jll v2.13.93+0\n [d7e528f0] FreeType2_jll v2.13.1+0\n [559328eb] FriBidi_jll v1.0.10+0\n [0656b61e] GLFW_jll v3.3.9+0\n⌅ [d2c73de3] GR_jll v0.72.10+0\n [78b55507] Gettext_jll v0.21.0+0\n [7746bdde] Glib_jll v2.76.5+0\n [3b182d85] Graphite2_jll v1.3.14+0\n [528830af] Gumbo_jll v0.10.2+0\n⌃ [0234f1f7] HDF5_jll v1.12.2+2\n [2e76f6c2] HarfBuzz_jll v2.8.1+1\n⌅ [1d5cc7b8] IntelOpenMP_jll v2023.2.0+0\n [aacddb02] JpegTurbo_jll v3.0.1+0\n [c1c5ebd0] LAME_jll v3.100.1+0\n [88015f11] LERC_jll v3.0.0+1\n [1d63c593] LLVMOpenMP_jll v15.0.7+0\n [dd4b983a] LZO_jll v2.10.1+0\n⌅ [e9f186c6] Libffi_jll v3.2.2+1\n [d4300ac3] Libgcrypt_jll v1.8.7+0\n [7e76a0d4] Libglvnd_jll v1.6.0+0\n [7add5ba3] Libgpg_error_jll v1.42.0+0\n [94ce4f54] Libiconv_jll v1.17.0+0\n [4b2f31a3] Libmount_jll v2.35.0+0\n⌅ [89763e89] Libtiff_jll v4.5.1+1\n [38a345b3] Libuuid_jll v2.36.0+0\n [5ced341a] Lz4_jll v1.9.4+0\n⌅ [856f044c] MKL_jll v2022.2.0+0\n [e7412a2a] Ogg_jll v1.3.5+1\n⌅ [9bd350c2] OpenSSH_jll v8.9.0+1\n⌅ [458c3c95] OpenSSL_jll v1.1.23+0\n [efe28fd5] OpenSpecFun_jll v0.5.5+0\n [91d4177d] Opus_jll v1.3.2+0\n [30392449] Pixman_jll v0.42.2+0\n⌃ [c0090381] Qt6Base_jll v6.5.2+2\n⌅ [fb77eaff] Sundials_jll v5.2.2+0\n [a44049a8] Vulkan_Loader_jll v1.3.243+0\n [a2964d1f] Wayland_jll v1.21.0+1\n [2381bf8a] Wayland_protocols_jll v1.31.0+0\n [02c8fc9c] XML2_jll v2.12.2+0\n [aed1982a] XSLT_jll v1.1.34+0\n [ffd25f8a] XZ_jll v5.4.5+0\n [f67eecfb] Xorg_libICE_jll v1.0.10+1\n [c834827a] Xorg_libSM_jll v1.2.3+0\n [4f6342f7] Xorg_libX11_jll v1.8.6+0\n [0c0b7dd1] Xorg_libXau_jll v1.0.11+0\n [935fb764] Xorg_libXcursor_jll v1.2.0+4\n [a3789734] Xorg_libXdmcp_jll v1.1.4+0\n [1082639a] Xorg_libXext_jll v1.3.4+4\n [d091e8ba] Xorg_libXfixes_jll v5.0.3+4\n [a51aa0fd] Xorg_libXi_jll v1.7.10+4\n [d1454406] Xorg_libXinerama_jll v1.1.4+4\n [ec84b674] Xorg_libXrandr_jll v1.5.2+4\n [ea2f1a96] Xorg_libXrender_jll v0.9.10+4\n [14d82f49] Xorg_libpthread_stubs_jll v0.1.1+0\n [c7cfdc94] Xorg_libxcb_jll v1.15.0+0\n [cc61e674] Xorg_libxkbfile_jll v1.1.2+0\n [e920d4aa] Xorg_xcb_util_cursor_jll v0.1.4+0\n [12413925] Xorg_xcb_util_image_jll v0.4.0+1\n [2def613f] Xorg_xcb_util_jll v0.4.0+1\n [975044d2] Xorg_xcb_util_keysyms_jll v0.4.0+1\n [0d47668e] Xorg_xcb_util_renderutil_jll v0.3.9+1\n [c22f9ab0] Xorg_xcb_util_wm_jll v0.4.1+1\n [35661453] Xorg_xkbcomp_jll v1.4.6+0\n [33bec58e] Xorg_xkeyboard_config_jll v2.39.0+0\n [c5fb5394] Xorg_xtrans_jll v1.5.0+0\n [3161d3a3] Zstd_jll v1.5.5+0\n [35ca27e7] eudev_jll v3.2.9+0\n [214eeab7] fzf_jll v0.43.0+0\n [1a1c6b14] gperf_jll v3.1.1+0\n [a4ae2306] libaom_jll v3.4.0+0\n [0ac62f75] libass_jll v0.15.1+0\n [2db6ffa8] libevdev_jll v1.11.0+0\n [f638f0a6] libfdk_aac_jll v2.0.2+0\n [36db933b] libinput_jll v1.18.0+0\n [b53b4c65] libpng_jll v1.6.40+0\n [47bcb7c8] libsass_jll v3.6.4+0\n [f27f6e37] libvorbis_jll v1.3.7+1\n [009596ad] mtdev_jll v1.1.6+0\n [1270edf5] x264_jll v2021.5.5+0\n [dfaa095f] x265_jll v3.5.0+0\n [d8fb68d0] xkbcommon_jll v1.4.1+1\n [0dad84c5] ArgTools v1.1.1\n [56f22d72] Artifacts\n [2a0f44e3] Base64\n [ade2ca70] Dates\n [8ba89e20] Distributed\n [f43a241f] Downloads v1.6.0\n [7b1f6079] FileWatching\n [9fa8497b] Future\n [b77e0a4c] InteractiveUtils\n [4af54fe1] LazyArtifacts\n [b27032c2] LibCURL v0.6.4\n [76f85450] LibGit2\n [8f399da3] Libdl\n [37e2e46d] LinearAlgebra\n [56ddb016] Logging\n [d6f4376e] Markdown\n [a63ad114] Mmap\n [ca575930] NetworkOptions v1.2.0\n [44cfe95a] Pkg v1.10.0\n [de0858da] Printf\n [3fa0cd96] REPL\n [9a3f8284] Random\n [ea8e919c] SHA v0.7.0\n [9e88b42a] Serialization\n [1a1011a3] SharedArrays\n [6462fe0b] Sockets\n [2f01184e] SparseArrays v1.10.0\n [10745b16] Statistics v1.10.0\n [4607b0f0] SuiteSparse\n [fa267f1f] TOML v1.0.3\n [a4e569a6] Tar v1.10.0\n [8dfed614] Test\n [cf7118a7] UUIDs\n [4ec0a83e] Unicode\n [e66e0078] CompilerSupportLibraries_jll v1.0.5+1\n [deac9b47] LibCURL_jll v8.4.0+0\n [e37daf67] LibGit2_jll v1.6.4+0\n [29816b5a] LibSSH2_jll v1.11.0+1\n [c8ffd9c3] MbedTLS_jll v2.28.2+1\n [14a3606d] MozillaCACerts_jll v2023.1.10\n [4536629a] OpenBLAS_jll v0.3.23+2\n [05823500] OpenLibm_jll v0.8.1+2\n [efcefdf7] PCRE2_jll v10.42.0+1\n [bea87d4a] SuiteSparse_jll v7.2.1+1\n [83775a58] Zlib_jll v1.2.13+1\n [8e850b90] libblastrampoline_jll v5.8.0+1\n [8e850ede] nghttp2_jll v1.52.0+1\n [3f19e933] p7zip_jll v17.4.0+2\nInfo Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`\n"},"internal":{"uuid":{"value":"c060e4d4-f885-448b-a8a4-d1e3174716b5"},"ext":{},"units_info":null},"time_series_compression_enabled":false,"components":[{"__metadata__":{"module":"PowerSystems","type":"LoadZone"},"name":"1","internal":{"uuid":{"value":"0565fba5-e06d-43b9-b09f-de3de5220152"},"ext":null,"units_info":null},"peak_active_power":1.8,"peak_reactive_power":0.5,"time_series_container":[]},{"internal_voltage":1.0,"services":[],"bus":{"value":"73b8ffa7-e539-4e0c-bed9-20ab53ef3ef1"},"available":true,"name":"InfBus","internal_angle":0.0,"active_power":0.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"Source"},"internal":{"uuid":{"value":"93deba3f-08b7-4313-9fb9-54bcead83c5a"},"ext":null,"units_info":null},"ext":{},"X_th":5.0e-6,"R_th":0.0,"reactive_power":0.0},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"65d0d2d8-da79-4a8f-b70a-51974bb39cbc"},"available":true,"time_series_container":[],"name":"generator-102-1","status":true,"active_power":0.7,"dynamic_injector":{"value":"f4ff52fe-f985-4d52-99df-35c40a80636c"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"ebefc53d-e29c-4947-a801-fed930ab11f2"},"ext":null,"units_info":null},"reactive_power_limits":{"min":-1.0,"max":1.0},"ext":{"z_source":{"x":1,"r":0}},"operation_cost":{"start_up":0.0,"fixed":0.0,"shut_down":0.0,"variable":{"cost":[0.0,1.0]},"__metadata__":{"module":"PowerSystems","type":"ThreePartCost"}},"time_limits":null,"must_run":false,"ramp_limits":{"up":3.18,"down":3.18},"time_at_status":10000.0,"active_power_limits":{"min":0.0,"max":3.18},"reactive_power":0.0},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"4df3ccf3-2786-4530-8b93-64c69c921844"},"available":true,"time_series_container":[],"name":"generator-103-1","status":true,"active_power":0.8,"dynamic_injector":{"value":"57ad3881-0eff-460b-8974-1730e5a6b84d"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"f2e84a06-9da0-4b69-b104-334598913021"},"ext":null,"units_info":null},"reactive_power_limits":{"min":-1.0,"max":1.0},"ext":{"z_source":{"x":1,"r":0}},"operation_cost":{"start_up":0.0,"fixed":0.0,"shut_down":0.0,"variable":{"cost":[0.0,1.0]},"__metadata__":{"module":"PowerSystems","type":"ThreePartCost"}},"time_limits":null,"must_run":false,"ramp_limits":{"up":3.18,"down":3.18},"time_at_status":10000.0,"active_power_limits":{"min":0.0,"max":3.18},"reactive_power":0.0},{"load_response":0.0,"name":"1","__metadata__":{"module":"PowerSystems","type":"Area"},"internal":{"uuid":{"value":"71d1a01b-4f72-4ff0-8e8b-4e44cfba10cf"},"ext":null,"units_info":null},"peak_active_power":0.0,"peak_reactive_power":0.0,"time_series_container":[]},{"base_power":100.0,"shaft":{"internal":{"uuid":{"value":"b2495413-3951-40f2-a232-f1caf128bdfd"},"ext":null,"units_info":null},"n_states":2,"ext":{},"D":0.0,"states":["δ","ω"],"H":3.01,"__metadata__":{"module":"PowerSystems","type":"SingleMass"}},"states":["eq_p","ed_p","δ","ω","Vf","Vr1","Vr2","Vm"],"name":"generator-102-1","n_states":8,"ω_ref":1.0,"__metadata__":{"parameters":["OneDOneQMachine","SingleMass","AVRTypeI","TGFixed","PSSFixed"],"module":"PowerSystems","type":"DynamicGenerator"},"avr":{"Ta":0.2,"Te":0.314,"states_types":["Differential","Differential","Differential","Differential"],"__metadata__":{"module":"PowerSystems","type":"AVRTypeI"},"internal":{"uuid":{"value":"b6b9261d-ce6b-464e-91e4-7ca9627db5b7"},"ext":null,"units_info":null},"Ke":0.01,"ext":{},"Kf":0.063,"V_ref":1.0,"states":["Vf","Vr1","Vr2","Vm"],"Ae":0.0039,"n_states":4,"Tf":0.35,"Tr":0.001,"Va_lim":{"min":-5.0,"max":5.0},"Be":1.555,"Ka":20.0},"internal":{"uuid":{"value":"f4ff52fe-f985-4d52-99df-35c40a80636c"},"ext":null,"units_info":null},"ext":{},"machine":{"internal":{"uuid":{"value":"71539e58-c530-42e2-a85e-7843983f9bca"},"ext":null,"units_info":null},"Xq":1.2578,"ext":{},"states":["eq_p","ed_p"],"Tq0_p":0.6,"n_states":2,"Xd":1.3125,"Xd_p":0.1813,"Xq_p":0.25,"Td0_p":5.89,"R":0.0,"__metadata__":{"module":"PowerSystems","type":"OneDOneQMachine"}},"pss":{"V_pss":0.0,"internal":{"uuid":{"value":"cc53a649-856e-4788-b12a-536aafe740d4"},"ext":null,"units_info":null},"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"PSSFixed"}},"prime_mover":{"P_ref":1.0,"internal":{"uuid":{"value":"da62fa19-3455-4aed-a741-6f6a1365a28d"},"ext":null,"units_info":null},"efficiency":1.0,"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"TGFixed"}}},{"base_power":100.0,"filter":{"rg":0.01,"cf":0.074,"n_states":6,"ext":{},"lf":0.08,"lg":0.2,"states":["ir_cnv","ii_cnv","vr_filter","vi_filter","ir_filter","ii_filter"],"rf":0.003,"__metadata__":{"module":"PowerSystems","type":"LCLFilter"}},"states":["θ_oc","ω_oc","q_oc","ξd_ic","ξq_ic","γd_ic","γq_ic","ϕd_ic","ϕq_ic","vd_pll","vq_pll","ε_pll","θ_pll","ir_cnv","ii_cnv","vr_filter","vi_filter","ir_filter","ii_filter"],"dc_source":{"__metadata__":{"module":"PowerSystems","type":"FixedDCSource"},"internal":{"uuid":{"value":"ec65fbcf-d032-47ee-bffb-0394c23a7168"},"ext":null,"units_info":null},"n_states":0,"ext":{},"states":[],"voltage":600.0},"name":"generator-103-1","converter":{"rated_voltage":138.0,"n_states":0,"ext":{},"rated_current":100.0,"states":[],"__metadata__":{"module":"PowerSystems","type":"AverageConverter"}},"n_states":19,"ω_ref":1.0,"__metadata__":{"parameters":["AverageConverter","OuterControl","VoltageModeControl","FixedDCSource","KauraPLL","LCLFilter","Nothing"],"module":"PowerSystems","type":"DynamicInverter"},"internal":{"uuid":{"value":"57ad3881-0eff-460b-8974-1730e5a6b84d"},"ext":null,"units_info":null},"ext":{},"outer_control":{"active_power_control":{"__metadata__":{"module":"PowerSystems","type":"VirtualInertia"},"P_ref":1.0,"kω":20.0,"n_states":2,"ext":{},"states":["θ_oc","ω_oc"],"kd":400.0,"Ta":2.0},"reactive_power_control":{"kq":0.2,"n_states":1,"ext":{},"V_ref":1.0,"ωf":1000.0,"states":["q_oc"],"__metadata__":{"module":"PowerSystems","type":"ReactivePowerDroop"}},"n_states":3,"ext":{},"states":["θ_oc","ω_oc","q_oc"],"__metadata__":{"parameters":["VirtualInertia","ReactivePowerDroop"],"module":"PowerSystems","type":"OuterControl"}},"freq_estimator":{"ω_lp":500.0,"n_states":4,"ki_pll":4.69,"ext":{},"kp_pll":0.084,"states":["vd_pll","vq_pll","ε_pll","θ_pll"],"__metadata__":{"module":"PowerSystems","type":"KauraPLL"}},"inner_control":{"rv":0.0,"lv":0.2,"ωad":50.0,"kpc":1.27,"ext":{},"states":["ξd_ic","ξq_ic","γd_ic","γq_ic","ϕd_ic","ϕq_ic"],"kffi":0.0,"kffv":0.0,"n_states":6,"kpv":0.59,"kiv":736.0,"kad":0.2,"kic":14.3,"__metadata__":{"module":"PowerSystems","type":"VoltageModeControl"}},"limiter":null},{"number":103,"base_voltage":138.0,"bustype":"PV","angle":0.0,"name":"BUS 3","magnitude":1.0059,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"4df3ccf3-2786-4530-8b93-64c69c921844"},"ext":null,"units_info":null},"area":{"value":"71d1a01b-4f72-4ff0-8e8b-4e44cfba10cf"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"0565fba5-e06d-43b9-b09f-de3de5220152"}},{"number":101,"base_voltage":138.0,"bustype":"REF","angle":0.0,"name":"BUS 1","magnitude":1.02,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"0681f7c9-be09-4522-a42d-1e3c91c459dd"},"ext":null,"units_info":null},"area":{"value":"71d1a01b-4f72-4ff0-8e8b-4e44cfba10cf"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"0565fba5-e06d-43b9-b09f-de3de5220152"}},{"number":102,"base_voltage":138.0,"bustype":"PV","angle":0.0,"name":"BUS 2","magnitude":1.0142,"__metadata__":{"module":"PowerSystems","type":"ACBus"},"internal":{"uuid":{"value":"65d0d2d8-da79-4a8f-b70a-51974bb39cbc"},"ext":null,"units_info":null},"area":{"value":"71d1a01b-4f72-4ff0-8e8b-4e44cfba10cf"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"0565fba5-e06d-43b9-b09f-de3de5220152"}},{"internal":{"uuid":{"value":"ad71efa1-46d6-464e-b055-d35ff7465dab"},"ext":null,"units_info":null},"to":{"value":"4df3ccf3-2786-4530-8b93-64c69c921844"},"from":{"value":"0681f7c9-be09-4522-a42d-1e3c91c459dd"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"3148aaf7-9b21-4047-9f37-b68eec95f0c6"},"ext":null,"units_info":null},"to":{"value":"65d0d2d8-da79-4a8f-b70a-51974bb39cbc"},"from":{"value":"0681f7c9-be09-4522-a42d-1e3c91c459dd"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"3f350aaf-2270-47d9-a4c7-f2c6b384d944"},"ext":null,"units_info":null},"to":{"value":"4df3ccf3-2786-4530-8b93-64c69c921844"},"from":{"value":"65d0d2d8-da79-4a8f-b70a-51974bb39cbc"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"services":[],"x":0.12,"b":{"from":0.1,"to":0.1},"r":0.01,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 1-BUS 3-i_1","reactive_power_flow":0.0,"arc":{"value":"ad71efa1-46d6-464e-b055-d35ff7465dab"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"f608d06d-dbbe-4d0c-a4e2-ab83f1812d9c"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"services":[],"x":0.12,"b":{"from":0.1,"to":0.1},"r":0.01,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 1-BUS 2-i_1","reactive_power_flow":0.0,"arc":{"value":"3148aaf7-9b21-4047-9f37-b68eec95f0c6"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"61b25c61-fcd0-4c78-a164-aa19cb5dc96d"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"services":[],"x":0.9,"b":{"from":0.5,"to":0.5},"r":0.02,"rate":2.5,"available":true,"time_series_container":[],"name":"BUS 2-BUS 3-i_1","reactive_power_flow":0.0,"arc":{"value":"3f350aaf-2270-47d9-a4c7-f2c6b384d944"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"7918d7d7-f60c-4268-8913-c3439392d1d6"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"base_power":100.0,"services":[],"bus":{"value":"0681f7c9-be09-4522-a42d-1e3c91c459dd"},"max_constant_active_power":0.5,"available":true,"time_series_container":[],"name":"load1011","max_current_active_power":0.0,"constant_active_power":0.5,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"98cc841a-68d5-46e0-8a25-4fa0ca7a60fa"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.1,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.1,"max_impedance_reactive_power":0.0},{"base_power":100.0,"services":[],"bus":{"value":"4df3ccf3-2786-4530-8b93-64c69c921844"},"max_constant_active_power":0.3,"available":true,"time_series_container":[],"name":"load1031","max_current_active_power":0.0,"constant_active_power":0.3,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"4219562d-6edd-4569-a12c-ffdd44bbbb7a"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.1,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.1,"max_impedance_reactive_power":0.0},{"base_power":100.0,"services":[],"bus":{"value":"65d0d2d8-da79-4a8f-b70a-51974bb39cbc"},"max_constant_active_power":1.0,"available":true,"time_series_container":[],"name":"load1021","max_current_active_power":0.0,"constant_active_power":1.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"StandardLoad"},"current_active_power":0.0,"current_reactive_power":0.0,"internal":{"uuid":{"value":"5dfe613b-fe88-48ef-8ea9-70d37bb93f4d"},"ext":null,"units_info":null},"ext":{},"max_constant_reactive_power":0.3,"max_current_reactive_power":0.0,"impedance_reactive_power":0.0,"impedance_active_power":0.0,"max_impedance_active_power":0.0,"constant_reactive_power":0.3,"max_impedance_reactive_power":0.0}],"validation_descriptor_file":"threebus_sys_validation_descriptors.json","time_series_params":{"__metadata__":{"module":"InfrastructureSystems","type":"TimeSeriesParameters"},"resolution":{"value":0,"type":"Minute"},"forecast_params":{"initial_timestamp":"0001-01-01T00:00:00.0","interval":{"value":0,"type":"Minute"},"horizon":0,"count":0,"__metadata__":{"module":"InfrastructureSystems","type":"ForecastParameters"}}}},"units_settings":{"base_value":100.0,"unit_system":"SYSTEM_BASE"},"frequency":60.0,"runchecks":true,"metadata":{"name":null,"description":null,"__metadata__":{"module":"PowerSystems","type":"SystemMetadata"}},"data_format_version":"3.0.0"} \ No newline at end of file diff --git a/dev/tutorials/threebus_sys_validation_descriptors.json b/dev/tutorials/threebus_sys_validation_descriptors.json index 9d68ad8f0..e9df79ac3 100644 --- a/dev/tutorials/threebus_sys_validation_descriptors.json +++ b/dev/tutorials/threebus_sys_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","default":"VariableCost((0.0, 0.0))","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"energy_shortage_cost","default":"0.0","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","default":"0.0","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"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"violation_penalty","default":"INFINITE_COST","data_type":"Float64","null_value":"0.0","comment":"Penalty for violating the flow limits in the interface"},{"name":"direction_mapping","default":"Dict{String, Int}()","data_type":"Dict{String, Int}","null_value":"Dict{String, Int}()","comment":"Map to set of multiplier to the flow in the line for cases when the line has a reverse direction with respect to the interface"},{"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 branches that make up an interface or corridor for the transfer of power.","struct_name":"TransmissionInterface","supertype":"Service"},{"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, ACBusTypes}","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":"ACBus","supertype":"Bus"},{"fields":[{"name":"number","data_type":"Int","null_value":"0","comment":"number associated with the DC bus"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init","comment":"the name of the DC bus"},{"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 DC bus"},{"name":"load_zone","default":"nothing","data_type":"Union{Nothing, LoadZone}","null_value":"nothing","comment":"the load zone containing the DC 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 DC bus.","struct_name":"DCBus","supertype":"Bus"},{"fields":[{"name":"from","data_type":"Bus","null_value":"ACBus(nothing)","comment":"The initial bus"},{"name":"to","data_type":"Bus","null_value":"ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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":"TwoTerminalHVDCLine","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(ACBus(nothing), ACBus(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":"TwoTerminalVSCDCLine","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(DCBus(nothing), DCBus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","comment":"Series Resistance system per-unit value"},{"name":"l","data_type":"Float64","null_value":"0.0","comment":"Series Inductance system per-unit value"},{"name":"c","data_type":"Float64","null_value":"0.0","comment":"Shunt capacitance system per-unit value"},{"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":"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":"a HVDC T-Model DC line.","struct_name":"TModelHVDCLine","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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(nothing)"},{"name":"dc_bus","data_type":"DCBus","null_value":"DCBus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Active Power on the DCSide","valid_range":"active_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 converter. <= 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)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the converter 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":"efficiency","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion efficiency from AC Power to DC Power"},{"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":"Interconnecting Power Converter (IPC) for transforming power from an ACBus to a DCBus","struct_name":"InterconnectingConverter","supertype":"StaticInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"K","data_type":"Float64","null_value":0,"comment":"Gain in pu","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":"eps()"}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"Rmin","data_type":"Float64","null_value":0,"comment":"Reactor minimum Mvar","valid_range":{"max":null,"min":0}},{"name":"Vmax","data_type":"Float64","null_value":0,"comment":"Maximum voltage in pu","valid_range":{"max":null,"min":0}},{"name":"Vmin","data_type":"Float64","null_value":0,"comment":"Minimum voltage in pu","valid_range":{"max":null,"min":0}},{"name":"CBase","data_type":"Float64","null_value":0,"comment":"Capacitor Mvar","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":"R_th","data_type":"Float64","comment":"Source Thevenin resistance","internal_default":"0.0"},{"name":"X_th","data_type":"Float64","comment":"Source Thevenin reactance","internal_default":"0.0"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tthy: thyristor,\n\tvr1: regulator output 1,\n\tvr2: regulator output 2","internal_default":"[:thy, :vr1, :vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"CSVGN1 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 static shunt compensator: CSVGN1 in PSSE","struct_name":"CSVGN1","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(nothing)"},{"name":"prime_mover_type","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":"StorageManagementCost()","data_type":"Union{StorageManagementCost, MarketBidCost}","null_value":"StorageManagementCost()"},{"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":"ACBus","null_value":"ACBus(nothing)"},{"name":"prime_mover_type","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":"Union{StorageManagementCost, MarketBidCost}","data_type":"StorageManagementCost","null_value":"StorageManagementCost()"},{"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":"cycle_limits","default":"1e4","data_type":"Int","null_value":"0","comment":"Storage Maximum number of cycles per year"},{"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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","needs_conversion":true,"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 saturation time_frame in minutes to provide reserve contribution","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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"sustained_time","default":"14400.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 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":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 16 states","internal_default":16},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 16 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE Dual-Input Stabilizer Model","struct_name":"PSS2A","supertype":"PSS"},{"fields":[{"name":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T10","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T11","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vs1_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"First input limits `(Vs1_min, Vs1_max)`"},{"name":"Vs2_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Second input limits `(Vs2_min, Vs2_max)`"},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag, \n\tx_p17: 3rd lead-lag,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16, :x_p17]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 17 states","internal_default":17},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 17 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE 421.5 2005 PSS2B IEEE Dual-Input Stabilizer Model","struct_name":"PSS2B","supertype":"PSS"},{"fields":[{"name":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":7,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T10","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T11","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vs1_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"First input limits `(Vs1_min, Vs1_max)`"},{"name":"Vs2_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Second input limits `(Vs2_min, Vs2_max)`"},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"name":"T12","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T13","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth lead-lag block","valid_range":{"max":null,"min":0}},{"name":"PSS_Hysteresis_param","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output hysteresis parameters `(PSSOFF, PSSON)`"},{"name":"Xcomp","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"Tcomp","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Time measured with compensated frequency","valid_range":{"max":null,"min":"eps()"}},{"name":"hysteresis_binary_logic","default":"1","data_type":"Int","null_value":0,"comment":"Hysteresis memory variable"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag, \n\tx_p17: 3rd lead-lag, \n\tx_p18: 4th lead-lag, \n\tx_p19: washout block for compensated frequency,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16, :x_p17, :x_p18, :x_p19]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 19 states","internal_default":19},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 19 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE 421.5 2016 PSS2C IEEE Dual-Input Stabilizer Model","struct_name":"PSS2C","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":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Magnitude (Circular) Current Controller Limiter","struct_name":"MagnitudeCurrentLimiter","supertype":"InverterLimiter"},{"fields":[{"name":"Id_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on d-axis current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"Iq_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on d-axis current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Instantaneous (Square) Current Controller Limiter","struct_name":"InstantaneousCurrentLimiter","supertype":"InverterLimiter"},{"fields":[{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ϕ_I","data_type":"Float64","null_value":0,"comment":"Pre-defined angle (measured against the d-axis) for Iref once limit is hit","valid_range":{"max":1.571,"min":-1.571}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Priority-Based Current Controller Limiter","struct_name":"PriorityCurrentLimiter","supertype":"InverterLimiter"},{"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":"ACBus","null_value":"ACBus(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","default":"VariableCost((0.0, 0.0))","data_type":"VariableCost","null_value":"VariableCost((0.0, 0.0))","comment":"variable cost"},{"name":"fixed","default":"0.0","data_type":"Float64","null_value":"0.0","comment":"fixed cost"},{"name":"start_up","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"start-up cost","valid_range":{"max":null,"min":0}},{"name":"shut_down","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"shut-down cost","valid_range":{"max":null,"min":0}},{"name":"energy_shortage_cost","default":"0.0","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","default":"0.0","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"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"available","data_type":"Bool","null_value":"false"},{"name":"active_power_flow_limits","needs_conversion":true,"data_type":"MinMax","null_value":"(min=0.0, max=0.0)"},{"name":"violation_penalty","default":"INFINITE_COST","data_type":"Float64","null_value":"0.0","comment":"Penalty for violating the flow limits in the interface"},{"name":"direction_mapping","default":"Dict{String, Int}()","data_type":"Dict{String, Int}","null_value":"Dict{String, Int}()","comment":"Map to set of multiplier to the flow in the line for cases when the line has a reverse direction with respect to the interface"},{"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 branches that make up an interface or corridor for the transfer of power.","struct_name":"TransmissionInterface","supertype":"Service"},{"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, ACBusTypes}","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":"ACBus","supertype":"Bus"},{"fields":[{"name":"number","data_type":"Int","null_value":"0","comment":"number associated with the DC bus"},{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init","comment":"the name of the DC bus"},{"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 DC bus"},{"name":"load_zone","default":"nothing","data_type":"Union{Nothing, LoadZone}","null_value":"nothing","comment":"the load zone containing the DC 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 DC bus.","struct_name":"DCBus","supertype":"Bus"},{"fields":[{"name":"from","data_type":"Bus","null_value":"ACBus(nothing)","comment":"The initial bus"},{"name":"to","data_type":"Bus","null_value":"ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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(ACBus(nothing), ACBus(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":"TwoTerminalHVDCLine","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(ACBus(nothing), ACBus(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":"TwoTerminalVSCDCLine","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(DCBus(nothing), DCBus(nothing))"},{"name":"r","data_type":"Float64","null_value":"0.0","comment":"Series Resistance system per-unit value"},{"name":"l","data_type":"Float64","null_value":"0.0","comment":"Series Inductance system per-unit value"},{"name":"c","data_type":"Float64","null_value":"0.0","comment":"Shunt capacitance system per-unit value"},{"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":"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":"a HVDC T-Model DC line.","struct_name":"TModelHVDCLine","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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(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":"ACBus","null_value":"ACBus(nothing)"},{"name":"dc_bus","data_type":"DCBus","null_value":"DCBus(nothing)"},{"name":"active_power","needs_conversion":true,"data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Active Power on the DCSide","valid_range":"active_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 converter. <= 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)"},{"name":"base_power","data_type":"Float64","null_value":"0.0","validation_action":"warn","comment":"Base power of the converter 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":"efficiency","default":"1.0","data_type":"Float64","null_value":"0.0","comment":"Conversion efficiency from AC Power to DC Power"},{"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":"Interconnecting Power Converter (IPC) for transforming power from an ACBus to a DCBus","struct_name":"InterconnectingConverter","supertype":"StaticInjection"},{"fields":[{"name":"name","data_type":"String","exclude_setter":true,"null_value":"init"},{"name":"K","data_type":"Float64","null_value":0,"comment":"Gain in pu","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":"eps()"}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"T5","data_type":"Float64","null_value":0,"comment":"Time constant in s","valid_range":{"max":null,"min":0}},{"name":"Rmin","data_type":"Float64","null_value":0,"comment":"Reactor minimum Mvar","valid_range":{"max":null,"min":0}},{"name":"Vmax","data_type":"Float64","null_value":0,"comment":"Maximum voltage in pu","valid_range":{"max":null,"min":0}},{"name":"Vmin","data_type":"Float64","null_value":0,"comment":"Minimum voltage in pu","valid_range":{"max":null,"min":0}},{"name":"CBase","data_type":"Float64","null_value":0,"comment":"Capacitor Mvar","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":"R_th","data_type":"Float64","comment":"Source Thevenin resistance","internal_default":"0.0"},{"name":"X_th","data_type":"Float64","comment":"Source Thevenin reactance","internal_default":"0.0"},{"name":"states","data_type":"Vector{Symbol}","exclude_setter":true,"comment":"The states are:\n\tthy: thyristor,\n\tvr1: regulator output 1,\n\tvr2: regulator output 2","internal_default":"[:thy, :vr1, :vr2]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"CSVGN1 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 static shunt compensator: CSVGN1 in PSSE","struct_name":"CSVGN1","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(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_type","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":"ACBus","null_value":"ACBus(nothing)"},{"name":"prime_mover_type","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":"StorageManagementCost()","data_type":"Union{StorageManagementCost, MarketBidCost}","null_value":"StorageManagementCost()"},{"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":"ACBus","null_value":"ACBus(nothing)"},{"name":"prime_mover_type","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":"Union{StorageManagementCost, MarketBidCost}","data_type":"StorageManagementCost","null_value":"StorageManagementCost()"},{"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":"cycle_limits","default":"1e4","data_type":"Int","null_value":"0","comment":"Storage Maximum number of cycles per year"},{"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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","needs_conversion":true,"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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 saturation time_frame in minutes to provide reserve contribution","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":"sustained_time","default":"3600.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 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 saturation time_frame in minutes to provide reserve contribution","valid_range":{"max":null,"min":0}},{"name":"requirement","needs_conversion":true,"data_type":"Float64","null_value":"0.0","comment":"the required quantity of the product should be scaled by a TimeSeriesData"},{"name":"sustained_time","default":"14400.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"the time in secounds reserve contribution must sustained at a specified level","valid_range":{"max":null,"min":0}},{"name":"max_output_fraction","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum fraction of the device's output that can be assigned to the service","valid_range":{"max":1,"min":0}},{"name":"max_participation_factor","default":"1.0","data_type":"Float64","null_value":"1.0","validation_action":"error","comment":"the maximum limit of reserve contribution per device","valid_range":{"max":1,"min":0}},{"name":"deployed_fraction","default":"0.0","data_type":"Float64","null_value":"0.0","validation_action":"error","comment":"Fraction of ancillary services participation deployed from the assignment","valid_range":{"max":1,"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 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":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 16 states","internal_default":16},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 16 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE Dual-Input Stabilizer Model","struct_name":"PSS2A","supertype":"PSS"},{"fields":[{"name":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T10","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T11","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vs1_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"First input limits `(Vs1_min, Vs1_max)`"},{"name":"Vs2_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Second input limits `(Vs2_min, Vs2_max)`"},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag, \n\tx_p17: 3rd lead-lag,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16, :x_p17]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 17 states","internal_default":17},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 17 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE 421.5 2005 PSS2B IEEE Dual-Input Stabilizer Model","struct_name":"PSS2B","supertype":"PSS"},{"fields":[{"name":"input_code_1","data_type":"Int","null_value":1,"validation_action":"error","comment":"First Input Code for stabilizer","valid_range":{"max":7,"min":1}},{"name":"remote_bus_control_1","data_type":"Int","null_value":0,"comment":"First Input Remote Bus number for control."},{"name":"input_code_2","data_type":"Int","null_value":1,"validation_action":"error","comment":"Second Input Code for stabilizer","valid_range":{"max":6,"min":1}},{"name":"remote_bus_control_2","data_type":"Int","null_value":0,"comment":"Second Input Remote Bus number for control."},{"name":"M_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"M parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"N_rtf","data_type":"Int","null_value":0,"validation_action":"error","comment":"N parameter for ramp tracking filter","valid_range":{"max":8,"min":0}},{"name":"Tw1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for first input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for first input","valid_range":{"max":null,"min":0}},{"name":"T6","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for first input","valid_range":{"max":null,"min":0}},{"name":"Tw3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first washout filter for second input","valid_range":{"max":null,"min":"eps()"}},{"name":"Tw4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second washout filter for second input","valid_range":{"max":null,"min":0}},{"name":"T7","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for low-pass filter for second input","valid_range":{"max":null,"min":0}},{"name":"Ks3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain for second input","valid_range":{"max":null,"min":0}},{"name":"T8","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":0}},{"name":"T9","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for ramp tracking filter","valid_range":{"max":null,"min":"eps()"}},{"name":"Ks1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Gain before lead-lag blocks","valid_range":{"max":null,"min":0}},{"name":"T1","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T2","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for first lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T3","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T4","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for second lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T10","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T11","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for third lead-lag block","valid_range":{"max":null,"min":0}},{"name":"Vs1_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"First input limits `(Vs1_min, Vs1_max)`"},{"name":"Vs2_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"Second input limits `(Vs2_min, Vs2_max)`"},{"name":"Vst_lim","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output limits `(Vst_min, Vst_max)`"},{"name":"T12","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth lead-lag block","valid_range":{"max":null,"min":0}},{"name":"T13","data_type":"Float64","null_value":0,"validation_action":"warn","comment":"Time constant for fourth lead-lag block","valid_range":{"max":null,"min":0}},{"name":"PSS_Hysteresis_param","data_type":"Tuple{Float64, Float64}","null_value":"(0.0, 0.0)","comment":"PSS output hysteresis parameters `(PSSOFF, PSSON)`"},{"name":"Xcomp","data_type":"Float64","null_value":0,"comment":"Stator Leakage Reactance","valid_range":{"max":null,"min":0}},{"name":"Tcomp","data_type":"Float64","null_value":0,"validation_action":"error","comment":"Time measured with compensated frequency","valid_range":{"max":null,"min":"eps()"}},{"name":"hysteresis_binary_logic","default":"1","data_type":"Int","null_value":0,"comment":"Hysteresis memory variable"},{"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 washout 1st input, \n\tx_p2: 2nd washout 1st input, \n\tx_p3: transducer 1st input, \n\tx_p4: 1st washout 2nd input, \n\tx_p5: 2nd washout 2nd input, \n\tx_p6: transducer 2nd input, \n\tx_p7: ramp tracking filter state 1, \n\tx_p8: ramp tracking filter state 2, \n\tx_p9: ramp tracking filter state 3, \n\tx_p10: ramp tracking filter state 4, \n\tx_p11: ramp tracking filter state 5, \n\tx_p12: ramp tracking filter state 6, \n\tx_p13: ramp tracking filter state 7, \n\tx_p14: ramp tracking filter state 8, \n\tx_p15: 1st lead-lag, \n\tx_p16: 2nd lead-lag, \n\tx_p17: 3rd lead-lag, \n\tx_p18: 4th lead-lag, \n\tx_p19: washout block for compensated frequency,","internal_default":"[:x_p1, :x_p2, :x_p3, :x_p4, :x_p5, :x_p6, :x_p7, :x_p8, :x_p9, :x_p10, :x_p11, :x_p12, :x_p13, :x_p14, :x_p15, :x_p16, :x_p17, :x_p18, :x_p19]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"IEEEST has 19 states","internal_default":19},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"IEEEST has 19 differential states","internal_default":"[StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, StateTypes.Differential, 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":"IEEE 421.5 2016 PSS2C IEEE Dual-Input Stabilizer Model","struct_name":"PSS2C","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":"T1","data_type":"Float64","null_value":0,"comment":"Governor mechanism time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"T2","data_type":"Float64","null_value":0,"comment":"Turbine power time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"T3","data_type":"Float64","null_value":0,"comment":"Turbine exhaust temperature time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"K","data_type":"Float64","null_value":0,"comment":"Governor gain (reciprocal of droop)","valid_range":{"max":100,"min":"eps()"}},{"name":"T4","data_type":"Float64","null_value":0,"comment":"Governor lead time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"T5","data_type":"Float64","null_value":0,"comment":"Governor lag time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"T6","data_type":"Float64","null_value":0,"comment":"Actuator time constant","valid_range":{"max":100,"min":"eps()"}},{"name":"Td","data_type":"Float64","null_value":0,"comment":"Engine time delay","valid_range":{"max":100,"min":"eps()"}},{"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 DEGOV model are:\n\tx_ecb1: Electric control box 1,\n\tx_ecb2: Electric control box 2,\n\tx_a1: Actuator 1,\n\tx_a2: Actuator 2,\n\tx_a3: Actuator 3,","internal_default":"[:x_ecb1, :x_ecb2, :x_a1, :x_a2, :x_a3]"},{"name":"n_states","data_type":"Int","exclude_setter":true,"comment":"DEGOV has 5 states","internal_default":5},{"name":"states_types","data_type":"Vector{StateTypes}","comment":"DEGOV has 5 differential states","internal_default":"[StateTypes.Differential, 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 Woodward Diesel Governor Model. DEGOV in PowerWorld.","struct_name":"DEGOV","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":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Magnitude (Circular) Current Controller Limiter","struct_name":"MagnitudeCurrentLimiter","supertype":"InverterLimiter"},{"fields":[{"name":"Id_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on d-axis current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"Iq_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on d-axis current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Instantaneous (Square) Current Controller Limiter","struct_name":"InstantaneousCurrentLimiter","supertype":"InverterLimiter"},{"fields":[{"name":"I_max","data_type":"Float64","null_value":0,"comment":"Maximum limit on current controller input current (device base)","valid_range":{"max":null,"min":0}},{"name":"ϕ_I","data_type":"Float64","null_value":0,"comment":"Pre-defined angle (measured against the d-axis) for Iref once limit is hit","valid_range":{"max":1.571,"min":-1.571}},{"name":"ext","default":"Dict{String, Any}()","data_type":"Dict{String, Any}","null_value":"Dict{String, Any}()"}],"docstring":"Parameters of Priority-Based Current Controller Limiter","struct_name":"PriorityCurrentLimiter","supertype":"InverterLimiter"},{"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":"ACBus","null_value":"ACBus(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/dev/tutorials/tutorial_240bus/index.html b/dev/tutorials/tutorial_240bus/index.html index 223bde852..c1fed937e 100644 --- a/dev/tutorials/tutorial_240bus/index.html +++ b/dev/tutorials/tutorial_240bus/index.html @@ -1,13 +1,115 @@ -240 WECC solver comparison · PowerSimulationsDynamics.jl

      PSSE 240 Bus Case system with Renewables

      Originally Contributed by: José Daniel Lara

      Introduction

      This tutorial will introduce the industry models of Renewable Energy the comparisons between DiffEq Integration techniques for comparison. We show the uses of Sundials and OrdinaryDiffEq to obtain the transient response of a system to a perturbation.

      julia> using PowerSimulationsDynamics
      julia> using PowerSystemCaseBuilder
      julia> using PowerSystems
      julia> const PSY = PowerSystemsPowerSystems
      julia> using Sundials
      julia> using Plots
      julia> using OrdinaryDiffEq
      Note

      PowerSystemCaseBuilder.jl is a helper library that makes it easier to reproduce examples in the documentation and tutorials. Normally you would pass your local files to create the system data instead of calling the function build_system. For more details visit PowerSystemCaseBuilder Documentation

      Load the system and transform load data

      To load the system we use PowerSystemCaseBuilder.jl:

      julia> # We remove the checks in this example to avoid large prints
      -       sys = build_system(PSIDSystems, "WECC 240 Bus"; runchecks = false)┌ Info: Building new system WECC 240 Bus from raw data
      +240 WECC solver comparison · PowerSimulationsDynamics.jl

      PSSE 240 Bus Case system with Renewables

      Originally Contributed by: José Daniel Lara

      Introduction

      This tutorial will introduce the industry models of Renewable Energy the comparisons between DiffEq Integration techniques for comparison. We show the uses of Sundials and OrdinaryDiffEq to obtain the transient response of a system to a perturbation.

      julia> using PowerSimulationsDynamics
      julia> using PowerSystemCaseBuilder
      julia> using PowerSystems
      julia> const PSY = PowerSystemsPowerSystems
      julia> using Sundials
      julia> using Plots
      julia> using OrdinaryDiffEqERROR: LoadError: Invalid Tag object: + Expected ForwardDiff.Tag{NonlinearSolve.JacobianWrapper{true, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, Vector{Float32}}, Float32}, + Observed ForwardDiff.Tag{Bool, Float32}. +Stacktrace: + [1] checktag(::Type{ForwardDiff.Tag{Bool, Float32}}, f::NonlinearSolve.JacobianWrapper{true, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, Vector{Float32}}, x::Vector{Float32}) + @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/config.jl:34 + [2] jacobian!(result::Matrix{Float32}, f!::Function, y::Vector{Float32}, x::Vector{Float32}, cfg::ForwardDiff.JacobianConfig{ForwardDiff.Tag{Bool, Float32}, Float32, 1, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{Bool, Float32}, Float32, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{Bool, Float32}, Float32, 1}}}}, ::Val{true}) + @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/jacobian.jl:76 + [3] jacobian!(result::Matrix{Float32}, f!::Function, y::Vector{Float32}, x::Vector{Float32}, cfg::ForwardDiff.JacobianConfig{ForwardDiff.Tag{Bool, Float32}, Float32, 1, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{Bool, Float32}, Float32, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{Bool, Float32}, Float32, 1}}}}) + @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/jacobian.jl:76 + [4] sparse_jacobian!(J::Matrix{Float32}, ::ADTypes.AutoForwardDiff{0, Bool}, cache::SparseDiffTools.ForwardDiffJacobianCache{SparseDiffTools.NoMatrixColoring, ForwardDiff.JacobianConfig{ForwardDiff.Tag{Bool, Float32}, Float32, 1, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{Bool, Float32}, Float32, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{Bool, Float32}, Float32, 1}}}}, Nothing, Vector{Float32}, Vector{Float32}}, f!::NonlinearSolve.JacobianWrapper{true, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, Vector{Float32}}, fx::Vector{Float32}, x::Vector{Float32}) + @ SparseDiffTools ~/.julia/packages/SparseDiffTools/CsonI/src/highlevel/forward_mode.jl:70 + [5] jacobian!!(J::Matrix{Float32}, cache::NonlinearSolve.NewtonRaphsonCache{true, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, NonlinearSolve.NewtonRaphson{nothing, ADTypes.AutoForwardDiff{0, Bool}, Nothing, typeof(NonlinearSolve.DEFAULT_PRECS), NonlinearSolve.LineSearch{LineSearches.Static, ADTypes.AutoFiniteDiff{Val{:forward}, Val{:forward}, Val{:hcentral}}, Bool}}, Vector{Float32}, Vector{Float32}, Vector{Float32}, Vector{Float32}, Vector{Float32}, NonlinearSolve.JacobianWrapper{true, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, Vector{Float32}}, LinearSolve.LinearCache{Matrix{Float32}, Vector{Float32}, Vector{Float32}, SciMLBase.NullParameters, LinearSolve.DefaultLinearSolver, LinearSolve.DefaultLinearSolverInit{LinearAlgebra.LU{Float32, Matrix{Float32}, Vector{Int64}}, LinearAlgebra.QRCompactWY{Float32, Matrix{Float32}, Matrix{Float32}}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, LinearAlgebra.LU{Float32, Matrix{Float32}, Vector{Int64}}, Tuple{LinearAlgebra.LU{Float32, Matrix{Float32}, Vector{Int64}}, Vector{Int64}}, Nothing, Nothing, Nothing, LinearAlgebra.SVD{Float32, Float32, Matrix{Float32}, Vector{Float32}}, LinearAlgebra.Cholesky{Float32, Matrix{Float32}}, LinearAlgebra.Cholesky{Float32, Matrix{Float32}}, Tuple{LinearAlgebra.LU{Float32, Matrix{Float32}, Vector{Int32}}, Base.RefValue{Int32}}, Tuple{LinearAlgebra.LU{Float32, Matrix{Float32}, Vector{Int64}}, Base.RefValue{Int64}}, LinearAlgebra.QRPivoted{Float32, Matrix{Float32}, Vector{Float32}, Vector{Int64}}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float32, Vector{Float32}}}, LinearAlgebra.Diagonal{Float32, Vector{Float32}}, Float32, Bool}, Matrix{Float32}, SparseDiffTools.ForwardDiffJacobianCache{SparseDiffTools.NoMatrixColoring, ForwardDiff.JacobianConfig{ForwardDiff.Tag{Bool, Float32}, Float32, 1, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{Bool, Float32}, Float32, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{Bool, Float32}, Float32, 1}}}}, Nothing, Vector{Float32}, Vector{Float32}}, Bool, typeof(NonlinearSolve.DEFAULT_NORM), Float32, SciMLBase.NonlinearProblem{Vector{Float32}, true, Vector{Float32}, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardNonlinearProblem}, NonlinearSolve.LineSearchCache{NonlinearSolve.var"#eval_f#18"{Vector{Float32}, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, Vector{Float32}, Val{true}, Vector{Float32}}, Nothing, Nothing, Nothing, Float32, NonlinearSolve.LineSearch{LineSearches.Static, ADTypes.AutoFiniteDiff{Val{:forward}, Val{:forward}, Val{:hcentral}}, Bool}}}) + @ NonlinearSolve ~/.julia/packages/NonlinearSolve/6NIAV/src/jacobian.jl:40 + [6] perform_step!(cache::NonlinearSolve.NewtonRaphsonCache{true, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, NonlinearSolve.NewtonRaphson{nothing, ADTypes.AutoForwardDiff{0, Bool}, Nothing, typeof(NonlinearSolve.DEFAULT_PRECS), NonlinearSolve.LineSearch{LineSearches.Static, ADTypes.AutoFiniteDiff{Val{:forward}, Val{:forward}, Val{:hcentral}}, Bool}}, Vector{Float32}, Vector{Float32}, Vector{Float32}, Vector{Float32}, Vector{Float32}, NonlinearSolve.JacobianWrapper{true, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, Vector{Float32}}, LinearSolve.LinearCache{Matrix{Float32}, Vector{Float32}, Vector{Float32}, SciMLBase.NullParameters, LinearSolve.DefaultLinearSolver, LinearSolve.DefaultLinearSolverInit{LinearAlgebra.LU{Float32, Matrix{Float32}, Vector{Int64}}, LinearAlgebra.QRCompactWY{Float32, Matrix{Float32}, Matrix{Float32}}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, LinearAlgebra.LU{Float32, Matrix{Float32}, Vector{Int64}}, Tuple{LinearAlgebra.LU{Float32, Matrix{Float32}, Vector{Int64}}, Vector{Int64}}, Nothing, Nothing, Nothing, LinearAlgebra.SVD{Float32, Float32, Matrix{Float32}, Vector{Float32}}, LinearAlgebra.Cholesky{Float32, Matrix{Float32}}, LinearAlgebra.Cholesky{Float32, Matrix{Float32}}, Tuple{LinearAlgebra.LU{Float32, Matrix{Float32}, Vector{Int32}}, Base.RefValue{Int32}}, Tuple{LinearAlgebra.LU{Float32, Matrix{Float32}, Vector{Int64}}, Base.RefValue{Int64}}, LinearAlgebra.QRPivoted{Float32, Matrix{Float32}, Vector{Float32}, Vector{Int64}}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float32, Vector{Float32}}}, LinearAlgebra.Diagonal{Float32, Vector{Float32}}, Float32, Bool}, Matrix{Float32}, SparseDiffTools.ForwardDiffJacobianCache{SparseDiffTools.NoMatrixColoring, ForwardDiff.JacobianConfig{ForwardDiff.Tag{Bool, Float32}, Float32, 1, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{Bool, Float32}, Float32, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{Bool, Float32}, Float32, 1}}}}, Nothing, Vector{Float32}, Vector{Float32}}, Bool, typeof(NonlinearSolve.DEFAULT_NORM), Float32, SciMLBase.NonlinearProblem{Vector{Float32}, true, Vector{Float32}, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardNonlinearProblem}, NonlinearSolve.LineSearchCache{NonlinearSolve.var"#eval_f#18"{Vector{Float32}, SciMLBase.NonlinearFunction{true, SciMLBase.FullSpecialize, NonlinearSolve.var"#53#55", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED_NO_TIME), Nothing, Nothing, Nothing}, Vector{Float32}, Val{true}, Vector{Float32}}, Nothing, Nothing, Nothing, Float32, NonlinearSolve.LineSearch{LineSearches.Static, ADTypes.AutoFiniteDiff{Val{:forward}, Val{:forward}, Val{:hcentral}}, Bool}}}) + @ NonlinearSolve ~/.julia/packages/NonlinearSolve/6NIAV/src/raphson.jl:88 + [7] solve! + @ NonlinearSolve ~/.julia/packages/NonlinearSolve/6NIAV/src/raphson.jl:136 [inlined] + [8] #__solve#1 + @ NonlinearSolve ~/.julia/packages/NonlinearSolve/6NIAV/src/NonlinearSolve.jl:34 [inlined] + [9] __solve + @ NonlinearSolve ~/.julia/packages/NonlinearSolve/6NIAV/src/NonlinearSolve.jl:31 [inlined] + [10] #solve_call#34 + @ DiffEqBase ~/.julia/packages/DiffEqBase/s433k/src/solve.jl:559 [inlined] + [11] solve_call + @ DiffEqBase ~/.julia/packages/DiffEqBase/s433k/src/solve.jl:529 [inlined] + [12] #solve_up#42 + @ DiffEqBase ~/.julia/packages/DiffEqBase/s433k/src/solve.jl:1028 [inlined] + [13] solve_up + @ DiffEqBase ~/.julia/packages/DiffEqBase/s433k/src/solve.jl:993 [inlined] + [14] #solve#41 + @ DiffEqBase ~/.julia/packages/DiffEqBase/s433k/src/solve.jl:987 [inlined] + [15] macro expansion + @ ~/.julia/packages/NonlinearSolve/6NIAV/src/NonlinearSolve.jl:61 [inlined] + [16] macro expansion + @ ~/.julia/packages/PrecompileTools/kmH5L/src/workloads.jl:78 [inlined] + [17] top-level scope + @ ~/.julia/packages/NonlinearSolve/6NIAV/src/NonlinearSolve.jl:48 + [18] include + @ Base ./Base.jl:495 [inlined] + [19] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String) + @ Base ./loading.jl:2216 + [20] top-level scope + @ stdin:3 +in expression starting at /home/runner/.julia/packages/NonlinearSolve/6NIAV/src/NonlinearSolve.jl:1 +in expression starting at stdin:3 +ERROR: LoadError: Failed to precompile NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec] to "/home/runner/.julia/compiled/v1.10/NonlinearSolve/jl_J6JiJa". +Stacktrace: + [1] error(s::String) + @ Base ./error.jl:35 + [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool) + @ Base ./loading.jl:2462 + [3] compilecache + @ Base ./loading.jl:2334 [inlined] + [4] (::Base.var"#968#969"{Base.PkgId})() + @ Base ./loading.jl:1968 + [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool}) + @ FileWatching.Pidfile /opt/hostedtoolcache/julia/1.10.0/x64/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93 + [6] #mkpidlock#6 + @ FileWatching.Pidfile /opt/hostedtoolcache/julia/1.10.0/x64/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined] + [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64}) + @ FileWatching.Pidfile /opt/hostedtoolcache/julia/1.10.0/x64/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111 + [8] #invokelatest#2 + @ Base ./essentials.jl:889 [inlined] + [9] invokelatest + @ Base ./essentials.jl:884 [inlined] + [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64) + @ Base ./loading.jl:2977 + [11] maybe_cachefile_lock + @ Base ./loading.jl:2974 [inlined] + [12] _require(pkg::Base.PkgId, env::String) + @ Base ./loading.jl:1964 + [13] __require_prelocked(uuidkey::Base.PkgId, env::String) + @ Base ./loading.jl:1806 + [14] #invoke_in_world#3 + @ Base ./essentials.jl:921 [inlined] + [15] invoke_in_world + @ Base ./essentials.jl:918 [inlined] + [16] _require_prelocked(uuidkey::Base.PkgId, env::String) + @ Base ./loading.jl:1797 + [17] macro expansion + @ Base ./loading.jl:1784 [inlined] + [18] macro expansion + @ Base ./lock.jl:267 [inlined] + [19] __require(into::Module, mod::Symbol) + @ Base ./loading.jl:1747 + [20] #invoke_in_world#3 + @ Base ./essentials.jl:921 [inlined] + [21] invoke_in_world + @ Base ./essentials.jl:918 [inlined] + [22] require(into::Module, mod::Symbol) + @ Base ./loading.jl:1740 + [23] include + @ Base ./Base.jl:495 [inlined] + [24] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String) + @ Base ./loading.jl:2216 + [25] top-level scope + @ stdin:3 +in expression starting at /home/runner/.julia/packages/OrdinaryDiffEq/FFFcA/src/OrdinaryDiffEq.jl:1 +in expression starting at stdin:3 +ERROR: Failed to precompile OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed] to "/home/runner/.julia/compiled/v1.10/OrdinaryDiffEq/jl_ACzW7F".
      Note

      PowerSystemCaseBuilder.jl is a helper library that makes it easier to reproduce examples in the documentation and tutorials. Normally you would pass your local files to create the system data instead of calling the function build_system. For more details visit PowerSystemCaseBuilder Documentation

      Load the system and transform load data

      To load the system we use PowerSystemCaseBuilder.jl:

      julia> # We remove the checks in this example to avoid large prints
      +       sys = build_system(PSIDSystems, "WECC 240 Bus"; runchecks = false)
      +       
      +       # Transform the system's load┌ Info: Building new system WECC 240 Bus from raw data
       └   sys_descriptor.raw_data = ""
       ┌ Warning: System is saved in the data format version 2.0.0 will be automatically upgraded to 3.0.0 upon saving
      -└ @ PowerSystems ~/.julia/packages/PowerSystems/gXgwy/src/data_format_conversions.jl:82
      +└ @ PowerSystems ~/.julia/packages/PowerSystems/diJIg/src/data_format_conversions.jl:82
       ┌ Warning: The System was deserialized with checks disabled, and so was not validated.
      -└ @ PowerSystems ~/.julia/packages/PowerSystems/gXgwy/src/base.jl:1448
      +└ @ PowerSystems ~/.julia/packages/PowerSystems/diJIg/src/base.jl:1448
       ┌ Warning: System is saved in the data format version 2.0.0 will be automatically upgraded to 3.0.0 upon saving
      -└ @ PowerSystems ~/.julia/packages/PowerSystems/gXgwy/src/data_format_conversions.jl:110
      +└ @ PowerSystems ~/.julia/packages/PowerSystems/diJIg/src/data_format_conversions.jl:110
       [ Info: Serialized System to /home/runner/.julia/packages/PowerSystemCaseBuilder/E76Gu/data/serialized_system/NoArgs/WECC 240 Bus.json
       [ Info: Serialized System metadata to /home/runner/.julia/packages/PowerSystemCaseBuilder/E76Gu/data/serialized_system/NoArgs/WECC 240 Bus_metadata.json
       System
      @@ -42,15 +144,14 @@
       ┌──────────────────┬───────┐
       │ Type             │ Count │
       ├──────────────────┼───────┤
      -│ DynamicGenerator │ 41    │
       │ DynamicGenerator │ 3     │
      -│ DynamicGenerator │ 22    │
      -│ DynamicGenerator │ 36    │
      +│ DynamicGenerator │ 41    │
       │ DynamicGenerator │ 6     │
       │ DynamicGenerator │ 1     │
      +│ DynamicGenerator │ 22    │
      +│ DynamicGenerator │ 36    │
       │ DynamicInverter  │ 37    │
      -└──────────────────┴───────┘
      julia> # Transform the system's load - for l in get_components(PSY.StandardLoad, sys) +└──────────────────┴───────┘
      julia> for l in get_components(PSY.StandardLoad, sys) transform_load_to_constant_impedance(l) end┌ Warning: Load data is transformed under the assumption of a 1.0 p.u. Voltage Magnitude └ @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/utils/psy_utils.jl:81 @@ -340,11 +441,11 @@ [ Info: Pre-Initializing Simulation States [ Info: Unit System changed to UnitSystem.SYSTEM_BASE = 0 ┌ Warning: Unit generator-3631-NB set at the limit -0.14000000000000004. Q_max = 0.20000000000000004 Q_min = -0.14000000000000004 -└ @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/post_processing.jl:352 +└ @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/post_processing.jl:352 ┌ Warning: Unit generator-6132-G set at the limit -1.47. Q_max = 1.47 Q_min = -1.47 -└ @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/post_processing.jl:352 +└ @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/post_processing.jl:352 ┌ Warning: Unit generator-6433-E set at the limit 0.59. Q_max = 0.59 Q_min = -0.59 -└ @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/post_processing.jl:352 +└ @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/post_processing.jl:352 [ Info: PowerFlow solve converged, the results have been stored in the system [ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1 [ Info: Residual from initial guess: max = 9.82774084334892e-10 at 1268, total = 2.3309883363794544e-8 @@ -357,25 +458,25 @@ │ ─────────────────────────────────────────────────────────────────────────────── │ Time Allocations │ ─────────────── ─────────────── -│ Total measured: 23.7s 5.03GiB +│ Total measured: 24.4s 4.77GiB │ │ Section ncalls time %tot alloc %tot │ ─────────────────────────────────────────────────────────────────────────────── -│ Build Simulation 1 23.7s 100.0% 5.03GiB 100.0% -│ Build Simulation Inputs 1 2.43s 10.2% 170MiB 3.3% -│ Wrap Branches 1 7.93μs 0.0% 240B 0.0% -│ Wrap Dynamic Injectors 1 1.39s 5.9% 112MiB 2.2% -│ Calculate MM, DAE_vector, Tota... 1 231ms 1.0% 19.9MiB 0.4% -│ Wrap Static Injectors 1 232ms 1.0% 7.76MiB 0.2% -│ Pre-initialization 1 5.57s 23.5% 457MiB 8.9% -│ Power Flow solution 1 1.34s 5.7% 71.8MiB 1.4% -│ Initialize Static Injectors 1 1.07μs 0.0% 0.00B 0.0% -│ Initialize Dynamic Injectors 1 4.22s 17.8% 385MiB 7.5% -│ Calculate Jacobian 1 12.3s 52.1% 4.16GiB 82.7% -│ Make Model Function 1 14.3μs 0.0% 30.9KiB 0.0% -│ Initial Condition NLsolve refine... 1 2.96s 12.5% 254MiB 4.9% -│ Build Perturbations 1 125μs 0.0% 11.7KiB 0.0% -│ Make DiffEq Problem 1 394ms 1.7% 9.29MiB 0.2% +│ Build Simulation 1 24.4s 100.0% 4.77GiB 100.0% +│ Build Simulation Inputs 1 2.47s 10.1% 143MiB 2.9% +│ Wrap Branches 1 10.8μs 0.0% 208B 0.0% +│ Wrap Dynamic Injectors 1 1.53s 6.3% 94.7MiB 1.9% +│ Calculate MM, DAE_vector, Tota... 1 259ms 1.1% 18.6MiB 0.4% +│ Wrap Static Injectors 1 246ms 1.0% 8.79MiB 0.2% +│ Pre-initialization 1 3.68s 15.0% 229MiB 4.7% +│ Power Flow solution 1 393ms 1.6% 19.8MiB 0.4% +│ Initialize Static Injectors 1 722ns 0.0% 0.00B 0.0% +│ Initialize Dynamic Injectors 1 3.28s 13.4% 209MiB 4.3% +│ Calculate Jacobian 1 13.9s 56.9% 4.15GiB 87.1% +│ Make Model Function 1 33.7μs 0.0% 30.9KiB 0.0% +│ Initial Condition NLsolve refine... 1 3.92s 16.0% 248MiB 5.1% +│ Build Perturbations 1 133μs 0.0% 75.1KiB 0.0% +│ Make DiffEq Problem 1 460ms 1.9% 12.4MiB 0.3% │ ─────────────────────────────────────────────────────────────────────────────── └ Simulation Summary @@ -398,7 +499,7 @@ │ Time Span │ (0.0, 20.0) │ │ Total Time Steps │ 2015 │ │ Number of States │ 2164 │ -│ Total solve time │ 16.917042631 │ +│ Total solve time │ 16.377733326 │ └────────────────────────────┴──────────────┘
      julia> v1101_ida = get_voltage_magnitude_series(res_ida, 1101);
      julia> plot(v1101_ida);

      plot

      Run the simulation using Rodas4()

      In this case, we will use a MassMatrixModel formulation, for more details about the formulation checkout the Models Section in PowerSimulationsDynamics.jl documentation

      julia> sim_rodas = Simulation(
                  MassMatrixModel,
                  sys, #system
      @@ -410,11 +511,11 @@
       [ Info: Pre-Initializing Simulation States
       [ Info: Unit System changed to UnitSystem.SYSTEM_BASE = 0
       ┌ Warning: Unit generator-3631-NB set at the limit -0.14000000000000004. Q_max = 0.20000000000000004 Q_min = -0.14000000000000004
      -└ @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/post_processing.jl:352
      +└ @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/post_processing.jl:352
       ┌ Warning: Unit generator-6132-G set at the limit -1.47. Q_max = 1.47 Q_min = -1.47
      -└ @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/post_processing.jl:352
      +└ @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/post_processing.jl:352
       ┌ Warning: Unit generator-6433-E set at the limit 0.59. Q_max = 0.59 Q_min = -0.59
      -└ @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/post_processing.jl:352
      +└ @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/post_processing.jl:352
       [ Info: PowerFlow solve converged, the results have been stored in the system
       [ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
       [ Info: Residual from initial guess: max = 9.82774084334892e-10 at 1268, total = 2.3309883363794544e-8
      @@ -427,25 +528,25 @@
       │  ───────────────────────────────────────────────────────────────────────────────
       │                                                      Time          Allocations  
       │                                                ───────────────   ───────────────
      -│                 Total measured:                     7.27s             816MiB    
      +│                 Total measured:                     8.75s             801MiB    
       │ 
       │  Section                               ncalls     time    %tot     alloc    %tot
       │  ───────────────────────────────────────────────────────────────────────────────
      -│  Build Simulation                           1    7.27s  100.0%    816MiB  100.0%
      -│    Build Simulation Inputs                  1   6.71ms    0.1%   7.32MiB    0.9%
      -│      Wrap Branches                          1   4.74μs    0.0%      240B    0.0%
      -│      Wrap Dynamic Injectors                 1   4.37ms    0.1%   2.44MiB    0.3%
      -│      Calculate MM, DAE_vector, Tota...      1    545μs    0.0%   1.90MiB    0.2%
      -│      Wrap Static Injectors                  1    427μs    0.0%    290KiB    0.0%
      -│    Pre-initialization                       1   17.5ms    0.2%   9.09MiB    1.1%
      -│      Power Flow solution                    1   11.8ms    0.2%   5.18MiB    0.6%
      -│      Initialize Static Injectors            1    722ns    0.0%     0.00B    0.0%
      -│      Initialize Dynamic Injectors           1   5.30ms    0.1%   3.75MiB    0.5%
      -│    Calculate Jacobian                       1    5.81s   79.9%    614MiB   75.3%
      -│    Make Model Function                      1   6.11ms    0.1%    126KiB    0.0%
      -│    Initial Condition NLsolve refine...      1    968ms   13.3%    169MiB   20.7%
      -│    Build Perturbations                      1   15.1ms    0.2%    570KiB    0.1%
      -│    Make DiffEq Problem                      1    449ms    6.2%   15.6MiB    1.9%
      +│  Build Simulation                           1    8.75s  100.0%    801MiB  100.0%
      +│    Build Simulation Inputs                  1   5.69ms    0.1%   7.32MiB    0.9%
      +│      Wrap Branches                          1   5.38μs    0.0%      208B    0.0%
      +│      Wrap Dynamic Injectors                 1   3.55ms    0.0%   2.44MiB    0.3%
      +│      Calculate MM, DAE_vector, Tota...      1    506μs    0.0%   1.90MiB    0.2%
      +│      Wrap Static Injectors                  1    424μs    0.0%    290KiB    0.0%
      +│    Pre-initialization                       1   18.9ms    0.2%   9.67MiB    1.2%
      +│      Power Flow solution                    1   13.0ms    0.1%   5.76MiB    0.7%
      +│      Initialize Static Injectors            1    721ns    0.0%     0.00B    0.0%
      +│      Initialize Dynamic Injectors           1   5.54ms    0.1%   3.75MiB    0.5%
      +│    Calculate Jacobian                       1    7.08s   81.0%    599MiB   74.7%
      +│    Make Model Function                      1   6.17ms    0.1%    152KiB    0.0%
      +│    Initial Condition NLsolve refine...      1    1.24s   14.1%    167MiB   20.9%
      +│    Build Perturbations                      1   17.3ms    0.2%    628KiB    0.1%
      +│    Make DiffEq Problem                      1    381ms    4.4%   17.4MiB    2.2%
       │  ───────────────────────────────────────────────────────────────────────────────
       └ 
       Simulation Summary
      @@ -466,14 +567,8 @@
                  atol = 1e-10,
                  rtol = 1e-10,
                  initializealg = NoInit(),
      -       )SIMULATION_FINALIZED::BUILD_STATUS = 6

      Read the results

      After the simulation is completed, we can extract the results and make plots as desired. In this case, we will plot the voltage magnitude at the bus at which the line was connected.

      julia> res_rodas = read_results(sim_rodas)Simulation Results Summary
      -┌────────────────────────────┬──────────────┐
      -│ Property                   │ Value        │
      -├────────────────────────────┼──────────────┤
      -│ System Base Power [MVA]    │ 100.0        │
      -│ System Base Frequency [Hz] │ 60.0         │
      -│ Time Span                  │ (0.0, 20.0)  │
      -│ Total Time Steps           │ 2002         │
      -│ Number of States           │ 2164         │
      -│ Total solve time           │ 28.246741675 │
      -└────────────────────────────┴──────────────┘

      Compare the results

      After the simulation is completed, we can extract the results and make plots as desired. In this case, we will plot the voltage magnitude at the bus at which the line was connected. For both of the solution techniques.

      julia> v1101 = get_voltage_magnitude_series(res_rodas, 1101);
      julia> plot(v1101, label = "RODAS4");
      julia> plot!(v1101_ida, label = "IDA");

      plot

      + )
      ERROR: UndefVarError: `Rodas4` not defined

      Read the results

      After the simulation is completed, we can extract the results and make plots as desired. In this case, we will plot the voltage magnitude at the bus at which the line was connected.

      julia> res_rodas = read_results(sim_rodas)

      Compare the results

      After the simulation is completed, we can extract the results and make plots as desired. In this case, we will plot the voltage magnitude at the bus at which the line was connected. For both of the solution techniques.

      julia> v1101 = get_voltage_magnitude_series(res_rodas, 1101);ERROR: MethodError: no method matching get_voltage_magnitude_series(::Nothing, ::Int64)
      +
      +Closest candidates are:
      +  get_voltage_magnitude_series(!Matched::SimulationResults, ::Int64; dt)
      +   @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation_results.jl:321
      julia> plot(v1101, label = "RODAS4");ERROR: UndefVarError: `v1101` not defined
      julia> plot!(v1101_ida, label = "IDA");

      plot

      diff --git a/dev/tutorials/tutorial_activeload/index.html b/dev/tutorials/tutorial_activeload/index.html index 8938345f4..7c762d412 100644 --- a/dev/tutorials/tutorial_activeload/index.html +++ b/dev/tutorials/tutorial_activeload/index.html @@ -11,9 +11,9 @@ [ Info: Parsing PSS(R)E Transformer data into a PowerModels Dict... [ Info: Parsing PSS(R)E Two-Terminal and VSC DC line data into a PowerModels Dict... ┌ Warning: This PSS(R)E parser currently doesn't support Storage data parsing... -└ @ PowerSystems ~/.julia/packages/PowerSystems/gXgwy/src/parsers/pm_io/psse.jl:967 +└ @ PowerSystems ~/.julia/packages/PowerSystems/diJIg/src/parsers/pm_io/psse.jl:986 ┌ Warning: This PSS(R)E parser currently doesn't support Switch data parsing... -└ @ PowerSystems ~/.julia/packages/PowerSystems/gXgwy/src/parsers/pm_io/psse.jl:973 +└ @ PowerSystems ~/.julia/packages/PowerSystems/diJIg/src/parsers/pm_io/psse.jl:992 [ Info: angmin and angmax values are 0, widening these values on branch 1 to +/- 60.0 deg. ┌ Info: Constructing System from Power Models │ data["name"] = "omib_load" @@ -267,4 +267,4 @@ 24 │ load1021 ϵ_pll 0.907233 -12.8266 0.0 100.0 2.04141 25 │ generator-101-1 γd_ic 0.944549 -11.3935 0.0 100.0 1.81333 26 │ generator-101-1 γq_ic 0.934217 -11.391 0.0 100.0 1.81294 - 27 │ generator-101-1 θ_oc 1.0 -0.0 0.0 NaN 0.0

      Observe the new states of the active load model and that the system is small-signal stable.

      + 27 │ generator-101-1 θ_oc 1.0 -0.0 0.0 NaN 0.0

      Observe the new states of the active load model and that the system is small-signal stable.

      diff --git a/dev/tutorials/tutorial_continuation_pf/index.html b/dev/tutorials/tutorial_continuation_pf/index.html index 1ba980758..033643806 100644 --- a/dev/tutorials/tutorial_continuation_pf/index.html +++ b/dev/tutorials/tutorial_continuation_pf/index.html @@ -1,6 +1,7 @@ -Small-Signal Analysis · PowerSimulationsDynamics.jl

      Tutorial Small Signal Analysis with Continuation Power Flow

      Originally Contributed by: Rodrigo Henriquez-Auba

      Introduction

      This tutorial will introduce you to the functionality of PowerSimulationsDynamics and PowerFlows for running small signal analysis in a continuation power flow.

      This tutorial presents a simulation of a two-bus system with a generator (represented with a GENROU + SEXS + TGOV1 model) at bus 1, and a load on bus 2. We will increase the load demand to observe the P-V curve and run a small-signal analysis to check if the system satisfies small-signal stability at different operating points.

      Dependencies

      julia> using PowerSimulationsDynamics
      julia> PSID = PowerSimulationsDynamicsPowerSimulationsDynamics
      julia> using PowerSystemCaseBuilder
      julia> using PowerSystems
      julia> using PowerFlows
      julia> const PSY = PowerSystemsPowerSystems
      julia> using Plots
      julia> gr()Plots.GRBackend()
      julia> # Disable Logging to avoid excessive information - using Logging
      julia> Logging.disable_logging(Logging.Info);
      julia> Logging.disable_logging(Logging.Warn);
      Note

      PowerSystemCaseBuilder.jl is a helper library that makes it easier to reproduce examples in the documentation and tutorials. Normally you would pass your local files to create the system data instead of calling the function build_system. For more details visit PowerSystemCaseBuilder Documentation

      PowerSystems (abbreviated with PSY) is used to properly define the data structure and establish an equilibrium point initial condition with a power flow routine using PowerFlows.

      Load the system

      We load the system using PowerSystemCaseBuilder.jl. This system only have a generator without dynamic data on which we can use PowerFlows to generate a P-V (or nose) curve.

      julia> sys_static = build_system(PSIDSystems, "2 Bus Load Tutorial")System
      +Small-Signal Analysis · PowerSimulationsDynamics.jl

      Tutorial Small Signal Analysis with Continuation Power Flow

      Originally Contributed by: Rodrigo Henriquez-Auba

      Introduction

      This tutorial will introduce you to the functionality of PowerSimulationsDynamics and PowerFlows for running small signal analysis in a continuation power flow.

      This tutorial presents a simulation of a two-bus system with a generator (represented with a GENROU + SEXS + TGOV1 model) at bus 1, and a load on bus 2. We will increase the load demand to observe the P-V curve and run a small-signal analysis to check if the system satisfies small-signal stability at different operating points.

      Dependencies

      julia> using PowerSimulationsDynamics
      julia> PSID = PowerSimulationsDynamicsPowerSimulationsDynamics
      julia> using PowerSystemCaseBuilder
      julia> using PowerSystems
      julia> using PowerFlows
      julia> const PSY = PowerSystemsPowerSystems
      julia> using Plots
      julia> gr() + + # Disable Logging to avoid excessive informationPlots.GRBackend()
      julia> using Logging
      julia> Logging.disable_logging(Logging.Info);
      julia> Logging.disable_logging(Logging.Warn);
      Note

      PowerSystemCaseBuilder.jl is a helper library that makes it easier to reproduce examples in the documentation and tutorials. Normally you would pass your local files to create the system data instead of calling the function build_system. For more details visit PowerSystemCaseBuilder Documentation

      PowerSystems (abbreviated with PSY) is used to properly define the data structure and establish an equilibrium point initial condition with a power flow routine using PowerFlows.

      Load the system

      We load the system using PowerSystemCaseBuilder.jl. This system only have a generator without dynamic data on which we can use PowerFlows to generate a P-V (or nose) curve.

      julia> sys_static = build_system(PSIDSystems, "2 Bus Load Tutorial")System
       ┌───────────────────┬─────────────┐
       │ Property          │ Value       │
       ├───────────────────┼─────────────┤
      @@ -41,8 +42,8 @@
          InfrastructureSystems.SystemUnitsSettings:
             base_value: 100.0
             unit_system: UnitSystem.SYSTEM_BASE = 0

      Create a P-V curve

      The next step is to run multiple power flows and store the voltage at the load and the active power. For this example we will set up the power factor to be unitary (i.e. no reactive power at the load).

      julia> # Create a Power Range to change the power load active power
      -       P_range = 0.01:0.01:4.6;
      julia> # Choose the power factor - load_pf = 1.0;

      Then create vectors to store the results

      julia> # PV Curve Results
      +       P_range = 0.01:0.01:4.6;
      +       # Choose the power factor
      julia> load_pf = 1.0;

      Then create vectors to store the results

      julia> # PV Curve Results
              P_load_p = Vector{Float64}();
      julia> V_load_p = Vector{Float64}();

      Then, we run multiple power flows in a for loop by changing the active power of the load:

      julia> for p in P_range
                  # Change the active power and reactive power of the load
                  power = p * 1.0
      @@ -64,9 +65,9 @@
                  push!(V_load_p, Vm)
                  push!(P_load_p, power)
              end┌ Error: The powerflow solver returned convergence = false
      -└ @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/nlsolve_ac_powerflow.jl:153
      +└ @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/nlsolve_ac_powerflow.jl:153
       ┌ Error: The powerflow solver returned convergence = false
      -└ @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/nlsolve_ac_powerflow.jl:52
      +└ @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/nlsolve_ac_powerflow.jl:52
       Power Flow failed at p = 4.53

      The plot can be visualized with:

      julia> plot(P_load_p,
                   V_load_p,
                   label = "PV Curve",
      @@ -118,8 +119,9 @@
          InfrastructureSystems.SystemUnitsSettings:
             base_value: 100.0
             unit_system: UnitSystem.SYSTEM_BASE = 0

      Besides the results of the P-V curve, we need to store if the system is small-signal stable or not by looking if there is a positive real part eigenvalue.

      julia> # Vectors to store stability using a boolean (true for stable).
      -       stable_vec = Vector{Bool}();
      julia> status_vec = Vector{Bool}();
      julia> # PV Curve Results - P_load_p = Vector{Float64}();
      julia> V_load_p = Vector{Float64}();

      We then run the main for loop by updating the load active power, but in addition we create a PowerSimulationsDynamics simulation on which we can run a small-signal analysis to check stability.

      julia> for p in P_range
      +       stable_vec = Vector{Bool}();
      julia> status_vec = Vector{Bool}(); + + # PV Curve Results
      julia> P_load_p = Vector{Float64}();
      julia> V_load_p = Vector{Float64}();

      We then run the main for loop by updating the load active power, but in addition we create a PowerSimulationsDynamics simulation on which we can run a small-signal analysis to check stability.

      julia> for p in P_range
                  # Change the active power and reactive power of the load
                  power = p * 1.0
                  load = get_component(PSY.ExponentialLoad, sys_static, "load1021")
      @@ -159,9 +161,10 @@
                      push!(status_vec, false)
                  end
              end┌ Error: The powerflow solver returned convergence = false
      -└ @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/nlsolve_ac_powerflow.jl:153
      +└ @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/nlsolve_ac_powerflow.jl:153
       ┌ Error: The powerflow solver returned convergence = false
      -└ @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/nlsolve_ac_powerflow.jl:52
      +└ @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/nlsolve_ac_powerflow.jl:52
       Power Flow failed at p = 4.53

      The following plot showcases the P-V curve, while also showcasing (in red) the regions on which the system is small-signal stable.

      julia> # Find where is stable and unstable
      -       dict_true_ixs_p = Vector();
      julia> dict_false_ixs_p = Vector();
      julia> dict_true_ixs_p = findall(x->x, stable_vec);
      julia> dict_false_ixs_p = findall(x->!x, stable_vec);
      julia> # Create plot - true_ixs = dict_true_ixs_p;
      julia> plot(P_load_p, V_load_p, color = :blue, label = "PV Curve", xlabel = "Load Power [pu]", ylabel = "Load Bus Voltage [pu]")Plot{Plots.GRBackend() n=1}
      julia> plot!(Plots.scatter!(P_load_p[true_ixs] , V_load_p[true_ixs], markerstrokewidth= 0, label = "GENROU SSA"))Plot{Plots.GRBackend() n=2}

      plot

      This results is consistent with most of the literature for dynamic generator models supplying constant power loads, on which by increasing the active power of the load, produce critical eigenvalues which cross the $j\omega$ axis at some point. This is called a Hopf Bifurcation, in this case a subcritical one since the limit cycles are unstable.

      + dict_true_ixs_p = Vector();

      julia> dict_false_ixs_p = Vector();
      julia> dict_true_ixs_p = findall(x->x, stable_vec);
      julia> dict_false_ixs_p = findall(x->!x, stable_vec); + + # Create plot
      julia> true_ixs = dict_true_ixs_p;
      julia> plot(P_load_p, V_load_p, color = :blue, label = "PV Curve", xlabel = "Load Power [pu]", ylabel = "Load Bus Voltage [pu]")Plot{Plots.GRBackend() n=1}
      julia> plot!(Plots.scatter!(P_load_p[true_ixs] , V_load_p[true_ixs], markerstrokewidth= 0, label = "GENROU SSA"))Plot{Plots.GRBackend() n=2}

      plot

      This results is consistent with most of the literature for dynamic generator models supplying constant power loads, on which by increasing the active power of the load, produce critical eigenvalues which cross the $j\omega$ axis at some point. This is called a Hopf Bifurcation, in this case a subcritical one since the limit cycles are unstable.

      diff --git a/dev/tutorials/tutorial_dynamic_data/index.html b/dev/tutorials/tutorial_dynamic_data/index.html index 64d1555e5..262aede2a 100644 --- a/dev/tutorials/tutorial_dynamic_data/index.html +++ b/dev/tutorials/tutorial_dynamic_data/index.html @@ -73,14 +73,18 @@ 0.0, #R 0.2995, #Xd_p 0.7087, #eq_p - )machine_classic (generic function with 1 method)
      julia> # *Shaft* - shaft_damping() = SingleMass( + ) + + # *Shaft*machine_classic (generic function with 1 method)
      julia> shaft_damping() = SingleMass( 3.148, #H 2.0, #D - )shaft_damping (generic function with 1 method)
      julia> # *AVR: No AVR* - avr_none() = AVRFixed(0.0)avr_none (generic function with 1 method)
      julia> # *TG: No TG* - tg_none() = TGFixed(1.0) #efficiencytg_none (generic function with 1 method)
      julia> # *PSS: No PSS* - pss_none() = PSSFixed(0.0)pss_none (generic function with 1 method)

      The next lines receives a static generator name, and creates a DynamicGenerator based on that specific static generator, with the specific components defined previously. This is a classic machine model without AVR, Turbine Governor and PSS.

      julia> static_gen = get_component(Generator, sys, "generator-102-1")generator-102-1 (ThermalStandard):
      +       )
      +       
      +       # *AVR: No AVR*shaft_damping (generic function with 1 method)
      julia> avr_none() = AVRFixed(0.0) + + # *TG: No TG*avr_none (generic function with 1 method)
      julia> tg_none() = TGFixed(1.0) #efficiency + + # *PSS: No PSS*tg_none (generic function with 1 method)
      julia> pss_none() = PSSFixed(0.0)pss_none (generic function with 1 method)

      The next lines receives a static generator name, and creates a DynamicGenerator based on that specific static generator, with the specific components defined previously. This is a classic machine model without AVR, Turbine Governor and PSS.

      julia> static_gen = get_component(Generator, sys, "generator-102-1")generator-102-1 (ThermalStandard):
          name: generator-102-1
          available: true
          status: true
      @@ -174,12 +178,14 @@
              converter_high_power() = AverageConverter(
                  rated_voltage = 138.0,
                  rated_current = 100.0
      -           )converter_high_power (generic function with 1 method)
      julia> #Define Outer Control as a composition of Virtual Inertia + Reactive Power Droop - outer_control() = OuterControl( + ) + + #Define Outer Control as a composition of Virtual Inertia + Reactive Power Droopconverter_high_power (generic function with 1 method)
      julia> outer_control() = OuterControl( VirtualInertia(Ta = 2.0, kd = 400.0, kω = 20.0), ReactivePowerDroop(kq = 0.2, ωf = 1000.0), - )outer_control (generic function with 1 method)
      julia> #Define an Inner Control as a Voltage+Current Controler with Virtual Impedance: - inner_control() = VoltageModeControl( + ) + + #Define an Inner Control as a Voltage+Current Controler with Virtual Impedance:outer_control (generic function with 1 method)
      julia> inner_control() = VoltageModeControl( kpv = 0.59, #Voltage controller proportional gain kiv = 736.0, #Voltage controller integral gain kffv = 0.0, #Binary variable enabling voltage feed-forward in current controllers @@ -190,15 +196,18 @@ kffi = 0.0, #Binary variable enabling the current feed-forward in output of current controllers ωad = 50.0, #Active damping low pass filter cut-off frequency kad = 0.2, #Active damping gain - )inner_control (generic function with 1 method)
      julia> #Define DC Source as a FixedSource: - dc_source_lv() = FixedDCSource(voltage = 600.0)dc_source_lv (generic function with 1 method)
      julia> #Define a Frequency Estimator as a PLL - #based on Vikram Kaura and Vladimir Blaskoc 1997 paper: - pll() = KauraPLL( + ) + + #Define DC Source as a FixedSource:inner_control (generic function with 1 method)
      julia> dc_source_lv() = FixedDCSource(voltage = 600.0) + + #Define a Frequency Estimator as a PLL + #based on Vikram Kaura and Vladimir Blaskoc 1997 paper:dc_source_lv (generic function with 1 method)
      julia> pll() = KauraPLL( ω_lp = 500.0, #Cut-off frequency for LowPass filter of PLL filter. kp_pll = 0.084, #PLL proportional gain ki_pll = 4.69, #PLL integral gain - )pll (generic function with 1 method)
      julia> #Define an LCL filter: - filt() = LCLFilter(lf = 0.08, rf = 0.003, cf = 0.074, lg = 0.2, rg = 0.01)filt (generic function with 1 method)

      We will construct the inverter later by specifying to which static device is assigned.

      Dynamic Generator definition

      Similarly we will construct a dynamic generator as follows:

      julia> # Create the machine
      +       )
      +       
      +       #Define an LCL filter:pll (generic function with 1 method)
      julia> filt() = LCLFilter(lf = 0.08, rf = 0.003, cf = 0.074, lg = 0.2, rg = 0.01)filt (generic function with 1 method)

      We will construct the inverter later by specifying to which static device is assigned.

      Dynamic Generator definition

      Similarly we will construct a dynamic generator as follows:

      julia> # Create the machine
              machine_oneDoneQ() = OneDOneQMachine(
                  0.0, #R
                  1.3125, #Xd
      @@ -207,12 +216,14 @@
                  0.25, #Xq_p
                  5.89, #Td0_p
                  0.6, #Tq0_p
      -       )machine_oneDoneQ (generic function with 1 method)
      julia> # Shaft - shaft_no_damping() = SingleMass( + ) + + # Shaftmachine_oneDoneQ (generic function with 1 method)
      julia> shaft_no_damping() = SingleMass( 3.01, #H (M = 6.02 -> H = M/2) 0.0, #D - )shaft_no_damping (generic function with 1 method)
      julia> # AVR: Type I: Resembles a DC1 AVR - avr_type1() = AVRTypeI( + ) + + # AVR: Type I: Resembles a DC1 AVRshaft_no_damping (generic function with 1 method)
      julia> avr_type1() = AVRTypeI( 20.0, #Ka - Gain 0.01, #Ke 0.063, #Kf @@ -223,9 +234,11 @@ (min = -5.0, max = 5.0), 0.0039, #Ae - 1st ceiling coefficient 1.555, #Be - 2nd ceiling coefficient - )avr_type1 (generic function with 1 method)
      julia> #No TG - tg_none() = TGFixed(1.0) #efficiencytg_none (generic function with 1 method)
      julia> #No PSS - pss_none() = PSSFixed(0.0) #Vspss_none (generic function with 1 method)

      Now we will construct the dynamic generator and inverter.

      Add the components to the system

      julia> for g in get_components(Generator, threebus_sys)
      +       )
      +       
      +       #No TGavr_type1 (generic function with 1 method)
      julia> tg_none() = TGFixed(1.0) #efficiency + + #No PSStg_none (generic function with 1 method)
      julia> pss_none() = PSSFixed(0.0) #Vspss_none (generic function with 1 method)

      Now we will construct the dynamic generator and inverter.

      Add the components to the system

      julia> for g in get_components(Generator, threebus_sys)
                  #Find the generator at bus 102
                  if get_number(get_bus(g)) == 102
                      #Create the dynamic generator
      @@ -257,4 +270,4 @@
                      #Attach the dynamic inverter to the system
                      add_component!(threebus_sys, case_inv, g)
                  end
      -       end

      Save the system in a JSON file


      julia> to_json(threebus_sys, joinpath(file_dir, "threebus_sys.json"), force = true)
      + end

      Save the system in a JSON file


      julia> to_json(threebus_sys, joinpath(file_dir, "threebus_sys.json"), force = true)
      diff --git a/dev/tutorials/tutorial_dynamic_lines/index.html b/dev/tutorials/tutorial_dynamic_lines/index.html index 65fc16599..52b551589 100644 --- a/dev/tutorials/tutorial_dynamic_lines/index.html +++ b/dev/tutorials/tutorial_dynamic_lines/index.html @@ -32,7 +32,8 @@ │ DynamicGenerator │ 1 │ │ DynamicInverter │ 1 │ └──────────────────┴───────┘

      In addition, we will create a new copy of the system on which we will simulate the same case, but will consider dynamic lines:

      julia> threebus_sys_dyn = deepcopy(threebus_sys);

      Step 3: Create the fault and simulation on the Static Lines system

      First, we construct the perturbation, by properly computing the new Ybus on the system:

      julia> #Make a copy of the original system
      -       sys2 = deepcopy(threebus_sys)System
      +       sys2 = deepcopy(threebus_sys)
      +       #Triplicates the impedance of the line named "BUS 1-BUS 3-i_1"System
       ┌───────────────────┬─────────────┐
       │ Property          │ Value       │
       ├───────────────────┼─────────────┤
      @@ -64,8 +65,7 @@
       ├──────────────────┼───────┤
       │ DynamicGenerator │ 1     │
       │ DynamicInverter  │ 1     │
      -└──────────────────┴───────┘
      julia> #Triplicates the impedance of the line named "BUS 1-BUS 3-i_1" - fault_branches = get_components(ACBranch, sys2)ACBranch Counts: +└──────────────────┴───────┘
      julia> fault_branches = get_components(ACBranch, sys2)ACBranch Counts: Line: 3
      julia> for br in fault_branches if get_name(br) == "BUS 1-BUS 3-i_1" br.r = 3 * br.r @@ -73,17 +73,18 @@ b_new = (from = br.b.from / 3, to = br.b.to / 3) br.b = b_new end - end
      julia> #Obtain the new Ybus - Ybus_fault = Ybus(sys2).data3×3 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 9 stored entries: + end + #Obtain the new Ybus
      julia> Ybus_fault = Ybus(sys2).data + #Define Fault: Change of YBus3×3 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 9 stored entries: 0.91954-10.9011im -0.689655+8.27586im -0.229885+2.75862im -0.689655+8.27586im 0.714334-8.78642im -0.0246792+1.11056im - -0.229885+2.75862im -0.0246792+1.11056im 0.254564-3.33585im
      julia> #Define Fault: Change of YBus - Ybus_change = NetworkSwitch( + -0.229885+2.75862im -0.0246792+1.11056im 0.254564-3.33585im
      julia> Ybus_change = NetworkSwitch( 1.0, #change at t = 1.0 Ybus_fault, #New YBus );

      Now, we construct the simulation:

      julia> #Time span of our simulation
      -       tspan = (0.0, 30.0)(0.0, 30.0)
      julia> #Define Simulation - sim = Simulation( + tspan = (0.0, 30.0) + + #Define Simulation(0.0, 30.0)
      julia> sim = Simulation( ResidualModel, #Type of model used threebus_sys, #system pwd(), #folder to output results @@ -167,21 +168,21 @@ │ Time Span │ (0.0, 30.0) │ │ Total Time Steps │ 1607 │ │ Number of States │ 33 │ -│ Total solve time │ 2.540545395 │ +│ Total solve time │ 2.025990013 │ └────────────────────────────┴─────────────┘
      julia> series2 = get_voltage_magnitude_series(results, 102)([0.0, 0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.052000000000000005, 0.07200000000000001, 0.09200000000000001 … 29.83954153464911, 29.85954153464911, 29.87954153464911, 29.89954153464911, 29.91954153464911, 29.93954153464911, 29.95954153464911, 29.97954153464911, 29.999541534649108, 30.0], [1.0142000000000002, 1.0142000000001268, 1.0142000000001326, 1.0142000000001927, 1.01420000000014, 1.014200000000125, 1.0142000000001052, 1.0142000000000875, 1.014200000000071, 1.0142000000000564 … 1.0140816770731866, 1.0140823112693007, 1.014082942782033, 1.0140835715610201, 1.014084197556437, 1.0140848207190878, 1.0140854410003357, 1.0140860583521254, 1.0140866727269917, 1.0140866867751974])
      julia> zoom = [ (series2[1][ix], series2[2][ix]) for (ix, s) in enumerate(series2[1]) if (s > 0.90 && s < 1.6) ];

      Step 3.1: Create the fault and simulation on the Dynamic Lines system

      An important aspect to consider is that DynamicLines must not be considered in the computation of the Ybus. First we construct the Dynamic Line, by finding the Line named "BUS 2-BUS 3-i_1", and then adding it to the system.

      julia> # get component return the Branch on threebus_sys_dyn named "BUS 2-BUS 3-i_1"
      -       dyn_branch = DynamicBranch(get_component(Line, threebus_sys_dyn,"BUS 2-BUS 3-i_1"))
      +       dyn_branch = DynamicBranch(get_component(Line, threebus_sys_dyn,"BUS 2-BUS 3-i_1"))
      +       # Adding a dynamic line will immediately remove the static line from the system.
       BUS 2-BUS 3-i_1 (DynamicBranch):
          branch: BUS 2-BUS 3-i_1 (Line)
          n_states: 2
          states: [:Il_R, :Il_I]
      -   internal: InfrastructureSystems.InfrastructureSystemsInternal
      julia> # Adding a dynamic line will immediately remove the static line from the system. - add_component!(threebus_sys_dyn, dyn_branch)

      Similarly, we construct the Ybus fault by creating a copy of the original system, but removing the Line "BUS 2-BUS 3-i_1" to avoid considering it in the Ybus:

      julia> #Make a copy of the original system
      -       sys3 = deepcopy(threebus_sys);
      julia> #Remove Line "BUS 2-BUS 3-i_1" - remove_component!(Line, sys3, "BUS 2-BUS 3-i_1")
      julia> #Triplicates the impedance of the line named "BUS 1-BUS 2-i_1" - fault_branches2 = get_components(Line, sys3)Line Counts: + internal: InfrastructureSystems.InfrastructureSystemsInternal
      julia> add_component!(threebus_sys_dyn, dyn_branch)

      Similarly, we construct the Ybus fault by creating a copy of the original system, but removing the Line "BUS 2-BUS 3-i_1" to avoid considering it in the Ybus:

      julia> #Make a copy of the original system
      +       sys3 = deepcopy(threebus_sys);
      +       #Remove Line "BUS 2-BUS 3-i_1"
      julia> remove_component!(Line, sys3, "BUS 2-BUS 3-i_1") + #Triplicates the impedance of the line named "BUS 1-BUS 2-i_1"
      julia> fault_branches2 = get_components(Line, sys3)Line Counts: Line: 2
      julia> for br in fault_branches2 if get_name(br) == "BUS 1-BUS 3-i_1" br.r = 3 * br.r @@ -189,15 +190,15 @@ b_new = (from = br.b.from / 3, to = br.b.to / 3) br.b = b_new end - end
      julia> #Obtain the new Ybus - Ybus_fault_dyn = Ybus(sys3).data3×3 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 7 stored entries: + end + #Obtain the new Ybus
      julia> Ybus_fault_dyn = Ybus(sys3).data + #Define Fault: Change of YBus3×3 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 7 stored entries: 0.91954-10.9011im -0.689655+8.27586im -0.229885+2.75862im -0.689655+8.27586im 0.689655-8.17586im ⋅ - -0.229885+2.75862im ⋅ 0.229885-2.72529im
      julia> #Define Fault: Change of YBus - Ybus_change_dyn = NetworkSwitch( + -0.229885+2.75862im ⋅ 0.229885-2.72529im
      julia> Ybus_change_dyn = NetworkSwitch( 1.0, #change at t = 1.0 Ybus_fault_dyn, #New YBus - )NetworkSwitch(1.0, sparse([1, 2, 3, 4, 5, 6, 1, 2, 4, 5 … 5, 6, 1, 2, 4, 5, 1, 3, 4, 6], [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6], [0.9195402298850576, -0.6896551724137931, -0.2298850574712644, 10.901149425287358, -8.275862068965518, -2.7586206896551726, -0.6896551724137931, 0.6896551724137931, -8.275862068965518, 8.175862068965518 … -0.6896551724137931, -0.2298850574712644, 8.275862068965518, -8.175862068965518, -0.6896551724137931, 0.6896551724137931, 2.7586206896551726, -2.7252873563218394, -0.2298850574712644, 0.2298850574712644], 6, 6))

      Step 4.1: Run the simulation of the Dynamic Lines System

      Now, we construct the simulation:

      julia> # Define Simulation
      +       )NetworkSwitch(1.0, sparse([1, 2, 3, 4, 5, 6, 1, 2, 4, 5  …  5, 6, 1, 2, 4, 5, 1, 3, 4, 6], [1, 1, 1, 1, 1, 1, 2, 2, 2, 2  …  4, 4, 5, 5, 5, 5, 6, 6, 6, 6], [0.9195402298850576, -0.6896551724137931, -0.2298850574712644, 10.901149425287358, -8.275862068965518, -2.7586206896551726, -0.6896551724137931, 0.6896551724137931, -8.275862068965518, 8.175862068965518  …  -0.6896551724137931, -0.2298850574712644, 8.275862068965518, -8.175862068965518, -0.6896551724137931, 0.6896551724137931, 2.7586206896551726, -2.7252873563218394, -0.2298850574712644, 0.2298850574712644], 6, 6))

      Step 4.1: Run the simulation of the Dynamic Lines System

      Now, we construct the simulation:

      julia> # Define Simulation
              sim_dyn = Simulation(
                  ResidualModel, #Type of model used
                  threebus_sys_dyn, #system
      @@ -289,8 +290,8 @@
       │ Time Span                  │ (0.0, 30.0) │
       │ Total Time Steps           │ 1721        │
       │ Number of States           │ 35          │
      -│ Total solve time           │ 1.382533826 │
      +│ Total solve time           │ 1.283277254 │
       └────────────────────────────┴─────────────┘
      julia> series2_dyn = get_voltage_magnitude_series(results_dyn, 102);
      julia> zoom_dyn = [ (series2_dyn[1][ix], series2_dyn[2][ix]) for (ix, s) in enumerate(series2_dyn[1]) if (s > 0.90 && s < 1.6) - ];

      Step 6.1: Compare the solutions:

      We can observe the effect of Dynamic Lines

      julia> plot(series2_dyn, label = "V_gen_dyn");
      julia> plot!(series2, label = "V_gen_st", xlabel = "Time [s]", ylabel = "Voltage [pu]");

      plot

      that looks quite similar. The differences can be observed in the zoom plot:

      julia> plot(zoom_dyn, label = "V_gen_dyn");
      julia> plot!(zoom, label = "V_gen_st", xlabel = "Time [s]", ylabel = "Voltage [pu]");

      plot

      + ];

      Step 6.1: Compare the solutions:

      We can observe the effect of Dynamic Lines

      julia> plot(series2_dyn, label = "V_gen_dyn");
      julia> plot!(series2, label = "V_gen_st", xlabel = "Time [s]", ylabel = "Voltage [pu]");

      plot

      that looks quite similar. The differences can be observed in the zoom plot:

      julia> plot(zoom_dyn, label = "V_gen_dyn");
      julia> plot!(zoom, label = "V_gen_st", xlabel = "Time [s]", ylabel = "Voltage [pu]");

      plot

      diff --git a/dev/tutorials/tutorial_inverter_modeling/index.html b/dev/tutorials/tutorial_inverter_modeling/index.html index 203e6fc35..2283cafd1 100644 --- a/dev/tutorials/tutorial_inverter_modeling/index.html +++ b/dev/tutorials/tutorial_inverter_modeling/index.html @@ -30,8 +30,8 @@ ┌──────────────────┬───────┐ │ Type │ Count │ ├──────────────────┼───────┤ -│ DynamicGenerator │ 1 │ │ DynamicGenerator │ 4 │ +│ DynamicGenerator │ 1 │ └──────────────────┴───────┘

      PowerSystemCaseBuilder.jl is a helper library that makes it easier to reproduce examples in the documentation and tutorials. Normally you would pass your local files to create the system data.

      Define Simulation Problem with a 20 second simulation period and the branch trip at t = 1.0:

      julia> sim = Simulation(
                  ResidualModel, #Type of model used
                  sys,         #system
      @@ -211,7 +211,7 @@
       │ Time Span                  │ (0.0, 20.0) │
       │ Total Time Steps           │ 342         │
       │ Number of States           │ 86          │
      -│ Total solve time           │ 1.474064116 │
      +│ Total solve time           │ 1.374531077 │
       └────────────────────────────┴─────────────┘
      julia> p = plot();
      julia> for b in get_components(ACBus, sys) voltage_series = get_voltage_magnitude_series(result, get_number(b)) plot!( @@ -250,7 +250,9 @@ -0.28233919601444385 + 0.0im -0.2291061939257908 - 7.684635708748412im -0.2291061939257908 + 7.684635708748412im - 0.0 + 0.0im

      Modifying the system and adding storage

      Reload the system for this example:

      julia> sys = build_system(PSIDSystems, "14 Bus Base Case")System
      +                  0.0 + 0.0im

      Modifying the system and adding storage

      Reload the system for this example:

      julia> sys = build_system(PSIDSystems, "14 Bus Base Case")
      +       
      +       # We want to remove the generator 6 and the dynamic component attached to it.System
       ┌───────────────────┬─────────────┐
       │ Property          │ Value       │
       ├───────────────────┼─────────────┤
      @@ -281,10 +283,9 @@
       ┌──────────────────┬───────┐
       │ Type             │ Count │
       ├──────────────────┼───────┤
      -│ DynamicGenerator │ 1     │
       │ DynamicGenerator │ 4     │
      -└──────────────────┴───────┘
      julia> # We want to remove the generator 6 and the dynamic component attached to it. - thermal_gen = get_component(ThermalStandard, sys, "generator-6-1")generator-6-1 (ThermalStandard): +│ DynamicGenerator │ 1 │ +└──────────────────┴───────┘
      julia> thermal_gen = get_component(ThermalStandard, sys, "generator-6-1")generator-6-1 (ThermalStandard): name: generator-6-1 available: true status: true @@ -308,8 +309,9 @@ time_series_container: InfrastructureSystems.SystemUnitsSettings: base_value: 100.0 - unit_system: UnitSystem.SYSTEM_BASE = 0
      julia> remove_component!(sys, get_dynamic_injector(thermal_gen))
      julia> remove_component!(sys, thermal_gen)
      julia> # We can now define our storage device and add it to the system - storage = GenericBattery( + unit_system: UnitSystem.SYSTEM_BASE = 0
      julia> remove_component!(sys, get_dynamic_injector(thermal_gen))
      julia> remove_component!(sys, thermal_gen) + + # We can now define our storage device and add it to the system
      julia> storage = GenericBattery( name = "Battery", bus = get_component(Bus, sys, "BUS 06"), available = true, @@ -402,8 +404,8 @@ ┌──────────────────┬───────┐ │ Type │ Count │ ├──────────────────┼───────┤ -│ DynamicGenerator │ 1 │ │ DynamicGenerator │ 3 │ +│ DynamicGenerator │ 1 │ └──────────────────┴───────┘

      Define Simulation problem using the same parameters:

      julia> sim = Simulation(
                  ResidualModel, #Type of model used
                  sys,         #system
      @@ -418,13 +420,13 @@
       │      [1] error(s::String)
       │        @ Base ./error.jl:35
       │      [2] _reactive_power_redistribution_pv(sys::System, Q_gen::Float64, bus::ACBus)
      -│        @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/post_processing.jl:310
      +│        @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/post_processing.jl:310
       │      [3] write_powerflow_solution!(sys::System, result::Vector{Float64})
      -│        @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/post_processing.jl:447
      -│      [4] solve_ac_powerflow!(system::System; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
      -│        @ PowerFlows ~/.julia/packages/PowerFlows/2Elwp/src/nlsolve_ac_powerflow.jl:46
      +│        @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/post_processing.jl:447
      +│      [4] solve_ac_powerflow!(system::System; kwargs::@Kwargs{})
      +│        @ PowerFlows ~/.julia/packages/PowerFlows/8MBjq/src/nlsolve_ac_powerflow.jl:46
       │      [5] solve_ac_powerflow!
      -│        @ ~/.julia/packages/PowerFlows/2Elwp/src/nlsolve_ac_powerflow.jl:33 [inlined]
      +│        @ ~/.julia/packages/PowerFlows/8MBjq/src/nlsolve_ac_powerflow.jl:33 [inlined]
       │      [6] power_flow_solution!(initial_guess::Vector{Float64}, sys::System, inputs::PowerSimulationsDynamics.SimulationInputs)
       │        @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation_initialization.jl:14
       │      [7] macro expansion
      @@ -445,30 +447,30 @@
       │        @ ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:408 [inlined]
       │     [15] macro expansion
       │        @ ~/.julia/packages/TimerOutputs/RsWnF/src/TimerOutput.jl:237 [inlined]
      -│     [16] _build!(sim::Simulation{ResidualModel}; kwargs::Base.Pairs{Symbol, Base.CoreLogging.LogLevel, Tuple{Symbol}, NamedTuple{(:console_level,), Tuple{Base.CoreLogging.LogLevel}}})
      +│     [16] _build!(sim::Simulation{ResidualModel}; kwargs::@Kwargs{console_level::Base.CoreLogging.LogLevel})
       │        @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:389
       │     [17] _build!
       │        @ ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:378 [inlined]
      -│     [18] (::PowerSimulationsDynamics.var"#109#110"{Base.Pairs{Symbol, Base.CoreLogging.LogLevel, Tuple{Symbol}, NamedTuple{(:console_level,), Tuple{Base.CoreLogging.LogLevel}}}, Simulation{ResidualModel}})()
      +│     [18] (::PowerSimulationsDynamics.var"#109#110"{@Kwargs{console_level::Base.CoreLogging.LogLevel}, Simulation{ResidualModel}})()
       │        @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:444
       │     [19] with_logstate(f::Function, logstate::Any)
      -│        @ Base.CoreLogging ./logging.jl:514
      +│        @ Base.CoreLogging ./logging.jl:515
       │     [20] with_logger
      -│        @ ./logging.jl:626 [inlined]
      +│        @ ./logging.jl:627 [inlined]
       │     [21] #build!#108
       │        @ ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:443 [inlined]
       │     [22] build!
       │        @ ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:441 [inlined]
      -│     [23] Simulation(::Type{ResidualModel}, system::System, simulation_folder::String, tspan::Tuple{Float64, Float64}, perturbations::Vector{BranchTrip}; kwargs::Base.Pairs{Symbol, Base.CoreLogging.LogLevel, Tuple{Symbol}, NamedTuple{(:console_level,), Tuple{Base.CoreLogging.LogLevel}}})
      +│     [23] Simulation(::Type{ResidualModel}, system::System, simulation_folder::String, tspan::Tuple{Float64, Float64}, perturbations::Vector{BranchTrip}; kwargs::@Kwargs{console_level::Base.CoreLogging.LogLevel})
       │        @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:188
       │     [24] Simulation
      -│        @ ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:166 [inlined]
      +│        @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:166 [inlined]
       │     [25] #Simulation#97
      -│        @ ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:78 [inlined]
      +│        @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:78 [inlined]
       │     [26] top-level scope
       │        @ REPL[1]:1
       │     [27] eval
      -│        @ ./boot.jl:370 [inlined]
      +│        @ ./boot.jl:385 [inlined]
       │     [28] #21
       │        @ ~/.julia/packages/Documenter/bYYzK/src/Expanders.jl:721 [inlined]
       │     [29] cd(f::Documenter.Expanders.var"#21#23"{Module}, dir::String)
      @@ -478,35 +480,35 @@
       │     [31] (::IOCapture.var"#3#5"{DataType, Documenter.Expanders.var"#20#22"{Documenter.Documents.Page, Module}, Task, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})()
       │        @ IOCapture ~/.julia/packages/IOCapture/8Uj7o/src/IOCapture.jl:119
       │     [32] with_logstate(f::Function, logstate::Any)
      -│        @ Base.CoreLogging ./logging.jl:514
      +│        @ Base.CoreLogging ./logging.jl:515
       │     [33] with_logger
      -│        @ ./logging.jl:626 [inlined]
      +│        @ ./logging.jl:627 [inlined]
       │     [34] capture(f::Documenter.Expanders.var"#20#22"{Documenter.Documents.Page, Module}; rethrow::Type, color::Bool)
       │        @ IOCapture ~/.julia/packages/IOCapture/8Uj7o/src/IOCapture.jl:116
      -│     [35] runner(#unused#::Type{Documenter.Expanders.REPLBlocks}, x::Markdown.Code, page::Documenter.Documents.Page, doc::Documenter.Documents.Document)
      +│     [35] runner(::Type{Documenter.Expanders.REPLBlocks}, x::Markdown.Code, page::Documenter.Documents.Page, doc::Documenter.Documents.Document)
       │        @ Documenter.Expanders ~/.julia/packages/Documenter/bYYzK/src/Expanders.jl:719
       │     [36] dispatch(::Type{Documenter.Expanders.ExpanderPipeline}, ::Markdown.Code, ::Vararg{Any})
       │        @ Documenter.Utilities.Selectors ~/.julia/packages/Documenter/bYYzK/src/Utilities/Selectors.jl:170
       │     [37] expand(doc::Documenter.Documents.Document)
       │        @ Documenter.Expanders ~/.julia/packages/Documenter/bYYzK/src/Expanders.jl:42
      -│     [38] runner(#unused#::Type{Documenter.Builder.ExpandTemplates}, doc::Documenter.Documents.Document)
      +│     [38] runner(::Type{Documenter.Builder.ExpandTemplates}, doc::Documenter.Documents.Document)
       │        @ Documenter.Builder ~/.julia/packages/Documenter/bYYzK/src/Builder.jl:226
      -│     [39] dispatch(#unused#::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
      +│     [39] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
       │        @ Documenter.Utilities.Selectors ~/.julia/packages/Documenter/bYYzK/src/Utilities/Selectors.jl:170
       │     [40] #2
       │        @ ~/.julia/packages/Documenter/bYYzK/src/Documenter.jl:273 [inlined]
       │     [41] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
       │        @ Base.Filesystem ./file.jl:112
      -│     [42] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol, Symbol}, NamedTuple{(:modules, :sitename, :pages), Tuple{Vector{Module}, String, Vector{Any}}}})
      +│     [42] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{modules::Vector{Module}, sitename::String, pages::Vector{Any}})
       │        @ Documenter ~/.julia/packages/Documenter/bYYzK/src/Documenter.jl:272
       │     [43] top-level scope
       │        @ ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/docs/make.jl:3
       │     [44] include(mod::Module, _path::String)
      -│        @ Base ./Base.jl:457
      +│        @ Base ./Base.jl:495
       │     [45] exec_options(opts::Base.JLOptions)
      -│        @ Base ./client.jl:307
      +│        @ Base ./client.jl:318
       │     [46] _start()
      -│        @ Base ./client.jl:522
      +│        @ Base ./client.jl:552
       └ @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:434
       Simulation Summary
       ┌─────────────────────────┬────────────────┐
      @@ -527,22 +529,22 @@
       │        @ Base ./error.jl:35
       │      [2] simulation_pre_step!(sim::Simulation{ResidualModel})
       │        @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:462
      -│      [3] _execute!(sim::Simulation{ResidualModel}, solver::Sundials.IDA{:Dense, Nothing, Nothing}; kwargs::Base.Pairs{Symbol, Float64, Tuple{Symbol}, NamedTuple{(:abstol,), Tuple{Float64}}})
      +│      [3] _execute!(sim::Simulation{ResidualModel}, solver::Sundials.IDA{:Dense, Nothing, Nothing}; kwargs::@Kwargs{abstol::Float64})
       │        @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:488
       │      [4] _execute!
       │        @ ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:486 [inlined]
      -│      [5] (::PowerSimulationsDynamics.var"#117#118"{Base.Pairs{Symbol, Float64, Tuple{Symbol}, NamedTuple{(:abstol,), Tuple{Float64}}}, Simulation{ResidualModel}, Sundials.IDA{:Dense, Nothing, Nothing}})()
      +│      [5] (::PowerSimulationsDynamics.var"#117#118"{@Kwargs{abstol::Float64}, Simulation{ResidualModel}, Sundials.IDA{:Dense, Nothing, Nothing}})()
       │        @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:545
       │      [6] with_logstate(f::Function, logstate::Any)
      -│        @ Base.CoreLogging ./logging.jl:514
      +│        @ Base.CoreLogging ./logging.jl:515
       │      [7] with_logger
      -│        @ ./logging.jl:626 [inlined]
      +│        @ Base.CoreLogging ./logging.jl:627 [inlined]
       │      [8] #execute!#116
      -│        @ ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:543 [inlined]
      +│        @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:543 [inlined]
       │      [9] top-level scope
       │        @ REPL[1]:1
       │     [10] eval
      -│        @ ./boot.jl:370 [inlined]
      +│        @ ./boot.jl:385 [inlined]
       │     [11] #21
       │        @ ~/.julia/packages/Documenter/bYYzK/src/Expanders.jl:721 [inlined]
       │     [12] cd(f::Documenter.Expanders.var"#21#23"{Module}, dir::String)
      @@ -552,35 +554,35 @@
       │     [14] (::IOCapture.var"#3#5"{DataType, Documenter.Expanders.var"#20#22"{Documenter.Documents.Page, Module}, Task, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})()
       │        @ IOCapture ~/.julia/packages/IOCapture/8Uj7o/src/IOCapture.jl:119
       │     [15] with_logstate(f::Function, logstate::Any)
      -│        @ Base.CoreLogging ./logging.jl:514
      +│        @ Base.CoreLogging ./logging.jl:515
       │     [16] with_logger
      -│        @ ./logging.jl:626 [inlined]
      +│        @ ./logging.jl:627 [inlined]
       │     [17] capture(f::Documenter.Expanders.var"#20#22"{Documenter.Documents.Page, Module}; rethrow::Type, color::Bool)
       │        @ IOCapture ~/.julia/packages/IOCapture/8Uj7o/src/IOCapture.jl:116
      -│     [18] runner(#unused#::Type{Documenter.Expanders.REPLBlocks}, x::Markdown.Code, page::Documenter.Documents.Page, doc::Documenter.Documents.Document)
      +│     [18] runner(::Type{Documenter.Expanders.REPLBlocks}, x::Markdown.Code, page::Documenter.Documents.Page, doc::Documenter.Documents.Document)
       │        @ Documenter.Expanders ~/.julia/packages/Documenter/bYYzK/src/Expanders.jl:719
       │     [19] dispatch(::Type{Documenter.Expanders.ExpanderPipeline}, ::Markdown.Code, ::Vararg{Any})
       │        @ Documenter.Utilities.Selectors ~/.julia/packages/Documenter/bYYzK/src/Utilities/Selectors.jl:170
       │     [20] expand(doc::Documenter.Documents.Document)
       │        @ Documenter.Expanders ~/.julia/packages/Documenter/bYYzK/src/Expanders.jl:42
      -│     [21] runner(#unused#::Type{Documenter.Builder.ExpandTemplates}, doc::Documenter.Documents.Document)
      +│     [21] runner(::Type{Documenter.Builder.ExpandTemplates}, doc::Documenter.Documents.Document)
       │        @ Documenter.Builder ~/.julia/packages/Documenter/bYYzK/src/Builder.jl:226
      -│     [22] dispatch(#unused#::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
      +│     [22] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
       │        @ Documenter.Utilities.Selectors ~/.julia/packages/Documenter/bYYzK/src/Utilities/Selectors.jl:170
       │     [23] #2
       │        @ ~/.julia/packages/Documenter/bYYzK/src/Documenter.jl:273 [inlined]
       │     [24] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
       │        @ Base.Filesystem ./file.jl:112
      -│     [25] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol, Symbol}, NamedTuple{(:modules, :sitename, :pages), Tuple{Vector{Module}, String, Vector{Any}}}})
      +│     [25] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{modules::Vector{Module}, sitename::String, pages::Vector{Any}})
       │        @ Documenter ~/.julia/packages/Documenter/bYYzK/src/Documenter.jl:272
       │     [26] top-level scope
       │        @ ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/docs/make.jl:3
       │     [27] include(mod::Module, _path::String)
      -│        @ Base ./Base.jl:457
      +│        @ Base ./Base.jl:495
       │     [28] exec_options(opts::Base.JLOptions)
      -│        @ Base ./client.jl:307
      +│        @ Base ./client.jl:318
       │     [29] _start()
      -│        @ Base ./client.jl:522
      +│        @ Base ./client.jl:552
       └ @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:547
       SIMULATION_FAILED::BUILD_STATUS = 7

      Using PowerSimulationsDynamics tools for exploring the results, we can plot all the voltage results for the buses

      julia> result = read_results(sim)
      julia> p = plot();
      julia> for b in get_components(ACBus, sys) voltage_series = get_voltage_magnitude_series(result, get_number(b)) @@ -612,4 +614,4 @@ Closest candidates are: get_state_series(!Matched::SimulationResults, ::Tuple{String, Symbol}; dt) - @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation_results.jl:304
      julia> plot!(p2, state_series; xlabel = "Time", ylabel = "Speed [pu]", label = "Battery - ω");ERROR: UndefVarError: `state_series` not defined

      plot

      + @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation_results.jl:304
      julia> plot!(p2, state_series; xlabel = "Time", ylabel = "Speed [pu]", label = "Battery - ω");ERROR: UndefVarError: `state_series` not defined

      plot

      diff --git a/dev/tutorials/tutorial_omib/index.html b/dev/tutorials/tutorial_omib/index.html index 89c7f32d2..37edec728 100644 --- a/dev/tutorials/tutorial_omib/index.html +++ b/dev/tutorials/tutorial_omib/index.html @@ -76,7 +76,7 @@ │ Time Span │ (0.0, 30.0) │ │ Total Time Steps │ 1512 │ │ Number of States │ 6 │ -│ Total solve time │ 1.063995026 │ +│ Total solve time │ 1.040515249 │ └────────────────────────────┴─────────────┘

      PowerSimulationsDynamics has two functions to obtain different states of the solution:

      julia> angle = get_state_series(results, ("generator-102-1", :δ));
      julia> plot(angle, xlabel = "time", ylabel = "rotor angle [rad]", label = "rotor angle")Plot{Plots.GRBackend() n=1}

      plot

      julia> volt = get_voltage_magnitude_series(results, 102);
      julia> plot(volt, xlabel = "time", ylabel = "Voltage [pu]", label = "V_2")Plot{Plots.GRBackend() n=1}

      plot

      Optional: Small Signal Analysis

      PowerSimulationsDynamics uses automatic differentiation to compute the reduced Jacobian of the system for the differential states. This can be used to analyze the local stability of the linearized system. We need to re-initialize our simulation:

      julia> sim2 = Simulation(ResidualModel, omib_sys, mktempdir(), time_span)Simulation Summary
       ┌─────────────────────────┬────────────────┐
       │ Property                │ Value          │
      @@ -92,4 +92,4 @@
         0.0       376.991
        -0.466763   -0.317662

      and can also be used to report the eigenvalues of the reduced linearized system:

      julia> small_sig.eigenvalues2-element Vector{ComplexF64}:
        -0.15883100381194407 - 13.264252847627304im
      - -0.15883100381194407 + 13.264252847627304im
      + -0.15883100381194407 + 13.264252847627304im diff --git a/dev/tutorials_page/index.html b/dev/tutorials_page/index.html index 3d86dc6a0..19d24f34f 100644 --- a/dev/tutorials_page/index.html +++ b/dev/tutorials_page/index.html @@ -1,2 +1,2 @@ -SIIP-Examples · PowerSimulationsDynamics.jl
      +SIIP-Examples · PowerSimulationsDynamics.jl