mesmo
mesmo copied to clipboard
Raise errors for invalid scenario definitions
Introduce checks in data_interface
such that definition issues are caught early and raise clear error messages.
- [x] List down typical definition issues @tomschelo @cdesmond
- [ ] Setup check structure @stroitzsch
Typical issues (Please add / edit):
- [ ] Isolated nodes (nodes not connected through lines / transformers to source node)
- [ ] Isolated DERs (invalid node name)
- [ ] Isolated lines / transformers (invalid node names)
- [ ] Invalid source node name
- [ ] Invalid line type definition (leading to singular admittance matrix)
- [ ] Missing values (NULL, NaN) in any required column
- [ ] ...
@tomschelo @cdesmond - I'll need your feedback here, since you have some experiences in defining FLEDGE scenarios! I believe you can edit directly the list above. @cdesmond @j-pang - This will be a good issue where I could use your help!
3-phase vs. symmetric 1-phase equivalent --> check if is_single_phase_equivalent
is set to '0' / False, then all necessary data (line_type_matrices) must be available.
For isolated nodes, lines, etc. it might make sense to use the networkX package, it supports wide range of graph analysis. In plots.py, electric_grid_model is already transformed to a networkX graph object, so it should be easy.
I believe your list is already quite good, I actually cannot think of another error currently, but I will pay attention in the future.
What could also help debugging a scenario is in the end of a simulation printing a short summary to the console:
- scneario_name
- electric_grid_name with [# of nodes] nodes and [# of branches] branches
- source node name
- number of fixed DERs
- number of flexible DERs
- node voltage limits (if set in scenario parameters)
- branch power flow limits (if set in scenario parameters)
- linear approximation: global / local
- power flow solution: OpenDSS, FixedPoint, etc.
- solution algorithm: simple / multi-period / trust-region
- ...
--> This will help to make sure that the user did not mix up anything, as there are so many parameters that can be manipulated.