Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solver benchmarking and pandapower connection for DC power flow #96

Open
SteffenMeinecke opened this issue Dec 4, 2024 · 1 comment
Labels
documentation Improvements or additions to documentation

Comments

@SteffenMeinecke
Copy link

Dear @BDonnot,
many thanks for all you implementations!

Documentation issue description

I don't think that the values referenced below the two tables at https://lightsim2grid.readthedocs.io/en/latest/benchmarks.html#computation-time can be found in the tables, e.g.

  • no solver with ~1200 steps each second
  • “only” 70 for the default PandaPower Backend (I find 46.3 in the table)
  • ...

Consequently, I find it hard to follow the discussion on the timings of the solvers.
One more question: Is there a parameter, such as tolerance_mva in pandapower, to adjust the stopping criteria of the iteration algorithms? At the tables Δ aor (amps), Δ gen_p (MW), Δ gen_q (MVAr) are documented but it seems that these are output and not the parameter for the stopping criteria. Are the documented three values absolute or in difference to pandapower (since pandapower always has 0 and not something like 1e-8)?
One major point to add to the timing comparison, I think, is to mention the initialization applied. This effects the convergence bahavior and speed.

Additional context

Did you compare the calculation time for DC power flows, as well? If there is again a massive speed-up, do you think about making it available for pandapower, as well?
While pandapower runs Va = dcpf(B, Pbus, Va0, ref, pv, pq), cf. link, lightsim2grid documentation types converged = dc_solver.solve(Ybus, V0, Sbus, ref, slack_weights, pv, pq, max_it, tol) which should be relatively compatible, I'd say.

@SteffenMeinecke SteffenMeinecke added the documentation Improvements or additions to documentation label Dec 4, 2024
@BDonnot
Copy link
Collaborator

BDonnot commented Dec 4, 2024

Hello,

Thanks for spotting this.

You are correct, there might be some inconsistencies between the written text (that has been written a while ago) and the tables, that I try to maintain as up to date as possible.
I'll try to fix thee text and maybe come up with something to "automatically" update the text with correct data

The impact of the tolerance is discussed in another benchmark that I did not upload apparently. For this one the tolerance is the "default" one which should be 1e-7 or 1e-9 pu I don't remember. I'll try to put it somewhere in the text too. Because once again you are correct this makes a difference 😊

The delta's a_or and others are the absolute error compared to the baseline (in this case pandapower) which totally explains why pandapower has 0 there, it's the baseline. It has nothing to do with stopping criteria.

In grid2op in general I always initialize the a powerflow with DC approximation. But you are correct this is not mentioned here. I'll add it too. Thanks

  • fix text to match table
  • mention the stopping criteria
  • mention that DC approx is used to initialized the powerflow
  • add comparisons with DC powerflow (dedicated pages with ptdf, lodf and others too)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants