10k Bus Case + Three Fully Validated Cases - #461
Conversation
|
The simulation runs much more slowly after I rebuilt it using the develop branch's Jacobian changes. It ran for a few minutes and did not finish. I am not confident what the hotpath is (Edit: Without monitored output, it takes 43s to simulat, as opposed to ~8s before #447 ) |
Good to know! Let's push to merge a clean version of this case. I can then profile and see how to better deal with the bus Jacobians. There wasn't a clean way for each connected component to access the entries owned by the bus and add to them in a thread-safe way, and the tradeoff was worth it on the 2k case. |
|
Oh, another difference is that bus faults are currently variable-owning. So, if a bus fault is attached to every bus, the number of bus variables is basically doubled (despite these not contributing anything to the system). I recommend only having one fault in the large cases for now. Once we make the bus class itself faultable, this should no longer be an issue. |
That helped. It runs in 28s now, with only one |
56bf8be to
922d674
Compare
922d674 to
220d406
Compare
80a465d to
a0cb130
Compare
pelesh
left a comment
There was a problem hiding this comment.
Ready to merge provided WECC240 test is fixed. Great job!
a0cb130 to
1156a0a
Compare
|
Rebased. All validation is passed, and I worked my magic a bit so #460 is not needed before release. @pelesh Notice these new cases are under top level |
|
It seems there is something wrong with the way how model is defined. We get error: Complete output is below. The code is outputting too many warnings, by the way. It is out of scope of this PR but we should consider turning some of the warnings to miscellaneous information to be used in debugging. Details |
|
@lukelowry is correct that this error is from |
Description
Three validated cases against PowerWorld with amazing accuracy & added ACTIVSg10k bus case.
Requires #525 #460, WECC case validation is failing until those merge.
PhasorDynamics Cases
Validation Cases
I chose these as the validation cases because they are fully, 100% modeled in GridKit.
Relative Error Against PowerWorld
Each entry reports relative RMSE and maximum error, respectively
Example validation on WECC240
Proposed changes
DynamicSimulationto print monitored variables pre- and post- fault. This is clearer and makes validation easier, and IMO more correct. It only printed pre-fault values before.cases/with cleaned files,README.md, one-line diagrams. This allows us to reuse cases for tests, validations, and examples.examples/PhasorDynamics/validation/with one*.solver.jsonand correspondingREADME.mdexplaining what is being validated and subfolders for cleanliness:references/andfigures/Checklist
-Wall -Wpedantic -Wconversion -Wextra.Further comments
ACTIVSg10kis still slow, but optimization is out of scope. Experimental branches show there are a lot of low hanging fruitctestonly runs againstomegaunless you change the monitors in the case and the output file. I think we need some multi-sink monitors as @PhilipFackler has suggested previously (tracked in Multiple Monitor Sinks + Remove monitor field from case #529)