AM243x Motor Control SDK  09.01.00
APIs for Transformation Algorithms

Introduction

Here is the list of motor transformation function APIs

Files

file  clarke.h
 Contains abc to alpha/beta/0 transform implementation.
 
file  park.h
 Contains alpha/beta/0 to d/q/0 transform implementation.
 
file  ipark.h
 Contains d/q/0 to alpha/beta/0 transform implementation.
 
file  svgen.h
 Contains svpwm generation implementation.
 

Functions

static void CLARKE_run_threeInput (const float32_t inIa, const float32_t inIb, const float32_t inIc, float32_t *pIalpha, float32_t *pIbeta)
 Runs the Clarke transform module for three inputs. More...
 
static void CLARKE_run_twoInput (const float32_t inIa, const float32_t inIb, float32_t *pIalpha, float32_t *pIbeta)
 Runs the Clarke transform module for two inputs. More...
 
static void PARK_run (const float32_t sinTh, const float32_t cosTh, const float32_t inIalpha, const float32_t inIbeta, float32_t *pId, float32_t *pIq)
 Runs the Park transform module. More...
 
static void IPARK_run (const float32_t sinTh, const float32_t cosTh, const float32_t inVd, const float32_t inVq, float32_t *pValpha, float32_t *pVbeta)
 Runs the inverse Park transform module. More...
 
static void SVGEN_runCom (const float32_t oneOverDcBus_invV, const float32_t inValpha, const float32_t inVbeta, float32_t *pVa, float32_t *pVb, float32_t *pVc)
 Implements a SVM that subtracts common-mode term to achieve SV modulation. More...
 
static void SVGEN_runMax (const float32_t oneOverDcBus_invV, const float32_t inValpha, const float32_t inVbeta, float32_t *pVa, float32_t *pVb, float32_t *pVc)
 Implements a DPWM that uses maximum modulation. More...
 
static void SVGEN_runMin (const float32_t oneOverDcBus_invV, const float32_t inValpha, const float32_t inVbeta, float32_t *pVa, float32_t *pVb, float32_t *pVc)
 Implements a DPWM that uses minimum modulation. More...
 
static void SVGEN_clamp (const float32_t Umax, const float32_t Umin, float32_t *pVa, float32_t *pVb, float32_t *pVc)
 Saturates the SVM variable base on modulation limits. More...
 

Typedefs

typedef float float32_t
 
typedef float float32_t
 
typedef float float32_t
 
typedef float float32_t
 

Macros

#define ONE_OVER_THREE   0.33333333333333f
 
#define ONE_OVER_SQRT_THREE   0.57735026918963f
 
#define SQRT_THREE_OVER_TWO   0.8660254037844f
 
#define TWO_OVER_SQRT_THREE   1.15470053837926f
 

Macro Definition Documentation

◆ ONE_OVER_THREE

#define ONE_OVER_THREE   0.33333333333333f

◆ ONE_OVER_SQRT_THREE

#define ONE_OVER_SQRT_THREE   0.57735026918963f

◆ SQRT_THREE_OVER_TWO

#define SQRT_THREE_OVER_TWO   0.8660254037844f

◆ TWO_OVER_SQRT_THREE

#define TWO_OVER_SQRT_THREE   1.15470053837926f

Typedef Documentation

◆ float32_t [1/4]

typedef float float32_t

◆ float32_t [2/4]

typedef float float32_t

◆ float32_t [3/4]

typedef float float32_t

◆ float32_t [4/4]

typedef float float32_t

Function Documentation

◆ CLARKE_run_threeInput()

static void CLARKE_run_threeInput ( const float32_t  inIa,
const float32_t  inIb,
const float32_t  inIc,
float32_t pIalpha,
float32_t pIbeta 
)
static

Runs the Clarke transform module for three inputs.

Parameters
[in]inIaInput current value in a-axis
[in]inIbInput current value in b-axis
[in]inIcInput current value in c-axis
[in]pIalphaOutput pointer to current value in alpha-axis
[in]pIbetaOutput pointer to current value in beta-axis

◆ CLARKE_run_twoInput()

static void CLARKE_run_twoInput ( const float32_t  inIa,
const float32_t  inIb,
float32_t pIalpha,
float32_t pIbeta 
)
static

Runs the Clarke transform module for two inputs.

Parameters
[in]inIaInput current value in a-axis
[in]inIbInput current value in b-axis
[in]pIalphaOutput pointer to current value in alpha-axis
[in]pIbetaOutput pointer to current value in beta-axis

◆ PARK_run()

static void PARK_run ( const float32_t  sinTh,
const float32_t  cosTh,
const float32_t  inIalpha,
const float32_t  inIbeta,
float32_t pId,
float32_t pIq 
)
static

Runs the Park transform module.

Parameters
[in]sinThSine value in radians
[in]cosThCosine value in radians
[in]inIalphaInput current value in alpha-axis
[in]inIbetaInput current value in beta-axis
[in]pIdOutput pointer to voltage value in d-axis
[in]pIqOutput pointer to voltage value in q-axis

◆ IPARK_run()

static void IPARK_run ( const float32_t  sinTh,
const float32_t  cosTh,
const float32_t  inVd,
const float32_t  inVq,
float32_t pValpha,
float32_t pVbeta 
)
static

Runs the inverse Park transform module.

Parameters
[in]sinThSine value in radian
[in]cosThCosine value in radian
[in]inVdInput voltage value in d-axis
[in]inVqInput voltage value in q-axis
[in]pValphaOutput pointer to voltage value in alpha-axis
[in]pVbetaOutput pointer to voltage value in beta-axis

◆ SVGEN_runCom()

static void SVGEN_runCom ( const float32_t  oneOverDcBus_invV,
const float32_t  inValpha,
const float32_t  inVbeta,
float32_t pVa,
float32_t pVb,
float32_t pVc 
)
static

Implements a SVM that subtracts common-mode term to achieve SV modulation.

Parameters
[in]oneOverDcBus_invVThe inverse dc bus voltage scale factor, used to convert inputs to pu, use 1 if units are already in pu.
[in]inValphaInput voltage value in alpha-axis, V or pu
[in]inVbetaInput voltage value in beta-axis, V or pu
[in]pVaOutput pointer to voltage value in a-axis, pu
[in]pVbOutput pointer to voltage value in b-axis, pu
[in]pVcOutput pointer to voltage value in c-axis, pu

◆ SVGEN_runMax()

static void SVGEN_runMax ( const float32_t  oneOverDcBus_invV,
const float32_t  inValpha,
const float32_t  inVbeta,
float32_t pVa,
float32_t pVb,
float32_t pVc 
)
static

Implements a DPWM that uses maximum modulation.

Parameters
[in]oneOverDcBus_invVThe inverse dc bus voltage scale factor, used to convert inputs to pu, use 1 if units are already in pu.
[in]inValphaInput voltage value in alpha-axis, V or pu
[in]inVbetaInput voltage value in beta-axis, V or pu
[in]pVaOutput pointer to voltage value in a-axis, pu
[in]pVbOutput pointer to voltage value in b-axis, pu
[in]pVcOutput pointer to voltage value in c-axis, pu

◆ SVGEN_runMin()

static void SVGEN_runMin ( const float32_t  oneOverDcBus_invV,
const float32_t  inValpha,
const float32_t  inVbeta,
float32_t pVa,
float32_t pVb,
float32_t pVc 
)
static

Implements a DPWM that uses minimum modulation.

Parameters
[in]oneOverDcBus_invVThe inverse dc bus voltage scale factor, used to convert inputs to pu, use 1 if units are already in pu.
[in]inValphaInput voltage value in alpha-axis, V or pu
[in]inVbetaInput voltage value in beta-axis, V or pu
[in]pVaOutput pointer to voltage value in a-axis, pu
[in]pVbOutput pointer to voltage value in b-axis, pu
[in]pVcOutput pointer to voltage value in c-axis, pu

◆ SVGEN_clamp()

static void SVGEN_clamp ( const float32_t  Umax,
const float32_t  Umin,
float32_t pVa,
float32_t pVb,
float32_t pVc 
)
static

Saturates the SVM variable base on modulation limits.

Parameters
[in]UmaxMaximum modulation limit
[in]UminMinimum modulation limit
[in]pVapointer to voltage value in a-axis
[in]pVbpointer to voltage value in b-axis
[in]pVcpointer to voltage value in c-axis