cuihantao / ParaEMT_public

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ParaEMT

NREL's EMT simulator: An Open Source, Parallelizable, and HPC-Compatible Large-Scale Power System Electro-Magnetic Transient (EMT) Simulator

Welcome to the ParaEMT simulation package! This open-source tool aims to provide a powerful and flexible platform for simulating electromagnetic transients (EMT) of large-scale inverter-based resource (IBR)-dominated power systems. The purpose of making it open source is to foster a community of EMT simulation and assist in exploring new EMT algorithms and applying advanced computational techniques to EMT simulation.

Feature

  • EMT modeling
  • EMT Network equation: nodal formulation based on Trapezoidal-rule method
  • EMT network parallel solver: BBD
  • Parallel computation of updateing device states and network historical current
  • Compatible with HPC
  • Compatible with dynamic-link library (DLL) supported dynamic models
  • Compiled with the just-in-time (JIT) compiler, Numba, in Python
  • Results down-sampling
  • Save simulation progress as a snapshot file, and resume the simulation from a saved snapshot
  • Test systems library: the Kundur two-area system, IEEE 9-bus system, IEEE 39-bus system, Western Electricity Coordinating Council (WECC) 179-bus system, and WECC 240-bus system
  • Fully open source and transparent: Allows unrestricted access to the underlying source code and encourages active engagement and contributions from the community

System component library

  • ParaEMT is under continuous development, and currently supports the following models:

Version Advisory

  • Work with Pyhton v3.7+.

Citing

  • If you use ParaEMT for research or consulting, please cite the following paper in your publication that uses ParaEMT:
M. Xiong, B. Wang, D. Vaidhynathan, J. Maack, M. Reynolds, A. Hoke, K. Sun, D. Ramasubramanian, V. Verma, J. Tan, “An Open-Source Parallel EMT Simulation Framework,” Preprint. Golden, CO: National Renewable Energy Laboratory,” NREL/CP-5D00-87164. Sep. 2023.

Getting Started with ParaEMT

  • To conduct EMT simulations using PataEMT, follow these steps:

Structure of ParaEMT

  • Main Functions and Subfunction Libraries

    The first function, main_step0_CreateLargeCases, serves the dual purpose of executing and storing the power flow solution and, optionally, generating synthetic large-scale systems. The second function, main_step1_sim, is responsible for initializing and simulating the system dynamics. The third function, main_step2_save, saves the simulation results.

  • Simulation Initialization

  • Time Domain Simulation

Developer

  • ParaEMT has been developed under a Laboratory Directed Research and Development (LDRD) project titled “Large-Scale Electro-magnetic Transient (EMT) Capability for Evaluating 100% Inverter-Based Systems” at the U.S. Department of Energy's National Renewable Energy Laboratory.
  • ParaEMT has also been developed under the NREL project titled "Intelligent Phasor-EMT Partitioning (I-PEP) for Accelerated Large-scale IBR Integration Studies (Award # DE-EE00038457)".
  • NREL Software Record of Invention : “Parallelizable Large-Scale Power System Electro-Magnetic Transient (EMT) Simulator”. Authors: Bin Wang, Jonathan Maack, Deepthi Vaidhynathan, Jin Tan, Matthew Reynolds. https://doelps.org/arntrn

License

  • ParaEMT is released under a BSD.
  • NREL Software Record of Invention: Bin Wang, Jonathan Maack, Deepthi Vaidhynathan, Jin Tan, Matthew Reynolds “Parallelizable Large-Scale Power System Electro-Magnetic Transient (EMT) Simulator”.

Contact

  • For any questions, feedback, or inquiries, please contact our team at ParaEMT@nrel.gov.
  • Report bugs or issues by submitting a GitHub issue

Contribution

If you're passionate about improving ParaEMT, consider contributing to the future development of ParaEMT, you are also welcome to contact us.

About

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 86.8%Language:MATLAB 13.2%