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.
124 lines
2.5 KiB
C
124 lines
2.5 KiB
C
5 months ago
|
/*
|
||
|
* GeneratorSymmetricalComponents.h
|
||
|
*
|
||
|
* Author: Aleksey Gerasimenko
|
||
|
* gerasimenko.aleksey.n@gmail.com
|
||
|
*/
|
||
|
|
||
|
#ifndef SYSCTRL_GENERATORSYMMETRICALCOMPONENTS_H_
|
||
|
#define SYSCTRL_GENERATORSYMMETRICALCOMPONENTS_H_
|
||
|
|
||
|
|
||
|
#include <math.h>
|
||
|
#include <stdint.h>
|
||
|
|
||
|
|
||
|
//#include "SYSCTRL/HeadersFLTSYSLIB.h"
|
||
|
#include "FLTSYSLIB/Transformation.h"
|
||
|
|
||
|
namespace SYSCTRL
|
||
|
{
|
||
|
|
||
|
|
||
|
|
||
|
struct GeneratorPhase
|
||
|
{
|
||
|
float phase;
|
||
|
float cos_phase;
|
||
|
float sin_phase;
|
||
|
GeneratorPhase():
|
||
|
phase(FP_ZERO),
|
||
|
cos_phase(FP_ZERO),
|
||
|
sin_phase(FP_ZERO)
|
||
|
{}
|
||
|
};//GeneratorPhase
|
||
|
|
||
|
struct GeneratorSymmetricalComponentsPhase
|
||
|
{
|
||
|
GeneratorPhase direct;
|
||
|
GeneratorPhase inverse;
|
||
|
GeneratorSymmetricalComponentsPhase():
|
||
|
direct(),
|
||
|
inverse()
|
||
|
{}
|
||
|
};//GeneratorSymmetricalComponentsPhase
|
||
|
|
||
|
|
||
|
struct GeneratorAmplitude
|
||
|
{
|
||
|
float d;
|
||
|
float q;
|
||
|
GeneratorAmplitude():
|
||
|
d(FP_ZERO),
|
||
|
q(FP_ZERO)
|
||
|
{}
|
||
|
};//GeneratorAmplitude
|
||
|
|
||
|
|
||
|
struct GeneratorSymmetricalComponentsAmplitude
|
||
|
{
|
||
|
GeneratorAmplitude direct;
|
||
|
GeneratorAmplitude inverse;
|
||
|
float zero_a;
|
||
|
float zero_b;
|
||
|
float zero_c;
|
||
|
GeneratorSymmetricalComponentsAmplitude():
|
||
|
direct(),
|
||
|
inverse(),
|
||
|
zero_a(FP_ZERO),
|
||
|
zero_b(FP_ZERO),
|
||
|
zero_c(FP_ZERO)
|
||
|
{}
|
||
|
};//GeneratorSymmetricalComponentsAmplitude
|
||
|
|
||
|
|
||
|
struct GeneratorSymmetricalComponentsConfiguration
|
||
|
{
|
||
|
GeneratorSymmetricalComponentsAmplitude amplitude;
|
||
|
GeneratorSymmetricalComponentsPhase phase;
|
||
|
GeneratorSymmetricalComponentsConfiguration():
|
||
|
amplitude(),
|
||
|
phase()
|
||
|
{}
|
||
|
};//GeneratorSymmetricalComponentsConfiguration
|
||
|
|
||
|
|
||
|
class GeneratorSymmetricalComponents
|
||
|
{
|
||
|
private:
|
||
|
GeneratorSymmetricalComponentsAmplitude m_amplitude;
|
||
|
GeneratorSymmetricalComponentsPhase m_phase;
|
||
|
private:
|
||
|
float m_ort_direct_alpha;
|
||
|
float m_ort_direct_beta;
|
||
|
float m_ort_inverse_alpha;
|
||
|
float m_ort_inverse_beta;
|
||
|
private:
|
||
|
float m_direct_alpha;
|
||
|
float m_direct_beta;
|
||
|
float m_inverse_alpha;
|
||
|
float m_inverse_beta;
|
||
|
private:
|
||
|
float m_direct_a;
|
||
|
float m_direct_b;
|
||
|
float m_direct_c;
|
||
|
float m_inverse_a;
|
||
|
float m_inverse_b;
|
||
|
float m_inverse_c;
|
||
|
private:
|
||
|
float m_out_a;
|
||
|
float m_out_b;
|
||
|
float m_out_c;
|
||
|
public:
|
||
|
GeneratorSymmetricalComponents();
|
||
|
public:
|
||
|
void configure(GeneratorSymmetricalComponentsConfiguration& config);
|
||
|
public:
|
||
|
void execute(float ort_alpha, float ort_beta);
|
||
|
void get_output(float& out_a, float& out_b, float& out_c);
|
||
|
};//GeneratorSymmetricalComponents
|
||
|
|
||
|
} /* namespace SYSCTRL */
|
||
|
|
||
|
#endif /* SYSCTRL_GENERATORSYMMETRICALCOMPONENTS_H_ */
|