You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.6 KiB
C

/*
* AlgoritmStart.h
*
* Author: Aleksey Gerasimenko
* gerasimenko.aleksey.n@gmail.com
*/
#include <math.h>
#include <stdint.h>
#ifndef SYSCTRL_ALGORITMPRESTART_H_
#define SYSCTRL_ALGORITMPRESTART_H_
#include "SYSCTRL/AlgorithmBase.h"
#include "SYSCTRL/HeadersFLTSYSLIB.h"
namespace SYSCTRL
{
class AlgorithmStart: public SYSCTRL::AlgorithmBase
{
private:
SYSCTRL::SystemEnvironment& m_env;
#if TYPECONTROL == VECTORCONTROL
private:
float m_reference_zero;
float m_reference_current_cell_direct;
float m_reference_current_cell_quadrature;
#endif
#if TYPECONTROL == DIRECTREVERSECONTROL
float m_reference_zero;
float m_reference_current_cell_direct;
float m_reference_current_cell_quadrature;
#endif
public:
AlgorithmStart(SYSCTRL::SystemEnvironment& env);
public:
void setup();
public:
void reset();
public:
void execute();
private:
void (AlgorithmStart::*_execute)();
void _execute_run();
#if TYPECONTROL == SCALARCONTROL
private:
inline void _execute_single_phase(SYSCTRL::AlgorithmStartSinglePhaseControl& phase,
SYSCTRL::VectorOrthogonalProjection& orts,
float dc_voltage_reciprocal,
FLTSYSLIB::PIController& referencer_active,
FLTSYSLIB::PIController& referencer_reactive,
FLTSYSLIB::PIController& regulator_active,
FLTSYSLIB::PIController& regulator_reactive);
#endif
//
};//AlgoritmPrestart
} /* namespace SYSCTRL */
#endif /* SYSCTRL_ALGORITMPRESTART_H_ */