/* * SignalDecomposeFIV.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "SYSCTRL/SignalDecomposeFIV.h" namespace SYSCTRL { //CONSTRUCTOR SignalDecomposeFIV::SignalDecomposeFIV(): SYSCTRL::SignalDecompose(), m_projection_filter_active(), m_projection_filter_reactive(), _execute(&SYSCTRL::SignalDecomposeFIV::_execute_undef) // {}//CONSTRUCTOR void SignalDecomposeFIV::setup(float time_sample) { m_time_sample = time_sample; m_projection_filter_active.setup(m_time_sample); m_projection_filter_reactive.setup(m_time_sample); // }// // void SignalDecomposeFIV::configure(const SignalDecomposeFIVConfiguration& config) { m_projection_filter_active.configure(config.projection_filter); m_projection_filter_reactive.configure(config.projection_filter); // if((m_time_sample > FP_ZERO) && (config.projection_filter.time > m_time_sample)) { _execute = &SYSCTRL::SignalDecomposeFIV::_execute_operational; // }//if // }// // #pragma CODE_SECTION("ramfuncs"); void SignalDecomposeFIV::reset() { m_projection_active = FP_ZERO; m_projection_reactive = FP_ZERO; m_projection_filter_active.reset(); m_projection_filter_reactive.reset(); // }// // #pragma CODE_SECTION("ramfuncs"); void SignalDecomposeFIV::get_outputs(float& projection_active, float& projection_reactive) { projection_active = m_projection_active; projection_reactive = m_projection_reactive; // }// // #pragma CODE_SECTION("ramfuncs"); void SignalDecomposeFIV::execute(float reference, float ort_cos, float ort_sin) { (this->*_execute)(reference, ort_cos, ort_sin); // }// // void SignalDecomposeFIV::_execute_undef(float reference, float ort_cos, float ort_sin) { // }// // #pragma CODE_SECTION("ramfuncs"); void SignalDecomposeFIV::_execute_operational(float reference, float ort_cos, float ort_sin) { // m_projection_active = m_projection_filter_active.execute(1.4142 * reference * ort_cos); // m_projection_reactive = m_projection_filter_reactive.execute(-(1.4142 * reference * ort_sin)); // }// // } /* namespace SYSCTRL */