DPsim
Loading...
Searching...
No Matches
DP_Ph3_SynchronGeneratorVBR_Deprecated.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
16
17namespace CPS {
18namespace DP {
19namespace Ph3 {
26class SynchronGeneratorVBR : public SimPowerComp<Complex>,
28 public MNAInterface,
29 public SharedFactory<SynchronGeneratorVBR> {
30
31protected:
36
41
42 //Real mThetaMech;
46
51
64
77
82
84 Matrix mDqStatorCurrents = Matrix::Zero(2, 1);
85
86 // ### Useful Matrices ###
88 Matrix mDInductanceMat = Matrix::Zero(3, 3);
90 Matrix R_load = Matrix::Zero(6, 6);
92 Matrix LD0 = Matrix::Zero(3, 3);
94 Matrix L_EQ = Matrix::Zero(6, 6);
96 Matrix R_EQ = Matrix::Zero(6, 6);
98 Matrix R_eq_DP = Matrix::Zero(6, 6);
100 Matrix E_eq_DP = Matrix::Zero(6, 1);
101
103 Matrix mIabc = Matrix::Zero(6, 1);
105 Matrix mDVabc = Matrix::Zero(6, 1);
107 Matrix mPsikq1kq2 = Matrix::Zero(2, 1);
109 Matrix mPsifdkd = Matrix::Zero(2, 1);
115 Matrix mKrs_teta = Matrix::Zero(3, 3);
117 Matrix mKrs_teta_inv = Matrix::Zero(3, 3);
118
120 Matrix mConductanceMat = Matrix::Zero(6, 6);
122 Matrix mISourceEq = Matrix::Zero(6, 1);
123
129 Matrix K1a = Matrix::Zero(2, 2);
130 Matrix K1b = Matrix::Zero(2, 1);
131 Matrix K1 = Matrix::Zero(2, 1);
132 Matrix K2a = Matrix::Zero(2, 2);
133 Matrix K2b = Matrix::Zero(2, 1);
134 Matrix K2 = Matrix::Zero(2, 1);
136 Matrix K = Matrix::Zero(3, 3);
137 Matrix E_r_vbr = Matrix::Zero(3, 1);
138 Matrix K_DP = Matrix::Zero(6, 6);
139
160
163
164 Matrix Ea = Matrix::Zero(2, 2);
165 Matrix E1b = Matrix::Zero(2, 1);
166 Matrix E1 = Matrix::Zero(2, 2);
167 Matrix Fa = Matrix::Zero(2, 2);
168 Matrix F1b = Matrix::Zero(2, 1);
169 Matrix F1 = Matrix::Zero(2, 2);
170 Matrix E2b = Matrix::Zero(2, 2);
171 Matrix E2 = Matrix::Zero(2, 2);
172 Matrix F2b = Matrix::Zero(2, 2);
173 Matrix F2 = Matrix::Zero(2, 2);
174 Matrix F3b = Matrix::Zero(2, 1);
175 Matrix F3 = Matrix::Zero(2, 2);
176 Matrix C26 = Matrix::Zero(2, 1);
177 Matrix A = Matrix::Zero(6, 6);
178 Matrix B = Matrix::Zero(6, 6);
179 Matrix Var1 = Matrix::Zero(6, 6);
180 Matrix Var2 = Matrix::Zero(6, 6);
181 Matrix mVabc = Matrix::Zero(6, 1);
182 Matrix E_r_vbr_DP = Matrix::Zero(6, 1);
183 Matrix E_r_vbr_DP2 = Matrix::Zero(6, 1);
184
185public:
189 SynchronGeneratorVBR(String name, Real nomPower, Real nomVolt, Real nomFreq,
190 Int poleNumber, Real nomFieldCur, Real Rs, Real Ll,
191 Real Lmd, Real Lmd0, Real Lmq, Real Lmq0, Real Rfd,
192 Real Llfd, Real Rkd, Real Llkd, Real Rkq1, Real Llkq1,
193 Real Rkq2, Real Llkq2, Real inertia,
194 Logger::Level logLevel = Logger::Level::off);
195
197 void addExciter(Real Ta, Real Ka, Real Te, Real Ke, Real Tf, Real Kf, Real Tr,
198 Real Lad, Real Rfd);
200 void addGovernor(Real Ta, Real Tb, Real Tc, Real Fa, Real Fb, Real Fc, Real K,
201 Real Tsr, Real Tsm, Real Tm_init, Real PmRef);
202
203 void initialize(Matrix frequencies) override {
205 }
206
208 void initialize(Real om, Real dt, Real initActivePower,
209 Real initReactivePower, Real initTerminalVolt,
210 Real initVoltAngle, Real initMechPower);
211
214 void mnaStep(Matrix &systemMatrix, Matrix &rightVector, Matrix &leftVector,
215 Real time);
216
219 void stepInPerUnit(Real om, Real dt, Real time, NumericalMethod numMethod);
220
222 void mnaCompPostStep(Matrix &rightVector, Matrix &leftVector, Real time);
223
225 Matrix abcToDq0Transform(Real theta, Real aRe, Real bRe, Real cRe, Real aIm,
226 Real bIm, Real cIm);
227
229 Matrix dq0ToAbcTransform(Real theta, Real d, Real q, Real zero);
230
231 void CalculateLandR(Real time, Real dt);
234
240};
241} // namespace Ph3
242} // namespace DP
243} // namespace CPS
Base synchronous generator model.
Real mBase_OmMech
base mechanical angular frequency
const Attribute< Real >::Ptr mOmMech
rotor speed omega_r
const Attribute< Real >::Ptr mElecTorque
electrical torque
void mnaCompPostStep(Matrix &rightVector, Matrix &leftVector, Real time)
Retrieves calculated voltage from simulation for next step.
Real mVaIm
Interface voltage phase a _ Imaginary part.
Matrix R_EQ
Equivalent stator resistance matrix.
Real mVbIm
Interface voltage phase b _ Imaginary part.
Real mPsimd
Magnetizing flux linkage in d axis.
Real mIbIm
Interface current phase b _ Imaginary part.
Matrix LD0
Constant part of equivalent stator inductance.
Real mIbRe
Interface current phase b _ Real part.
Real mIcIm
Interface current phase c _ Imaginary part.
Matrix R_eq_DP
Equivalent VBR resistance matrix.
Matrix E_eq_DP
Equivalent VBR voltage source vector.
void mnaStep(Matrix &systemMatrix, Matrix &rightVector, Matrix &leftVector, Real time)
Matrix mKrs_teta_inv
Inverse Park Transformation Matrix.
Real mIaRe
Interface current phase a _ Real part.
Real mVbRe
Interface voltage phase b _ Real part.
Real mVaRe
Interface voltage phase a _ Real part.
Matrix mConductanceMat
Equivalent Stator Conductance Matrix.
Real mVcRe
Interface voltage phase c _ Real part.
void stepInPerUnit(Real om, Real dt, Real time, NumericalMethod numMethod)
Real mIcRe
Interface current phase c _ Real part.
Real mIaIm
Interface current phase a _ Imaginary part.
Real mIq_hist
stator current in q axis (last time step)
Matrix dq0ToAbcTransform(Real theta, Real d, Real q, Real zero)
dq to abc
Matrix abcToDq0Transform(Real theta, Real aRe, Real bRe, Real cRe, Real aIm, Real bIm, Real cIm)
abc to dq
void addGovernor(Real Ta, Real Tb, Real Tc, Real Fa, Real Fb, Real Fc, Real K, Real Tsr, Real Tsm, Real Tm_init, Real PmRef)
Function to initialize Governor and Turbine.
void initialize(Matrix frequencies) override
Initialize components with correct network frequencies.
void addExciter(Real Ta, Real Ka, Real Te, Real Ke, Real Tf, Real Kf, Real Tr, Real Lad, Real Rfd)
Function to initialize Exciter.
Real mPsimq
Magnetizing flux linkage in q axis.
Matrix mISourceEq
Equivalent Stator Current Source.
Real mVcIm
Interface voltage phase c _ Imaginary part.
SynchronGeneratorVBR(String name, Real nomPower, Real nomVolt, Real nomFreq, Int poleNumber, Real nomFieldCur, Real Rs, Real Ll, Real Lmd, Real Lmd0, Real Lmq, Real Lmq0, Real Rfd, Real Llfd, Real Rkd, Real Llkd, Real Rkq1, Real Llkq1, Real Rkq2, Real Llkq2, Real inertia, Logger::Level logLevel=Logger::Level::off)
FIXME: SynchronGeneratorBase does not exist!
Matrix L_EQ
Equivalent stator inductance matrix.
Real mId_hist
stator current in d axis (last time step)
spdlog::level::level_enum Level
Definition Logger.h:33
Interface to be implemented by all models used by the MNA solver.
SimPowerComp(String uid, String name, Logger::Level logLevel=Logger::Level::off)
virtual void initialize(Matrix frequencies)
Initialize components with correct network frequencies.
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
NumericalMethod