PowerSimulationsDynamics.jl icon indicating copy to clipboard operation
PowerSimulationsDynamics.jl copied to clipboard

Add inverter models with current limiting

Open m-bossart opened this issue 1 year ago • 2 comments

The existing inverter models do not include current limiting. It would be good to include some models from the literature that have current limiting. @ciaranrob has started an implementation.

One key question is how to make the addition of current limiting modular and extensible? Does it make sense to define a new model (e.g. CurrentLimitedVoltageModeControl) which is essentially equivalent to VoltageModeControl with the addition of an Imax parameter or is there a better way? @jd-lara @rodrigomha do you have thoughts on this?

m-bossart avatar May 16 '23 16:05 m-bossart

That proposed option is okay for now, but it is not reasonable to do that more than once, so if we want to try other limiters we need a long-term solution.

I think the proper solution requires some major changes.

An intermediate solution would be similar of how the outer control work: create a struct for InnerControl that contains the VoltageControl, CurrentLimiter and CurrentControl.

Then, you can probably dispatch the combinations that you want in a clever way (using _mdl_ode_functions to dispatch internally any combination you want) or repeat code.

This would require to do a bunch of things:

  • [ ] Define a NoCurrentLimiter struct
  • [ ] Define a NoVoltageControl struct
  • [ ] Split VoltageModeControl into something like VoltageControlVImpedance, NoCurrentLimiter and StandardCurrentControl
  • [ ] Split CurrentModeControl into something like NoVoltageControl, NoCurrentLimiter and StandardCurrentControl

What do you think @jd-lara ?

rodrigomha avatar May 16 '23 16:05 rodrigomha

looking into this issue it seems we need to modify the structures of the inverters to incorporate current limiter DynamicComponents. We need to PoC this for PSY 3.0.

jd-lara avatar Jul 07 '23 18:07 jd-lara