Running Simulations
Now that we have everything set up, we can run our simulations! This is fairly simple with the execute_sims!
method. The stuff about saving to file and chunksize
will be explained on the next page
PowerSystemsExperiments.execute_sims!
— Functionexecute_sims!(
gss::GridSearchSys,
change::PSID.Perturbation;
tspan::Tuple{Float64, Float64}=(0.48, 0.55),
tstops::Vector{Float64}=[0.5]
dtmax=0.0005,
run_transient::Bool=true,
log_path::String="sims",
ida_opts::Dict{Symbol, Any} = Dict(:linear_solver=>:Dense, :max_convergence_failures=>5),
)
run simulations on all of the systems in the gridsearch and store the results in a DataFrame. Fully parallelized.
Args
gss::GridSearchSys
: the systemschange::Perturbation
: perturbation to apply to the systemtspan::Tuple{Float64, Float64}
: time interval (in seconds) to simulate.tstops::Vector{Float64}
:tstops
argument for DifferentialEquations.jl solver - places to force a solver step.dtmax::Float64
: max timestep for solver (make sure λh is in the feasible region for the solver)run_transient::Bool
: whether or not to run the transient simulations.log_path
: folder where outputs will be saved (when chunksize is reached).ida_opts
: options for IDA integrator. Defaults are usually OK.
Whenever the number of rows in gss.df
reaches gss.chunksize
, results will be saved to file then deleted from gss.df in order to limit total memory usage.
If gss.chunksize
is finite, the final dataframe will be saved. This way all results will be saved, even the last chunk or if chunksize
was not reached.
To not save anything to file and keep the results in gss.df, make sure to set_chunksize(gss, Inf)
.
For our example, let's run short transient simulations with a BranchTrip:
execute_sims!(
gss,
BranchTrip(0.5, ACBranch, "Bus 5-Bus 4-i_1"),
tspan=(0.49, 0.55),
dtmax=0.05,
run_transient=true,
log_path="example_sims"
)
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
[ Info: PowerFlow solve converged, the results have been stored in the system
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
[IDAS ERROR] IDASolve
At t = 0.500199 and h = 4.48379e-12, the corrector convergence failed repeatedly or with |h| = hmin.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
finished solve 1/32 in 4.46s (3.0%) (runtime: 6.0s)
[IDAS ERROR] IDASolve
At t = 0.500058 and h = 7.89169e-13, the corrector convergence failed repeatedly or with |h| = hmin.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
[IDAS ERROR] IDACalcIC
Newton/Linesearch algorithm failed to converge.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
finished solve 4/32 in 5.35s (12.0%) (runtime: 6.0s)
finished solve 7/32 in 5.38s (22.0%) (runtime: 6.0s)
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
[IDAS ERROR] IDASolve
At t = 0.500063 and h = 5.15902e-10, the corrector convergence failed repeatedly or with |h| = hmin.
[IDAS ERROR] IDASolve
At t = 0.500209 and h = 5.36073e-13, the corrector convergence failed repeatedly or with |h| = hmin.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
finished solve 2/32 in 4.46s (6.0%) (runtime: 10.0s)
finished solve 3/32 in 5.31s (9.0%) (runtime: 10.0s)
finished solve 5/32 in 5.36s (16.0%) (runtime: 10.0s)
finished solve 10/32 in 8.93s (31.0%) (runtime: 10.0s)
finished solve 12/32 in 8.91s (38.0%) (runtime: 10.0s)
finished solve 9/32 in 8.75s (28.0%) (runtime: 10.0s)
finished solve 11/32 in 8.91s (34.0%) (runtime: 10.0s)
finished solve 8/32 in 5.38s (25.0%) (runtime: 10.0s)
finished solve 6/32 in 4.74s (19.0%) (runtime: 10.0s)
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
finished solve 13/32 in 9.17s (41.0%) (runtime: 10.0s)
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
[IDAS ERROR] IDASolve
At t = 0.500133 and h = 5.83397e-12, the corrector convergence failed repeatedly or with |h| = hmin.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
finished solve 14/32 in 9.18s (44.0%) (runtime: 10.0s)┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
[ Info: PowerFlow solve converged, the results have been stored in the system
[ Info: PowerFlow solve converged, the results have been stored in the system
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
[IDAS ERROR] IDACalcIC
Newton/Linesearch algorithm failed to converge.
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
[ Info: Unit System changed to UnitSystem.DEVICE_BASE = 1
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
finished solve 15/32 in 9.23s (47.0%) (runtime: 10.0s)┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
finished solve 16/32 in 9.24s (50.0%) (runtime: 10.0s)
[IDAS ERROR] IDACalcIC
Newton/Linesearch algorithm failed to converge.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
finished solve 19/32 in 9.22s (59.0%) (runtime: 10.0s)
finished solve 17/32 in 9.21s (53.0%) (runtime: 10.0s)
finished solve 18/32 in 9.22s (56.0%) (runtime: 10.0s)
[IDAS ERROR] IDASolve
At t = 0.500053 and h = 5.93809e-13, the corrector convergence failed repeatedly or with |h| = hmin.
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
[IDAS ERROR] IDASolve
At t = 0.500133 and h = 1.24738e-12, the corrector convergence failed repeatedly or with |h| = hmin.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
finished solve 20/32 in 9.24s (62.0%) (runtime: 10.0s)┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
finished solve 22/32 in 9.23s (69.0%) (runtime: 10.0s)
finished solve 21/32 in 9.22s (66.0%) (runtime: 10.0s)
finished solve 23/32 in 9.23s (72.0%) (runtime: 10.0s)
[IDAS ERROR] IDASolve
At t = 0.500211 and h = 8.78453e-11, the corrector convergence failed repeatedly or with |h| = hmin.
[IDAS ERROR] IDASolve
At t = 0.500069 and h = 7.69865e-14, the corrector convergence failed repeatedly or with |h| = hmin.
[IDAS ERROR] IDASolve
At t = 0.50005 and h = 3.80445e-11, the corrector convergence failed repeatedly or with |h| = hmin.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
finished solve 25/32 in 9.23s (78.0%) (runtime: 10.0s)
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
finished solve 27/32 in 9.23s (84.0%) (runtime: 10.0s)
[IDAS ERROR] IDASolve
At t = 0.500224 and h = 1.22417e-10, the corrector convergence failed repeatedly or with |h| = hmin.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
[IDAS ERROR] IDASolve
At t = 0.500138 and h = 1.3935e-12, the corrector convergence failed repeatedly or with |h| = hmin.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
finished solve 26/32 in 9.22s (81.0%) (runtime: 10.0s)
finished solve 28/32 in 9.26s (88.0%) (runtime: 10.0s)
finished solve 24/32 in 9.25s (75.0%) (runtime: 10.0s)
finished solve 29/32 in 9.27s (91.0%) (runtime: 10.0s)
finished solve 30/32 in 9.28s (94.0%) (runtime: 10.0s)
┌ Warning: No Infinite Bus found. Confirm stability directly checking eigenvalues.
│ If all eigenvalues are on the left-half plane and only one eigenvalue is zero, the system is small signal stable.
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/small_signal.jl:111
finished solve 31/32 in 0.08s (97.0%) (runtime: 10.0s)
[IDAS ERROR] IDASolve
At t = 0.500128 and h = 2.31141e-12, the corrector convergence failed repeatedly or with |h| = hmin.
┌ Error: The simulation failed with return code ConvergenceFailure
└ @ PowerSimulationsDynamics ~/.julia/packages/PowerSimulationsDynamics/wch0a/src/base/simulation.jl:556
finished solve 32/32 in 0.07s (100.0%) (runtime: 10.0s)
Now we can inspect the results!
gss
GridSearchSys with 32 systems
base: System (Buses: 9)
header: AbstractString["injector at {Bus 3}", "injector at {Bus1}", "injector at {Bus 2}", "Load Scale", "ZIPE Params"]
sysdict: Dict{Vector{Any}, Function} with 32 entries
results_header: ["error", "sim", "sm", "dt", "Eigenvalues", "Bus 3 Injector Current", "Bus 1 Injector Current", "Bus 2 Injector Current"]
results_getters: Function[PowerSystemsExperiments.var"#19#21"{typeof(PowerSystemsExperiments.get_error)}(PowerSystemsExperiments.get_error), PowerSystemsExperiments.var"#19#21"{typeof(PowerSystemsExperiments.get_sim)}(PowerSystemsExperiments.get_sim), PowerSystemsExperiments.var"#19#21"{typeof(PowerSystemsExperiments.get_sm)}(PowerSystemsExperiments.get_sm), PowerSystemsExperiments.var"#19#21"{typeof(PowerSystemsExperiments.get_dt)}(PowerSystemsExperiments.get_dt), PowerSystemsExperiments.var"#19#21"{typeof(PowerSystemsExperiments.get_eigenvalues)}(PowerSystemsExperiments.get_eigenvalues), PowerSystemsExperiments.get_injector_currents]
df: 32x13 DataFrame
chunksize: Inf
hfile: 8 function declarations
julia> gss.df
32×13 DataFrame Row │ injector at {Bus 3} injector at {Bus1} injector at {Bus 2} Load Scal ⋯ │ Any Any Any Any ⋯ ─────┼────────────────────────────────────────────────────────────────────────── 1 │ SM SM SM 1.0 ⋯ 2 │ SM SM SM 0.4 3 │ GFM GFM GFM 1.0 4 │ SM GFM SM 1.0 5 │ SM GFM SM 0.4 ⋯ 6 │ SM SM GFM 0.4 7 │ GFM GFM SM 0.4 8 │ SM GFM GFM 1.0 ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋱ 26 │ SM SM GFM 0.4 ⋯ 27 │ SM GFM GFM 0.4 28 │ SM GFM GFM 0.4 29 │ GFM GFM GFM 1.0 30 │ GFM SM GFM 1.0 ⋯ 31 │ GFM GFM SM 1.0 32 │ SM SM SM 1.0 10 columns and 17 rows omitted
Notes
- You must only use one perturbation if you want to save the results to file. For some reason, passing a
Vector{Perturbation}
changes something about the typing and breaks serialization. - if your perturbation does not occur at $t=0.5$, make sure to pass the
tstops
argument and include at least the time of your perturbation. This significantly helps numerical stability. execute_sims!
is fully parallelized, so use as many cores as you can! sometimes the REPL is limited to one thread, so I've found more success running sims from the command line and passing an explicit thread count withjulia -t $(nproc) my_experiments.jl
.- be sure to mind your memory usage - these systems are big and therefore solving them can be costly.
- use
tmux
so you don't have to sit there all day remoted into the server.
- don't spend a ton of time trying to tune
ida_opts
. It doesn't help much. - mind the ratio of the time span to
dtmax
. The data accumulates quickly, and RAM is limited. If you really need very smalldtmax
, decrease the chunk size.