DPsim
Loading...
Searching...
No Matches
VCO.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Institute for Automation of Complex Power Systems, EONERC, RWTH Aachen University
2// SPDX-License-Identifier: MPL-2.0
3
4#pragma once
5
6#include <vector>
7
9#include <dpsim-models/Task.h>
10
11namespace CPS {
12namespace Signal {
13class VCO : public SimSignalComp, public SharedFactory<VCO> {
14
15protected:
20
21public:
36
37 VCO(String name, Logger::Level logLevel = Logger::Level::off);
39 void setParameters(Real omegaNom);
41 void setSimulationParameters(Real timestep);
43 void setInitialValues(Real input_init, Real state_init, Real output_init);
45 void signalPreStep(Real time, Int timeStepCount);
47 void signalStep(Real time, Int timeStepCount);
49 void signalAddPreStepDependencies(AttributeBase::List &prevStepDependencies,
50 AttributeBase::List &attributeDependencies,
51 AttributeBase::List &modifiedAttributes);
53 void signalAddStepDependencies(AttributeBase::List &prevStepDependencies,
54 AttributeBase::List &attributeDependencies,
55 AttributeBase::List &modifiedAttributes);
56
58
59 class PreStep : public Task {
60 public:
61 PreStep(VCO &VCO) : Task(**VCO.mName + ".PreStep"), mVCO(VCO) {
62 mVCO.signalAddPreStepDependencies(
64 }
65 void execute(Real time, Int timeStepCount) {
66 mVCO.signalPreStep(time, timeStepCount);
67 };
68
69 private:
70 VCO &mVCO;
71 };
72
73 class Step : public Task {
74 public:
75 Step(VCO &VCO) : Task(**VCO.mName + ".Step"), mVCO(VCO) {
76 mVCO.signalAddStepDependencies(
78 }
79 void execute(Real time, Int timeStepCount) {
80 mVCO.signalStep(time, timeStepCount);
81 };
82
83 private:
84 VCO &mVCO;
85 };
86};
87} // namespace Signal
88} // namespace CPS
std::vector< Ptr > List
Definition Attribute.h:123
AttributePointer< Attribute< T > > Ptr
Definition Attribute.h:250
spdlog::level::level_enum Level
Definition Logger.h:33
PreStep(VCO &VCO)
Definition VCO.h:61
void execute(Real time, Int timeStepCount)
Definition VCO.h:65
void execute(Real time, Int timeStepCount)
Definition VCO.h:79
Step(VCO &VCO)
Definition VCO.h:75
Real mOmegaNom
Nominal frequency (Input)
Definition VCO.h:17
void signalPreStep(Real time, Int timeStepCount)
pre step operations
Definition VCO.cpp:56
void signalAddPreStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes)
pre step dependencies
Definition VCO.cpp:46
const Attribute< Real >::Ptr mInputPrev
Previous Input.
Definition VCO.h:25
VCO(String name, Logger::Level logLevel=Logger::Level::off)
Definition VCO.cpp:9
const Attribute< Real >::Ptr mOutputPrev
Previous Output.
Definition VCO.h:33
void setParameters(Real omegaNom)
Setter for VCO parameters.
Definition VCO.cpp:19
void signalAddStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes)
add step dependencies
Definition VCO.cpp:62
void setInitialValues(Real input_init, Real state_init, Real output_init)
Setter for initial values.
Definition VCO.cpp:34
const Attribute< Real >::Ptr mOutputCurr
Current Output.
Definition VCO.h:35
const Attribute< Real >::Ptr mInputRef
Input reference which comes as measurement from outside of the class.
Definition VCO.h:23
const Attribute< Real >::Ptr mInputCurr
Current Input.
Definition VCO.h:27
Task::List getTasks()
Definition VCO.cpp:87
void signalStep(Real time, Int timeStepCount)
step operations
Definition VCO.cpp:70
void setSimulationParameters(Real timestep)
Setter for simulation parameters.
Definition VCO.cpp:29
const Attribute< Real >::Ptr mStateCurr
Current State.
Definition VCO.h:31
const Attribute< Real >::Ptr mStatePrev
Previous State.
Definition VCO.h:29
Real mTimeStep
Integration time step.
Definition VCO.h:19
SimSignalComp(String uid, String name, Logger::Level logLevel=Logger::Level::off)
std::vector< AttributeBase::Ptr > mModifiedAttributes
Definition Task.h:53
std::vector< AttributeBase::Ptr > mPrevStepDependencies
Definition Task.h:54
std::vector< AttributeBase::Ptr > mAttributeDependencies
Definition Task.h:52
Task()
Definition Task.h:30
std::vector< Ptr > List
Definition Task.h:28
std::string mName
Definition Task.h:51
std::string String
Definition Definitions.h:65
double Real
Definition Definitions.h:62
int Int
Definition Definitions.h:61