13 #include <dpsim-models/EMT/EMT_Ph1_CurrentSource.h>
14 #include <dpsim-models/EMT/EMT_Ph1_Resistor.h>
15 #include <dpsim-models/SimSignalComp.h>
16 #include <dpsim-models/Task.h>
29 std::shared_ptr<EMT::SimNode> mNode1, mNode2;
30 std::shared_ptr<EMT::Ph1::Resistor> mRes1, mRes2;
31 std::shared_ptr<EMT::Ph1::CurrentSource> mSrc1, mSrc2;
36 std::vector<Real> mVolt1, mVolt2, mCur1, mCur2;
41 Real interpolate(std::vector<Real> &data);
44 typedef std::shared_ptr<DecouplingLineEMT> Ptr;
54 void setParameters(SimNode<Real>::Ptr node1, SimNode<Real>::Ptr node2,
55 Real resistance, Real inductance, Real capacitance);
56 void initialize(Real omega, Real timeStep);
57 void step(Real time, Int timeStepCount);
59 Task::List getTasks();
60 IdentifiedObject::List getLineComponents();
65 :
Task(**line.
mName +
".MnaPreStep"), mLine(line) {
66 mPrevStepDependencies.push_back(mLine.
mStates);
67 mModifiedAttributes.push_back(mLine.mSrc1->mCurrentRef);
68 mModifiedAttributes.push_back(mLine.mSrc2->mCurrentRef);
71 void execute(Real time, Int timeStepCount);
80 :
Task(**line.
mName +
".PostStep"), mLine(line) {
81 mAttributeDependencies.push_back(mLine.mRes1->mIntfVoltage);
82 mAttributeDependencies.push_back(mLine.mRes1->mIntfCurrent);
83 mAttributeDependencies.push_back(mLine.mRes2->mIntfVoltage);
84 mAttributeDependencies.push_back(mLine.mRes2->mIntfCurrent);
85 mModifiedAttributes.push_back(mLine.
mStates);
88 void execute(Real time, Int timeStepCount);
const Attribute< String >::Ptr mName
Human readable name.
const Attribute< Matrix >::Ptr mStates
FIXME: workaround for dependency analysis as long as the states aren't attributes.
Tasks to be defined by every component.