9#include <dpsim-models/DP/DP_Ph1_RXLoad.h>
20 SPDLOG_LOGGER_INFO(
mSLog,
"Create {} {}", this->
type(), name);
26 :
RXLoad(name, name, logLevel) {}
29 auto copy = RXLoad::make(name,
mLogLevel);
47 std::abs(
mTerminals[0]->initialSingleVoltage()));
50 Real omega = 2. * PI * frequency;
59 MNA_SUBCOMP_TASK_ORDER::TASK_BEFORE_PARENT,
false);
75 MNA_SUBCOMP_TASK_ORDER::TASK_BEFORE_PARENT,
true);
83 MNA_SUBCOMP_TASK_ORDER::TASK_BEFORE_PARENT,
84 MNA_SUBCOMP_TASK_ORDER::TASK_BEFORE_PARENT,
true);
87 (**mIntfVoltage)(0, 0) =
mTerminals[0]->initialSingleVoltage();
91 SPDLOG_LOGGER_INFO(
mSLog,
92 "\n--- Initialization from powerflow ---"
93 "\nVoltage across: {:s}"
95 "\nTerminal 0 voltage: {:s}"
98 "\n--- Initialization from powerflow finished ---",
101 Logger::phasorToString(initialSingleVoltage(0)),
112 SPDLOG_LOGGER_INFO(
mSLog,
"Active Power={} [W] Reactive Power={} [VAr]",
118 (**mIntfVoltage)(0, 0) =
119 Math::complexFromVectorElement(leftVector, matrixNodeIndex(0));
123 (**mIntfCurrent)(0, 0) = 0;
126 (**mIntfCurrent)(0, 0) += subComp->intfCurrent()(0, 0);
131 AttributeBase::List &prevStepDependencies,
132 AttributeBase::List &attributeDependencies,
133 AttributeBase::List &modifiedAttributes) {
142 AttributeBase::List &prevStepDependencies,
143 AttributeBase::List &attributeDependencies,
144 AttributeBase::List &modifiedAttributes,
145 Attribute<Matrix>::Ptr &leftVector) {
146 attributeDependencies.push_back(leftVector);
152 Attribute<Matrix>::Ptr &leftVector) {
void addMNASubComponent(typename SimPowerComp< Complex >::Ptr subc, MNA_SUBCOMP_TASK_ORDER preStepOrder, MNA_SUBCOMP_TASK_ORDER postStepOrder, Bool contributeToRightVector)
void mnaCompApplyRightSideVectorStamp(Matrix &rightVector) override
CompositePowerComp(String uid, String name, Bool hasPreStep, Bool hasPostStep, Logger::Level logLevel)
std::shared_ptr< DP::Ph1::Inductor > mSubInductor
Internal inductor.
RXLoad(String uid, String name, Logger::Level logLevel=Logger::Level::off)
Defines UID, name and logging level.
SimPowerComp< Complex >::Ptr clone(String name) override
Returns a modified copy of the component with the given suffix added to the name and without.
Real mInductance
Inductance [H].
void mnaParentPostStep(Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) override
MNA post step operations.
const Attribute< Real >::Ptr mActivePower
True after createSubComponents() runs; prevents double-construction.
Real mReactance
Reactance [Ohm].
const Attribute< Real >::Ptr mReactivePower
Reactive power [VAr].
Real mCapacitance
Capacitance [F].
void mnaParentAddPostStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) override
Add MNA post step dependencies.
std::shared_ptr< DP::Ph1::Capacitor > mSubCapacitor
Internal capacitor.
const Attribute< Real >::Ptr mNomVoltage
Nominal voltage [V].
void setParameters(Real activePower, Real ReactivePower, Real volt)
Set model specific parameters.
std::shared_ptr< DP::Ph1::Resistor > mSubResistor
Internal resistance.
void mnaParentAddPreStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) override
Add MNA pre step dependencies.
void initializeParentFromNodesAndTerminals(Real frequency) override
Derives values from power flow data and pushes them to subcomponents.
void mnaParentPreStep(Real time, Int timeStepCount) override
MNA pre step operations.
void mnaCompUpdateVoltage(const Matrix &leftVector) override
Update interface voltage from MNA system result.
void createSubComponents() override
Constructs and registers MNA subcomponents; idempotent.
void mnaCompUpdateCurrent(const Matrix &leftVector) override
Update interface current from MNA system result.
const Attribute< String >::Ptr mName
Human readable name.
String uid()
Returns unique id.
String type()
Get component type (cross-platform)
AttributeList::Ptr mAttributes
Attribute List.
Attribute< Matrix >::Ptr mRightVector
const Attribute< MatrixVar< Complex > >::Ptr mIntfCurrent
SimTerminal< Complex >::List mTerminals
const Attribute< MatrixVar< Complex > >::Ptr mIntfVoltage
std::vector< std::shared_ptr< SimPowerComp< Complex > > > mSubComponents
Logger::Level mLogLevel
Component logger control for internal variables.
bool mParametersSet
Flag indicating that parameters are set via setParameters() function.
Logger::Log mSLog
Component logger.