NREL-Sienna/PowerSimulationsDynamics.jl

Add inverter models with current limiting

m-bossart opened this issue · 3 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?

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 ?

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.

This closed in #383