---
title: PowerSimulationsDynamics.jl Overview
url: https://www.emergentmind.com/topics/powersimulationsdynamics-jl
type: topic
---

# PowerSimulationsDynamics.jl Overview

Searching arXiv for papers on PowerSimulationsDynamics.jl and closely related Julia power-system dynamics tools.
PowerSimulationsDynamics.jl (PSID.jl) is an open-source, Julia-based simulation toolbox for the dynamic analysis of modern power systems, with a stated focus on systems featuring high penetrations of inverter-based resources (IBRs) [2308.02921]. It is designed to study dynamic response in settings where conventional electromechanical models must coexist with fast control and electromagnetic dynamics introduced by converter-interfaced devices. The package combines a rich library of synchronous generator, inverter, and load models with differential-algebraic equation (DAE) formulations, automatic linearization, eigenvalue analysis, and flexible solver interfaces; case studies and validation exercises report close agreement with commercial and open-source simulation tools [2308.02921]. Subsequent use in inverter-dominated grid studies has employed PSID to compare transmission line model fidelity, inverter control gains, and operating conditions on the IEEE WSCC 9-bus system, indicating that line dynamics are generally important for correctly assessing small-signal stability in networks with large penetrations of grid-following converters [2311.12152].

## 1. Origins, scope, and research setting

PowerSimulationsDynamics.jl was presented as a response to the modeling requirements of modern power systems with high penetrations of IBRs [2308.02921]. The motivating premise is that conventional renewable energy sources interfaced via power electronics introduce fast control and electromagnetic dynamics that traditional simulation tools often fail to capture efficiently or robustly. Within that framing, PSID.jl is positioned as a toolbox for dynamic response studies rather than only steady-state network analysis.

The package is implemented in Julia and is described as open-source, modular, and extensible at both the modeling and integration layers [2308.02921]. The emphasis on Julia is tied in the source material to multiple dispatch, sparse and automatic differentiation support, and integration with the wider Julia scientific computing ecosystem. A documented design objective is the ability to study both quasi-static phasor and electromagnetic dq models in a common environment, including cases where both approaches are selectively mixed in the same simulation [2308.02921].

A useful contextual point is that PSID.jl belongs to a broader Julia-based power-systems ecosystem. The source material explicitly contrasts it with LITS.jl, another open-source Julia package for low-inertia transient simulation and small-signal analysis [2003.02957]. It is also described as complementary to SyntheticPowerGrids.jl, which generates synthetic grid cases that can be exported upstream for time-domain simulation or stability analysis using PSID.jl [2303.06116]. This suggests a division of labor in which PSID.jl serves as a general dynamic simulation and modal-analysis engine once a system case has been assembled.

## 2. Modeling framework and mathematical formulation

PSID.jl represents the power system as a DAE system containing device states, network states, and parameters [2308.02921]. The general formulation is given as
\[
\frac{d\vec{x}}{dt} = F(\vec{x}, \vec{y}, \vec{\eta}), \quad \vec{x}(t_0) = \vec{x}^0
\]
\[
\frac{d\vec{y}}{dt} = G(\vec{x}, \vec{y}, \vec{\psi}), \quad \vec{y}(t_0) = \vec{y}^0
\]
where \(\vec{x}\) denotes device states, \(\vec{y}\) network states, and \(\vec{\eta}, \vec{\psi}\) parameters [2308.02921]. In the application study on inverter-dominated grids, the same modeling logic is summarized as
\[
\begin{bmatrix}
\dot{x}\\
0
\end{bmatrix}
=
\begin{bmatrix}
f(x, y, u)\\
g(x, y, u)
\end{bmatrix},
\]
with \(x\) as dynamic states, \(y\) as algebraic states, and \(u\) as inputs [2311.12152].

Two DAE realizations are explicitly supported. The first is a residual or semi-explicit formulation, written in the source as
\[
\frac{d\vec{x}_d}{dt} = F_d(\cdot), \quad 0 = F_a(\cdot), \quad
\frac{d\vec{y}_d}{dt} = G_d(\cdot), \quad 0 = G_a(\cdot)
\]
for index-1 DAE solvers [2308.02921]. The second is a mass-matrix formulation,
\[
M \frac{dz}{dt} = h(z),
\]
or, in device-network partitioned form,
\[
M_x \frac{d\vec{x}}{dt} = F(\vec{x}, \vec{y}, \vec{\eta}), \qquad
M_y \frac{d\vec{y}}{dt} = G(\vec{x}, \vec{y}, \vec{\psi}),
\]
with the diagonal entries of \(M_x\) and \(M_y\) selectively zeroed to transform differential variables into algebraic ones [2308.02921]. This selective switching is presented as important for problems arising from mechanical systems and for changing algebraic or dynamic status without restructuring the overall model.

Network equations are written in a dq reference frame, and the package uses a lumped parameter \(\pi\)-model for transmission lines, allowing dynamic or algebraic modeling by branch as needed [2308.02921]. The dynamic \(\pi\)-model is represented through differential equations for branch currents and bus voltages in dq coordinates, while the toolbox also supports algebraic line representations. For loads, the source material gives dq-frame current calculations for ZIP models and states that static ZIP, exponential, and dynamic loads such as induction machines are available [2308.02921].

This mathematical structure is significant because it places device dynamics, network dynamics, and control laws in a single system representation suitable for implicit stiff integration, automatic Jacobian construction, and equilibrium-based linear analysis. A plausible implication is that PSID.jl was designed to avoid the separation between “phasor-level” and “electromagnetic-level” studies that often fragments toolchains in power-system dynamics.

## 3. Component libraries and model composition

PSID.jl features a rich library of synchronous generator, inverter, and load models [2308.02921]. For synchronous generators, the source material cites standard machine models such as GENROU and Sauer-Pai, with modular sub-components for machine, excitation, governor, shaft, and power system stabilizer [2308.02921]. This component-oriented organization aligns with a device being assembled from reusable submodels rather than treated as a monolithic block.

For inverter-based resources, the package supports both grid-following and grid-forming architectures [2308.02921]. The documented component decomposition includes filter, converter, inner and outer control loops, frequency estimator such as a PLL, and primary energy source. Support for advanced controls such as Virtual Synchronous Machine (VSM) and droop controllers is explicitly noted [2308.02921]. In the small-signal stability study on the IEEE WSCC 9-bus system, PSID.jl is used with synchronous machines, grid-forming inverters, and grid-following inverters within the same network model [2311.12152].

The source material stresses extensibility through user-defined models. End-users can prototype and integrate User Defined Models by extending the meta-models, and adding new device, control, branch, or load models is described as straightforward through Julia’s multiple dispatch and by implementing an appropriate `device!` method for the relevant type [2308.02921]. This is presented as a core design property rather than an auxiliary feature.

The package’s network representation is also treated as compositional. Transmission lines can be modeled algebraically or dynamically by branch, and line/capacitance dynamics can be selectively included [2308.02921]. In the inverter-dominated grid study, PSID enables switching among an algebraic \(\pi\) model (`statpi`), a dynamic \(\pi\) model (`dynpi`), and a Multi-Segment Single-Branch \(\pi\) model (`MSSB`) [2311.12152]. That study further states that physical parameter values for these line models are derived through vector fitting and frequency-dependent modeling based on real transmission line data.

## 4. Numerical methods, initialization, and analysis capabilities

A central feature of PSID.jl is the decoupled solver interface via DifferentialEquations.jl, which permits the use of adaptive stiff and implicit solvers including BDF, Rosenbrock, Radau, and Rodas methods [2308.02921]. The source material emphasizes that IBRs and transmission circuits create stiff and multi-rate systems, so solver choice, integration step-size, and error control are integral parts of the workflow rather than implementation details. Automatic differentiation via ForwardDiff.jl is used for efficient Jacobian evaluation, especially for large, stiff nonlinear DAE systems and for Newton-type methods [2308.02921].

Initialization is treated as a first-class problem. PSID.jl includes device- and system-level initialization routines that find consistent steady-state operating points for arbitrary combinations of models [2308.02921]. This capability is necessary both for transient simulation and for subsequent linearization. The same source describes flexible event and perturbation logic using solver callbacks, with examples such as faults, line trips, and step changes [2308.02921].

Small-signal analysis is built in. After solving the nonlinear DAE to steady state, PSID.jl can linearize the model at the equilibrium and perform eigenvalue analysis using reduced Jacobians that eliminate algebraic variables [2308.02921]. In the 9-bus inverter-dominated study, the analysis workflow is described more explicitly: for each parameter combination, line model, and scenario, PSID solves for the steady state \((\dot{x}=0)\), linearizes the DAE system around the computed equilibrium, forms the Jacobian \(J(x^\star, y^\star)\), and computes eigenvalues of the reduced Jacobian [2311.12152]. Stability is then inferred from whether eigenvalues lie in the right-half plane or left-half plane, and the real part of the most positive eigenvalue is recorded as the least stable mode [2311.12152].

The package also supports participation analysis. In the same study, boxplots and participation factor analyses are used to identify the parameters and model choices most critical to stability [2311.12152]. Taken together, these features indicate that PSID.jl is not confined to time-domain simulation; it also supports equilibrium computation, modal analysis, and systematic parameter exploration in a unified environment.

## 5. Validation and reported case studies

The principal validation paper reports several benchmark studies [2308.02921]. In a large-scale quasi-static phasor case based on a roughly 240-bus WECC system, the model contained 2420 dynamic states and 506 algebraic states, with comparisons against PSS®E across 329 line trips and 195 generator trips, amounting to 311,780 individual trace comparisons [2308.02921]. The reported maximum root-mean-square errors were \(2.6 \times 10^{-5}\) pu for voltage, \(0.45^\circ\) for angle, and \(1.2 \times 10^{-5}\) pu for speed [2308.02921].

A second validation study compared balanced dq-EMT simulation against PSCAD on a system with synchronous machines and IBRs, including droop and grid-following controls and dynamic line and load models [2308.02921]. The reported result was near-identical voltage and power trajectories, with a maximum voltage RMSE of \(3.0 \times 10^{-6}\) pu, while the source states that PSID.jl simulated far faster, in seconds rather than many hours for PSCAD at similar fidelity [2308.02921].

For small-signal analysis, PSID.jl’s linearization and eigenvalue calculations were validated against ANDES and commercial packages such as DSATools SSAT, with negligible differences and a typical RMSE in eigenvalues of \(0.29\) [2308.02921]. The same paper also reports comparisons among multiple stiff and implicit integrators for QSP and EMT systems, noting that Rosenbrock methods excelled for stiff EMT problems [2308.02921].

The application paper on inverter-dominated grids supplies an example of PSID.jl as a research platform rather than solely a validation target [2311.12152]. It uses the IEEE WSCC 9-bus test system, modified to include synchronous machines, grid-forming inverters, and grid-following inverters, under operating scenarios where inverters supply a high (\(70\%\)) or very high (\(90\%\)) share of total active power [2311.12152]. For grid-forming Virtual Synchronous Machine controls, the study varies parameters including the inertia time constant \(T_a \in [0.5, 2]\,\mathrm{s}\), damping coefficient \(k_d \in [100, 400]\) p.u., reactive power droop gain \(k_q \in [0.05, 0.2]\) p.u., and inner-loop PI gains within listed ranges; engineering constraints reduce the gain space to 7,000 possible combinations, from which 1,000 samples are randomly chosen for analysis [2311.12152].

## 6. Use in inverter-dominated and synthetic-grid research

In the 9-bus small-signal stability study, PSID.jl is used to assess how inverter control gains, transmission line model fidelity, and operating conditions affect system stability [2311.12152]. The reported findings are that line model fidelity significantly impacts small-signal stability predictions, especially under high grid-following inverter share, and that dynamic or multi-segment line models can reveal stabilization not shown by algebraic \(\pi\) models [2311.12152]. The study also reports that heavier loads and greater inverter penetration reduce robustness unless gains are carefully tuned, and that among the VSM outer-loop gains, sensitivity is greatest with reactive power droop gain \(k_q\) [2311.12152]. The paper’s abstract states the principal conclusion more narrowly: line dynamics are generally important for correctly assessing small-signal stability in networks with large penetrations of grid-following converters, and gain tuning in these networks should utilize high-fidelity line models [2311.12152].

This use case is important because it demonstrates PSID.jl as a platform for high-dimensional parametric analysis. The same study attributes feasibility to automated linearization, eigenanalysis, and batch processing across parameter sets, line models, and operating scenarios [2311.12152]. A plausible implication is that PSID.jl is particularly suited to studies in which modeling assumptions themselves are part of the experiment.

The package is also described as complementary to SyntheticPowerGrids.jl, a modular framework for generating synthetic power grids with realistic dynamical behavior [2303.06116]. That framework can generate and validate large sets of synthetic grids and can output models in compatible formats; the source explicitly states that it can be integrated upstream of PowerSimulationsDynamics.jl or PowerModels.jl so that diverse synthetic cases are automatically generated and then exported for time-domain simulation, stability analysis, or optimal control studies [2303.06116]. This suggests a broader methodological pipeline in which PSID.jl functions as the downstream dynamics and analysis engine for data-rich scenario generation.

A related comparison arises with LITS.jl, which is described as another open-source Julia package for transient simulation of low-inertia power systems with a strong emphasis on component-level model composition and rapid prototyping [2003.02957]. The comparison source states that PSID.jl also supports DAEs and model composition, but that design philosophies differ, with LITS.jl especially optimized for low-inertia-centric studies and granular control at the component level [2003.02957]. This suggests that PSID.jl occupies a general-purpose role for modern dynamic studies, whereas LITS.jl targets a more specialized prototyping niche.

## 7. Design characteristics, advantages, and interpretive cautions

Several design characteristics are repeatedly emphasized in the source material: openness and modularity, algorithm-model decoupling, an IBR-centric orientation, uniform dq network representation, performance and scalability in Julia, and integrated automatic-differentiation-based linearization and modal analysis [2308.02921]. The package is explicitly contrasted with commercial tools such as PSS®E, DSATools, and PSCAD on the grounds that PSID.jl is fully open-source, highly modular, and extensible at both the model and solver level, while also supporting user-defined models and fine control over inverter modeling detail [2308.02921].

The most specific advantages claimed in the validation paper concern flexibility and solver choice. Models and solver routines are described as decoupled, allowing experimentation with different DAE formulations, time discretizations, and solver approaches on the same system [2308.02921]. In practical terms, the package is said to support rapid scripting for customized scenarios, initialization, event handling, and automated analysis, with internal caches that pre-allocate and index state spaces efficiently for large systems, implicit solvers, and automatic differentiation [2308.02921].

At the same time, the application paper on inverter-dominated grids indicates an interpretive caution that is intrinsic to PSID.jl’s use: conclusions can depend materially on network model fidelity and operating scenario selection [2311.12152]. In that study, algebraic and dynamic line representations do not merely alter numerical detail; they can change the assessed small-signal stability boundary. This does not constitute a limitation unique to PSID.jl, but it does underscore that the package’s flexibility makes modeling choices experimentally consequential rather than incidental.

Taken together, the cited work presents PowerSimulationsDynamics.jl as a research-oriented power-system dynamics environment that combines DAE-based transient simulation, quasi-static phasor and dq-EMT modeling, automatic linearization, eigenanalysis, and extensible device composition in Julia [2308.02921]. Its documented use in inverter-dominated grid studies and its integration with adjacent Julia tools for synthetic-grid generation suggest a role as a general analysis platform for contemporary questions in low-inertia and converter-rich power systems [2311.12152], [2303.06116].

Source: https://www.emergentmind.com/topics/powersimulationsdynamics-jl