From d71663814859ff2a638d84c9348b1f48353605af Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Wed, 1 May 2024 15:41:12 +0000 Subject: [PATCH] build based on 486b92d --- previews/PR372/api/internal/index.html | 8 +-- previews/PR372/api/public/index.html | 68 +++++++++--------- .../developer/index.html | 2 +- .../PR372/component_models/avr/index.html | 2 +- .../component_models/converter/index.html | 2 +- .../component_models/dc_source/index.html | 2 +- .../PR372/component_models/filters/index.html | 2 +- .../component_models/freq_esti/index.html | 2 +- .../component_models/inner_control/index.html | 2 +- .../PR372/component_models/loads/index.html | 2 +- .../component_models/machines/index.html | 2 +- .../PR372/component_models/network/index.html | 2 +- .../component_models/outer_control/index.html | 2 +- .../PR372/component_models/pss/index.html | 2 +- .../PR372/component_models/shafts/index.html | 2 +- .../component_models/turbine_gov/index.html | 2 +- previews/PR372/execute/index.html | 2 +- previews/PR372/generic/index.html | 2 +- previews/PR372/index.html | 2 +- previews/PR372/initialization/index.html | 2 +- previews/PR372/models/index.html | 2 +- previews/PR372/perturbations/index.html | 2 +- previews/PR372/power-simulations-dynamics.log | 52 +++++++------- previews/PR372/quick_start_guide/index.html | 4 +- previews/PR372/reference_frames/index.html | 2 +- previews/PR372/search/index.html | 2 +- .../PR372/sensitivity_analysis/index.html | 2 +- previews/PR372/small/index.html | 2 +- previews/PR372/time_delays/index.html | 2 +- previews/PR372/tutorials/modified_sys.json | 2 +- previews/PR372/tutorials/threebus_sys.json | 2 +- .../tutorials/tutorial_240bus/index.html | 72 +++++++++---------- .../tutorials/tutorial_activeload/index.html | 2 +- .../tutorial_continuation_pf/index.html | 2 +- .../tutorial_dynamic_data/index.html | 2 +- .../tutorial_dynamic_lines/index.html | 6 +- .../tutorial_inverter_modeling/index.html | 10 +-- .../PR372/tutorials/tutorial_omib/index.html | 4 +- previews/PR372/tutorials_page/index.html | 2 +- 39 files changed, 143 insertions(+), 143 deletions(-) diff --git a/previews/PR372/api/internal/index.html b/previews/PR372/api/internal/index.html index c0684321b..729ea889d 100644 --- a/previews/PR372/api/internal/index.html +++ b/previews/PR372/api/internal/index.html @@ -1,10 +1,10 @@ -Internal API Reference · PowerSimulationsDynamics.jl

Internal

PowerSimulationsDynamics.DynamicWrapperType

Wraps DynamicInjection devices from PowerSystems to handle changes in controls and connection status, and allocate the required indexes of the state space and parameter space.

source
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.DynamicWrapperType

Wraps DynamicInjection devices from PowerSystems to handle changes in controls and connection status, and allocate the required indexes of the state space and parameter space.

source
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/previews/PR372/api/public/index.html b/previews/PR372/api/public/index.html index 599f663b7..e368583ed 100644 --- a/previews/PR372/api/public/index.html +++ b/previews/PR372/api/public/index.html @@ -4,86 +4,86 @@ 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.MassMatrixModelMethod

Instantiate a MassMatrixModel for ForwardDiff calculations

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.MassMatrixModelMethod

Instantiate a MassMatrixModel for ForwardDiff calculations

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_parameter_sensitivity_function!Method
function get_parameter_sensitivity_function!(
+)

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_parameter_sensitivity_function!Method
function get_parameter_sensitivity_function!(
     sim::Simulation,
     device_parameter_pairs::Vector{Tuple{String, Type{T}, Symbol}},
     f::function,
@@ -94,7 +94,7 @@
     sum(δ)
 end 
 g = get_parameter_sensitivity_function!(sim, ("generator-1", SingleMass, :H), f)
-Zygote.gradient(g, [2.0]);
source
PowerSimulationsDynamics.get_parameter_sensitivity_valuesMethod
function get_parameter_sensitivity_function!(
+Zygote.gradient(g, [2.0]);
source
PowerSimulationsDynamics.get_parameter_sensitivity_valuesMethod
function get_parameter_sensitivity_function!(
     sim::Simulation,
     device_parameter_pairs::Vector{Tuple{String, Type{T}, Symbol}},
     f::function,
@@ -106,37 +106,37 @@
 end 
 g = get_parameter_sensitivity_function!(sim, ("generator-1", SingleMass, :H), f)
 p = get_parameter_sensitivity_values(sim, ("generator-1", SingleMass, :H))
-Zygote.gradient(g, p);
source
PowerSimulationsDynamics.get_pss_output_seriesMethod
get_pss_output_series(
+Zygote.gradient(g, p);
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, Vector{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.small_signal_analysisMethod
small_signal_analysis(
+)

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.small_signal_analysisMethod
small_signal_analysis(
         sim::Simulation,
-)

Returns the Small Signal Output object that contains the eigenvalues and participation factors.

Arguments

  • sim::Simulation : Small Signal Output object that contains the eigenvalues and participation factors
source
PowerSimulationsDynamics.summary_eigenvaluesMethod
summary_eigenvalues(
+)

Returns the Small Signal Output object that contains the eigenvalues and participation factors.

Arguments

  • sim::Simulation : Small Signal Output object that contains the eigenvalues and participation factors
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/previews/PR372/code_base_developer_guide/developer/index.html b/previews/PR372/code_base_developer_guide/developer/index.html index ceabb44ac..e844107f0 100644 --- a/previews/PR372/code_base_developer_guide/developer/index.html +++ b/previews/PR372/code_base_developer_guide/developer/index.html @@ -1,2 +1,2 @@ -Developer Guide · PowerSimulationsDynamics.jl
+Developer Guide · PowerSimulationsDynamics.jl
diff --git a/previews/PR372/component_models/avr/index.html b/previews/PR372/component_models/avr/index.html index 2463b2582..b39b85417 100644 --- a/previews/PR372/component_models/avr/index.html +++ b/previews/PR372/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/previews/PR372/component_models/converter/index.html b/previews/PR372/component_models/converter/index.html index 81e931cc7..1e8441025 100644 --- a/previews/PR372/component_models/converter/index.html +++ b/previews/PR372/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/previews/PR372/component_models/dc_source/index.html b/previews/PR372/component_models/dc_source/index.html index 813150d0d..caa94324a 100644 --- a/previews/PR372/component_models/dc_source/index.html +++ b/previews/PR372/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/previews/PR372/component_models/filters/index.html b/previews/PR372/component_models/filters/index.html index b98a9250c..c8e29a212 100644 --- a/previews/PR372/component_models/filters/index.html +++ b/previews/PR372/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/previews/PR372/component_models/freq_esti/index.html b/previews/PR372/component_models/freq_esti/index.html index 4c4e528f7..2adf9d0fb 100644 --- a/previews/PR372/component_models/freq_esti/index.html +++ b/previews/PR372/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/previews/PR372/component_models/inner_control/index.html b/previews/PR372/component_models/inner_control/index.html index 46186e2ed..4cf8a38ae 100644 --- a/previews/PR372/component_models/inner_control/index.html +++ b/previews/PR372/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/previews/PR372/component_models/loads/index.html b/previews/PR372/component_models/loads/index.html index 3b3262d10..17066c872 100644 --- a/previews/PR372/component_models/loads/index.html +++ b/previews/PR372/component_models/loads/index.html @@ -72,4 +72,4 @@ \dot{\gamma}_q &= i_\text{cv}^q - i_\text{cv}^{q,\star} \tag{4h} \\ v_\text{cv}^{d,\star} &= k_\text{pc}( i_\text{cv}^d - i_\text{cv}^{d,\star}) + k_\text{ic} \gamma_d + \omega_\text{pll} l_f i_\text{cv}^q \tag{4i}\\ v_\text{cv}^{q,\star} &= k_\text{pc}( i_\text{cv}^q - i_\text{cv}^{q,\star}) + k_\text{ic} \gamma_q - \omega_\text{pll} l_f i_\text{cv}^d \tag{4j} -\end{align}\]

Equations (4a)–(4c) describes the PLL dynamics to lock the active load to the grid. Equations (4d)-(4e) describes the DC Voltage Controller to steer the DC voltage to $v_\text{DC}^\star$, while equation (4f) describes the DC voltage dynamics at the capacitor assuming an ideal converter. Finally, equations (4g)–(4j) describes the dynamics of the AC Current Controller. Additionally six states are defined for the LCL filter in a similar fashion of GFM inverters.

+\end{align}\]

Equations (4a)–(4c) describes the PLL dynamics to lock the active load to the grid. Equations (4d)-(4e) describes the DC Voltage Controller to steer the DC voltage to $v_\text{DC}^\star$, while equation (4f) describes the DC voltage dynamics at the capacitor assuming an ideal converter. Finally, equations (4g)–(4j) describes the dynamics of the AC Current Controller. Additionally six states are defined for the LCL filter in a similar fashion of GFM inverters.

diff --git a/previews/PR372/component_models/machines/index.html b/previews/PR372/component_models/machines/index.html index 86f7a7c3d..c1f95f430 100644 --- a/previews/PR372/component_models/machines/index.html +++ b/previews/PR372/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/previews/PR372/component_models/network/index.html b/previews/PR372/component_models/network/index.html index 036ee504f..3e9d66934 100644 --- a/previews/PR372/component_models/network/index.html +++ b/previews/PR372/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/previews/PR372/component_models/outer_control/index.html b/previews/PR372/component_models/outer_control/index.html index 0047cdfc9..13a394ee6 100644 --- a/previews/PR372/component_models/outer_control/index.html +++ b/previews/PR372/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/previews/PR372/component_models/pss/index.html b/previews/PR372/component_models/pss/index.html index f0226b390..85d88d057 100644 --- a/previews/PR372/component_models/pss/index.html +++ b/previews/PR372/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/previews/PR372/component_models/shafts/index.html b/previews/PR372/component_models/shafts/index.html index 2420f4d4a..7efb8d224 100644 --- a/previews/PR372/component_models/shafts/index.html +++ b/previews/PR372/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/previews/PR372/component_models/turbine_gov/index.html b/previews/PR372/component_models/turbine_gov/index.html index 3d8dc9b2c..c6c3aaed3 100644 --- a/previews/PR372/component_models/turbine_gov/index.html +++ b/previews/PR372/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/previews/PR372/execute/index.html b/previews/PR372/execute/index.html index 1e5aece31..dc757fcf4 100644 --- a/previews/PR372/execute/index.html +++ b/previews/PR372/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/previews/PR372/generic/index.html b/previews/PR372/generic/index.html index 3a7c287b4..f91c04149 100644 --- a/previews/PR372/generic/index.html +++ b/previews/PR372/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/previews/PR372/index.html b/previews/PR372/index.html index bc8dac655..d3746a043 100644 --- a/previews/PR372/index.html +++ b/previews/PR372/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/previews/PR372/initialization/index.html b/previews/PR372/initialization/index.html index 0bb6ad8c8..f3696bf81 100644 --- a/previews/PR372/initialization/index.html +++ b/previews/PR372/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/previews/PR372/models/index.html b/previews/PR372/models/index.html index 26bb768a0..42a9b5eb3 100644 --- a/previews/PR372/models/index.html +++ b/previews/PR372/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/previews/PR372/perturbations/index.html b/previews/PR372/perturbations/index.html index 020abebf7..541d9ae44 100644 --- a/previews/PR372/perturbations/index.html +++ b/previews/PR372/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/previews/PR372/power-simulations-dynamics.log b/previews/PR372/power-simulations-dynamics.log index de25f706f..7ee14e48c 100644 --- a/previews/PR372/power-simulations-dynamics.log +++ b/previews/PR372/power-simulations-dynamics.log @@ -1,44 +1,44 @@ -┌ Info: 2024-04-30T16:49:35.015 [5915:1]: The reference Bus has a Source connected to it. The frequency reference model will change to ConstantFrequency +┌ Info: 2024-05-01T15:36:59.088 [5848: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: 2024-04-30T16:49:46.961 [5915:1]: Pre-Initializing Simulation States +┌ Info: 2024-05-01T15:37:10.793 [5848:1]: Pre-Initializing Simulation States └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation_initialization.jl:193 -┌ Info: 2024-04-30T16:49:46.961 [5915:1]: Unit System changed to UnitSystem.SYSTEM_BASE = 0 +┌ Info: 2024-05-01T15:37:10.793 [5848:1]: Unit System changed to UnitSystem.SYSTEM_BASE = 0 └ @ PowerSystems /home/runner/.julia/packages/PowerSystems/xh3fM/src/base.jl:395 -┌ Info: 2024-04-30T16:49:48.630 [5915:1]: PowerFlow solve converged, the results have been stored in the system +┌ Info: 2024-05-01T15:37:12.405 [5848:1]: PowerFlow solve converged, the results have been stored in the system └ @ PowerFlows /home/runner/.julia/packages/PowerFlows/6nw6s/src/nlsolve_ac_powerflow.jl:47 -┌ Info: 2024-04-30T16:49:48.630 [5915:1]: Unit System changed to UnitSystem.DEVICE_BASE = 1 +┌ Info: 2024-05-01T15:37:12.405 [5848:1]: Unit System changed to UnitSystem.DEVICE_BASE = 1 └ @ PowerSystems /home/runner/.julia/packages/PowerSystems/xh3fM/src/base.jl:395 -┌ Info: 2024-04-30T16:50:01.989 [5915:1]: Residual from initial guess: max = 4.212807880321634e-11 at 4, total = 5.4841923110646186e-11 +┌ Info: 2024-05-01T15:37:25.380 [5848: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:118 -┌ Info: 2024-04-30T16:50:02.027 [5915:1]: Initialization non-linear solve succeeded with a tolerance of 1.0e-9 using solver trust_region. Saving solution. +┌ Info: 2024-05-01T15:37:25.417 [5848: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:85 -┌ Info: 2024-04-30T16:50:02.027 [5915:1]: Attaching Perturbations +┌ Info: 2024-05-01T15:37:25.417 [5848:1]: Attaching Perturbations └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:283 -┌ Info: 2024-04-30T16:50:02.485 [5915:1]: Simulations status = BUILT +┌ Info: 2024-05-01T15:37:25.906 [5848:1]: Simulations status = BUILT └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:549 -┌ Info: 2024-04-30T16:50:02.485 [5915:1]: +┌ Info: 2024-05-01T15:37:25.906 [5848:1]: │ ─────────────────────────────────────────────────────────────────────────────── │ Time Allocations │ ─────────────── ─────────────── -│ Total measured: 29.4s 2.02GiB +│ Total measured: 28.7s 2.04GiB │ │ Section ncalls time %tot alloc %tot │ ─────────────────────────────────────────────────────────────────────────────── -│ Build Simulation 1 29.4s 100.0% 2.02GiB 100.0% -│ Build Simulation Inputs 1 2.60s 8.9% 191MiB 9.2% -│ Wrap Branches 1 14.4μs 0.0% 352B 0.0% -│ Wrap Dynamic Injectors 1 1.21s 4.1% 91.3MiB 4.4% -│ Wrap Static Injectors 1 82.6ms 0.3% 2.02MiB 0.1% -│ Build initial parameters 1 309ms 1.1% 13.4MiB 0.6% -│ Pre-initialization 1 16.4s 55.7% 1.18GiB 58.5% -│ Power Flow solution 1 1.73s 5.9% 42.9MiB 2.1% -│ Initialize Static Injectors 1 2.25s 7.7% 35.0MiB 1.7% -│ Initialize Dynamic Injectors 1 1.15s 3.9% 173MiB 8.4% -│ Calculate Jacobian 1 4.61s 15.7% 400MiB 19.4% -│ Make Model Function 1 5.93ms 0.0% 122KiB 0.0% -│ Initial Condition NLsolve refine... 1 5.32s 18.1% 241MiB 11.7% -│ Build Perturbations 1 221ms 0.8% 13.4MiB 0.7% -│ Make DiffEq Problem 1 230ms 0.8% 12.6MiB 0.6% +│ Build Simulation 1 28.7s 100.0% 2.04GiB 100.0% +│ Build Simulation Inputs 1 2.57s 9.0% 196MiB 9.4% +│ Wrap Branches 1 11.7μs 0.0% 352B 0.0% +│ Wrap Dynamic Injectors 1 1.23s 4.3% 93.5MiB 4.5% +│ Wrap Static Injectors 1 83.6ms 0.3% 2.19MiB 0.1% +│ Build initial parameters 1 262ms 0.9% 16.4MiB 0.8% +│ Pre-initialization 1 15.9s 55.3% 1.20GiB 58.7% +│ Power Flow solution 1 1.67s 5.8% 42.9MiB 2.0% +│ Initialize Static Injectors 1 2.20s 7.7% 35.3MiB 1.7% +│ Initialize Dynamic Injectors 1 992ms 3.5% 192MiB 9.2% +│ Calculate Jacobian 1 4.59s 16.0% 400MiB 19.1% +│ Make Model Function 1 5.57ms 0.0% 122KiB 0.0% +│ Initial Condition NLsolve refine... 1 5.17s 18.0% 241MiB 11.5% +│ Build Perturbations 1 220ms 0.8% 13.4MiB 0.6% +│ Make DiffEq Problem 1 264ms 0.9% 14.3MiB 0.7% │ ─────────────────────────────────────────────────────────────────────────────── │ └ @ PowerSimulationsDynamics /home/runner/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation.jl:579 diff --git a/previews/PR372/quick_start_guide/index.html b/previews/PR372/quick_start_guide/index.html index 54f796ee9..7bf24b325 100644 --- a/previews/PR372/quick_start_guide/index.html +++ b/previews/PR372/quick_start_guide/index.html @@ -99,5 +99,5 @@ │ Time Span │ (0.0, 30.0) │ │ Total Time Steps │ 1502 │ │ Number of States │ 6 │ -│ Total solve time │ 1.831298095 │ -└────────────────────────────┴─────────────┘
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 │ 2.12493632 │ +└────────────────────────────┴─────────────┘
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/previews/PR372/reference_frames/index.html b/previews/PR372/reference_frames/index.html index 693ab15cb..7455041da 100644 --- a/previews/PR372/reference_frames/index.html +++ b/previews/PR372/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/previews/PR372/search/index.html b/previews/PR372/search/index.html index 9da16778e..c1a5c1844 100644 --- a/previews/PR372/search/index.html +++ b/previews/PR372/search/index.html @@ -1,2 +1,2 @@ -Search · PowerSimulationsDynamics.jl

Loading search...

    +Search · PowerSimulationsDynamics.jl

    Loading search...

      diff --git a/previews/PR372/sensitivity_analysis/index.html b/previews/PR372/sensitivity_analysis/index.html index c74ec6419..42558b372 100644 --- a/previews/PR372/sensitivity_analysis/index.html +++ b/previews/PR372/sensitivity_analysis/index.html @@ -1,2 +1,2 @@ -Sensitivity Analysis · PowerSimulationsDynamics.jl

      Sensitivity Analysis

      PowerSimulationsDynamics has limited support for performing sensitivity analysis of system parameters with respect to a user defined loss function. See the tutorial for an example of sensitivity analysis.

      • ForwardDiffSensitivity() is used as the method for differentiating through the solve. See SciMLSensitivity.jl for more details.
      • The gradient of the function provided by PSID can be calculated using Zygote.jl.
      • The Jacobian is not passed to the ODE Problem during sensitivity analysis.
      • Parameters for sensitivity analysis must not change the steady state operating condition. Parameters cannot be in the mass matrix. This limitation is expected to be relaxed in the future.
      • Limited to mass matrix formulations and pure Julia solvers. Can check if a solver is compatible with SciMLBase.isautodifferentiable()
      +Sensitivity Analysis · PowerSimulationsDynamics.jl

      Sensitivity Analysis

      PowerSimulationsDynamics has limited support for performing sensitivity analysis of system parameters with respect to a user defined loss function. See the tutorial for an example of sensitivity analysis.

      • ForwardDiffSensitivity() is used as the method for differentiating through the solve. See SciMLSensitivity.jl for more details.
      • The gradient of the function provided by PSID can be calculated using Zygote.jl.
      • The Jacobian is not passed to the ODE Problem during sensitivity analysis.
      • Parameters for sensitivity analysis must not change the steady state operating condition. Parameters cannot be in the mass matrix. This limitation is expected to be relaxed in the future.
      • Limited to mass matrix formulations and pure Julia solvers. Can check if a solver is compatible with SciMLBase.isautodifferentiable()
      diff --git a/previews/PR372/small/index.html b/previews/PR372/small/index.html index beac61ba2..9b71c90fe 100644 --- a/previews/PR372/small/index.html +++ b/previews/PR372/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/previews/PR372/time_delays/index.html b/previews/PR372/time_delays/index.html index 37cc09dbb..34d0267e6 100644 --- a/previews/PR372/time_delays/index.html +++ b/previews/PR372/time_delays/index.html @@ -1,4 +1,4 @@ Time Delays · PowerSimulationsDynamics.jl

      Delays

      PowerSimulationsDynamics supports models with constant delays in a mass matrix formulation:

      \[\begin{align} M\frac{dx(t)}{dt} = f(x(t), x(t-\tau_1), ... , x(t-\tau_N)) -\end{align}\]

      For more information on solving such models, refer to the documentation for DelayDiffEq.jl package.

      The following models include time delays:

      • DEGOV

      There is currently limited support for including models with time delays. The following limitations apply:

      • Only constant delays are supported (state dependent delays are not).
      • System models with delays must use MassMatrixModel formulation (ResidualModel is not currently compatible).
      • System models with delays are not compatible with small signal analysis tools.
      • The system formulation with delays is not compatible with automatic differentiation for calculating the gradient with respect to time. The setting autodiff=false should be set when passing the solver (e.g. MethodofSteps(Rodas5(autodiff=false))).
      +\end{align}\]

      For more information on solving such models, refer to the documentation for DelayDiffEq.jl package.

      The following models include time delays:

      There is currently limited support for including models with time delays. The following limitations apply:

      diff --git a/previews/PR372/tutorials/modified_sys.json b/previews/PR372/tutorials/modified_sys.json index 6930f1e46..b78ee9cd7 100644 --- a/previews/PR372/tutorials/modified_sys.json +++ b/previews/PR372/tutorials/modified_sys.json @@ -1 +1 @@ -{"internal":{"uuid":{"value":"2b56d1b9-6b06-4bbd-9c76-c4c5b7370e11"},"ext":{},"units_info":null},"data":{"time_series_in_memory":false,"masked_components":[],"version_info":{"julia_version":"1.10.2","package_info":"Status `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/docs/Manifest.toml`\n⌅ [47edcb42] ADTypes v0.2.7\n [a4c015fc] ANSIColoredPrinters v0.0.1\n [621f4979] AbstractFFTs v1.5.0\n [1520ce14] AbstractTrees v0.4.5\n [7d9f7c33] Accessors v0.1.36\n [79e6a3ab] Adapt v4.0.4\n [ec485272] ArnoldiMethod v0.4.0\n [4fba245c] ArrayInterface v7.10.0\n [4c555306] ArrayLayouts v1.9.2\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.14\n [082447d4] ChainRules v1.65.0\n [d360d2e6] ChainRulesCore v1.23.0\n [fb6a15b2] CloseOpenIntervals v0.1.12\n [944b1d66] CodecZlib v0.7.4\n [35d6a980] ColorSchemes v3.24.0\n [3da002f7] ColorTypes v0.11.5\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.14.0\n [a33af91c] CompositionsBase v0.1.2\n [2569d6c7] ConcreteStructs v0.2.3\n [f0e56b4a] ConcurrentUtilities v2.4.1\n [187b0558] ConstructionBase v1.5.5\n [d38c429a] Contour v0.6.3\n [adafc99b] CpuId v0.3.1\n [a8cc5b0e] Crayons v4.1.1\n [9a962f9c] DataAPI v1.16.0\n [a93c6f00] DataFrames v1.6.1\n [864edb3b] DataStructures v0.18.20\n [e2d170a0] DataValueInterfaces v1.0.0\n [8bb1440f] DelimitedFiles v1.9.1\n [2b5f629d] DiffEqBase v6.149.1\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.19\n [4e289a0a] EnumX v1.0.4\n⌃ [f151be2c] EnzymeCore v0.6.6\n [460bff9d] ExceptionUnwrapping v0.1.10\n [d4d017d3] ExponentialUtilities v1.26.1\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.2\n [48062228] FilePathsBase v0.9.21\n [1a297f60] FillArrays v1.10.2\n [6a86dc24] FiniteDiff v2.23.1\n [53c48c17] FixedPointNumbers v0.8.4\n [1fa38f19] Format v1.3.7\n [f6369f11] ForwardDiff v0.10.36\n [069b7b12] FunctionWrappers v1.1.3\n [77dc65aa] FunctionWrappersWrappers v0.1.3\n [0c68f7d7] GPUArrays v10.1.0\n [46192b85] GPUArraysCore v0.1.6\n [28b8d3ca] GR v0.73.3\n [c145ed77] GenericSchur v0.5.4\n [86223c79] Graphs v1.10.0\n [42e2da0e] Grisu v1.0.2\n [708ec375] Gumbo v0.8.2\n [c8ec2601] H5Zblosc v0.1.2\n [f67ccb44] HDF5 v0.17.2\n [cd3eb016] HTTP v1.10.6\n [3e5b6fbb] HostCPUFeatures v0.1.16\n [b5f81e59] IOCapture v0.2.4\n [7869d1d1] IRTools v0.4.13\n [615f187c] IfElse v0.1.1\n [d25df0c9] Inflate v0.1.4\n [2cd47ed4] InfrastructureSystems v1.22.2\n [842dd82b] InlineStrings v1.4.0\n [3587e190] InverseFunctions v0.1.14\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 [929cbde3] LLVM v6.6.3\n [b964fa9f] LaTeXStrings v1.3.1\n [23fbe1c1] Latexify v0.16.3\n [10f19ff3] LayoutPointers v0.1.15\n [5078a376] LazyArrays v1.10.0\n [1d6d02ad] LeftChildRightSiblingTrees v0.2.0\n [d3d80556] LineSearches v7.2.0\n⌃ [7ed4a6bd] LinearSolve v2.22.1\n [2ab3a3ac] LogExpFunctions v0.3.27\n [e6f89c97] LoggingExtras v1.0.3\n [bdcacae8] LoopVectorization v0.12.170\n [33e6dc65] MKL v0.6.3\n [3da0fdf6] MPIPreferences v0.1.11\n [1914dd2f] MacroTools v0.5.13\n [d125e4d3] ManualMemory v0.1.8\n [299715c1] MarchingCubes v0.1.9\n [a3b82374] MatrixFactorizations v2.2.0\n [bb5d69b7] MaybeInplace v0.1.2\n [739be429] MbedTLS v1.1.9\n [442fdcdd] Measures v0.3.2\n [e1d29d7a] Missings v1.2.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 v3.10.0\n [6fe1bfb0] OffsetArrays v1.14.0\n [4d8831e6] OpenSSL v1.4.3\n [bac558e1] OrderedCollections v1.6.3\n [1dea7af3] OrdinaryDiffEq v6.74.1\n [65ce6f38] PackageExtensionCompat v1.0.2\n [d96e819e] Parameters v0.12.3\n [46dd5b70] Pardiso v0.5.7\n [69de0a69] Parsers v2.8.1\n [b98c9c47] Pipe v1.3.0\n [ccf2f8ad] PlotThemes v3.1.0\n [995b91a9] PlotUtils v1.4.1\n [91a5bcdd] Plots v1.40.4\n [f517fe37] Polyester v0.7.13\n [1d0040c9] PolyesterWeave v0.2.1\n [2dfb63ee] PooledArrays v1.4.3\n [dd99e9e3] PowerFlowData v1.5.0\n [94fada2c] PowerFlows v0.6.2\n⌅ [bed98974] PowerNetworkMatrices v0.9.6\n [398b2ede] PowerSimulationsDynamics v0.14.1 `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl`\n [f00506e0] PowerSystemCaseBuilder v1.2.5\n [bcd98974] PowerSystems v3.3.0\n [d236fae5] PreallocationTools v0.4.21\n [aea7be01] PrecompileTools v1.2.1\n [21216c6a] Preferences v1.4.3\n [08abe8d2] PrettyTables v2.3.1\n [33c8b6b6] ProgressLogging v0.1.4\n [c1ae055f] RealDot v0.1.0\n [3cdcf5f2] RecipesBase v1.3.4\n [01d81517] RecipesPipeline v0.6.12\n [731186ca] RecursiveArrayTools v3.14.0\n [f2c3362d] RecursiveFactorization v0.2.23\n [189a3867] Reexport v1.2.2\n [05181044] RelocatableFolders v1.0.1\n [ae029012] Requires v1.3.0\n [7e49a35a] RuntimeGeneratedFunctions v0.5.13\n [94e857df] SIMDTypes v0.1.0\n [476501e8] SLEEFPirates v0.6.42\n [322a6be2] Sass v0.2.0\n [0bca4576] SciMLBase v2.35.0\n [c0aeaf25] SciMLOperators v0.3.8\n [53ae85a6] SciMLStructures v1.1.0\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 v1.7.0\n [699a6c99] SimpleTraits v0.9.4\n [ce78b400] SimpleUnPack v1.1.0\n [a2af1166] SortingAlgorithms v1.2.1\n⌃ [47a9eef4] SparseDiffTools v2.18.0\n [dc90abb0] SparseInverseSubset v0.1.2\n [e56a9233] Sparspak v0.3.9\n [276daf66] SpecialFunctions v2.3.1\n [aedffcd0] Static v0.8.10\n [0d7ed370] StaticArrayInterface v1.5.0\n [90137ffa] StaticArrays v1.9.3\n [1e83bf80] StaticArraysCore v1.4.2\n [82ae8749] StatsAPI v1.7.0\n [2913bbd2] StatsBase v0.34.3\n [7792a7ef] StrideArraysCore v0.5.6\n [69024149] StringEncodings v0.3.7\n [892a3eda] StringManipulation v0.3.4\n [09ab397b] StructArrays v0.6.18\n [856f2bd8] StructTypes v1.10.0\n [c3572dad] Sundials v4.24.0\n [2efcf032] SymbolicIndexingInterface v0.3.19\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.7\n [d5829a12] TriangularSolve v0.2.0\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.4\n [1986cc42] Unitful v1.19.0\n [45397f5d] UnitfulLatexify v1.6.3\n [41fe7b60] Unzip v0.2.0\n [3d5dd08c] VectorizationBase v0.21.67\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 [e88e6eb3] Zygote v0.6.69\n [700de1a5] ZygoteRules v0.2.5\n [0b7ba130] Blosc_jll v1.21.5+0\n [6e34b625] Bzip2_jll v1.0.8+1\n [83423d85] Cairo_jll v1.18.0+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.73.3+0\n [78b55507] Gettext_jll v0.21.0+0\n [7746bdde] Glib_jll v2.80.0+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 v2024.1.0+0\n [aacddb02] JpegTurbo_jll v3.0.2+0\n [c1c5ebd0] LAME_jll v3.100.1+0\n [88015f11] LERC_jll v3.0.0+1\n [dad2f222] LLVMExtra_jll v0.0.29+0\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.11+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.40.0+0\n⌅ [89763e89] Libtiff_jll v4.5.1+1\n [38a345b3] Libuuid_jll v2.40.0+0\n [5ced341a] Lz4_jll v1.9.4+0\n [856f044c] MKL_jll v2024.1.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.6+0\n [aed1982a] XSLT_jll v1.1.34+0\n [ffd25f8a] XZ_jll v5.4.6+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.6+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.43+1\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 [1317d2d5] oneTBB_jll v2021.12.0+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.1.0+0\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+4\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":"fd6c06a9-47c3-4d33-8af0-7190b8c7000a"},"ext":{},"units_info":null},"time_series_compression_enabled":false,"components":[{"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":"152b883b-d5d8-4993-b091-dd61f1db68fd"},"ext":null,"units_info":null},"area":{"value":"822a0d0d-fc72-42de-809c-bf54aac22e0d"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"bfdb3aa5-0ecb-4417-9d33-47ee6e44031d"}},{"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":"5d1dcdf9-65e2-4093-b4ef-9eb4631076a1"},"ext":null,"units_info":null},"area":{"value":"822a0d0d-fc72-42de-809c-bf54aac22e0d"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"bfdb3aa5-0ecb-4417-9d33-47ee6e44031d"}},{"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":"1bf30d12-6992-4d9d-a910-16d59b965ccc"},"ext":null,"units_info":null},"area":{"value":"822a0d0d-fc72-42de-809c-bf54aac22e0d"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"bfdb3aa5-0ecb-4417-9d33-47ee6e44031d"}},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"1bf30d12-6992-4d9d-a910-16d59b965ccc"},"available":true,"time_series_container":[],"name":"generator-102-1","status":true,"active_power":0.7,"dynamic_injector":{"value":"9c576080-1721-495c-8bea-be271135cb69"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"48ff5740-c29d-46cd-a55f-04205f301749"},"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":"152b883b-d5d8-4993-b091-dd61f1db68fd"},"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":"a906b66e-50f3-4986-9d84-0b018eb34fe4"},"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,"services":[],"bus":{"value":"5d1dcdf9-65e2-4093-b4ef-9eb4631076a1"},"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":"8f6f978c-754d-46a4-b1eb-576bd01e9dfe"},"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":"152b883b-d5d8-4993-b091-dd61f1db68fd"},"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":"3066942d-5528-462f-9fd9-baf2bd919f95"},"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":"1bf30d12-6992-4d9d-a910-16d59b965ccc"},"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":"7a780176-764f-40f5-8084-a43774c6bfa4"},"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},{"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":"3e7183b9-8306-4469-80e9-fb64fb373ac1"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"b69e2145-fcf2-45c4-8c94-3b1bac893a23"},"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":"49d8a97f-6508-476c-aba1-009d166dc86a"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"d79db399-1970-4a31-907d-475d72dfca44"},"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":"6f42f9d8-e20a-46f6-a711-4db2cb296f5f"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"6c636cc0-0cc2-4c64-baf3-cdd1d54bdbc4"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"internal_voltage":1.0,"services":[],"bus":{"value":"5d1dcdf9-65e2-4093-b4ef-9eb4631076a1"},"available":true,"name":"InfBus","internal_angle":0.0,"active_power":0.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"Source"},"internal":{"uuid":{"value":"98459495-e9f5-46a9-b52c-8ef593c18884"},"ext":null,"units_info":null},"ext":{},"X_th":5.0e-6,"R_th":0.0,"reactive_power":0.0},{"__metadata__":{"module":"PowerSystems","type":"LoadZone"},"name":"1","internal":{"uuid":{"value":"bfdb3aa5-0ecb-4417-9d33-47ee6e44031d"},"ext":null,"units_info":null},"peak_active_power":1.8,"peak_reactive_power":0.5,"time_series_container":[]},{"internal":{"uuid":{"value":"3e7183b9-8306-4469-80e9-fb64fb373ac1"},"ext":null,"units_info":null},"to":{"value":"152b883b-d5d8-4993-b091-dd61f1db68fd"},"from":{"value":"5d1dcdf9-65e2-4093-b4ef-9eb4631076a1"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"49d8a97f-6508-476c-aba1-009d166dc86a"},"ext":null,"units_info":null},"to":{"value":"1bf30d12-6992-4d9d-a910-16d59b965ccc"},"from":{"value":"5d1dcdf9-65e2-4093-b4ef-9eb4631076a1"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"6f42f9d8-e20a-46f6-a711-4db2cb296f5f"},"ext":null,"units_info":null},"to":{"value":"152b883b-d5d8-4993-b091-dd61f1db68fd"},"from":{"value":"1bf30d12-6992-4d9d-a910-16d59b965ccc"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"load_response":0.0,"name":"1","__metadata__":{"module":"PowerSystems","type":"Area"},"internal":{"uuid":{"value":"822a0d0d-fc72-42de-809c-bf54aac22e0d"},"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":"24f72a9c-35b0-41e3-889a-726b3a5a2cd1"},"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":"f654fe63-aec5-410f-9e1a-ef8927fc979d"},"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":"9c576080-1721-495c-8bea-be271135cb69"},"ext":null,"units_info":null},"ext":{},"machine":{"internal":{"uuid":{"value":"eebff6dc-cb44-4cea-a8f9-e9b86f4f6096"},"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":"e044b582-6f07-4630-b2e2-2ca7a51e0b01"},"ext":null,"units_info":null},"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"PSSFixed"}},"prime_mover":{"P_ref":1.0,"internal":{"uuid":{"value":"d8a82508-44e2-42a3-9fec-2172ee039a3a"},"ext":null,"units_info":null},"efficiency":1.0,"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"TGFixed"}}}],"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":"39638d13-0f71-4e40-b95f-141ec9761f1e"},"ext":{},"units_info":null},"data":{"time_series_in_memory":false,"masked_components":[],"version_info":{"julia_version":"1.10.3","package_info":"Status `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/docs/Manifest.toml`\n⌅ [47edcb42] ADTypes v0.2.7\n [a4c015fc] ANSIColoredPrinters v0.0.1\n [621f4979] AbstractFFTs v1.5.0\n [1520ce14] AbstractTrees v0.4.5\n [7d9f7c33] Accessors v0.1.36\n [79e6a3ab] Adapt v4.0.4\n [ec485272] ArnoldiMethod v0.4.0\n [4fba245c] ArrayInterface v7.10.0\n [4c555306] ArrayLayouts v1.9.2\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.14\n [082447d4] ChainRules v1.65.0\n [d360d2e6] ChainRulesCore v1.23.0\n [fb6a15b2] CloseOpenIntervals v0.1.12\n [944b1d66] CodecZlib v0.7.4\n [35d6a980] ColorSchemes v3.24.0\n [3da002f7] ColorTypes v0.11.5\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.14.0\n [a33af91c] CompositionsBase v0.1.2\n [2569d6c7] ConcreteStructs v0.2.3\n [f0e56b4a] ConcurrentUtilities v2.4.1\n [187b0558] ConstructionBase v1.5.5\n [d38c429a] Contour v0.6.3\n [adafc99b] CpuId v0.3.1\n [a8cc5b0e] Crayons v4.1.1\n [9a962f9c] DataAPI v1.16.0\n [a93c6f00] DataFrames v1.6.1\n [864edb3b] DataStructures v0.18.20\n [e2d170a0] DataValueInterfaces v1.0.0\n [8bb1440f] DelimitedFiles v1.9.1\n [2b5f629d] DiffEqBase v6.149.1\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.19\n [4e289a0a] EnumX v1.0.4\n⌃ [f151be2c] EnzymeCore v0.6.6\n [460bff9d] ExceptionUnwrapping v0.1.10\n [d4d017d3] ExponentialUtilities v1.26.1\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.2\n [48062228] FilePathsBase v0.9.21\n [1a297f60] FillArrays v1.10.2\n [6a86dc24] FiniteDiff v2.23.1\n [53c48c17] FixedPointNumbers v0.8.4\n [1fa38f19] Format v1.3.7\n [f6369f11] ForwardDiff v0.10.36\n [069b7b12] FunctionWrappers v1.1.3\n [77dc65aa] FunctionWrappersWrappers v0.1.3\n [0c68f7d7] GPUArrays v10.1.0\n [46192b85] GPUArraysCore v0.1.6\n [28b8d3ca] GR v0.73.3\n [c145ed77] GenericSchur v0.5.4\n [86223c79] Graphs v1.10.0\n [42e2da0e] Grisu v1.0.2\n [708ec375] Gumbo v0.8.2\n [c8ec2601] H5Zblosc v0.1.2\n [f67ccb44] HDF5 v0.17.2\n [cd3eb016] HTTP v1.10.6\n [3e5b6fbb] HostCPUFeatures v0.1.16\n [b5f81e59] IOCapture v0.2.4\n [7869d1d1] IRTools v0.4.13\n [615f187c] IfElse v0.1.1\n [d25df0c9] Inflate v0.1.4\n [2cd47ed4] InfrastructureSystems v1.22.2\n [842dd82b] InlineStrings v1.4.0\n [3587e190] InverseFunctions v0.1.14\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.6\n [929cbde3] LLVM v6.6.3\n [b964fa9f] LaTeXStrings v1.3.1\n [23fbe1c1] Latexify v0.16.3\n [10f19ff3] LayoutPointers v0.1.15\n [5078a376] LazyArrays v1.10.0\n [1d6d02ad] LeftChildRightSiblingTrees v0.2.0\n [d3d80556] LineSearches v7.2.0\n⌃ [7ed4a6bd] LinearSolve v2.22.1\n [2ab3a3ac] LogExpFunctions v0.3.27\n [e6f89c97] LoggingExtras v1.0.3\n [bdcacae8] LoopVectorization v0.12.170\n [33e6dc65] MKL v0.6.3\n [3da0fdf6] MPIPreferences v0.1.11\n [1914dd2f] MacroTools v0.5.13\n [d125e4d3] ManualMemory v0.1.8\n [299715c1] MarchingCubes v0.1.9\n [a3b82374] MatrixFactorizations v2.2.0\n [bb5d69b7] MaybeInplace v0.1.2\n [739be429] MbedTLS v1.1.9\n [442fdcdd] Measures v0.3.2\n [e1d29d7a] Missings v1.2.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 v3.10.0\n [6fe1bfb0] OffsetArrays v1.14.0\n [4d8831e6] OpenSSL v1.4.3\n [bac558e1] OrderedCollections v1.6.3\n [1dea7af3] OrdinaryDiffEq v6.74.1\n [65ce6f38] PackageExtensionCompat v1.0.2\n [d96e819e] Parameters v0.12.3\n [46dd5b70] Pardiso v0.5.7\n [69de0a69] Parsers v2.8.1\n [b98c9c47] Pipe v1.3.0\n [ccf2f8ad] PlotThemes v3.1.0\n [995b91a9] PlotUtils v1.4.1\n [91a5bcdd] Plots v1.40.4\n [f517fe37] Polyester v0.7.13\n [1d0040c9] PolyesterWeave v0.2.1\n [2dfb63ee] PooledArrays v1.4.3\n [dd99e9e3] PowerFlowData v1.5.0\n [94fada2c] PowerFlows v0.6.2\n⌅ [bed98974] PowerNetworkMatrices v0.9.6\n [398b2ede] PowerSimulationsDynamics v0.14.1 `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl`\n [f00506e0] PowerSystemCaseBuilder v1.2.5\n [bcd98974] PowerSystems v3.3.0\n [d236fae5] PreallocationTools v0.4.21\n [aea7be01] PrecompileTools v1.2.1\n [21216c6a] Preferences v1.4.3\n [08abe8d2] PrettyTables v2.3.1\n [33c8b6b6] ProgressLogging v0.1.4\n [c1ae055f] RealDot v0.1.0\n [3cdcf5f2] RecipesBase v1.3.4\n [01d81517] RecipesPipeline v0.6.12\n⌃ [731186ca] RecursiveArrayTools v3.13.0\n [f2c3362d] RecursiveFactorization v0.2.23\n [189a3867] Reexport v1.2.2\n [05181044] RelocatableFolders v1.0.1\n [ae029012] Requires v1.3.0\n [7e49a35a] RuntimeGeneratedFunctions v0.5.13\n [94e857df] SIMDTypes v0.1.0\n [476501e8] SLEEFPirates v0.6.42\n [322a6be2] Sass v0.2.0\n [0bca4576] SciMLBase v2.35.0\n [c0aeaf25] SciMLOperators v0.3.8\n [53ae85a6] SciMLStructures v1.1.0\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 v1.7.0\n [699a6c99] SimpleTraits v0.9.4\n [ce78b400] SimpleUnPack v1.1.0\n [a2af1166] SortingAlgorithms v1.2.1\n⌃ [47a9eef4] SparseDiffTools v2.18.0\n [dc90abb0] SparseInverseSubset v0.1.2\n [e56a9233] Sparspak v0.3.9\n [276daf66] SpecialFunctions v2.3.1\n [aedffcd0] Static v0.8.10\n [0d7ed370] StaticArrayInterface v1.5.0\n [90137ffa] StaticArrays v1.9.3\n [1e83bf80] StaticArraysCore v1.4.2\n [82ae8749] StatsAPI v1.7.0\n [2913bbd2] StatsBase v0.34.3\n [7792a7ef] StrideArraysCore v0.5.6\n [69024149] StringEncodings v0.3.7\n [892a3eda] StringManipulation v0.3.4\n [09ab397b] StructArrays v0.6.18\n [856f2bd8] StructTypes v1.10.0\n [c3572dad] Sundials v4.24.0\n [2efcf032] SymbolicIndexingInterface v0.3.17\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.7\n [d5829a12] TriangularSolve v0.2.0\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.4\n [1986cc42] Unitful v1.19.0\n [45397f5d] UnitfulLatexify v1.6.3\n [41fe7b60] Unzip v0.2.0\n [3d5dd08c] VectorizationBase v0.21.67\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 [e88e6eb3] Zygote v0.6.69\n [700de1a5] ZygoteRules v0.2.5\n [0b7ba130] Blosc_jll v1.21.5+0\n [6e34b625] Bzip2_jll v1.0.8+1\n [83423d85] Cairo_jll v1.18.0+1\n [2702e6a9] EpollShim_jll v0.0.20230411+0\n [2e619515] Expat_jll v2.6.2+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.73.3+0\n [78b55507] Gettext_jll v0.21.0+0\n [7746bdde] Glib_jll v2.80.0+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 v2024.1.0+0\n [aacddb02] JpegTurbo_jll v3.0.2+0\n [c1c5ebd0] LAME_jll v3.100.1+0\n⌅ [88015f11] LERC_jll v3.0.0+1\n [dad2f222] LLVMExtra_jll v0.0.29+0\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.11+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.40.0+0\n⌅ [89763e89] Libtiff_jll v4.5.1+1\n [38a345b3] Libuuid_jll v2.40.0+0\n [5ced341a] Lz4_jll v1.9.4+0\n [856f044c] MKL_jll v2024.1.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.6+0\n [aed1982a] XSLT_jll v1.1.34+0\n [ffd25f8a] XZ_jll v5.4.6+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.6+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.43+1\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 [1317d2d5] oneTBB_jll v2021.12.0+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.1.1+0\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+4\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":"e68eeaef-4f7f-4dd5-8c86-27bfefc05e6d"},"ext":{},"units_info":null},"time_series_compression_enabled":false,"components":[{"internal_voltage":1.0,"services":[],"bus":{"value":"7d3125ba-d73c-4cc4-ba5b-d6611caf1d9d"},"available":true,"name":"InfBus","internal_angle":0.0,"active_power":0.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"Source"},"internal":{"uuid":{"value":"8255d32e-c3d3-4d1a-ba3c-9dff7a58436a"},"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":"12e708ae-b40e-452a-8e34-c61b0d65ce98"},"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":"614fae70-de2f-4632-ba4f-aa83eedede6f"},"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":"01004990-bcf2-4bca-8609-9a00f8035939"},"ext":null,"units_info":null},"ext":{},"machine":{"internal":{"uuid":{"value":"7befc14d-322a-4e36-8e16-5e7c4246138c"},"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":"14245595-0ad5-4361-894b-dd64246cb3ea"},"ext":null,"units_info":null},"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"PSSFixed"}},"prime_mover":{"P_ref":1.0,"internal":{"uuid":{"value":"202d65bd-92a1-46c0-af19-e3bb10abe117"},"ext":null,"units_info":null},"efficiency":1.0,"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"TGFixed"}}},{"internal":{"uuid":{"value":"53c08f84-61f0-4aaf-b2f3-05e67d342799"},"ext":null,"units_info":null},"to":{"value":"b4b937e2-491a-4bb0-baf4-6dab87eafffa"},"from":{"value":"7d3125ba-d73c-4cc4-ba5b-d6611caf1d9d"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"737447b7-f97e-40cf-aa64-f202a3ff5d25"},"ext":null,"units_info":null},"to":{"value":"ac197591-5dea-4644-9a18-0b17d2c7f526"},"from":{"value":"7d3125ba-d73c-4cc4-ba5b-d6611caf1d9d"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"5d0b6aef-0273-45bf-bc7e-270e945563e5"},"ext":null,"units_info":null},"to":{"value":"b4b937e2-491a-4bb0-baf4-6dab87eafffa"},"from":{"value":"ac197591-5dea-4644-9a18-0b17d2c7f526"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"load_response":0.0,"name":"1","__metadata__":{"module":"PowerSystems","type":"Area"},"internal":{"uuid":{"value":"27df10da-7800-4ba1-a114-9b29f3a4b00b"},"ext":null,"units_info":null},"peak_active_power":0.0,"peak_reactive_power":0.0,"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":"53c08f84-61f0-4aaf-b2f3-05e67d342799"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"2a0b9082-84de-4bb6-91ab-7d5158c7b727"},"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":"737447b7-f97e-40cf-aa64-f202a3ff5d25"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"9e2ae3ca-17ea-46f2-83d5-bb3a745626da"},"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":"5d0b6aef-0273-45bf-bc7e-270e945563e5"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"d0ae5e78-6b10-4fd0-9b1e-e654d8cf5982"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"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":"b4b937e2-491a-4bb0-baf4-6dab87eafffa"},"ext":null,"units_info":null},"area":{"value":"27df10da-7800-4ba1-a114-9b29f3a4b00b"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"67361854-69d0-48b6-b02e-42312fb71b04"}},{"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":"7d3125ba-d73c-4cc4-ba5b-d6611caf1d9d"},"ext":null,"units_info":null},"area":{"value":"27df10da-7800-4ba1-a114-9b29f3a4b00b"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"67361854-69d0-48b6-b02e-42312fb71b04"}},{"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":"ac197591-5dea-4644-9a18-0b17d2c7f526"},"ext":null,"units_info":null},"area":{"value":"27df10da-7800-4ba1-a114-9b29f3a4b00b"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"67361854-69d0-48b6-b02e-42312fb71b04"}},{"base_power":100.0,"services":[],"bus":{"value":"7d3125ba-d73c-4cc4-ba5b-d6611caf1d9d"},"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":"61bcadfc-c12d-4112-8d65-7ee6cf3dbeca"},"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":"b4b937e2-491a-4bb0-baf4-6dab87eafffa"},"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":"37e117de-0f9b-4958-89af-1286d7e17903"},"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":"ac197591-5dea-4644-9a18-0b17d2c7f526"},"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":"91435617-405c-4f33-b1b7-60307654869f"},"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},{"__metadata__":{"module":"PowerSystems","type":"LoadZone"},"name":"1","internal":{"uuid":{"value":"67361854-69d0-48b6-b02e-42312fb71b04"},"ext":null,"units_info":null},"peak_active_power":1.8,"peak_reactive_power":0.5,"time_series_container":[]},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"ac197591-5dea-4644-9a18-0b17d2c7f526"},"available":true,"time_series_container":[],"name":"generator-102-1","status":true,"active_power":0.7,"dynamic_injector":{"value":"01004990-bcf2-4bca-8609-9a00f8035939"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"cabc8da3-16d7-4ad4-aa53-3d030e674cc8"},"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":"b4b937e2-491a-4bb0-baf4-6dab87eafffa"},"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":"4d9ccb61-a0ff-40fd-b62d-f2709507ff26"},"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}],"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/previews/PR372/tutorials/threebus_sys.json b/previews/PR372/tutorials/threebus_sys.json index 191bb83a4..97b70971b 100644 --- a/previews/PR372/tutorials/threebus_sys.json +++ b/previews/PR372/tutorials/threebus_sys.json @@ -1 +1 @@ -{"internal":{"uuid":{"value":"1d637c3d-4d04-4665-bb5c-f8e190849b41"},"ext":{},"units_info":null},"data":{"time_series_in_memory":false,"masked_components":[],"version_info":{"julia_version":"1.10.2","package_info":"Status `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/docs/Manifest.toml`\n⌅ [47edcb42] ADTypes v0.2.7\n [a4c015fc] ANSIColoredPrinters v0.0.1\n [621f4979] AbstractFFTs v1.5.0\n [1520ce14] AbstractTrees v0.4.5\n [7d9f7c33] Accessors v0.1.36\n [79e6a3ab] Adapt v4.0.4\n [ec485272] ArnoldiMethod v0.4.0\n [4fba245c] ArrayInterface v7.10.0\n [4c555306] ArrayLayouts v1.9.2\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.14\n [082447d4] ChainRules v1.65.0\n [d360d2e6] ChainRulesCore v1.23.0\n [fb6a15b2] CloseOpenIntervals v0.1.12\n [944b1d66] CodecZlib v0.7.4\n [35d6a980] ColorSchemes v3.24.0\n [3da002f7] ColorTypes v0.11.5\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.14.0\n [a33af91c] CompositionsBase v0.1.2\n [2569d6c7] ConcreteStructs v0.2.3\n [f0e56b4a] ConcurrentUtilities v2.4.1\n [187b0558] ConstructionBase v1.5.5\n [d38c429a] Contour v0.6.3\n [adafc99b] CpuId v0.3.1\n [a8cc5b0e] Crayons v4.1.1\n [9a962f9c] DataAPI v1.16.0\n [a93c6f00] DataFrames v1.6.1\n [864edb3b] DataStructures v0.18.20\n [e2d170a0] DataValueInterfaces v1.0.0\n [8bb1440f] DelimitedFiles v1.9.1\n [2b5f629d] DiffEqBase v6.149.1\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.19\n [4e289a0a] EnumX v1.0.4\n⌃ [f151be2c] EnzymeCore v0.6.6\n [460bff9d] ExceptionUnwrapping v0.1.10\n [d4d017d3] ExponentialUtilities v1.26.1\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.2\n [48062228] FilePathsBase v0.9.21\n [1a297f60] FillArrays v1.10.2\n [6a86dc24] FiniteDiff v2.23.1\n [53c48c17] FixedPointNumbers v0.8.4\n [1fa38f19] Format v1.3.7\n [f6369f11] ForwardDiff v0.10.36\n [069b7b12] FunctionWrappers v1.1.3\n [77dc65aa] FunctionWrappersWrappers v0.1.3\n [0c68f7d7] GPUArrays v10.1.0\n [46192b85] GPUArraysCore v0.1.6\n [28b8d3ca] GR v0.73.3\n [c145ed77] GenericSchur v0.5.4\n [86223c79] Graphs v1.10.0\n [42e2da0e] Grisu v1.0.2\n [708ec375] Gumbo v0.8.2\n [c8ec2601] H5Zblosc v0.1.2\n [f67ccb44] HDF5 v0.17.2\n [cd3eb016] HTTP v1.10.6\n [3e5b6fbb] HostCPUFeatures v0.1.16\n [b5f81e59] IOCapture v0.2.4\n [7869d1d1] IRTools v0.4.13\n [615f187c] IfElse v0.1.1\n [d25df0c9] Inflate v0.1.4\n [2cd47ed4] InfrastructureSystems v1.22.2\n [842dd82b] InlineStrings v1.4.0\n [3587e190] InverseFunctions v0.1.14\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 [929cbde3] LLVM v6.6.3\n [b964fa9f] LaTeXStrings v1.3.1\n [23fbe1c1] Latexify v0.16.3\n [10f19ff3] LayoutPointers v0.1.15\n [5078a376] LazyArrays v1.10.0\n [1d6d02ad] LeftChildRightSiblingTrees v0.2.0\n [d3d80556] LineSearches v7.2.0\n⌃ [7ed4a6bd] LinearSolve v2.22.1\n [2ab3a3ac] LogExpFunctions v0.3.27\n [e6f89c97] LoggingExtras v1.0.3\n [bdcacae8] LoopVectorization v0.12.170\n [33e6dc65] MKL v0.6.3\n [3da0fdf6] MPIPreferences v0.1.11\n [1914dd2f] MacroTools v0.5.13\n [d125e4d3] ManualMemory v0.1.8\n [299715c1] MarchingCubes v0.1.9\n [a3b82374] MatrixFactorizations v2.2.0\n [bb5d69b7] MaybeInplace v0.1.2\n [739be429] MbedTLS v1.1.9\n [442fdcdd] Measures v0.3.2\n [e1d29d7a] Missings v1.2.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 v3.10.0\n [6fe1bfb0] OffsetArrays v1.14.0\n [4d8831e6] OpenSSL v1.4.3\n [bac558e1] OrderedCollections v1.6.3\n [1dea7af3] OrdinaryDiffEq v6.74.1\n [65ce6f38] PackageExtensionCompat v1.0.2\n [d96e819e] Parameters v0.12.3\n [46dd5b70] Pardiso v0.5.7\n [69de0a69] Parsers v2.8.1\n [b98c9c47] Pipe v1.3.0\n [ccf2f8ad] PlotThemes v3.1.0\n [995b91a9] PlotUtils v1.4.1\n [91a5bcdd] Plots v1.40.4\n [f517fe37] Polyester v0.7.13\n [1d0040c9] PolyesterWeave v0.2.1\n [2dfb63ee] PooledArrays v1.4.3\n [dd99e9e3] PowerFlowData v1.5.0\n [94fada2c] PowerFlows v0.6.2\n⌅ [bed98974] PowerNetworkMatrices v0.9.6\n [398b2ede] PowerSimulationsDynamics v0.14.1 `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl`\n [f00506e0] PowerSystemCaseBuilder v1.2.5\n [bcd98974] PowerSystems v3.3.0\n [d236fae5] PreallocationTools v0.4.21\n [aea7be01] PrecompileTools v1.2.1\n [21216c6a] Preferences v1.4.3\n [08abe8d2] PrettyTables v2.3.1\n [33c8b6b6] ProgressLogging v0.1.4\n [c1ae055f] RealDot v0.1.0\n [3cdcf5f2] RecipesBase v1.3.4\n [01d81517] RecipesPipeline v0.6.12\n [731186ca] RecursiveArrayTools v3.14.0\n [f2c3362d] RecursiveFactorization v0.2.23\n [189a3867] Reexport v1.2.2\n [05181044] RelocatableFolders v1.0.1\n [ae029012] Requires v1.3.0\n [7e49a35a] RuntimeGeneratedFunctions v0.5.13\n [94e857df] SIMDTypes v0.1.0\n [476501e8] SLEEFPirates v0.6.42\n [322a6be2] Sass v0.2.0\n [0bca4576] SciMLBase v2.35.0\n [c0aeaf25] SciMLOperators v0.3.8\n [53ae85a6] SciMLStructures v1.1.0\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 v1.7.0\n [699a6c99] SimpleTraits v0.9.4\n [ce78b400] SimpleUnPack v1.1.0\n [a2af1166] SortingAlgorithms v1.2.1\n⌃ [47a9eef4] SparseDiffTools v2.18.0\n [dc90abb0] SparseInverseSubset v0.1.2\n [e56a9233] Sparspak v0.3.9\n [276daf66] SpecialFunctions v2.3.1\n [aedffcd0] Static v0.8.10\n [0d7ed370] StaticArrayInterface v1.5.0\n [90137ffa] StaticArrays v1.9.3\n [1e83bf80] StaticArraysCore v1.4.2\n [82ae8749] StatsAPI v1.7.0\n [2913bbd2] StatsBase v0.34.3\n [7792a7ef] StrideArraysCore v0.5.6\n [69024149] StringEncodings v0.3.7\n [892a3eda] StringManipulation v0.3.4\n [09ab397b] StructArrays v0.6.18\n [856f2bd8] StructTypes v1.10.0\n [c3572dad] Sundials v4.24.0\n [2efcf032] SymbolicIndexingInterface v0.3.19\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.7\n [d5829a12] TriangularSolve v0.2.0\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.4\n [1986cc42] Unitful v1.19.0\n [45397f5d] UnitfulLatexify v1.6.3\n [41fe7b60] Unzip v0.2.0\n [3d5dd08c] VectorizationBase v0.21.67\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 [e88e6eb3] Zygote v0.6.69\n [700de1a5] ZygoteRules v0.2.5\n [0b7ba130] Blosc_jll v1.21.5+0\n [6e34b625] Bzip2_jll v1.0.8+1\n [83423d85] Cairo_jll v1.18.0+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.73.3+0\n [78b55507] Gettext_jll v0.21.0+0\n [7746bdde] Glib_jll v2.80.0+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 v2024.1.0+0\n [aacddb02] JpegTurbo_jll v3.0.2+0\n [c1c5ebd0] LAME_jll v3.100.1+0\n [88015f11] LERC_jll v3.0.0+1\n [dad2f222] LLVMExtra_jll v0.0.29+0\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.11+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.40.0+0\n⌅ [89763e89] Libtiff_jll v4.5.1+1\n [38a345b3] Libuuid_jll v2.40.0+0\n [5ced341a] Lz4_jll v1.9.4+0\n [856f044c] MKL_jll v2024.1.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.6+0\n [aed1982a] XSLT_jll v1.1.34+0\n [ffd25f8a] XZ_jll v5.4.6+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.6+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.43+1\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 [1317d2d5] oneTBB_jll v2021.12.0+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.1.0+0\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+4\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":"fd6c06a9-47c3-4d33-8af0-7190b8c7000a"},"ext":{},"units_info":null},"time_series_compression_enabled":false,"components":[{"base_power":100.0,"shaft":{"internal":{"uuid":{"value":"53e49b8a-3cb2-4da6-b213-ce1468d632eb"},"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":"efb72b40-62db-4d96-bdd8-3e0a7b13786c"},"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":"82068065-e237-40a5-aa71-d052d34c9e9a"},"ext":null,"units_info":null},"ext":{},"machine":{"internal":{"uuid":{"value":"2ed60d9f-949c-4d8c-b7e7-bfdf4ff1768b"},"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":"d7a6efa7-c6f5-4f63-8bef-9e1bce27973c"},"ext":null,"units_info":null},"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"PSSFixed"}},"prime_mover":{"P_ref":1.0,"internal":{"uuid":{"value":"bf9ab149-0d42-45bc-adb2-f37d32d01a02"},"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":"c1c00266-cd30-474a-b3f8-7633aff38fe6"},"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":"11028873-8ab9-47e8-a5e8-55b46cab8a1c"},"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":"9737207b-87a6-4790-977c-91a9ea440f8b"},"ext":null,"units_info":null},"area":{"value":"95df6e77-5fb7-49c1-a180-0be1bc16775f"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"de1c00b5-2aee-4921-ab97-c6c32474a509"}},{"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":"c4c970e0-bdd0-4944-864b-8c024180ed50"},"ext":null,"units_info":null},"area":{"value":"95df6e77-5fb7-49c1-a180-0be1bc16775f"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"de1c00b5-2aee-4921-ab97-c6c32474a509"}},{"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":"3ad19193-8b2a-4fdb-94a4-2a5bd0dcc321"},"ext":null,"units_info":null},"area":{"value":"95df6e77-5fb7-49c1-a180-0be1bc16775f"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"de1c00b5-2aee-4921-ab97-c6c32474a509"}},{"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":"6eb0be30-4b5e-449f-888c-315dedd0dd73"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"79aed97b-ce5f-44f3-a880-d42b6960d5e7"},"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":"eabb8bd8-b972-43ab-9438-82689e9621b2"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"1f850f23-20a9-4ede-bb2b-23b2a6466eae"},"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":"a45e5161-db27-4467-88c3-002bfd88621f"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"0f869af9-d2ec-471b-b0e9-d6a33c4de2bf"},"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":"3ad19193-8b2a-4fdb-94a4-2a5bd0dcc321"},"available":true,"time_series_container":[],"name":"generator-102-1","status":true,"active_power":0.7,"dynamic_injector":{"value":"82068065-e237-40a5-aa71-d052d34c9e9a"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"757ae0ac-68df-406f-9c86-453e9647f136"},"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":"9737207b-87a6-4790-977c-91a9ea440f8b"},"available":true,"time_series_container":[],"name":"generator-103-1","status":true,"active_power":0.8,"dynamic_injector":{"value":"11028873-8ab9-47e8-a5e8-55b46cab8a1c"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"0987e13e-0b18-4fc9-a729-b190ee4837df"},"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,"services":[],"bus":{"value":"c4c970e0-bdd0-4944-864b-8c024180ed50"},"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":"f69e8e61-dc95-4ba3-a2f1-da0418f0dba4"},"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":"9737207b-87a6-4790-977c-91a9ea440f8b"},"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":"967c5854-1aa5-4fd3-8aa7-23a7158573a4"},"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":"3ad19193-8b2a-4fdb-94a4-2a5bd0dcc321"},"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":"3b0cfeac-7ec0-4b69-98b8-0dad811f9b45"},"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},{"internal_voltage":1.0,"services":[],"bus":{"value":"5d1dcdf9-65e2-4093-b4ef-9eb4631076a1"},"available":true,"name":"InfBus","internal_angle":0.0,"active_power":0.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"Source"},"internal":{"uuid":{"value":"afc5472f-a84a-46b2-bb6c-9e9d41101634"},"ext":null,"units_info":null},"ext":{},"X_th":5.0e-6,"R_th":0.0,"reactive_power":0.0},{"__metadata__":{"module":"PowerSystems","type":"LoadZone"},"name":"1","internal":{"uuid":{"value":"de1c00b5-2aee-4921-ab97-c6c32474a509"},"ext":null,"units_info":null},"peak_active_power":1.8,"peak_reactive_power":0.5,"time_series_container":[]},{"internal":{"uuid":{"value":"6eb0be30-4b5e-449f-888c-315dedd0dd73"},"ext":null,"units_info":null},"to":{"value":"9737207b-87a6-4790-977c-91a9ea440f8b"},"from":{"value":"c4c970e0-bdd0-4944-864b-8c024180ed50"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"eabb8bd8-b972-43ab-9438-82689e9621b2"},"ext":null,"units_info":null},"to":{"value":"3ad19193-8b2a-4fdb-94a4-2a5bd0dcc321"},"from":{"value":"c4c970e0-bdd0-4944-864b-8c024180ed50"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"a45e5161-db27-4467-88c3-002bfd88621f"},"ext":null,"units_info":null},"to":{"value":"9737207b-87a6-4790-977c-91a9ea440f8b"},"from":{"value":"3ad19193-8b2a-4fdb-94a4-2a5bd0dcc321"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"load_response":0.0,"name":"1","__metadata__":{"module":"PowerSystems","type":"Area"},"internal":{"uuid":{"value":"95df6e77-5fb7-49c1-a180-0be1bc16775f"},"ext":null,"units_info":null},"peak_active_power":0.0,"peak_reactive_power":0.0,"time_series_container":[]}],"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":"fd132537-8083-4893-8aa2-31c1cc6ee766"},"ext":{},"units_info":null},"data":{"time_series_in_memory":false,"masked_components":[],"version_info":{"julia_version":"1.10.3","package_info":"Status `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/docs/Manifest.toml`\n⌅ [47edcb42] ADTypes v0.2.7\n [a4c015fc] ANSIColoredPrinters v0.0.1\n [621f4979] AbstractFFTs v1.5.0\n [1520ce14] AbstractTrees v0.4.5\n [7d9f7c33] Accessors v0.1.36\n [79e6a3ab] Adapt v4.0.4\n [ec485272] ArnoldiMethod v0.4.0\n [4fba245c] ArrayInterface v7.10.0\n [4c555306] ArrayLayouts v1.9.2\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.14\n [082447d4] ChainRules v1.65.0\n [d360d2e6] ChainRulesCore v1.23.0\n [fb6a15b2] CloseOpenIntervals v0.1.12\n [944b1d66] CodecZlib v0.7.4\n [35d6a980] ColorSchemes v3.24.0\n [3da002f7] ColorTypes v0.11.5\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.14.0\n [a33af91c] CompositionsBase v0.1.2\n [2569d6c7] ConcreteStructs v0.2.3\n [f0e56b4a] ConcurrentUtilities v2.4.1\n [187b0558] ConstructionBase v1.5.5\n [d38c429a] Contour v0.6.3\n [adafc99b] CpuId v0.3.1\n [a8cc5b0e] Crayons v4.1.1\n [9a962f9c] DataAPI v1.16.0\n [a93c6f00] DataFrames v1.6.1\n [864edb3b] DataStructures v0.18.20\n [e2d170a0] DataValueInterfaces v1.0.0\n [8bb1440f] DelimitedFiles v1.9.1\n [2b5f629d] DiffEqBase v6.149.1\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.19\n [4e289a0a] EnumX v1.0.4\n⌃ [f151be2c] EnzymeCore v0.6.6\n [460bff9d] ExceptionUnwrapping v0.1.10\n [d4d017d3] ExponentialUtilities v1.26.1\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.2\n [48062228] FilePathsBase v0.9.21\n [1a297f60] FillArrays v1.10.2\n [6a86dc24] FiniteDiff v2.23.1\n [53c48c17] FixedPointNumbers v0.8.4\n [1fa38f19] Format v1.3.7\n [f6369f11] ForwardDiff v0.10.36\n [069b7b12] FunctionWrappers v1.1.3\n [77dc65aa] FunctionWrappersWrappers v0.1.3\n [0c68f7d7] GPUArrays v10.1.0\n [46192b85] GPUArraysCore v0.1.6\n [28b8d3ca] GR v0.73.3\n [c145ed77] GenericSchur v0.5.4\n [86223c79] Graphs v1.10.0\n [42e2da0e] Grisu v1.0.2\n [708ec375] Gumbo v0.8.2\n [c8ec2601] H5Zblosc v0.1.2\n [f67ccb44] HDF5 v0.17.2\n [cd3eb016] HTTP v1.10.6\n [3e5b6fbb] HostCPUFeatures v0.1.16\n [b5f81e59] IOCapture v0.2.4\n [7869d1d1] IRTools v0.4.13\n [615f187c] IfElse v0.1.1\n [d25df0c9] Inflate v0.1.4\n [2cd47ed4] InfrastructureSystems v1.22.2\n [842dd82b] InlineStrings v1.4.0\n [3587e190] InverseFunctions v0.1.14\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.6\n [929cbde3] LLVM v6.6.3\n [b964fa9f] LaTeXStrings v1.3.1\n [23fbe1c1] Latexify v0.16.3\n [10f19ff3] LayoutPointers v0.1.15\n [5078a376] LazyArrays v1.10.0\n [1d6d02ad] LeftChildRightSiblingTrees v0.2.0\n [d3d80556] LineSearches v7.2.0\n⌃ [7ed4a6bd] LinearSolve v2.22.1\n [2ab3a3ac] LogExpFunctions v0.3.27\n [e6f89c97] LoggingExtras v1.0.3\n [bdcacae8] LoopVectorization v0.12.170\n [33e6dc65] MKL v0.6.3\n [3da0fdf6] MPIPreferences v0.1.11\n [1914dd2f] MacroTools v0.5.13\n [d125e4d3] ManualMemory v0.1.8\n [299715c1] MarchingCubes v0.1.9\n [a3b82374] MatrixFactorizations v2.2.0\n [bb5d69b7] MaybeInplace v0.1.2\n [739be429] MbedTLS v1.1.9\n [442fdcdd] Measures v0.3.2\n [e1d29d7a] Missings v1.2.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 v3.10.0\n [6fe1bfb0] OffsetArrays v1.14.0\n [4d8831e6] OpenSSL v1.4.3\n [bac558e1] OrderedCollections v1.6.3\n [1dea7af3] OrdinaryDiffEq v6.74.1\n [65ce6f38] PackageExtensionCompat v1.0.2\n [d96e819e] Parameters v0.12.3\n [46dd5b70] Pardiso v0.5.7\n [69de0a69] Parsers v2.8.1\n [b98c9c47] Pipe v1.3.0\n [ccf2f8ad] PlotThemes v3.1.0\n [995b91a9] PlotUtils v1.4.1\n [91a5bcdd] Plots v1.40.4\n [f517fe37] Polyester v0.7.13\n [1d0040c9] PolyesterWeave v0.2.1\n [2dfb63ee] PooledArrays v1.4.3\n [dd99e9e3] PowerFlowData v1.5.0\n [94fada2c] PowerFlows v0.6.2\n⌅ [bed98974] PowerNetworkMatrices v0.9.6\n [398b2ede] PowerSimulationsDynamics v0.14.1 `~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl`\n [f00506e0] PowerSystemCaseBuilder v1.2.5\n [bcd98974] PowerSystems v3.3.0\n [d236fae5] PreallocationTools v0.4.21\n [aea7be01] PrecompileTools v1.2.1\n [21216c6a] Preferences v1.4.3\n [08abe8d2] PrettyTables v2.3.1\n [33c8b6b6] ProgressLogging v0.1.4\n [c1ae055f] RealDot v0.1.0\n [3cdcf5f2] RecipesBase v1.3.4\n [01d81517] RecipesPipeline v0.6.12\n⌃ [731186ca] RecursiveArrayTools v3.13.0\n [f2c3362d] RecursiveFactorization v0.2.23\n [189a3867] Reexport v1.2.2\n [05181044] RelocatableFolders v1.0.1\n [ae029012] Requires v1.3.0\n [7e49a35a] RuntimeGeneratedFunctions v0.5.13\n [94e857df] SIMDTypes v0.1.0\n [476501e8] SLEEFPirates v0.6.42\n [322a6be2] Sass v0.2.0\n [0bca4576] SciMLBase v2.35.0\n [c0aeaf25] SciMLOperators v0.3.8\n [53ae85a6] SciMLStructures v1.1.0\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 v1.7.0\n [699a6c99] SimpleTraits v0.9.4\n [ce78b400] SimpleUnPack v1.1.0\n [a2af1166] SortingAlgorithms v1.2.1\n⌃ [47a9eef4] SparseDiffTools v2.18.0\n [dc90abb0] SparseInverseSubset v0.1.2\n [e56a9233] Sparspak v0.3.9\n [276daf66] SpecialFunctions v2.3.1\n [aedffcd0] Static v0.8.10\n [0d7ed370] StaticArrayInterface v1.5.0\n [90137ffa] StaticArrays v1.9.3\n [1e83bf80] StaticArraysCore v1.4.2\n [82ae8749] StatsAPI v1.7.0\n [2913bbd2] StatsBase v0.34.3\n [7792a7ef] StrideArraysCore v0.5.6\n [69024149] StringEncodings v0.3.7\n [892a3eda] StringManipulation v0.3.4\n [09ab397b] StructArrays v0.6.18\n [856f2bd8] StructTypes v1.10.0\n [c3572dad] Sundials v4.24.0\n [2efcf032] SymbolicIndexingInterface v0.3.17\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.7\n [d5829a12] TriangularSolve v0.2.0\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.4\n [1986cc42] Unitful v1.19.0\n [45397f5d] UnitfulLatexify v1.6.3\n [41fe7b60] Unzip v0.2.0\n [3d5dd08c] VectorizationBase v0.21.67\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 [e88e6eb3] Zygote v0.6.69\n [700de1a5] ZygoteRules v0.2.5\n [0b7ba130] Blosc_jll v1.21.5+0\n [6e34b625] Bzip2_jll v1.0.8+1\n [83423d85] Cairo_jll v1.18.0+1\n [2702e6a9] EpollShim_jll v0.0.20230411+0\n [2e619515] Expat_jll v2.6.2+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.73.3+0\n [78b55507] Gettext_jll v0.21.0+0\n [7746bdde] Glib_jll v2.80.0+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 v2024.1.0+0\n [aacddb02] JpegTurbo_jll v3.0.2+0\n [c1c5ebd0] LAME_jll v3.100.1+0\n⌅ [88015f11] LERC_jll v3.0.0+1\n [dad2f222] LLVMExtra_jll v0.0.29+0\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.11+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.40.0+0\n⌅ [89763e89] Libtiff_jll v4.5.1+1\n [38a345b3] Libuuid_jll v2.40.0+0\n [5ced341a] Lz4_jll v1.9.4+0\n [856f044c] MKL_jll v2024.1.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.6+0\n [aed1982a] XSLT_jll v1.1.34+0\n [ffd25f8a] XZ_jll v5.4.6+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.6+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.43+1\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 [1317d2d5] oneTBB_jll v2021.12.0+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.1.1+0\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+4\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":"e68eeaef-4f7f-4dd5-8c86-27bfefc05e6d"},"ext":{},"units_info":null},"time_series_compression_enabled":false,"components":[{"internal_voltage":1.0,"services":[],"bus":{"value":"7d3125ba-d73c-4cc4-ba5b-d6611caf1d9d"},"available":true,"name":"InfBus","internal_angle":0.0,"active_power":0.0,"dynamic_injector":null,"__metadata__":{"module":"PowerSystems","type":"Source"},"internal":{"uuid":{"value":"67174f8b-e2ba-493c-8a1d-af80be135198"},"ext":null,"units_info":null},"ext":{},"X_th":5.0e-6,"R_th":0.0,"reactive_power":0.0},{"internal":{"uuid":{"value":"1359149f-d3a6-4ed0-8d19-1fa4d56e3903"},"ext":null,"units_info":null},"to":{"value":"3f6c212b-beaa-4294-974c-279a6cb5e36a"},"from":{"value":"88273c27-316d-4415-94df-ee9ddeaab3b2"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"c6ea3596-5a3b-460f-81e7-6deef7e6304c"},"ext":null,"units_info":null},"to":{"value":"e63d1d08-cd85-452f-bfed-13f123219d3e"},"from":{"value":"88273c27-316d-4415-94df-ee9ddeaab3b2"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"internal":{"uuid":{"value":"1e5e1c24-f064-4644-b442-7584aec9140b"},"ext":null,"units_info":null},"to":{"value":"3f6c212b-beaa-4294-974c-279a6cb5e36a"},"from":{"value":"e63d1d08-cd85-452f-bfed-13f123219d3e"},"__metadata__":{"module":"PowerSystems","type":"Arc"}},{"load_response":0.0,"name":"1","__metadata__":{"module":"PowerSystems","type":"Area"},"internal":{"uuid":{"value":"96ebc57c-9fbf-4639-b097-5f860df834c1"},"ext":null,"units_info":null},"peak_active_power":0.0,"peak_reactive_power":0.0,"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":"1359149f-d3a6-4ed0-8d19-1fa4d56e3903"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"59c318ae-9c9b-405b-b2c0-4e6b1386ac6d"},"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":"c6ea3596-5a3b-460f-81e7-6deef7e6304c"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"e213a12d-9ae3-4b68-9453-b4da485a1eb3"},"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":"1e5e1c24-f064-4644-b442-7584aec9140b"},"__metadata__":{"module":"PowerSystems","type":"Line"},"internal":{"uuid":{"value":"b96aeed4-c42d-4fbe-9333-974e851c72c1"},"ext":null,"units_info":null},"ext":{},"active_power_flow":0.0,"angle_limits":{"min":-1.0472,"max":1.0472}},{"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":"5d1a330f-8b4b-4478-867c-9107db2bc6c7"},"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":"1170a705-df87-41eb-87f8-4d35b7cb0144"},"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":"3f6c212b-beaa-4294-974c-279a6cb5e36a"},"ext":null,"units_info":null},"area":{"value":"96ebc57c-9fbf-4639-b097-5f860df834c1"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"5926fd0c-fd08-4ac4-a094-38b86e651fb9"}},{"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":"88273c27-316d-4415-94df-ee9ddeaab3b2"},"ext":null,"units_info":null},"area":{"value":"96ebc57c-9fbf-4639-b097-5f860df834c1"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"5926fd0c-fd08-4ac4-a094-38b86e651fb9"}},{"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":"e63d1d08-cd85-452f-bfed-13f123219d3e"},"ext":null,"units_info":null},"area":{"value":"96ebc57c-9fbf-4639-b097-5f860df834c1"},"ext":{},"voltage_limits":{"min":0.9,"max":1.1},"load_zone":{"value":"5926fd0c-fd08-4ac4-a094-38b86e651fb9"}},{"base_power":100.0,"services":[],"bus":{"value":"88273c27-316d-4415-94df-ee9ddeaab3b2"},"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":"6c402458-5c0f-4f04-85a9-e009878ddf8a"},"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":"3f6c212b-beaa-4294-974c-279a6cb5e36a"},"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":"7bcaaa63-20c1-4f87-a288-31ea539c5216"},"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":"e63d1d08-cd85-452f-bfed-13f123219d3e"},"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":"8ad33382-c677-4f95-a8a7-8167bda01b48"},"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":"750db6ff-437b-468b-a46c-6eca28769f78"},"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":"a7fcb7df-8532-4b22-ab85-bd8a30b94192"},"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":"33354f59-7286-4539-9de9-22f463f93ec8"},"ext":null,"units_info":null},"ext":{},"machine":{"internal":{"uuid":{"value":"a07f451a-e99c-42d6-910a-2ce5e80687d8"},"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":"930ebe75-5f6b-4bcd-b8b0-06508cdebb1b"},"ext":null,"units_info":null},"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"PSSFixed"}},"prime_mover":{"P_ref":1.0,"internal":{"uuid":{"value":"e96daa56-533a-4343-b855-14f2bb021c16"},"ext":null,"units_info":null},"efficiency":1.0,"n_states":0,"ext":{},"states":[],"__metadata__":{"module":"PowerSystems","type":"TGFixed"}}},{"__metadata__":{"module":"PowerSystems","type":"LoadZone"},"name":"1","internal":{"uuid":{"value":"5926fd0c-fd08-4ac4-a094-38b86e651fb9"},"ext":null,"units_info":null},"peak_active_power":1.8,"peak_reactive_power":0.5,"time_series_container":[]},{"base_power":100.0,"prime_mover_type":"OT","rating":3.333526661060325,"services":[],"bus":{"value":"e63d1d08-cd85-452f-bfed-13f123219d3e"},"available":true,"time_series_container":[],"name":"generator-102-1","status":true,"active_power":0.7,"dynamic_injector":{"value":"33354f59-7286-4539-9de9-22f463f93ec8"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"e3f37c02-8c0f-46c0-99b1-d11f60923bea"},"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":"3f6c212b-beaa-4294-974c-279a6cb5e36a"},"available":true,"time_series_container":[],"name":"generator-103-1","status":true,"active_power":0.8,"dynamic_injector":{"value":"1170a705-df87-41eb-87f8-4d35b7cb0144"},"__metadata__":{"module":"PowerSystems","type":"ThermalStandard"},"fuel":"OTHER","internal":{"uuid":{"value":"8b7a62a8-70ae-4968-a78e-1326f0c1d0d8"},"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}],"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/previews/PR372/tutorials/tutorial_240bus/index.html b/previews/PR372/tutorials/tutorial_240bus/index.html index 9a33910bd..5c6ec7ab0 100644 --- a/previews/PR372/tutorials/tutorial_240bus/index.html +++ b/previews/PR372/tutorials/tutorial_240bus/index.html @@ -44,12 +44,12 @@ ┌──────────────────┬───────┐ │ Type │ Count │ ├──────────────────┼───────┤ +│ DynamicGenerator │ 1 │ │ DynamicGenerator │ 3 │ -│ DynamicGenerator │ 6 │ │ DynamicGenerator │ 22 │ -│ DynamicGenerator │ 1 │ -│ DynamicGenerator │ 36 │ │ DynamicGenerator │ 41 │ +│ DynamicGenerator │ 36 │ +│ DynamicGenerator │ 6 │ │ DynamicInverter │ 37 │ └──────────────────┴───────┘
      julia> for l in get_components(PSY.StandardLoad, sys) transform_load_to_constant_impedance(l) @@ -418,25 +418,25 @@ │ ─────────────────────────────────────────────────────────────────────────────── │ Time Allocations │ ─────────────── ─────────────── -│ Total measured: 34.7s 6.29GiB +│ Total measured: 34.2s 6.31GiB │ │ Section ncalls time %tot alloc %tot │ ─────────────────────────────────────────────────────────────────────────────── -│ Build Simulation 1 34.7s 100.0% 6.29GiB 100.0% -│ Build Simulation Inputs 1 3.51s 10.1% 195MiB 3.0% -│ Wrap Branches 1 11.6μs 0.0% 240B 0.0% -│ Wrap Dynamic Injectors 1 2.50s 7.2% 136MiB 2.1% -│ Wrap Static Injectors 1 248ms 0.7% 8.18MiB 0.1% -│ Build initial parameters 1 41.8ms 0.1% 2.32MiB 0.0% -│ Pre-initialization 1 7.49s 21.6% 427MiB 6.6% -│ Power Flow solution 1 1.09s 3.1% 44.2MiB 0.7% -│ Initialize Static Injectors 1 781ns 0.0% 0.00B 0.0% -│ Initialize Dynamic Injectors 1 5.02s 14.5% 315MiB 4.9% -│ Calculate Jacobian 1 16.9s 48.6% 5.15GiB 81.8% -│ Make Model Function 1 23.0μs 0.0% 32.0KiB 0.0% -│ Initial Condition NLsolve refine... 1 6.47s 18.6% 537MiB 8.3% -│ Build Perturbations 1 216μs 0.0% 75.9KiB 0.0% -│ Make DiffEq Problem 1 361ms 1.0% 11.5MiB 0.2% +│ Build Simulation 1 34.2s 100.0% 6.31GiB 100.0% +│ Build Simulation Inputs 1 3.53s 10.3% 191MiB 3.0% +│ Wrap Branches 1 12.7μs 0.0% 240B 0.0% +│ Wrap Dynamic Injectors 1 2.48s 7.2% 136MiB 2.1% +│ Wrap Static Injectors 1 242ms 0.7% 6.20MiB 0.1% +│ Build initial parameters 1 38.8ms 0.1% 2.15MiB 0.0% +│ Pre-initialization 1 7.53s 22.0% 446MiB 6.9% +│ Power Flow solution 1 1.06s 3.1% 44.1MiB 0.7% +│ Initialize Static Injectors 1 1.13μs 0.0% 0.00B 0.0% +│ Initialize Dynamic Injectors 1 5.05s 14.8% 334MiB 5.2% +│ Calculate Jacobian 1 16.3s 47.8% 5.15GiB 81.7% +│ Make Model Function 1 26.7μs 0.0% 32.0KiB 0.0% +│ Initial Condition NLsolve refine... 1 6.45s 18.9% 536MiB 8.3% +│ Build Perturbations 1 162μs 0.0% 75.9KiB 0.0% +│ Make DiffEq Problem 1 344ms 1.0% 9.93MiB 0.2% │ ─────────────────────────────────────────────────────────────────────────────── └ Simulation Summary @@ -459,7 +459,7 @@ │ Time Span │ (0.0, 20.0) │ │ Total Time Steps │ 2015 │ │ Number of States │ 2164 │ -│ Total solve time │ 19.286260305 │ +│ Total solve time │ 19.657756164 │ └────────────────────────────┴──────────────┘
      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
      @@ -553,20 +553,20 @@
       │  Section                               ncalls     time    %tot     alloc    %tot
       │  ───────────────────────────────────────────────────────────────────────────────
       │  Build Simulation                           1    10.1s  100.0%   0.98GiB  100.0%
      -│    Build Simulation Inputs                  1   41.4ms    0.4%   16.0MiB    1.6%
      -│      Wrap Branches                          1   6.21μs    0.0%      240B    0.0%
      -│      Wrap Dynamic Injectors                 1   7.12ms    0.1%   6.16MiB    0.6%
      -│      Wrap Static Injectors                  1    241μs    0.0%    168KiB    0.0%
      -│      Build initial parameters               1   1.17ms    0.0%   1.56MiB    0.2%
      -│    Pre-initialization                       1   72.8ms    0.7%   10.3MiB    1.0%
      -│      Power Flow solution                    1   11.0ms    0.1%   5.76MiB    0.6%
      -│      Initialize Static Injectors            1    601ns    0.0%     0.00B    0.0%
      -│      Initialize Dynamic Injectors           1   3.92ms    0.0%   2.83MiB    0.3%
      -│    Calculate Jacobian                       1    8.71s   85.9%    722MiB   71.9%
      -│    Make Model Function                      1   6.14ms    0.1%    154KiB    0.0%
      -│    Initial Condition NLsolve refine...      1    922ms    9.1%    238MiB   23.7%
      -│    Build Perturbations                      1   12.5ms    0.1%    231KiB    0.0%
      -│    Make DiffEq Problem                      1    380ms    3.7%   17.8MiB    1.8%
      +│    Build Simulation Inputs                  1   39.5ms    0.4%   15.7MiB    1.6%
      +│      Wrap Branches                          1   5.47μs    0.0%      240B    0.0%
      +│      Wrap Dynamic Injectors                 1   7.06ms    0.1%   6.16MiB    0.6%
      +│      Wrap Static Injectors                  1    511μs    0.0%    312KiB    0.0%
      +│      Build initial parameters               1    906μs    0.0%   1.39MiB    0.1%
      +│    Pre-initialization                       1   76.3ms    0.8%   10.3MiB    1.0%
      +│      Power Flow solution                    1   13.0ms    0.1%   5.76MiB    0.6%
      +│      Initialize Static Injectors            1   1.15μs    0.0%     0.00B    0.0%
      +│      Initialize Dynamic Injectors           1   4.54ms    0.0%   2.83MiB    0.3%
      +│    Calculate Jacobian                       1    8.68s   85.6%    722MiB   71.9%
      +│    Make Model Function                      1   7.54ms    0.1%    154KiB    0.0%
      +│    Initial Condition NLsolve refine...      1    940ms    9.3%    238MiB   23.7%
      +│    Build Perturbations                      1   13.1ms    0.1%    231KiB    0.0%
      +│    Make DiffEq Problem                      1    383ms    3.8%   17.8MiB    1.8%
       │  ───────────────────────────────────────────────────────────────────────────────
       └ 
       Simulation Summary
      @@ -596,5 +596,5 @@
       │ Time Span                  │ (0.0, 20.0)  │
       │ Total Time Steps           │ 2002         │
       │ Number of States           │ 2164         │
      -│ Total solve time           │ 35.694807095 │
      -└────────────────────────────┴──────────────┘

      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

      +│ Total solve time │ 36.302718276 │ +└────────────────────────────┴──────────────┘

      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

      diff --git a/previews/PR372/tutorials/tutorial_activeload/index.html b/previews/PR372/tutorials/tutorial_activeload/index.html index 20a4eceab..01d6312bd 100644 --- a/previews/PR372/tutorials/tutorial_activeload/index.html +++ b/previews/PR372/tutorials/tutorial_activeload/index.html @@ -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/previews/PR372/tutorials/tutorial_continuation_pf/index.html b/previews/PR372/tutorials/tutorial_continuation_pf/index.html index 65200fa26..6f86db284 100644 --- a/previews/PR372/tutorials/tutorial_continuation_pf/index.html +++ b/previews/PR372/tutorials/tutorial_continuation_pf/index.html @@ -167,4 +167,4 @@ 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); - # 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.

      + # 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/previews/PR372/tutorials/tutorial_dynamic_data/index.html b/previews/PR372/tutorials/tutorial_dynamic_data/index.html index 5c2a2903b..74a4d4dc0 100644 --- a/previews/PR372/tutorials/tutorial_dynamic_data/index.html +++ b/previews/PR372/tutorials/tutorial_dynamic_data/index.html @@ -270,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/previews/PR372/tutorials/tutorial_dynamic_lines/index.html b/previews/PR372/tutorials/tutorial_dynamic_lines/index.html index ae350f722..33007bbde 100644 --- a/previews/PR372/tutorials/tutorial_dynamic_lines/index.html +++ b/previews/PR372/tutorials/tutorial_dynamic_lines/index.html @@ -168,7 +168,7 @@ │ Time Span │ (0.0, 30.0) │ │ Total Time Steps │ 1607 │ │ Number of States │ 33 │ -│ Total solve time │ 2.048064861 │ +│ Total solve time │ 2.090468267 │ └────────────────────────────┴─────────────┘
      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) @@ -290,8 +290,8 @@ │ Time Span │ (0.0, 30.0) │ │ Total Time Steps │ 1721 │ │ Number of States │ 35 │ -│ Total solve time │ 1.933767261 │ +│ Total solve time │ 2.04707964 │ └────────────────────────────┴─────────────┘
      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/previews/PR372/tutorials/tutorial_inverter_modeling/index.html b/previews/PR372/tutorials/tutorial_inverter_modeling/index.html index 634924c3a..e3a570012 100644 --- a/previews/PR372/tutorials/tutorial_inverter_modeling/index.html +++ b/previews/PR372/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.88048089  │
      +│ Total solve time           │ 1.790294411 │
       └────────────────────────────┴─────────────┘
      julia> p = plot();
      julia> for b in get_components(ACBus, sys) voltage_series = get_voltage_magnitude_series(result, get_number(b)) plot!( @@ -283,8 +283,8 @@ ┌──────────────────┬───────┐ │ Type │ Count │ ├──────────────────┼───────┤ -│ DynamicGenerator │ 1 │ │ DynamicGenerator │ 4 │ +│ DynamicGenerator │ 1 │ └──────────────────┴───────┘
      julia> thermal_gen = get_component(ThermalStandard, sys, "generator-6-1")generator-6-1 (ThermalStandard): name: generator-6-1 available: true @@ -404,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
      @@ -620,4 +620,4 @@
       
       Closest candidates are:
         get_state_series(!Matched::SimulationResults, ::Tuple{String, Symbol}; dt)
      -   @ PowerSimulationsDynamics ~/work/PowerSimulationsDynamics.jl/PowerSimulationsDynamics.jl/src/base/simulation_results.jl:310
      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:310
      julia> plot!(p2, state_series; xlabel = "Time", ylabel = "Speed [pu]", label = "Battery - ω");ERROR: UndefVarError: `state_series` not defined

      plot

      diff --git a/previews/PR372/tutorials/tutorial_omib/index.html b/previews/PR372/tutorials/tutorial_omib/index.html index a54f42aca..a21755eb6 100644 --- a/previews/PR372/tutorials/tutorial_omib/index.html +++ b/previews/PR372/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.383161256 │ +│ Total solve time │ 1.374902856 │ └────────────────────────────┴─────────────┘

      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/previews/PR372/tutorials_page/index.html b/previews/PR372/tutorials_page/index.html index 941e775c4..bc92c93a4 100644 --- a/previews/PR372/tutorials_page/index.html +++ b/previews/PR372/tutorials_page/index.html @@ -1,2 +1,2 @@ -SIIP-Examples · PowerSimulationsDynamics.jl
      +SIIP-Examples · PowerSimulationsDynamics.jl