DPsim
DP_Ph1_ResIndSeries.h
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 
11 #include <dpsim-models/Base/Base_Ph1_Inductor.h>
12 #include <dpsim-models/MNASimPowerComp.h>
13 
14 namespace CPS {
15 namespace DP {
16 namespace Ph1 {
19  public MNASimPowerComp<Complex>,
20  public SharedFactory<ResIndSeries> {
21 protected:
23  MatrixComp mEquivCurrent;
25  MatrixComp mEquivCond;
27  MatrixComp mPrevCurrFac;
28 
29 public:
35  ResIndSeries(String uid, String name,
36  Logger::Level logLevel = Logger::Level::off);
38  ResIndSeries(String name, Logger::Level logLevel = Logger::Level::off)
39  : Inductor(name, name, logLevel) {}
40 
41  // #### General ####
43  void setParameters(Real resistance, Real inductance);
45  SimPowerComp<Complex>::Ptr clone(String name);
47  void initialize(Matrix frequencies);
49  void initializeFromNodesAndTerminals(Real frequency);
50 
51  // #### MNA section ####
53  void mnaCompInitialize(Real omega, Real timeStep,
54  Attribute<Matrix>::Ptr leftVector);
56  void mnaCompApplySystemMatrixStamp(SparseMatrixRow &systemMatrix);
58  void mnaCompApplyRightSideVectorStamp(Matrix &rightVector);
60  void mnaCompUpdateVoltage(const Matrix &leftVector);
62  void mnaCompUpdateCurrent();
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
76  mnaCompAddPostStepDependencies(AttributeBase::List &prevStepDependencies,
77  AttributeBase::List &attributeDependencies,
78  AttributeBase::List &modifiedAttributes,
79  Attribute<Matrix>::Ptr &leftVector) override;
80 };
81 } // namespace Ph1
82 } // namespace DP
83 } // namespace CPS
resistor inductor series element
const Attribute< Real >::Ptr mInductance
Inductance [H].
void initialize(Matrix frequencies)
Initializes state variables considering the number of frequencies.
void mnaCompInitialize(Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector)
Initializes MNA specific variables.
void mnaCompAddPostStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) override
Add MNA post step dependencies.
void mnaCompApplyRightSideVectorStamp(Matrix &rightVector)
Stamps right side (source) vector.
void mnaCompApplySystemMatrixStamp(SparseMatrixRow &systemMatrix)
Stamps system matrix.
void mnaCompAddPreStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) override
Add MNA pre step dependencies.
ResIndSeries(String name, Logger::Level logLevel=Logger::Level::off)
Defines name and log level.
void initializeFromNodesAndTerminals(Real frequency)
Initializes states from power flow data.
const Attribute< Real >::Ptr mResistance
Resistance [ohm].
MatrixComp mEquivCurrent
DC equivalent current source for harmonics [A].
void mnaCompUpdateVoltage(const Matrix &leftVector)
Update interface voltage from MNA system results.
void setParameters(Real resistance, Real inductance)
Sets model specific parameters.
ResIndSeries(String uid, String name, Logger::Level logLevel=Logger::Level::off)
Defines UID, name and log level.
SimPowerComp< Complex >::Ptr clone(String name)
Return new instance with the same parameters.
MatrixComp mPrevCurrFac
Coefficient in front of previous current value for harmonics.
MatrixComp mEquivCond
Equivalent conductance for harmonics [S].
void mnaCompUpdateCurrent()
Update interface current from MNA system results.
String uid()
Returns unique id.
Base class for all MNA components that are transmitting power.
Base class for all components that are transmitting power.
Definition: SimPowerComp.h:17