DPsim
Loading...
Searching...
No Matches
DP_Ph3_Capacitor.h
Go to the documentation of this file.
1/* Copyright 2017-2021 Institute for Automation of Complex Power Systems,
2 * EONERC, RWTH Aachen University
3 *
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 *********************************************************************************/
8
9#pragma once
10
14
15namespace CPS {
16namespace DP {
17namespace Ph3 {
25class Capacitor : public MNASimPowerComp<Complex>,
27 public SharedFactory<Capacitor> {
28protected:
30 MatrixComp mEquivCurrent = Matrix::Zero(3, 1);
32 MatrixComp mEquivCond = Matrix::Zero(3, 1);
36 void initVars(Real omega, Real timeStep);
37
38public:
41 Logger::Level logLevel = Logger::Level::off);
43 Capacitor(String name, Logger::Level logLevel = Logger::Level::off)
44 : Capacitor(name, name, logLevel) {}
45
47
48 // #### General ####
50 void initializeFromNodesAndTerminals(Real frequency) override;
51 // #### MNA section ####
53 void mnaCompInitialize(Real omega, Real timeStep,
54 Attribute<Matrix>::Ptr leftVector) override;
56 void mnaCompApplySystemMatrixStamp(SparseMatrixRow &systemMatrix) override;
58 void mnaCompApplyRightSideVectorStamp(Matrix &rightVector) override;
60 void mnaCompUpdateVoltage(const Matrix &leftVector) override;
62 void mnaCompUpdateCurrent(const Matrix &leftVector) override;
63
64 void mnaCompPreStep(Real time, Int timeStepCount) override;
65 void mnaCompPostStep(Real time, Int timeStepCount,
66 Attribute<Matrix>::Ptr &leftVector) override;
67
70 AttributeBase::List &prevStepDependencies,
71 AttributeBase::List &attributeDependencies,
72 AttributeBase::List &modifiedAttributes) override;
73
75 void
77 AttributeBase::List &attributeDependencies,
78 AttributeBase::List &modifiedAttributes,
79 Attribute<Matrix>::Ptr &leftVector) override;
80};
81} // namespace Ph3
82} // namespace DP
83} // namespace CPS
std::vector< Ptr > List
Definition Attribute.h:123
AttributePointer< Attribute< T > > Ptr
Definition Attribute.h:250
void mnaCompApplySystemMatrixStamp(SparseMatrixRow &systemMatrix) override
Stamps system matrix.
Capacitor(String uid, String name, Logger::Level logLevel=Logger::Level::off)
Defines UID, name and logging level.
void mnaCompInitialize(Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector) override
Initializes internal variables of the component.
void mnaCompUpdateVoltage(const Matrix &leftVector) override
Update interface voltage from MNA system result.
void mnaCompUpdateCurrent(const Matrix &leftVector) override
Update interface current from MNA system result.
void mnaCompPostStep(Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) override
SimPowerComp< Complex >::Ptr clone(String name) override
Returns a modified copy of the component with the given suffix added to the name and without.
void mnaCompAddPreStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) override
Add MNA pre step dependencies.
MatrixComp mEquivCond
Equivalent conductance [S].
Capacitor(String name, Logger::Level logLevel=Logger::Level::off)
Defines name, component parameters and logging level.
void initializeFromNodesAndTerminals(Real frequency) override
Initializes component from power flow data.
MatrixComp mPrevVoltCoeff
Coefficient in front of previous voltage value.
void mnaCompPreStep(Real time, Int timeStepCount) override
void mnaCompApplyRightSideVectorStamp(Matrix &rightVector) override
Stamps right side (source) vector.
void mnaCompAddPostStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) override
Add MNA post step dependencies.
void initVars(Real omega, Real timeStep)
init resistive companion model of capacitor
MatrixComp mEquivCurrent
DC equivalent current source [A].
String uid()
Returns unique id.
spdlog::level::level_enum Level
Definition Logger.h:33
MNASimPowerComp(String uid, String name, Bool hasPreStep, Bool hasPostStep, Logger::Level logLevel)
std::shared_ptr< SimPowerComp< VarType > > Ptr
Eigen::Matrix< Real, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor > Matrix
Dense matrix for real numbers.
Definition Definitions.h:81
std::string String
Definition Definitions.h:65
double Real
Definition Definitions.h:62
int Int
Definition Definitions.h:61
Eigen::Matrix< Complex, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor > MatrixComp
Dense matrix for complex numbers.
Definition Definitions.h:84
Eigen::SparseMatrix< Real, Eigen::RowMajor > SparseMatrixRow
Sparse matrix for real numbers (row major).
Definition Definitions.h:74