9#include <dpsim-models/MathUtils.h>
10#include <dpsim-models/Signal/Exciter.h>
14Signal::Exciter::Exciter(
const String &name, CPS::Logger::Level logLevel)
15 : SimSignalComp(name, name, logLevel),
24 Real Kf, Real Tr, Real maxVr, Real minVr) {
35 SPDLOG_LOGGER_INFO(
mSLog,
36 "Exciter parameters: \n"
44 "\nMaximum regulator Voltage: {:e}"
45 "\nMinimum regulator Voltage: {:e}\n",
46 mTa, mKa, mTe, mKe, mTf, mKf, mTr, mMaxVr, mMinVr);
51 SPDLOG_LOGGER_INFO(
mSLog,
52 "Initially set excitation system initial values: \n"
53 "Vh_init: {:e}\nEf_init: {:e}\n",
60 **
mVse = **
mEf * (0.33 * exp(0.1 * abs(**
mEf)));
69 else if (**
mVr < mMinVr)
72 mVref = **
mVr / mKa + **
mVm;
73 SPDLOG_LOGGER_INFO(
mSLog,
74 "Actually applied excitation system initial values:"
86 **
mVh = sqrt(pow(mVd, 2.) + pow(mVq, 2.));
97 **
mVm = Math::StateSpaceEuler(mVm_prev, -1 / mTr, 1 / mTr, dt, **
mVh);
100 **
mVse = mEf_prev * (0.33 * exp(0.1 * abs(mEf_prev)));
101 **
mVis = Math::StateSpaceEuler(mVis_prev, -1 / mTf, -mKf / mTf / mTf, dt,
106 Math::StateSpaceEuler(mVr_prev, -1 / mTa, mKa / mTa, dt,
107 mVref - **
mVm - mVis_prev - mKf / mTf * mEf_prev);
110 else if (**
mVr < mMinVr)
114 **
mEf = Math::StateSpaceEuler(mEf_prev, -mKe / mTe, 1. / mTe, dt,
AttributeList::Ptr mAttributes
Attribute List.
const Attribute< Real >::Ptr mEf
Exciter output at time k (induced emf by the field current under no-load conditions)
const Attribute< Real >::Ptr mVis
Output of stablizing feedback at time k.
void setParameters(Real Ta, Real Ka, Real Te, Real Ke, Real Tf, Real Kf, Real Tr, Real maxVr=1.0, Real minVr=-0.9)
Initializes exciter parameters.
const Attribute< Real >::Ptr mVm
Output of voltage transducer at time k-1.
Real step(Real mVd, Real mVq, Real dt)
Performs an step to update field voltage value.
const Attribute< Real >::Ptr mVse
Output of ceiling function at time k-1.
void initialize(Real Vh_init, Real Vf_init)
Initializes exciter variables.
const Attribute< Real >::Ptr mVr
Regulator output at time k.
const Attribute< Real >::Ptr mVh
Input of voltage transducer.
Logger::Log mSLog
Component logger.