Skip to content

barajale/MarinePowerDynamics.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

380 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MarinePowerDynamics.jl

MarinePowerDynamics.jl is a fork of PowerDynamics.jl commit (835e831) designed specifically for research on the grid integration of marine energy systems, especially grid-connected Wave Energy Converters (WECs).

This package extends the original PowerDynamics.jl by adding support for dynamic marine PTO (Power Take-Off) modeling based on external time-series data and by enabling new simulation workflows for realistic, time-driven co-simulation with mechanical WEC models such as those from WEC-SIM.

As marine renewable energy grows, it’s essential to study the dynamic impact of devices like WECs on power grids. The original PowerDynamics.jl provides a powerful framework for grid dynamic simulation but does not natively support marine PTO models or direct integration with external (e.g., WEC-SIM) time series.

MarinePowerDynamics.jl enables:

  • Co-simulation of grid and WEC mechanical systems
  • Importing external time-series (from WEC-SIM) for PTO nodes
  • Realistic grid event simulation with time-step exposure at the node level

This work is based in part on research published in

A. Barajas-Ritchie, E. Cotilla-Sanchez, Saptarshi Bhattacharya, Diane Baldwin Stability Testing and Dynamic Simulation of Grid-Connected Wave Energy Converters,


Reference to Original Project

This package is a fork of PowerDynamics.jl.
If you use this package in your research, please also cite the original PowerDynamics.jl paper (see below).


Key Features & Differences

1. LinearPTO Model

MarinePowerDynamics.jl introduces the LinearPTO node, supporting dynamic coupling between WEC-SIM simulations and the power grid.

  • a. Uses External Time-Series from WEC-SIM:
    The LinearPTO node reads WEC mechanical state time-series (relative displacement & velocity) generated by WEC-SIM RM3 or similar models, allowing grid simulation with realistic wave energy profiles.

  • b. Built on VSIMinimal Node Model:
    The backbone of LinearPTO is the VSIMinimal grid-forming voltage source model, commonly used for inverter-based renewable integration. This ensures compatibility with standard grid simulation approaches.

  • c. Uses Power Equations from WEC-SIM:
    The LinearPTO equations and droop control logic are based on the mechanical-to-electrical PTO conversion as implemented in WEC-SIM, including

    • Force:  F_pto = -K_pto * X_rel - C_pto * V_rel
    • Power:  P_mech = F_pto * V_rel
      Electrical power and per-unit conversion follows WEC-SIM methodology.

2. Source Code Changes

  • a. Simulation Call (AbstractPerturbation.jl):

    • Fixed time-step support for event-based grid studies (e.g., grid faults, step changes) where WEC/Mechanical and grid time integration must be synchronized.
    • Exposes all relevant simulate signatures and error handling for marine PTO scenarios.
  • b. Time-step Exposed to Nodes:

    • Nodes can now access the current simulation time-step.
    • This is crucial for time-dependent (externally-driven) nodes like LinearPTO, enabling them to fetch the correct point from imported time-series.
  • c. Modified NodeMacro.jl:

    • Adjusted macro logic to pass simulation time (t) explicitly into node dynamics.

Installation Issues

If you're attempting to add this package to an existing Julia environment and encounter issues, try the following:

using Pkg
Pkg.activate(".") # from root directory of your environment or project
Pkg.develop(path="MarinePowerDynamics.jl") # may need to update this path based on your local setup
Pkg.add(PackageSpec(name="TimerOutputs", version="0.5.24")) # known dependency issue
Pkg.instantiate()
Pkg.precompile()

About

Package for dynamical modeling of power grids

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 17