10#include <dpsim-models/MNASimPowerComp.h>
11#include <dpsim-models/Signal/CosineFMGenerator.h>
12#include <dpsim-models/Signal/FrequencyRampGenerator.h>
13#include <dpsim-models/Signal/SignalGenerator.h>
14#include <dpsim-models/Signal/SineWaveGenerator.h>
15#include <dpsim-models/Solver/MNAInterface.h>
28 CPS::Signal::SignalGenerator::Ptr mSrcSig;
32 void updateCurrent(Real time);
35 const Attribute<MatrixComp>::Ptr mCurrentRef;
36 const Attribute<Real>::Ptr mSrcFreq;
37 const Attribute<Complex>::Ptr mSigOut;
41 Logger::Level logLevel = Logger::Level::off);
43 CurrentSource(String name, Logger::Level logLevel = Logger::Level::off)
46 SimPowerComp<Real>::Ptr
clone(String name)
override;
51 void setParameters(MatrixComp currentRef, Real srcFreq = 50.0);
54 Real timeStart, Real duration,
bool smoothRamp =
true);
57 Real modulationAmplitude, Real baseFrequency = 50.0,
63 Attribute<Matrix>::Ptr leftVector)
override;
72 Attribute<Matrix>::Ptr &leftVector)
override;
75 AttributeBase::List &prevStepDependencies,
76 AttributeBase::List &attributeDependencies,
77 AttributeBase::List &modifiedAttributes)
override;
81 AttributeBase::List &attributeDependencies,
82 AttributeBase::List &modifiedAttributes,
83 Attribute<Matrix>::Ptr &leftVector)
override;
void mnaCompUpdateVoltage(const Matrix &leftVector) override
Returns voltage through the component.
CurrentSource(String uid, String name, Logger::Level logLevel=Logger::Level::off)
Defines UID, name and logging level.
void setParameters(MatrixComp currentRef, Real srcFreq=50.0)
Setter for reference current.
void setParameters(MatrixComp currentRef, Real modulationFrequency, Real modulationAmplitude, Real baseFrequency=50.0, bool zigzag=false)
Setter for reference signal of type cosine frequency modulation.
void setParameters(MatrixComp currentRef, Real freqStart, Real rocof, Real timeStart, Real duration, bool smoothRamp=true)
Setter for reference signal of type frequency ramp.
void mnaCompApplyRightSideVectorStamp(Matrix &rightVector) override
Stamps right side (source) vector.
void initializeFromNodesAndTerminals(Real frequency) override
Initializes component from power flow data.
void mnaCompAddPostStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) override
Add MNA post step dependencies.
void mnaCompAddPreStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) override
Add MNA pre step dependencies.
SimPowerComp< Real >::Ptr clone(String name) override
Returns a modified copy of the component with the given suffix added to the name and without.
void mnaCompInitialize(Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector) override
Initializes internal variables of the component.
void mnaCompPreStep(Real time, Int timeStepCount) override
MNA pre step operations.
void mnaCompPostStep(Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) override
MNA post step operations.
String uid()
Returns unique id.
MNASimPowerComp(String uid, String name, Bool hasPreStep, Bool hasPostStep, Logger::Level logLevel)