CSI-DSP  Version 1.0.0
CSI DSP Software Library
函数
Clarke变换

函数

void csky_clarke_f32 (float32_t Ia, float32_t Ib, float32_t *pIalpha, float32_t *pIbeta)
 浮点clarke变换 更多...
 
void csky_clarke_q31 (q31_t Ia, q31_t Ib, q31_t *pIalpha, q31_t *pIbeta)
 Q31 clarke变换 更多...
 

简要说明

正向clarke变换将瞬时定子相转换为时间不变的双坐标向量,即把abc坐标转换为αβ坐标。 一般,clarke变换使用当前的三相 Ia, Ib 和 Ic 来计算当前的 两相正交定子轴 IalphaIbeta. 当 Ialpha 如下图叠加在 Ia 上时:

clarke.gif
定子电流空间矢量及其分量 (a,b).

因为 Ia + Ib + Ic = 0, 所以 IalphaIbeta 可以只用IaIb计算出.

函数一次处理一个单独样本,每次调用直接返回处理结果。 为Q31和浮点数据类型分别提供了不同的函数。

算法
clarkeFormula.gif
其中 IaIb 是瞬时定子相, pIalphapIbeta 是时间不变的两个两相坐标向量。
定点行为
使用Q31版本clarke变换函数需要注意。 特别是要考虑,在每个函数内使用的累加器的溢出和饱和行为。 具体参考每个函数各自的文档和使用说明。

函数说明

void csky_clarke_f32 ( float32_t  Ia,
float32_t  Ib,
float32_t pIalpha,
float32_t pIbeta 
)
参数
[in]Ia输入的三相坐标 a
[in]Ib输入的三相坐标 b
[out]pIalpha指向输出的两相正交矢量轴 alpha
[out]pIbeta指向输出的两相正交矢量轴 beta
void csky_clarke_q31 ( q31_t  Ia,
q31_t  Ib,
q31_t pIalpha,
q31_t pIbeta 
)
参数
[in]Ia输入的三相坐标 a
[in]Ib输入的三相坐标 b
[out]pIalpha指向输出的两相正交矢量轴 alpha
[out]pIbeta指向输出的两相正交矢量轴 beta

缩放和溢出行为:

函数实现使用了一个内部32位累加器. 累加器维持1.31格式,丢弃中间乘法结果2.62格式的低32位。 相加用的是饱和计算,所以不会溢出。