FOC中的Clarke变换和Park变换详解(动图+推导+仿真+附件代码)
文章目录
1 前言
永磁同步电机是复杂的非线性系统,为了简化其数学模型,实现控制上的解耦,需要建立相应的坐标系变换,即Clark
变换和Park
变换。
2 自然坐标系ABC
三相永磁同步电机的驱动电路如下图所示;
根据图示电路可以发现在三相永磁同步电机的驱动电路中,三相逆变输出的三相电压为UAU_{A},UBU_{B},UCU_{C}将作用于电机,那么在三相平面静止坐标系ABC中,电压方程满足以下公式:
{UA=UmcosθeUB=Umcos(θe+2π3)UC=Umcos(θe−2π3)\begin{cases}U_{A} = U_{m}cos\theta_{e} \\
U_{B} = U_{m}cos(\theta_{e} + \cfrac{2\pi}{3}) \\
U_{C} = U_{m}cos(\theta_{e} – \cfrac{2\pi}{3}) \end{cases}
θe\theta_{e}为电角度
UmU_{m}为相电压基波峰值
所以根据上述公式可以发现,三相电压的大小是随时间变化的正弦波形,相位依次相差120°,具体如下图所示;
3 αβ\alpha\beta 坐标系
由静止三相坐标系ABCABC变换到静止坐标系αβ\alpha\beta的过程称之为Clarke变换;在αβ\alpha\beta静止坐标系中,α\alpha轴和β\beta轴的相位差为90°
,且αβ\alpha\beta的大小是随时间变化的正弦波形,具体如下图所示;
从自然坐标系ABCABC 变换到静止坐标系 αβ\alpha\beta,满足以下条件:
[fαfβf0]=T3s/2s∗[fAfBfC]\begin{bmatrix}
f_{\alpha} \\
f_{\beta} \\
f_{0}
\end{bmatrix} = T_{3s/2s}*\begin{bmatrix}
f_{A} \\
f_{B} \\
f_{C}
\end{bmatrix}
其中T3S/2ST_{3S/2S}为变换矩阵:
T3S/2S=N∗[1−12−12032−32222222]T_{3S/2S} = N*\begin{bmatrix}
1 &-\cfrac{1}{2} &-\cfrac{1}{2} \\
\\
0 &\cfrac{\sqrt{3}}{2} &-\cfrac{\sqrt{3}}{2} \\
\\
\cfrac{\sqrt{2}}{2} &\cfrac{\sqrt{2}}{2} &\cfrac{\sqrt{2}}{2} \end{bmatrix}
注意:NN为系数,做等幅值变换和等功率变换NN系数不同;
等幅值变换 N=23N =\cfrac{2}{3}
等功率变换 N=23N =\sqrt\cfrac{2}{3}
下面均为等幅值变换
3.1 Clarke变换
三相电流ABCABC分别为iAi_{A},iBi_{B},iCi_{C},根据基尔霍夫电流定律满足以下公式:
iA+iB+iC=0i_{A}+i_{B}+i_{C} = 0
静止坐标系αβ\alpha\beta,α\alpha轴的电流分量为iαi_{\alpha},iβi_{\beta},则Clark
变换满足以下公式:
iα=iAiβ=13∗iA+23∗iBi_{\alpha} = i_{A} \\
\\
i_{\beta} = \cfrac{1}{\sqrt{3}}*i_{A}+\cfrac{2}{\sqrt{3}}*i_{B}
在matlab
的simulink
仿真如下图所示;
最终得到三相电流iAi_{A},iBi_{B},iCi_{C}的仿真结果如下;
得到 αβ\alpha\beta 坐标的 iαi_{\alpha} 和 iβi_{\beta} 的仿真结果如下图所示;
由上述两张图分析可以得到,等幅值Clark
变换前后峰值不变,αβ\alpha\beta坐标系中iαi_{\alpha}和iβi_{\beta}相位相差90°。
3.2 Clarke反变换
暂略
Clarke
反变换的simulink
仿真如下图所示;
4 dqdq 坐标系
dqdq 坐标系相对与定子来说是旋转的坐标系,转速的角速度和转子旋转的角速度相同,所以,相当于转子来说,dqdq 坐标系就是静止的坐标系;而idi_{d}和iqi_{q}则是恒定不变的两个值,具体如下图所示;
根据物理结构,我们发现;
dd 轴方向与转子磁链方向重合,又叫直轴;
qq 轴方向与转子磁链方向垂直,又叫交轴;
dd轴和q轴q轴如下图所示;
4.1 Park变换
Park
变换的本质是静止坐标系αβ\alpha\beta乘以一个旋转矩阵,从而得到dqdq坐标系,其中满足以下条件:
[fdfq]=T2s/2r∗[fαfβ]\begin{bmatrix}
f_{d} \\
f_{q} \end{bmatrix} = T_{2s/2r}*\begin{bmatrix}
f_{\alpha} \\
f_{\beta}
\end{bmatrix}
其中T2s/2rT_{2s/2r}为旋转矩阵,所以,park变换和park反变换其根本就是旋转矩阵不同,T2s/2rT_{2s/2r}可以表示为:
T2s/2r=[cosθesinθe−sinθecosθe]T_{2s/2r} = \begin{bmatrix}
cos\theta_{e} & sin\theta_{e} \\
-sin\theta_{e} & cos\theta_{e}
\end{bmatrix}
T2s/2rT_{2s/2r} 含义为 2∗stator2*stator ==> 2∗rotor2*rotor
2轴定子坐标系转换到2轴转子坐标系
由上式可以得到:
{id=iα∗cosθ+iβ∗sinθiq=−iα∗sinθ+iβ∗cosθ\begin{cases}i_{d}=i_{\alpha}*cos\theta+i_{\beta}*sin\theta \\
i_{q}=-i_{\alpha}*sin\theta+i_{\beta}*cos\theta\end{cases}
其中simulink
仿真如下图所示;
作为输入的 iαi_{\alpha} 和 iβi_{\beta},仿真波形如下图所示;
最终经过Park
变换得到idi_{d}和iqi_{q}如下图所示;
可以看到,idi_{d}和iqi_{q}是恒定值,所以Park变换也叫做交直变换,由输入的交流量,最终变换到相对与转子坐标的直流量。
在实际写FOC
的过程中对于这块变换产生了一个疑问;这里再区分一下正转和反转的情况,以此来说明一下Id
和Iq
的实际中的作用;
下面先规定一个方向为反转;
正转
通常,大部分书籍以及论文中的正转输入的三相波形如下:
{UA=UmcosθeUB=Umcos(θe−2π3)UC=Umcos(θe+2π3)\begin{cases}U_{A} = U_{m}cos\theta_{e} \\
U_{B} = U_{m}cos(\theta_{e} – \cfrac{2\pi}{3}) \\
U_{C} = U_{m}cos(\theta_{e} + \cfrac{2\pi}{3}) \end{cases}
反转
{UA=UmcosθeUB=Umcos(θe+2π3)UC=Umcos(θe−2π3)\begin{cases}U_{A} = U_{m}cos\theta_{e} \\
U_{B} = U_{m}cos(\theta_{e} + \cfrac{2\pi}{3}) \\
U_{C} = U_{m}cos(\theta_{e} – \cfrac{2\pi}{3}) \end{cases}
4.2 Park反变换
Park反变换又叫直交变换,由dqdq轴的直流量,最终变换到αβ\alpha\beta的交流量,其中满足变换条件如下:
[fdfq]=T2r/2s∗[fαfβ]\begin{bmatrix}
f_{d} \\
f_{q} \\
\end{bmatrix} = T_{2r/2s}*\begin{bmatrix} f_{\alpha} \\
f_{\beta} \\
\end{bmatrix}
其中T2s/2rT_{2s/2r}为Park
变换的逆矩阵,所以,存在条件:
T2r/2s=T2r/2s−1=[cosθe−sinθesinθecosθe]T_{2r/2s} = T_{2r/2s}^{-1} = \begin{bmatrix}
cos\theta_{e} & -sin\theta_{e} \\
sin\theta_{e} & cos\theta_{e} \\
\end{bmatrix}
最终由上式可以得到:
{iα=id∗cosθ−iq∗sinθiβ=id∗sinθ+iq∗cosθ\begin{cases}i_{\alpha}=i_{d}*cos\theta-i_{q}*sin\theta \\
i_{\beta}=i_{d}*sin\theta+i_{q}*cos\theta\end{cases}
仿真暂略。
5 程序实现
坐标变换的C程序主要基于TI的IQMATH
库进行实现,详情已经提交到附件。
如何使用这个库可以参考《STM32 使用IQmath实现SVPWM》
附件
链接:https://pan.baidu.com/s/1s2qU5wA2LMSmed51q-Jayw
提取码:irm2