DPsim
Loading...
Searching...
No Matches
SPComponents.cpp
1/* Copyright 2017-2021 Institute for Automation of Complex Power Systems,
2 * EONERC, RWTH Aachen University
3 *
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 *********************************************************************************/
8
9#include <limits>
10
11#include <DPsim.h>
12#include <dpsim-models/CSVReader.h>
13#include <dpsim-models/IdentifiedObject.h>
14#include <dpsim/RealTimeSimulation.h>
15#include <dpsim/Simulation.h>
16#include <dpsim/pybind/SPComponents.h>
17#include <dpsim/pybind/Utils.h>
18
19namespace py = pybind11;
20using namespace pybind11::literals;
21
22void addSPComponents(py::module_ mSP) {
23 py::module mSPPh1 =
24 mSP.def_submodule("ph1", "single phase static phasor models");
25 addSPPh1Components(mSPPh1);
26 py::module mSPPh3 =
27 mSP.def_submodule("ph3", "three phase static phasor models");
28 addSPPh3Components(mSPPh3);
29}
30
31void addSPPh1Components(py::module_ mSPPh1) {
32 //SP Ph1 Components
34 std::shared_ptr<CPS::SP::Ph1::VoltageSource>,
35 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "VoltageSource",
36 py::multiple_inheritance())
37 .def(py::init<std::string>())
38 .def(py::init<std::string, CPS::Logger::Level>())
39 .def("set_parameters",
40 py::overload_cast<CPS::Complex, CPS::Real>(
42 "V_ref"_a, "f_src"_a = 0)
44 .def_property("V_ref", createAttributeGetter<CPS::Complex>("V_ref"),
45 createAttributeSetter<CPS::Complex>("V_ref"))
46 .def_property("f_src", createAttributeGetter<CPS::Real>("f_src"),
47 createAttributeSetter<CPS::Real>("f_src"));
48
49 py::class_<CPS::SP::Ph1::Resistor, std::shared_ptr<CPS::SP::Ph1::Resistor>,
50 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "Resistor",
51 py::multiple_inheritance())
52 .def(py::init<std::string>())
53 .def(py::init<std::string, CPS::Logger::Level>())
54 .def("set_parameters", &CPS::SP::Ph1::Resistor::setParameters, "R"_a)
55 .def("connect", &CPS::SP::Ph1::Resistor::connect)
56 .def_property("R", createAttributeGetter<CPS::Real>("R"),
57 createAttributeSetter<CPS::Complex>("R"));
58
59 py::class_<CPS::SP::Ph1::Capacitor, std::shared_ptr<CPS::SP::Ph1::Capacitor>,
60 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "Capacitor",
61 py::multiple_inheritance())
62 .def(py::init<std::string>())
63 .def(py::init<std::string, CPS::Logger::Level>())
64 .def("set_parameters", &CPS::SP::Ph1::Capacitor::setParameters, "C"_a)
65 .def("connect", &CPS::SP::Ph1::Capacitor::connect)
66 .def_property("C", createAttributeGetter<CPS::Real>("C"),
67 createAttributeSetter<CPS::Real>("C"));
68
69 py::class_<CPS::SP::Ph1::Inductor, std::shared_ptr<CPS::SP::Ph1::Inductor>,
70 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "Inductor",
71 py::multiple_inheritance())
72 .def(py::init<std::string>())
73 .def(py::init<std::string, CPS::Logger::Level>())
74 .def("set_parameters", &CPS::SP::Ph1::Inductor::setParameters, "L"_a)
75 .def("connect", &CPS::SP::Ph1::Inductor::connect)
76 .def_property("L", createAttributeGetter<CPS::Real>("L"),
77 createAttributeSetter<CPS::Real>("L"));
78
80 std::shared_ptr<CPS::SP::Ph1::NetworkInjection>,
81 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "NetworkInjection",
82 py::multiple_inheritance())
83 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
84 "loglevel"_a = CPS::Logger::Level::off)
85 .def("set_parameters",
86 py::overload_cast<CPS::Real>(
88 "voltage_set_point"_a)
89 .def("set_parameters",
90 py::overload_cast<CPS::Complex, CPS::Real>(
92 "V_ref"_a, "f_src"_a = 0)
93 .def("set_base_voltage", &CPS::SP::Ph1::NetworkInjection::setBaseVoltage,
94 "base_voltage"_a)
96 .def("modify_power_flow_bus_type",
98 "bus_type"_a);
99
100 py::class_<CPS::SP::Ph1::PiLine, std::shared_ptr<CPS::SP::Ph1::PiLine>,
101 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "PiLine",
102 py::multiple_inheritance())
103 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
104 "loglevel"_a = CPS::Logger::Level::off)
105 .def("set_parameters", &CPS::SP::Ph1::PiLine::setParameters, "R"_a, "L"_a,
106 "C"_a = -1, "G"_a = -1)
107 .def("set_base_voltage", &CPS::SP::Ph1::PiLine::setBaseVoltage,
108 "base_voltage"_a)
109 .def("connect", &CPS::SP::Ph1::PiLine::connect);
110
111 py::class_<CPS::SP::Ph1::Shunt, std::shared_ptr<CPS::SP::Ph1::Shunt>,
112 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "Shunt",
113 py::multiple_inheritance())
114 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
115 "loglevel"_a = CPS::Logger::Level::off)
116 .def("set_parameters", &CPS::SP::Ph1::Shunt::setParameters, "G"_a, "B"_a)
117 .def("set_base_voltage", &CPS::SP::Ph1::Shunt::setBaseVoltage,
118 "base_voltage"_a)
119 .def("connect", &CPS::SP::Ph1::Shunt::connect);
120
121 py::class_<CPS::SP::Ph1::Load, std::shared_ptr<CPS::SP::Ph1::Load>,
122 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "Load",
123 py::multiple_inheritance())
124 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
125 "loglevel"_a = CPS::Logger::Level::off)
126 .def("set_parameters", &CPS::SP::Ph1::Load::setParameters,
127 "active_power"_a, "reactive_power"_a, "nominal_voltage"_a)
128 .def("modify_power_flow_bus_type",
130 .def("connect", &CPS::SP::Ph1::Load::connect);
131
132 py::class_<CPS::SP::Ph1::Switch, std::shared_ptr<CPS::SP::Ph1::Switch>,
134 mSPPh1, "Switch", py::multiple_inheritance())
135 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
136 "loglevel"_a = CPS::Logger::Level::off)
137 .def("set_parameters", &CPS::SP::Ph1::Switch::setParameters,
138 "open_resistance"_a, "closed_resistance"_a,
139 // cppcheck-suppress assignBoolToPointer
140 "closed"_a = false)
141 .def("open", &CPS::SP::Ph1::Switch::open)
142 .def("close", &CPS::SP::Ph1::Switch::close)
143 .def("connect", &CPS::SP::Ph1::Switch::connect);
144
146 std::shared_ptr<CPS::SP::Ph1::SynchronGenerator>,
147 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "SynchronGenerator",
148 py::multiple_inheritance())
149 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
150 "loglevel"_a = CPS::Logger::Level::off)
151 .def("set_parameters", (&CPS::SP::Ph1::SynchronGenerator::setParameters),
152 "rated_apparent_power"_a, "rated_voltage"_a,
153 "set_point_active_power"_a, "set_point_voltage"_a,
154 "powerflow_bus_type"_a, "set_point_reactive_power"_a = 0,
155 "q_limit_max"_a = std::numeric_limits<double>::infinity(),
156 "q_limit_min"_a = -std::numeric_limits<double>::infinity())
157 .def("set_base_voltage", &CPS::SP::Ph1::SynchronGenerator::setBaseVoltage,
158 "base_voltage"_a)
160 .def("modify_power_flow_bus_type",
162 "bus_type"_a)
163 .def("get_apparent_power",
165
167 std::shared_ptr<CPS::SP::Ph1::varResSwitch>,
169 mSPPh1, "varResSwitch", py::multiple_inheritance())
170 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
171 "loglevel"_a = CPS::Logger::Level::off)
172 .def("set_parameters", &CPS::SP::Ph1::varResSwitch::setParameters,
173 "open_resistance"_a, "closed_resistance"_a,
174 // cppcheck-suppress assignBoolToPointer
175 "closed"_a = false)
178 .def("set_init_parameters",
179 &CPS::SP::Ph1::varResSwitch::setInitParameters, "time_step"_a)
180 .def("connect", &CPS::SP::Ph1::varResSwitch::connect);
181
183 std::shared_ptr<CPS::SP::Ph1::SynchronGeneratorTrStab>,
184 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "SynchronGeneratorTrStab",
185 py::multiple_inheritance())
186 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
187 "loglevel"_a = CPS::Logger::Level::off)
188 .def("set_standard_parameters_PU",
190 "nom_power"_a, "nom_volt"_a, "nom_freq"_a, "Xpd"_a, "inertia"_a,
191 "Rs"_a = 0, "D"_a = 0)
192 .def("set_initial_values",
193 &CPS::SP::Ph1::SynchronGeneratorTrStab::setInitialValues,
194 "elec_power"_a, "mech_power"_a)
196 .def("set_model_flags",
198 "convert_with_omega_mech"_a)
199 .def(
200 "set_reference_omega",
202 std::string refOmegaName, CPS::IdentifiedObject::Ptr refOmegaComp,
203 std::string refDeltaName,
204 CPS::IdentifiedObject::Ptr refDeltaComp) {
205 gen.setReferenceOmega(
206 refOmegaComp->attributeTyped<CPS::Real>(refOmegaName),
207 refDeltaComp->attributeTyped<CPS::Real>(refDeltaName));
208 },
209 "ref_omega_name"_a = "w_r", "ref_omage_comp"_a,
210 "ref_delta_name"_a = "delta_r", "ref_delta_comp"_a);
211
213 std::shared_ptr<CPS::SP::Ph1::ReducedOrderSynchronGeneratorVBR>,
215 mSPPh1, "ReducedOrderSynchronGeneratorVBR", py::multiple_inheritance());
216
218 std::shared_ptr<CPS::SP::Ph1::SynchronGenerator3OrderVBR>,
220 mSPPh1, "SynchronGenerator3OrderVBR", py::multiple_inheritance())
221 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
222 "loglevel"_a = CPS::Logger::Level::off)
223 .def("set_operational_parameters_per_unit",
224 py::overload_cast<CPS::Real, CPS::Real, CPS::Real, CPS::Real,
225 CPS::Real, CPS::Real, CPS::Real, CPS::Real,
226 CPS::Real>(
228 setOperationalParametersPerUnit),
229 "nom_power"_a, "nom_voltage"_a, "nom_frequency"_a, "H"_a, "Ld"_a,
230 "Lq"_a, "L0"_a, "Ld_t"_a, "Td0_t"_a)
232
234 std::shared_ptr<CPS::SP::Ph1::SynchronGenerator4OrderVBR>,
236 mSPPh1, "SynchronGenerator4OrderVBR", py::multiple_inheritance())
237 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
238 "loglevel"_a = CPS::Logger::Level::off)
239 .def("set_operational_parameters_per_unit",
240 py::overload_cast<CPS::Real, CPS::Real, CPS::Real, CPS::Real,
241 CPS::Real, CPS::Real, CPS::Real, CPS::Real,
242 CPS::Real, CPS::Real, CPS::Real>(
244 setOperationalParametersPerUnit),
245 "nom_power"_a, "nom_voltage"_a, "nom_frequency"_a, "H"_a, "Ld"_a,
246 "Lq"_a, "L0"_a, "Ld_t"_a, "Lq_t"_a, "Td0_t"_a, "Tq0_t"_a)
248
250 std::shared_ptr<CPS::SP::Ph1::SynchronGenerator5OrderVBR>,
252 mSPPh1, "SynchronGenerator5OrderVBR", py::multiple_inheritance())
253 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
254 "loglevel"_a = CPS::Logger::Level::off)
255 .def("set_operational_parameters_per_unit",
256 py::overload_cast<CPS::Real, CPS::Real, CPS::Real, CPS::Real,
257 CPS::Real, CPS::Real, CPS::Real, CPS::Real,
258 CPS::Real, CPS::Real, CPS::Real, CPS::Real,
259 CPS::Real, CPS::Real, CPS::Real, CPS::Real>(
261 setOperationalParametersPerUnit),
262 "nom_power"_a, "nom_voltage"_a, "nom_frequency"_a, "H"_a, "Ld"_a,
263 "Lq"_a, "L0"_a, "Ld_t"_a, "Lq_t"_a, "Td0_t"_a, "Tq0_t"_a, "Ld_s"_a,
264 "Lq_s"_a, "Td0_s"_a, "Tq0_s"_a, "Taa"_a)
266
268 std::shared_ptr<CPS::SP::Ph1::SynchronGenerator6aOrderVBR>,
270 mSPPh1, "SynchronGenerator6aOrderVBR", py::multiple_inheritance())
271 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
272 "loglevel"_a = CPS::Logger::Level::off)
273 .def("set_operational_parameters_per_unit",
274 py::overload_cast<CPS::Real, CPS::Real, CPS::Real, CPS::Real,
275 CPS::Real, CPS::Real, CPS::Real, CPS::Real,
276 CPS::Real, CPS::Real, CPS::Real, CPS::Real,
277 CPS::Real, CPS::Real, CPS::Real, CPS::Real>(
279 setOperationalParametersPerUnit),
280 "nom_power"_a, "nom_voltage"_a, "nom_frequency"_a, "H"_a, "Ld"_a,
281 "Lq"_a, "L0"_a, "Ld_t"_a, "Lq_t"_a, "Td0_t"_a, "Tq0_t"_a, "Ld_s"_a,
282 "Lq_s"_a, "Td0_s"_a, "Tq0_s"_a, "Taa"_a)
284
286 std::shared_ptr<CPS::SP::Ph1::SynchronGenerator6bOrderVBR>,
288 mSPPh1, "SynchronGenerator6bOrderVBR", py::multiple_inheritance())
289 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
290 "loglevel"_a = CPS::Logger::Level::off)
291 .def("set_operational_parameters_per_unit",
292 py::overload_cast<CPS::Real, CPS::Real, CPS::Real, CPS::Real,
293 CPS::Real, CPS::Real, CPS::Real, CPS::Real,
294 CPS::Real, CPS::Real, CPS::Real, CPS::Real,
295 CPS::Real, CPS::Real, CPS::Real, CPS::Real>(
297 setOperationalParametersPerUnit),
298 "nom_power"_a, "nom_voltage"_a, "nom_frequency"_a, "H"_a, "Ld"_a,
299 "Lq"_a, "L0"_a, "Ld_t"_a, "Lq_t"_a, "Td0_t"_a, "Tq0_t"_a, "Ld_s"_a,
300 "Lq_s"_a, "Td0_s"_a, "Tq0_s"_a, "Taa"_a = 0)
302
304 std::shared_ptr<CPS::SP::Ph1::AvVoltageSourceInverterDQ>,
306 mSPPh1, "AvVoltageSourceInverterDQ", py::multiple_inheritance())
307 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
308 "loglevel"_a = CPS::Logger::Level::off)
309 .def(py::init<std::string, std::string, CPS::Logger::Level, CPS::Bool>(),
310 "uid"_a, "name"_a, "loglevel"_a = CPS::Logger::Level::off,
311 // cppcheck-suppress assignBoolToPointer
312 "with_trafo"_a = false)
313 .def("set_parameters",
315 "sys_omega"_a, "sys_volt_nom"_a, "p_ref"_a, "q_ref"_a)
316 .def("set_filter_parameters",
318 "Lf"_a, "Cf"_a, "Rf"_a, "Rc"_a)
319 .def("set_controller_parameters",
321 "Kp_pll"_a, "Ki_pll"_a, "Kp_power_ctrl"_a, "Ki_power_ctrl"_a,
322 "Kp_curr_ctrl"_a, "Ki_curr_ctrl"_a, "omega_cutoff"_a)
323 .def("set_transformer_parameters",
325 "nom_voltage_end_1"_a, "nom_voltage_end_2"_a, "rated_power"_a,
326 "ratio_abs"_a, "ratio_phase"_a, "resistance"_a, "inductance"_a)
327 .def("set_initial_state_values",
329 "p_init"_a, "q_init"_a, "phi_d_init"_a, "phi_q_init"_a,
330 "gamma_d_init"_a, "gamma_q_init"_a)
331 .def("with_control",
332 &CPS::SP::Ph1::AvVoltageSourceInverterDQ::withControl)
334
335 py::class_<CPS::SP::Ph1::Transformer,
336 std::shared_ptr<CPS::SP::Ph1::Transformer>,
337 CPS::SimPowerComp<CPS::Complex>>(mSPPh1, "Transformer",
338 py::multiple_inheritance())
339 .def(py::init<std::string, CPS::Logger::Level>(), "name"_a,
340 "loglevel"_a = CPS::Logger::Level::off)
341 .def(py::init<std::string, std::string, CPS::Logger::Level, CPS::Bool>(),
342 "uid"_a, "name"_a, "loglevel"_a = CPS::Logger::Level::off,
343 // cppcheck-suppress assignBoolToPointer
344 "with_resistive_losses"_a = false)
345 .def("set_parameters",
346 py::overload_cast<CPS::Real, CPS::Real, CPS::Real, CPS::Real,
347 CPS::Real, CPS::Real>(
349 "nom_voltage_end_1"_a, "nom_voltage_end_2"_a, "ratio_abs"_a,
350 "ratio_phase"_a, "resistance"_a, "inductance"_a)
351 .def("set_parameters",
352 py::overload_cast<CPS::Real, CPS::Real, CPS::Real, CPS::Real,
353 CPS::Real, CPS::Real, CPS::Real>(
355 "nom_voltage_end_1"_a, "nom_voltage_end_2"_a, "rated_power"_a,
356 "ratio_abs"_a, "ratio_phase"_a, "resistance"_a, "inductance"_a)
357 .def("set_base_voltage", &CPS::SP::Ph1::Transformer::setBaseVoltage,
358 "base_voltage"_a)
359 .def("connect", &CPS::SP::Ph1::Transformer::connect);
360}
361
362void addSPPh3Components(py::module_ mSPPh3) {
364 std::shared_ptr<CPS::SP::Ph3::VoltageSource>,
365 CPS::SimPowerComp<CPS::Complex>>(mSPPh3, "VoltageSource",
366 py::multiple_inheritance())
367 .def(py::init<std::string>())
368 .def(py::init<std::string, CPS::Logger::Level>())
369 .def("set_parameters", &CPS::SP::Ph3::VoltageSource::setParameters,
370 "V_ref"_a)
372 .def_property("V_ref", createAttributeGetter<CPS::MatrixComp>("V_ref"),
373 createAttributeSetter<CPS::MatrixComp>("V_ref"))
374 .def_property("f_src", createAttributeGetter<CPS::Real>("f_src"),
375 createAttributeSetter<CPS::Real>("f_src"));
376
377 py::class_<CPS::SP::Ph3::Resistor, std::shared_ptr<CPS::SP::Ph3::Resistor>,
378 CPS::SimPowerComp<CPS::Complex>>(mSPPh3, "Resistor",
379 py::multiple_inheritance())
380 .def(py::init<std::string>())
381 .def(py::init<std::string, CPS::Logger::Level>())
382 .def("set_parameters", &CPS::SP::Ph3::Resistor::setParameters, "R"_a)
383 .def("connect", &CPS::SP::Ph3::Resistor::connect);
384
385 py::class_<CPS::SP::Ph3::Capacitor, std::shared_ptr<CPS::SP::Ph3::Capacitor>,
386 CPS::SimPowerComp<CPS::Complex>>(mSPPh3, "Capacitor",
387 py::multiple_inheritance())
388 .def(py::init<std::string>())
389 .def(py::init<std::string, CPS::Logger::Level>())
390 .def("set_parameters", &CPS::SP::Ph3::Capacitor::setParameters, "C"_a)
391 .def("connect", &CPS::SP::Ph3::Capacitor::connect);
392
393 py::class_<CPS::SP::Ph3::Inductor, std::shared_ptr<CPS::SP::Ph3::Inductor>,
394 CPS::SimPowerComp<CPS::Complex>>(mSPPh3, "Inductor",
395 py::multiple_inheritance())
396 .def(py::init<std::string>())
397 .def(py::init<std::string, CPS::Logger::Level>())
398 .def("set_parameters", &CPS::SP::Ph3::Inductor::setParameters, "L"_a)
399 .def("connect", &CPS::SP::Ph3::Inductor::connect);
400}
void setParameters(Real capacitance)
Sets model specific parameters.
void setParameters(Real inductance)
Sets model specific parameters.
Dynamic Phasor Three-Phase Switch.
void close()
Close switch.
void open()
Open switch.
void setParameters(Matrix capacitance)
Sets model specific parameters.
void setParameters(Matrix inductance)
Sets model specific parameters.
void setParameters(Matrix resistance)
Sets model specific parameters.
void setInitialStateValues(Real pInit, Real qInit, Real phi_dInit, Real phi_qInit, Real gamma_dInit, Real gamma_qInit)
Setter for initial values applied in controllers.
void setParameters(Real sysOmega, Real sysVoltNom, Real Pref, Real Qref)
Setter for general parameters of inverter.
void setFilterParameters(Real Lf, Real Cf, Real Rf, Real Rc)
Setter for parameters of filter.
void setControllerParameters(Real Kp_pll, Real Ki_pll, Real Kp_powerCtrl, Real Ki_powerCtrl, Real Kp_currCtrl, Real Ki_currCtrl, Real Omega_cutoff)
Setter for parameters of control loops.
void setTransformerParameters(Real nomVoltageEnd1, Real nomVoltageEnd2, Real ratedPower, Real ratioAbs, Real ratioPhase, Real resistance, Real inductance)
Setter for parameters of transformer.
void modifyPowerFlowBusType(PowerflowBusType powerflowBusType) override
Modify powerflow bus type.
void setParameters(Real vSetPointPerUnit)
Set parameters relevant for PF solver.
void setBaseVoltage(Real baseVoltage)
Set base voltage.
void modifyPowerFlowBusType(PowerflowBusType powerflowBusType) override
Modify powerflow bus type.
void setBaseVoltage(Real baseVoltage)
Set base voltage.
Base class for SP VBR synchronous generator model single phase.
void setBaseVoltage(Real baseVoltage)
Set base voltage.
void setParameters(Real conductance, Real susceptance)
Set shunt specific parameters.
Voltage-Behind-Reactance (VBR) implementation of 3rd order synchronous generator model.
Voltage-Behind-Reactance (VBR) implementation of 4th order synchronous generator model.
Voltage-Behind-Reactance (VBR) implementation of 5th type 2 order synchronous generator model Ref: Mi...
Voltage-Behind-Reactance (VBR) implementation of 6th order synchronous generator model Marconato's mo...
Voltage-Behind-Reactance (VBR) implementation of 6th order synchronous generator model Anderson-Fouad...
void modifyPowerFlowBusType(PowerflowBusType powerflowBusType) override
Modify powerflow bus type.
Complex getApparentPower() const
Get Apparent power of Powerflow solution.
void setBaseVoltage(Real baseVoltage)
Set base voltage.
void setParameters(Real ratedApparentPower, Real ratedVoltage, Real setPointActivePower, Real setPointVoltage, PowerflowBusType powerflowBusType, Real setPointReactivepower=0, Real qLimMax=std::numeric_limits< Real >::infinity(), Real qLimMin=-std::numeric_limits< Real >::infinity())
Synchronous generator model for transient stability analysis.
void setModelFlags(Bool convertWithOmegaMech)
Flags to modify model behavior.
void setStandardParametersPU(Real nomPower, Real nomVolt, Real nomFreq, Real Xpd, Real inertia, Real Rs=0, Real D=0)
Initializes the machine parameters.
Transformer that includes an inductance and resistance.
void setParameters(Real nomVoltageEnd1, Real nomVoltageEnd2, Real ratioAbs, Real ratioPhase, Real resistance, Real inductance)
Set transformer specific parameters (without rated power)
Ideal Voltage source model.
void setParameters(Complex voltageRef, Real srcFreq=0.0)
Switch with variable resistance to avoid numerical oscillations, when an inductive current is suddenl...
Ideal Voltage source model.
Base class for all components that are transmitting power.
void connect(typename SimNode< Complex >::List nodes)