13#include <dpsim-models/SimPowerComp.h>
14#include <dpsim-models/SimSignalComp.h>
15#include <dpsim-models/Task.h>
19class Integrator :
public SimSignalComp,
public SharedFactory<Integrator> {
42 Integrator(String name, Logger::Level logLevel = Logger::Level::off);
53 AttributeBase::List &attributeDependencies,
54 AttributeBase::List &modifiedAttributes);
57 AttributeBase::List &attributeDependencies,
58 AttributeBase::List &modifiedAttributes);
60 Task::List getTasks();
62 class PreStep :
public Task {
64 PreStep(Integrator &integrator)
65 : Task(**integrator.
mName +
".PreStep"), mIntegrator(integrator) {
66 mIntegrator.signalAddPreStepDependencies(
67 mPrevStepDependencies, mAttributeDependencies, mModifiedAttributes);
69 void execute(Real time, Int timeStepCount) {
70 mIntegrator.signalPreStep(time, timeStepCount);
74 Integrator &mIntegrator;
77 class Step :
public Task {
79 Step(Integrator &integrator)
80 : Task(**integrator.
mName +
".Step"), mIntegrator(integrator) {
81 mIntegrator.signalAddStepDependencies(
82 mPrevStepDependencies, mAttributeDependencies, mModifiedAttributes);
84 void execute(Real time, Int timeStepCount) {
85 mIntegrator.signalStep(time, timeStepCount);
89 Integrator &mIntegrator;
const Attribute< String >::Ptr mName
Human readable name.
void setParameters(Real timestep)
Setter for integration step parameter.
const Attribute< Real >::Ptr mInputRef
This is never explicitely set to reference anything, so the outside code is responsible for setting u...
const Attribute< Real >::Ptr mOutputCurr
Current Output.
const Attribute< Real >::Ptr mOutputPrev
Previous Output.
Real mTimeStep
Integration time step.
const Attribute< Real >::Ptr mStateCurr
Current State.
void signalAddStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes)
add step dependencies
void signalPreStep(Real time, Int timeStepCount)
pre step operations
const Attribute< Real >::Ptr mInputPrev
Previous Input.
void setInitialValues(Real input_init, Real state_init, Real output_init)
Setter for initial values.
void signalAddPreStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes)
pre step dependencies
const Attribute< Real >::Ptr mStatePrev
Previous State.
void signalStep(Real time, Int timeStepCount)
step operations
const Attribute< Real >::Ptr mInputCurr
Current Input.