Grid2op / grid2op

Grid2Op a testbed platform to model sequential decision making in power systems.
https://grid2op.readthedocs.io/
Mozilla Public License 2.0
297 stars 117 forks source link

Ignoring the transient stability #177

Closed liushunyu closed 3 years ago

liushunyu commented 3 years ago

I'm a computer science major rather than a major in this field of power grid, so my question may have common sense error.

I find that power flow is calculated to return the next state after taking an action. Is there ignoring the transient stability? If we take a danger interference, the transient stability of the power grid may be broken. At this time, it make no sense to calculate the power flow. Should we additionally take the transient stability calculation to analyze the transient stability?

BDonnot commented 3 years ago

Hello,

You are correct. The default backend of grid2op (PandaPowerBackend) is based on the Pandapower powerflow. And as such, it ignores everything related to transient state. As you said it computes "steady state" only.

So yes, if you use the default grid2op Backend, then transient security will not be assessed.

At this time, it make no sense to calculate the power flow.

Well, it's a matter of "all models are wrong, some are usefull". So i would not say it doesn't make sense. I would say in this case the model used (powerflow) is not suitable for the study you want to make (model is not usefull).

Phrased differently: "in the default grid2op backend, we assume that transient stability is not an issue and that no problem specific to transient state can arise". This is an assumption and in reality it's not true, of course. This assumption is commonly make for most power system related studies.

As far as I know, except the one targetting specifically the transient state and focusing on really short term dynamic (a few seconds), most power system studies uses (when the powergrid is modeled at all, which is not always the case) a powerflow with the AC modeling (like in default grid2op) or an even stronger assumption with the DC modeling (which a linearization of the "AC modeling" equations)

Should we additionally take the transient stability calculation to analyze the transient stability?

I think it's a bit more profound than that. If you care about transient stability (which is a real issue for real powergrid) then you should not use any "powerflow" at all.

Grid2op being fully modular, and you can easily change the "solver" that computes the state of the grid. As of today i don't really know if someone plugged in a solver "aware of transient state" to grid2op, but that is totally feasible.

For example, you can see if connecting some other solvers (eg gridpack, dynawo ) will model better the problem of transient stability.

Benjamin

liushunyu commented 3 years ago

Thank you very much. In the last few days I have looked up the relevant information, and now I can understand your approach.

Do you know any open source transient stability simulators which can be called by python ? gridpack ? dynawo ? Do you have any recommendations ?

BDonnot commented 3 years ago

Hello,

As far as i know, gridpack offers a python framework for assessing transient stability (see here https://github.com/GridOPTICS/GridPACK/tree/feature/hadrec/python ) and we are discussing with the gridpack team to include gridpack as a different backend in grid2op. I don't when (nor if) it will be happen (hopefully it will be available, but i cannot commit on that) and once done, you will able to do things like:

import grid2op
from pygridpack import GridPackBackend # note: this will probably not be the real name of the package, nor the real name of the backend, it's for illustration purpose only !
env_name = ...  # the name of the grid2op environment, eg "l2rpn_case14_sandbox"
env = grid2op.make(env_name, backend=GridPackBackend())

# do whatever you want with the grid2op environment including changing the topology etc.
# below that, nothing depends on the backend and you can use it like any grid2op environment

Also, dynawo is an open initiative from RTE (which grid2op is too). We are discussing internally the opportunity to "connect" dyanwo to grid2op too. But again, I can't tell when nor if this support will happen in the future (it will probably happen, but i cannot commit on any deadline nor say more, at the moment, than "probably" which is the most important word there)

And to connect dynawo to grid2op, you will have (again, when the "connection" will be available) to do something like:

import grid2op
from pydynawo import DynawoBackend # note: this will probably not be the real name of the package, nor the real name of the backend, it's for illustration purpose only !
env_name = ...  # the name of the grid2op environment, eg "l2rpn_case14_sandbox"
env = grid2op.make(env_name, backend=DynawoBackend())

# do whatever you want with the grid2op environment including changing the topology etc.
# below that, nothing depends on the backend and you can use it like any grid2op environment

If you have the necessary skils, are interested in making such things a reality or know someone who is interested, please let us know. We are also really interested in these.

Benjamin