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
220d406 to
80a465d
Compare
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)