diff --git a/dpsim-models/include/dpsim-models/SP/SP_Ph1_Shunt.h b/dpsim-models/include/dpsim-models/SP/SP_Ph1_Shunt.h index bd46e325b8..b7ae8cda4b 100644 --- a/dpsim-models/include/dpsim-models/SP/SP_Ph1_Shunt.h +++ b/dpsim-models/include/dpsim-models/SP/SP_Ph1_Shunt.h @@ -20,15 +20,14 @@ namespace SP {namespace Ph1 { const Attribute::Ptr mConductance; /// Susceptance [S] const Attribute::Ptr mSusceptance; + /// Conductance [S] + const Attribute::Ptr mConductancePerUnit; + /// Susceptance [S] + const Attribute::Ptr mSusceptancePerUnit; private: /// Base voltage [V] Real mBaseVoltage; - /// Conductance [pu] - Real mConductancePerUnit; - /// Susceptance [pu] - Real mSusceptancePerUnit; - public: /// Defines UID, name, component parameters and logging level Shunt(String uid, String name, Logger::Level logLevel = Logger::Level::off); diff --git a/dpsim-models/src/SP/SP_Ph1_Shunt.cpp b/dpsim-models/src/SP/SP_Ph1_Shunt.cpp index 8ceb42a147..d388f4c672 100644 --- a/dpsim-models/src/SP/SP_Ph1_Shunt.cpp +++ b/dpsim-models/src/SP/SP_Ph1_Shunt.cpp @@ -13,7 +13,9 @@ using namespace CPS; SP::Ph1::Shunt::Shunt(String uid, String name, Logger::Level logLevel) : SimPowerComp(uid, name, logLevel), mConductance(mAttributes->create("G")), - mSusceptance(mAttributes->create("B")) { + mSusceptance(mAttributes->create("B")), + mConductancePerUnit(mAttributes->create("Gpu")), + mSusceptancePerUnit(mAttributes->create("Bpu")) { SPDLOG_LOGGER_INFO(mSLog, "Create {} of type {}", this->type(), name); setTerminalNumber(1); @@ -42,15 +44,15 @@ void SP::Ph1::Shunt::calculatePerUnitParameters(Real baseApparentPower, Real bas auto baseAdmittance = 1.0 / baseImpedance; SPDLOG_LOGGER_INFO(mSLog, "Base Voltage={} [V] Base Admittance={} [S]", mBaseVoltage, baseAdmittance); - mConductancePerUnit = **mConductance / baseAdmittance; - mSusceptancePerUnit = **mSusceptance / baseAdmittance; - SPDLOG_LOGGER_INFO(mSLog, "Susceptance={} [pu] Conductance={} [pu]", mSusceptancePerUnit, mConductancePerUnit); + **mConductancePerUnit = **mConductance / baseAdmittance; + **mSusceptancePerUnit = **mSusceptance / baseAdmittance; + SPDLOG_LOGGER_INFO(mSLog, "Susceptance={} [pu] Conductance={} [pu]", **mSusceptancePerUnit, **mConductancePerUnit); }; void SP::Ph1::Shunt::pfApplyAdmittanceMatrixStamp(SparseMatrixCompRow & Y) { int bus1 = this->matrixNodeIndex(0); - Complex Y_element = Complex(mConductancePerUnit, mSusceptancePerUnit); + Complex Y_element = Complex(**mConductancePerUnit, **mSusceptancePerUnit); if (std::isinf(Y_element.real()) || std::isinf(Y_element.imag())) { std::cout << "Y:" << Y_element << std::endl;