/* * AlgorithmWorkEntry.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "SYSCTRL/AlgorithmWorkEntry.h" namespace SYSCTRL { //CONSTRUCTOR AlgorithmWorkEntry::AlgorithmWorkEntry(SYSCTRL::SystemEnvironment& env): SYSCTRL::AlgorithmBase(), m_env(env), _execute(&SYSCTRL::AlgorithmWorkEntry::_execute_undef) {}//CONSTRUCTOR void AlgorithmWorkEntry::setup() { _execute = &SYSCTRL::AlgorithmWorkEntry::_execute_run; // }// #pragma CODE_SECTION("ramfuncs"); void AlgorithmWorkEntry::reset() { }// // #pragma CODE_SECTION("ramfuncs"); void AlgorithmWorkEntry::execute() { (this->*_execute)(); // }// // #pragma CODE_SECTION("ramfuncs"); bool AlgorithmWorkEntry::compare_mode(mode_t mode) { return m_mode == mode; // }// // #pragma CODE_SECTION("ramfuncs"); void AlgorithmWorkEntry::set_mode(mode_t mode) { m_mode = mode; // }// // #if TYPECONTROL == DIRECTREVERSECONTROL #pragma CODE_SECTION("ramfuncs"); void AlgorithmWorkEntry::_execute_run() { m_env.hardware.ref_control_order = ORDER_START; // m_env.timer_stop.execute(); // if(m_env.timer_stop.is_finished()){ // m_voltage_a = FP_ZERO; m_voltage_b = FP_ZERO; m_voltage_c = FP_ZERO; // }else{ // m_env.drc_voltage_reference_load_direct = m_env.drc_reference_voltage_direct_intensity.execute(m_env.drc_voltage_grid_direct); m_env.drc_voltage_reference_load_quadrature = FP_ZERO; // m_env.drc_positive_voltage_cell_direct = m_env.drc_positive_voltage_controller_direct.execute(m_env.drc_voltage_reference_load_direct, m_env.drc_positive_voltage_load_direct); m_env.drc_positive_voltage_cell_quadrature = FP_ZERO; m_env.drc_negative_voltage_cell_direct = FP_ZERO; m_env.drc_negative_voltage_cell_quadrature = FP_ZERO; m_env.drc_negative_voltage_cell_alpha = FP_ZERO; m_env.drc_negative_voltage_cell_beta = FP_ZERO; m_env.drc_negative_voltage_cell_a = FP_ZERO; m_env.drc_negative_voltage_cell_b = FP_ZERO; m_env.drc_negative_voltage_cell_c = FP_ZERO; // FLTSYSLIB::Transformation::park_inverse(m_env.main_ab_orts.active, m_env.main_ab_orts.reactive, m_env.drc_positive_voltage_cell_direct, m_env.drc_positive_voltage_cell_quadrature, m_env.drc_positive_voltage_cell_alpha, m_env.drc_positive_voltage_cell_beta); // FLTSYSLIB::Transformation::clarke_inverse(m_env.drc_positive_voltage_cell_alpha, m_env.drc_positive_voltage_cell_beta, m_env.drc_positive_voltage_cell_a, m_env.drc_positive_voltage_cell_b, m_env.drc_positive_voltage_cell_c); // m_env.drc_voltage_cell_a = m_env.drc_positive_voltage_cell_a; m_env.drc_voltage_cell_b = m_env.drc_positive_voltage_cell_b; m_env.drc_voltage_cell_c = m_env.drc_positive_voltage_cell_c; // m_voltage_a = m_env.drc_voltage_cell_a * m_env.cell_dc_voltage_a_reciprocal; m_voltage_b = m_env.drc_voltage_cell_b * m_env.cell_dc_voltage_b_reciprocal; m_voltage_c = m_env.drc_voltage_cell_c * m_env.cell_dc_voltage_c_reciprocal; // }//if else // }// #endif } /* namespace SYSCTRL */