SensorlessFOCMotorControlLibrary  1.0
Data Structures | Macros | Enumerations | Functions
mcLib.h File Reference

Detailed Description

Motor Control Library Module.


Overview

defines motor control algorithm APIs


#include "iqTrig.h"
#include <ti/iqmath/include/IQmathLib.h>
#include "IQmath_mathacl.h"
#include "stdint.h"
#include "main.h"
Include dependency graph for mcLib.h:
This graph shows which files directly or indirectly include this file:

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...
 

Enumeration Type Documentation

§ MC_PHASE_TYPES

Phase types.

Enumerator
PHASE_INVALID 

Invalid phase

PHASE_A 

A phase

PHASE_B 

B phase

PHASE_C 

C phase

§ MC_SECTOR_TYPES

Sector types.

Enumerator
SECTOR_INVALID 

Invalid sector

SECTOR_1 

Sector 1

SECTOR_2 

Sector 2

SECTOR_3 

Sector 3

SECTOR_4 

Sector 4

SECTOR_5 

Sector 5

SECTOR_6 

Sector 6

§ SVM_GENERATOR_TYPES

SVM generation types.

Enumerator
SVM_CONTINUOUS 

Continuous SVM

SVM_DISCONTINUOUS 

Discontinuous SVM

Function Documentation

§ MC_ClarkeTransformNoZeroSeq()

void MC_ClarkeTransformNoZeroSeq ( MC_ALPHABETA_T pAlphaBeta,
const MC_ABC_T pABC 
)

Clark transform no zero sequence.

Parameters
[in]pAlphaBetaPointer to alpha beta structure
[in]pABCPointer 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.

§ MC_ClarkeTransform()

void MC_ClarkeTransform ( MC_ALPHABETA_T pAlphaBeta,
const MC_ABC_T pABC 
)

Clark transform.

Parameters
[in]pAlphaBetaPointer to alpha beta structure
[in]pABCPointer 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.

§ MC_SVM_ClarkeTransform()

void MC_SVM_ClarkeTransform ( MC_ALPHABETA_T pAlphaBeta,
const MC_ABC_T pABC 
)

SVM Clark transform no zero sequence.

Parameters
[in]pAlphaBetaPointer to alpha beta structure
[in]pABCPointer 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.

§ MC_InverseClarkeTransform()

void MC_InverseClarkeTransform ( MC_ABC_T pABC,
const MC_ALPHABETA_T pAlphaBeta 
)

Inverse Clark transform no zero sequence.

Parameters
[in]pABCPointer to 3 phase structure
[in]pAlphaBetaPointer 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.

§ MC_ParkTransform()

void MC_ParkTransform ( MC_DQ_T pDQ,
const MC_ALPHABETA_T pAlphaBeta,
const MC_SINCOS_T pSinCos 
)

Park transform no zero sequence.

Parameters
[in]pDQPointer to DQ structure
[in]pAlphaBetaPointer to alpha beta structure
[in]pSinCosPointer 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.

§ MC_InverseParkTransform()

void MC_InverseParkTransform ( MC_ALPHABETA_T pAlphaBeta,
const MC_DQ_T pDQ,
const MC_SINCOS_T pSinCos 
)

Inverse park transform no zero sequence.

Parameters
[in]pAlphaBetaPointer to alpha beta structure
[in]pDQPointer to DQ structure
[in]pSinCosPointer 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.

§ MC_SinCos()

void MC_SinCos ( MC_SINCOS_T pSinCos,
const int32_t  angle 
)

Sine cosine of angle.

Parameters
[in]pSinCosPointer to sine cosine structure
[in]angleAngle input

References MC_SINCOS_T::cos, cosine(), MC_SINCOS_T::sin, and sine().

§ MC_SpaceVectorGen()

void MC_SpaceVectorGen ( MC_SVM_T pSVM,
MC_ABC_T pMabc 
)

§ MC_AngleSectorGen()

void MC_AngleSectorGen ( MC_SVM_T pSVM,
const MC_SINCOS_T pSinCos,
const int32_t  velocity 
)

Sector from sine cosine and velocity.

Parameters
[in]pSVMPointer to SVM structure
[in]pSinCosPointer to sine cosine structure
[in]velocityVelocity

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.

© Copyright 1995-2024, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale