EasySimauto.jl: Julia Automation for PowerWorld
- EasySimauto.jl is a Julia package that serves as a lightweight bridge wrapping PowerWorld’s SimAuto interface for automated power flow simulations.
- It is integrated into a three-layer framework—data, computational, and visualization—to process time-series EV and building load data and retrieve simulation outputs.
- The package streamlines batch simulation of campus EV charging scenarios by updating loads, running power flows, and extracting metrics like bus voltages, line flows, and transformer loading.
Searching arXiv for the cited EasySimauto.jl work and any directly relevant mentions. EasySimauto.jl is a Julia package that, in the context of campus electric-vehicle impact analysis, wraps PowerWorld’s SimAuto interface and serves as the core “bridge” between Julia scripts and PowerWorld Simulator (Iranpour et al., 9 Sep 2025). In the reported framework, it turns PowerWorld from a point-and-click environment into a fully scriptable engine for automated, time-series assessment of electric vehicle charging impacts on a campus distribution grid. The package is embedded in a three-layer architecture—data, computational, and visualization—and is used to programmatically modify loads and other model elements, run power flow simulations, and extract outputs such as bus voltages, line flows, losses, transformer loading, and feeder utilization for scenario-based studies on the California State University, Northridge distribution network (Iranpour et al., 9 Sep 2025).
1. Definition and functional role
In this work, EasySimauto.jl is defined as a Julia package that wraps PowerWorld’s SimAuto interface, a COM or automation server provided by PowerWorld (Iranpour et al., 9 Sep 2025). Its role is intentionally thin and user-facing: it allows Julia code to open and close PowerWorld case files, programmatically modify loads, generators, and other model objects, run power flow simulations, and extract simulation outputs such as bus voltages, line flows, and losses.
The package is presented as the enabling technology for the paper’s automated workflow. On the PowerWorld side, EasySimauto.jl communicates with the SimAuto COM server. On the Julia side, scripts handle time-series EV and building load data, scenario definition such as a EV penetration case, automated looping over time steps and months, and post-processing and plotting. Conceptually, the paper states that the authors adopt the same idea as the Python package EasySimAuto, referenced as Thayer et al. 2020, but implement it in Julia and integrate it into a three-layer framework (Iranpour et al., 9 Sep 2025).
The operational assumptions are explicit or implied by the paper’s description. The PowerWorld case encodes the CSUN network, including buses, lines, transformers, and PV units. Each building and EV parking lot is represented as a bus with a load in PowerWorld. Julia holds the time-series as arrays or tables such as and . At each time step, EasySimauto.jl sends updated real and reactive power values for relevant buses into PowerWorld using SimAuto commands, then triggers a power flow.
2. Placement in the three-layer framework
The paper organizes the full system into a Data Layer, a Computational Layer, and a Visualization Layer, with EasySimauto.jl located in the Computational Layer (Iranpour et al., 9 Sep 2025). This placement is central: the package is not described as a stand-alone analytics environment, but as the automation layer that connects pre-processed data in Julia to simulation execution in PowerWorld.
| Layer | Main functions | Principal components |
|---|---|---|
| Data Layer | Import raw meter data, identify the peak-load day, construct bus time-series | Julia pre-processing |
| Computational Layer | Update bus loads, execute power flow, extract results | EasySimauto.jl + PowerWorld |
| Visualization Layer | Generate voltage traces, scenario comparisons, line-loading plots, heatmaps, histograms | Julia post-processing |
The end-to-end workflow begins in Julia with import of raw meter data: building loads with real and reactive power at 15-minute resolution over one year, and EV charging station data with 15-minute charging power and time over a year. For each month, the workflow identifies the peak-load day as the worst-case day and extracts the 96 time steps that define that 24-hour profile. It then constructs time-series for each bus by combining baseline building load with aggregated EV charging load at that bus.
EasySimauto.jl then mediates the computational stage. The PowerWorld case representing the CSUN distribution network is loaded, and for each month and each of the 96 time steps, the package is used to update bus loads, execute a power flow, and extract results including bus voltages, line power flows, losses, and transformer loading. The paper emphasizes that all of this is done without manual adjustment in PowerWorld; the entire run is scripted in Julia.
The results are then passed back to Julia for visualization. The visualization layer generates voltage traces over 24 hours for specific buses such as Bus 144, compares base and EV-augmented scenarios such as the EV case, plots line loading over 96 intervals such as the line 144–145 example, and builds heatmaps and histograms to identify critical nodes and times.
3. Time-series load modeling and injection into PowerWorld
The EV case study uses one year of 15-minute interval EV charging data from CSUN’s charging stations (Iranpour et al., 9 Sep 2025). For each station, the authors construct a daily profile of EV charging power over 96 time steps, and they also account for reactive power and power factor, adding when updating loads in PowerWorld.
For a bus corresponding to an EV parking lot, the total load at time is given by
where is a penetration factor. The paper states explicitly that for the 0 scenario, 1. These combined real and reactive power values for each bus and time step are the quantities transmitted into PowerWorld via EasySimauto.jl.
For a given month 2, the worst-case day is represented by time-series 3 and 4 for bus 5, with 6. On the Julia side, these values are stored as arrays. In each loop iteration, EasySimauto.jl issues a SimAuto load-change command for bus 7 with values 8 and 9. The paper does not provide raw code, but it describes a programming pattern in which Julia iterates over months and time steps, maps Julia time-series to PowerWorld bus loads, runs the power flow, and stores voltages and line flows.
This arrangement is significant because it couples high-resolution data with dynamic simulation in the paper’s sense of time-varying steady-state analysis. A plausible implication is that EasySimauto.jl is primarily a synchronization layer between measured time-series data structures in Julia and state updates in the PowerWorld network model, rather than a model-building package in its own right.
4. Simulation regime, outputs, and stress metrics
The study uses EasySimauto.jl mainly for automated time-series power flow simulation (Iranpour et al., 9 Sep 2025). At each time step, given bus loads, PV generation, and related quantities, the framework runs a Newton-Raphson or equivalent power flow inside PowerWorld. The paper clarifies that this is not a single large dynamic simulation; instead, it is a sequence of static power flows with updated loads and generations, which the framework treats as a time-series or quasi-dynamic analysis.
The metrics extracted after each solve include per-unit bus voltages, line loading, transformer loading, feeder utilization, and losses. The per-unit bus voltage is described as
0
which underlies the voltage plots reported in the paper. Line loading on a line 1 connecting buses 2 and 3 is represented as
4
Transformer stress is discussed conceptually through
5
with
6
The package makes it feasible to compute these quantities for 7 time steps and across multiple scenarios. The scenario logic is explicit: the framework supports a base case with only building loads or current EV levels, EV scenarios in which EV loads are multiplied by factors such as 8, and future extensions involving data-driven EV scenarios or synthetic scaling. The sequence of operations is fixed: construct 9 and 0, update loads, run power flow, store 1, 2, and transformer loading percentages, then post-process the results to locate peak line loading, minimum bus voltages, and months with the worst voltage swing.
The paper identifies months such as February, April, August, and November in an automatically selected worst-voltage-swing comparison. It also uses 24-hour voltage profiles and 96-step line-loading plots to isolate critical spatial and temporal behavior. The framework therefore supports the paper’s stated objectives of evaluating transformer loading, feeder utilization, and overall system stress, and of informing EV infrastructure deployment, load forecasting, and energy management strategies.
5. Automation, reproducibility, and practical constraints
Automation is the package’s principal operational contribution (Iranpour et al., 9 Sep 2025). The paper describes batch runs over 12 representative days, 96 time steps per day, and multiple scenarios. At each time step, EasySimauto.jl updates multiple loads simultaneously through SimAuto, without opening graphical interfaces or editing case files by hand. Simulation outputs such as bus voltages, line flows, and losses are then pulled back into Julia arrays on each iteration.
The paper states that this removes the need for manual data entry or multiple case files, thereby reducing simulation time and human error. It further states that Julia was selected as a high-performance numerical language suited to handling large time-series data and loops over thousands of power flows. Although no explicit timing results are reported, the framework is described as capable of executing thousands of power flow runs in a reproducible fashion.
Several practical constraints are also specified. The environment is Windows-only because PowerWorld Simulator and SimAuto are Windows-based COM components. A valid PowerWorld license including SimAuto is required. The reported study concerns a campus distribution model of moderate size, although the paper states that the approach should scale to larger systems subject to PowerWorld capabilities and machine resources. Users also need Julia proficiency for data processing and automation.
These constraints delimit the package’s scope. EasySimauto.jl is not described as a cross-platform power-system solver, nor as a replacement for PowerWorld; it is an automation layer that depends on a licensed PowerWorld installation and on the Windows COM ecosystem. This suggests that its main value lies in reproducible orchestration of high-volume studies rather than in numerical-method novelty at the solver core.
6. Modularity, transferability, and scope clarification
The framework built around EasySimauto.jl is described as modular and adaptable (Iranpour et al., 9 Sep 2025). The data layer is decoupled from the PowerWorld model, so the same scripts can be reused for another campus, feeder, or urban distribution model as long as the correspondence between buses, loads, and EV nodes is known. Parameterization is also explicit: EV penetration levels can be changed by varying 3, charging behavior can be altered by substituting different time-series for 4, and a different grid topology can be studied by loading another PowerWorld case file and remapping its buses.
The paper also outlines practical adaptation steps for other settings: build the target network model in PowerWorld, gather building and EV usage data or synthetic profiles, map meter identifiers to PowerWorld bus identifiers, and insert those inputs into the same Julia plus EasySimauto.jl pipeline. Because the computational layer is abstracted around the pattern “update loads, run flow, retrieve outputs,” the framework can also be extended to other stress metrics and to analyses such as sensitivity studies, limited contingency analysis, or comparative runs across many synthetic years.
A source of potential confusion is that the name “EasySimauto.jl” appears in two additional arXiv records only as a hypothetical construct, not as the PowerWorld-bridging package described here. In “Automated Code Optimization with E-Graphs,” the text explicitly states that EasySimauto.jl “does not appear in the thesis” and is treated as a hypothetical Julia package built on Metatheory.jl, e-graphs, and equality saturation (Cheli, 2021). In “Using a template engine as a computer algebra tool,” a package “like EasySimauto.jl” is discussed as a hypothetical system for automated generation of Julia ODE solver code from numerical-scheme templates (Gevorkyan et al., 2021). These usages concern speculative package design patterns in symbolic optimization and numerical code generation, not the actual Julia-to-PowerWorld automation layer introduced for EV charging impact assessment.
Within the EV-charging study itself, EasySimauto.jl is therefore best understood in a narrower and more concrete sense: a Julia wrapper around PowerWorld SimAuto, embedded in a three-layer analytical workflow, and used to automate large-scale time-series power-flow studies driven by real or synthetic building and EV load profiles (Iranpour et al., 9 Sep 2025).