问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

FOC中的Clark变换理论推导与Simulink仿真详解

创作时间:
作者:
@小白创作中心

FOC中的Clark变换理论推导与Simulink仿真详解

引用
CSDN
1.
https://blog.csdn.net/qq_63623974/article/details/141782988

Clark变换是FOC(Field-Oriented Control)中将复杂的三相系统解耦成可以独立控制的两相系统的关键步骤。本文将从理论推导出发,详细解释Clark变换的过程,并通过Simulink仿真验证其正确性。

1:理论推导

1-1:目的

将复杂的三相系统(在abc坐标系中)解耦成可以独立控制的两相系统,从而降低控制的复杂度。

1-2:推导过程

利用三角函数来实现三相坐标系(abc)到两相正交坐标系(αβ)的转换。已知三相系统中的三相电流(Ia Ib Ic是幅值一样,频率一样,相位互差120度),且根据基尔霍夫电流定律,流入流出节点的电流代数和为0,即Ia + Ib + Ic = 0。

对于α轴,规定α为正方向,la与α轴重合,Ib,Ic与α轴负方向的夹角为60°,投影到上面的分量就是Ib * cos60°和Ic * cos60°。所以Iα = Ia - cos60° * (Ic + Ib)。

对于β轴,Ia与β轴垂直(cos90°),所以在β轴不存在Ia的分量。只有Ib * cos30°和Ic * cos30°,因此Iβ = cos30° * (Ib - Ic)。

经过上面的操作得到:
Iα = Ia - 1/2 * (Ic + Ib)
Iβ = sqrt(3) / 2(Ib - Ic)

又因为Ia + Ib + Ic = 0,将Ic = -(Ia + Ib)带入得到:
Iα = 3 / 2 * Ia
Iβ = sqrt(3) /2 * (Ia + 2 * Ib)

因为是基于等幅值的变换,所以Iα和Iβ要乘以一个系数2/3。这个系数会在SVPWM中乘回来,不会对控制有什么影响,乘以这个系数是为了确保变换前后信号的幅值不变。

乘2/3后:
Iα = Ia
Iβ = sqrt(3) /3 * (Ia + 2Ib)

以上就是Clark变换的理论部分,接下来进行Simulink仿真。

2:Simulink模型搭建

2-1:添加信号源

在Simulink中添加Sine wave模块,具体信号源设置如下:保持幅值(1A),频率一致(50HZ),且相位互差120°。添加一个Scope模块查看产生的三相电流。

发出来的三相波形如上,验证了幅值(1A),频率一致(50HZ),且相位互差120°的三相电流。

2-2:公式编写 + 验证

在Simulink中添加MATLAB Function1模块,双击MATLAB Function1进入编辑器,输入以下代码:

function [I_alpha , I_beta] = fcn(Ia , Ib , Ic)
I_alpha = (Ia - 1/2 * (Ic + Ib)) * 2/3;
I_beta =  sqrt(3)/2 * (Ib - Ic)* 2/3;

仿真后的波形就从最开始的三相变为两相,变换后的波形幅值和频率不变,相位互差90°。

如果把2/3这个系数去掉:

function [I_alpha , I_beta] = fcn(Ia , Ib , Ic)
I_alpha = (Ia - 1/2 * (Ic + Ib));
I_beta =  sqrt(3)/2 * (Ib - Ic);

去掉系数后,经过Clark变换后的波形幅值就会变为原来的1.5倍,变换前后幅值发送了变化,就不是等幅值变化了。

这里Clark变换的公式用了Ia Ib Ic三个变量:

function [I_alpha , I_beta] = fcn(Ia , Ib , Ic)
I_alpha = (Ia - 1/2 * (Ic + Ib)) * 2/3;
I_beta =  sqrt(3)/2 * (Ib - Ic)* 2/3;

当然也可以采用上面推导的,都是一样的,就是把Ic = -(Ia + Ib)带入做抵消了:

function [I_alpha , I_beta] = fcn(Ia , Ib)
I_alpha =  Ia;
I_beta = sqrt(3) /3  * (Ia + 2*Ib);

至此,已经将Clark变换的推导和仿真验证完。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号