4#include <dpsim-models/Signal/ExciterST1Simp.h>
9 CPS::Logger::Level logLevel)
10 : SimSignalComp(name, name, logLevel) {}
13 std::shared_ptr<Base::ExciterParameters> parameters) {
16 std::dynamic_pointer_cast<Signal::ExciterST1Parameters>(parameters)) {
19 if (mParameters->Tr == 0) {
20 SPDLOG_LOGGER_ERROR(
mSLog,
"ExciterST1Simp: Tr must be non-zero (used as "
21 "divisor in voltage transducer)");
24 if (mParameters->Ka == 0) {
26 mSLog,
"ExciterST1Simp: Ka must be non-zero (used as divisor "
27 "when computing initial voltage reference)");
31 SPDLOG_LOGGER_INFO(
mSLog,
32 "Exciter ST1Simp parameters:"
35 mParameters->Tr, mParameters->Ka);
38 mSLog,
"Type of parameters class of {} has to be ExciterST1Simp!",
49 SPDLOG_LOGGER_INFO(
mSLog,
50 "Initially set excitation system initial values:"
59 mVref = mVr - mEf / mParameters->Ka;
61 SPDLOG_LOGGER_INFO(
mSLog,
62 "Actually applied excitation system initial values:"
71 mVh = sqrt(pow(Vd, 2.) + pow(Vq, 2.));
79 mVr = mVr_prev + dt / mParameters->Tr * (mVh - mVr_prev);
82 mEf = (mVr + Vpss - mVref) * mParameters->Ka;
void initializeStates(Real Vh_init, Real Vf_init) final
Initializes exciter variables.
Real step(Real Vd, Real Vq, Real dt, Real Vpss=0) final
Performs an step to update field voltage value.
ExciterST1Simp(const String &name, Logger::Level logLevel=Logger::Level::info)
Constructor.
void setParameters(std::shared_ptr< Base::ExciterParameters > parameters) final
Initializes exciter parameters.
Logger::Log mSLog
Component logger.