-
Notifications
You must be signed in to change notification settings - Fork 51
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
Fix implementation of exciter, new turbine governor model and refactor VBR models #120
Conversation
martinmoraga
commented
Sep 14, 2022
•
edited by dinkelbachjan
Loading
edited by dinkelbachjan
- fixes implementation of exciter DC1A model
- adds new turbine governor TGOV1 (Ref: Milano, Power system modelling and scripting p. 358)
- adds new validation notebook for controllers: SP_Validation_ReducedOrderSG_VBR_SMIB_Fault_withControllers.ipynb
- partially solves points of Refactor VBR models #75
- enables choice between thevenin and norton representation of VBR models, default is norton now
- adds reduced order SG models, exciter and turbine governor to dpsimpy
Kudos, SonarCloud Quality Gate passed! |
dpsim-models/include/dpsim-models/Base/Base_ReducedOrderSynchronGenerator.h
Outdated
Show resolved
Hide resolved
dpsim-models/include/dpsim-models/DP/DP_Ph1_ReducedOrderSynchronGeneratorVBR.h
Outdated
Show resolved
Hide resolved
dpsim-models/include/dpsim-models/SP/SP_Ph1_ReducedOrderSynchronGeneratorVBR.h
Outdated
Show resolved
Hide resolved
dpsim-models/include/dpsim-models/SP/SP_Ph1_SynchronGenerator4OrderDCIM.h
Outdated
Show resolved
Hide resolved
@martinmoraga Can you maybe push the pybind-binding code that does not work for you, along with the error message? Normally, you should be able to just bind the abstract base class along with any child classes like this (assuming py::class_<CPS::DP::Ph1::ReducedOrderSynchronGeneratorVBR, std::shared_ptr<CPS::DP::Ph1::ReducedOrderSynchronGeneratorVBR>, CPS::SimPowerComp<CPS::Complex>>(mDPPh1, "BaseSynchronGeneratorReducedOrder", py::multiple_inheritance())
.def("set_modelling_approach", &CPS::DP::Ph1::ReducedOrderSynchronGeneratorVBR::setModellingApproach)
.def("step_in_per_unit", &CPS::DP::Ph1::ReducedOrderSynchronGeneratorVBR::stepInPerUnit);
py::class_<CPS::DP::Ph1::SynchronGenerator3OrderVBR, std::shared_ptr<CPS::DP::Ph1::SynchronGenerator3OrderVBR>, CPS::DP::Ph1::ReducedOrderSynchronGeneratorVBR>(mDPPh1, "SynchronGenerator3OrderVBR", py::multiple_inheritance())
.def(py::init<std::string>()); The base class is then non-constructible in Python but because Python only handles the shared pointers, methods can still take and return instances of the base class. |
8cb7df6
to
1314512
Compare
Signed-off-by: Martin Moraga <[email protected]>
Signed-off-by: Martin Moraga <[email protected]>
Signed-off-by: Martin Moraga <[email protected]>
Signed-off-by: Martin Moraga <[email protected]>
1314512
to
19de3c1
Compare
Signed-off-by: Martin Moraga <[email protected]>
19de3c1
to
61db9c5
Compare
Signed-off-by: Martin Moraga <[email protected]>
e9b2b21
to
0bb3975
Compare
Signed-off-by: Jan Dinkelbach <[email protected]>
Signed-off-by: Jan Dinkelbach <[email protected]>
Kudos, SonarCloud Quality Gate passed! |