![]() |
![]() |
SensorlessFOCMotorControlLibrary
1.0
|
#include "iqTrig.h"
#include <ti/iqmath/include/IQmathLib.h>
#include "IQmath_mathacl.h"
#include "stdint.h"
#include "main.h"
Go to the source code of this file.
Data Structures | |
struct | MC_ABC_T |
ABC 3 phase structure. More... | |
struct | MC_ALPHABETA_T |
Alpha Beta structure. More... | |
struct | MC_DQ_T |
DQ structure. More... | |
struct | MC_SINCOS_T |
Sine cosine structure. More... | |
struct | MC_SVM_T |
SVM structure. More... | |
Macros | |
#define | ONE_BY_THREE _IQ(1.0/3.0) |
1/3 in IQ | |
#define | TWO_BY_THREE _IQ(2.0/3.0) |
2/3 in IQ | |
#define | ONE_BY_SQRT_THREE _IQ(0.57735026918963) |
1/sqrt(3) in IQ | |
#define | TWO_BY_SQRT_THREE _IQmpy2(ONE_BY_SQRT_THREE) |
2/sqrt(3) in IQ | |
#define | SQRT_THREE_BY_TWO _IQ(0.866025403784439) |
sqrt(3)/2 in IQ | |
#define | ONE_BY_TWO _IQ(0.5) |
1/2 in IQ | |
#define | SQRT_THREE _IQ(1.732050808) |
sqrt(3) in IQ | |
Enumerations | |
enum | MC_PHASE_TYPES { PHASE_INVALID = 0, PHASE_A = 1, PHASE_B = 2, PHASE_C = 3 } |
Phase types. More... | |
enum | MC_SECTOR_TYPES { SECTOR_INVALID = 0, SECTOR_1 = 1, SECTOR_2 = 2, SECTOR_3 = 3, SECTOR_4 = 4, SECTOR_5 = 5, SECTOR_6 = 6 } |
Sector types. More... | |
enum | SVM_GENERATOR_TYPES { SVM_CONTINUOUS = 0, SVM_DISCONTINUOUS = 1 } |
SVM generation types. More... | |
Functions | |
void | MC_ClarkeTransformNoZeroSeq (MC_ALPHABETA_T *pAlphaBeta, const MC_ABC_T *pABC) |
Clark transform no zero sequence. More... | |
void | MC_ClarkeTransform (MC_ALPHABETA_T *pAlphaBeta, const MC_ABC_T *pABC) |
Clark transform. More... | |
void | MC_SVM_ClarkeTransform (MC_ALPHABETA_T *pAlphaBeta, const MC_ABC_T *pABC) |
SVM Clark transform no zero sequence. More... | |
void | MC_InverseClarkeTransform (MC_ABC_T *pABC, const MC_ALPHABETA_T *pAlphaBeta) |
Inverse Clark transform no zero sequence. More... | |
void | MC_ParkTransform (MC_DQ_T *pDQ, const MC_ALPHABETA_T *pAlphaBeta, const MC_SINCOS_T *pSinCos) |
Park transform no zero sequence. More... | |
void | MC_InverseParkTransform (MC_ALPHABETA_T *pAlphaBeta, const MC_DQ_T *pDQ, const MC_SINCOS_T *pSinCos) |
Inverse park transform no zero sequence. More... | |
void | MC_SinCos (MC_SINCOS_T *pSinCos, const int32_t angle) |
Sine cosine of angle. More... | |
void | MC_SpaceVectorGen (MC_SVM_T *pSVM, MC_ABC_T *pMabc) |
Space vector generation. More... | |
void | MC_AngleSectorGen (MC_SVM_T *pSVM, const MC_SINCOS_T *pSinCos, const int32_t velocity) |
Sector from sine cosine and velocity. More... | |
enum MC_PHASE_TYPES |
enum MC_SECTOR_TYPES |
enum SVM_GENERATOR_TYPES |
void MC_ClarkeTransformNoZeroSeq | ( | MC_ALPHABETA_T * | pAlphaBeta, |
const MC_ABC_T * | pABC | ||
) |
Clark transform no zero sequence.
[in] | pAlphaBeta | Pointer to alpha beta structure |
[in] | pABC | Pointer to 3 phase structure |
References _IQmpy_mathacl, MC_ABC_T::a, MC_ALPHABETA_T::alpha, MC_ABC_T::b, MC_ALPHABETA_T::beta, MC_ABC_T::c, and ONE_BY_SQRT_THREE.
void MC_ClarkeTransform | ( | MC_ALPHABETA_T * | pAlphaBeta, |
const MC_ABC_T * | pABC | ||
) |
Clark transform.
[in] | pAlphaBeta | Pointer to alpha beta structure |
[in] | pABC | Pointer to 3 phase structure |
References _IQmpy_mathacl, MC_ABC_T::a, MC_ALPHABETA_T::alpha, MC_ABC_T::b, MC_ALPHABETA_T::beta, MC_ABC_T::c, ONE_BY_SQRT_THREE, and ONE_BY_THREE.
void MC_SVM_ClarkeTransform | ( | MC_ALPHABETA_T * | pAlphaBeta, |
const MC_ABC_T * | pABC | ||
) |
SVM Clark transform no zero sequence.
[in] | pAlphaBeta | Pointer to alpha beta structure |
[in] | pABC | Pointer to 3 phase structure |
References _IQmpy_mathacl, MC_ABC_T::a, MC_ALPHABETA_T::alpha, MC_ABC_T::b, MC_ALPHABETA_T::beta, MC_ABC_T::c, and ONE_BY_SQRT_THREE.
void MC_InverseClarkeTransform | ( | MC_ABC_T * | pABC, |
const MC_ALPHABETA_T * | pAlphaBeta | ||
) |
Inverse Clark transform no zero sequence.
[in] | pABC | Pointer to 3 phase structure |
[in] | pAlphaBeta | Pointer to alpha beta structure |
References _IQmpy_mathacl, MC_ABC_T::a, MC_ALPHABETA_T::alpha, MC_ABC_T::b, MC_ALPHABETA_T::beta, MC_ABC_T::c, and SQRT_THREE_BY_TWO.
void MC_ParkTransform | ( | MC_DQ_T * | pDQ, |
const MC_ALPHABETA_T * | pAlphaBeta, | ||
const MC_SINCOS_T * | pSinCos | ||
) |
Park transform no zero sequence.
[in] | pDQ | Pointer to DQ structure |
[in] | pAlphaBeta | Pointer to alpha beta structure |
[in] | pSinCos | Pointer to sine cosine structure |
References _IQmpy_mathacl, MC_ALPHABETA_T::alpha, MC_ALPHABETA_T::beta, MC_SINCOS_T::cos, MC_DQ_T::d, MC_DQ_T::q, and MC_SINCOS_T::sin.
void MC_InverseParkTransform | ( | MC_ALPHABETA_T * | pAlphaBeta, |
const MC_DQ_T * | pDQ, | ||
const MC_SINCOS_T * | pSinCos | ||
) |
Inverse park transform no zero sequence.
[in] | pAlphaBeta | Pointer to alpha beta structure |
[in] | pDQ | Pointer to DQ structure |
[in] | pSinCos | Pointer to sine cosine structure |
References _IQmpy_mathacl, MC_ALPHABETA_T::alpha, MC_ALPHABETA_T::beta, MC_SINCOS_T::cos, MC_DQ_T::d, MC_DQ_T::q, and MC_SINCOS_T::sin.
void MC_SinCos | ( | MC_SINCOS_T * | pSinCos, |
const int32_t | angle | ||
) |
Sine cosine of angle.
[in] | pSinCos | Pointer to sine cosine structure |
[in] | angle | Angle input |
References MC_SINCOS_T::cos, cosine(), MC_SINCOS_T::sin, and sine().
Space vector generation.
[in] | pSVM | Pointer to SVM structure |
[in] | pMabc | Pointer to 3 phase modulation index structure |
References _IQmpy_mathacl, MC_ABC_T::a, MC_ABC_T::b, MC_ABC_T::c, MC_SVM_T::Dabc, MC_SVM_T::maxDutyPhase, MC_SVM_T::minDuty, MC_SVM_T::minDutyDisCont, MC_SVM_T::minDutyPhase, ONE_BY_SQRT_THREE, ONE_BY_TWO, PHASE_A, PHASE_B, PHASE_C, SECTOR_1, SECTOR_2, SECTOR_3, SECTOR_4, SECTOR_5, SECTOR_6, SVM_CONTINUOUS, SVM_DISCONTINUOUS, MC_SVM_T::svmGen, and MC_SVM_T::voltageSector.
void MC_AngleSectorGen | ( | MC_SVM_T * | pSVM, |
const MC_SINCOS_T * | pSinCos, | ||
const int32_t | velocity | ||
) |
Sector from sine cosine and velocity.
[in] | pSVM | Pointer to SVM structure |
[in] | pSinCos | Pointer to sine cosine structure |
[in] | velocity | Velocity |
References MC_SVM_T::angleSector, MC_SINCOS_T::cos, SECTOR_1, SECTOR_2, SECTOR_3, SECTOR_4, SECTOR_5, SECTOR_6, SECTOR_INVALID, and MC_SINCOS_T::sin.