19class DecouplingIdealTransformer_EMT_Ph3
20 :
public SimSignalComp,
24 Matrix mInternalSeriesResistance =
26 Matrix mInternalParallelResistance =
29 std::shared_ptr<EMT::SimNode> mNode1, mNode2, mVirtualNode;
30 std::shared_ptr<EMT::Ph3::Resistor> mRes1, mRes2;
31 std::shared_ptr<EMT::Ph3::ControlledCurrentSource> mCurrentSrc;
32 std::shared_ptr<EMT::Ph3::ControlledVoltageSource> mVoltageSrc;
33 Attribute<Matrix>::Ptr mSrcCurrent, mSrcVoltage;
41 Matrix mCur1Extrap, mVol2Extrap;
42 MatrixComp mCurrent1Extrap0;
45 UInt mMacroBufIdx = 0;
48 CouplingMethod mCouplingMethod;
49 UInt mExtrapolationDegree = 0;
50 Matrix mVoltageSrcIntfCurr;
53 Matrix interpolate(Matrix &data);
56 Matrix extrapolate(Matrix &data);
59 typedef std::shared_ptr<DecouplingIdealTransformer_EMT_Ph3> Ptr;
61 const Attribute<Matrix>::Ptr mSourceVoltageIntfVoltage;
62 const Attribute<Matrix>::Ptr mSourceVoltageIntfCurrent;
63 const Attribute<Matrix>::Ptr mSrcCurrentRef;
64 const Attribute<Matrix>::Ptr mSrcVoltageRef;
69 DecouplingIdealTransformer_EMT_Ph3(
70 String name, Logger::Level logLevel = Logger::Level::info);
72 void setParameters(SimNode<Real>::Ptr node1, SimNode<Real>::Ptr node2,
73 Real delay, Matrix voltageSrcIntfCurr,
74 Matrix current1Extrap0,
75 CouplingMethod method = CouplingMethod::DELAY);
76 void initialize(Real omega, Real timeStep);
77 void step(Real time, Int timeStepCount);
79 Task::List getTasks();
80 IdentifiedObject::List getComponents();
81 TopologicalNode::Ptr getVirtualNode();
83 class PreStep :
public Task {
85 PreStep(DecouplingIdealTransformer_EMT_Ph3 &itm)
86 : Task(**itm.
mName +
".MnaPreStep"), mITM(itm) {
87 mPrevStepDependencies.push_back(mITM.mStates);
88 mModifiedAttributes.push_back(mITM.mVoltageSrc->mVoltageRef);
89 mModifiedAttributes.push_back(mITM.mCurrentSrc->mCurrentRef);
92 void execute(Real time, Int timeStepCount);
95 DecouplingIdealTransformer_EMT_Ph3 &mITM;
98 class PostStep :
public Task {
100 PostStep(DecouplingIdealTransformer_EMT_Ph3 &itm)
101 : Task(**itm.
mName +
".PostStep"), mITM(itm) {
102 mAttributeDependencies.push_back(mITM.mVoltageSrc->mIntfVoltage);
103 mAttributeDependencies.push_back(mITM.mVoltageSrc->mIntfCurrent);
104 mAttributeDependencies.push_back(mITM.mCurrentSrc->mIntfVoltage);
105 mAttributeDependencies.push_back(mITM.mCurrentSrc->mIntfCurrent);
106 mModifiedAttributes.push_back(mITM.mStates);
109 void execute(Real time, Int timeStepCount);
112 DecouplingIdealTransformer_EMT_Ph3 &mITM;