首先建立坐标系
图1
a,b,c三相相差120°相位。
令:
Ua = Um*cos(wt);
Ub = Um*cos(wt - 2*pi/3);
Uc = Um*cos(wt + 2*pi/3);
simulink实现:新建文件夹,matlab工作路径更新到该文件夹,新建.m脚本文件定义一些变量,保存后运行。再新建simulink工程(在terminal直接输入“simulink”或者点击状态栏中的simulink),先保存空白工程,路径保持与.m文件一致这样simulink就可以调用.m文件里面定义的一些变量。
.m脚本文件:
simulink添加三相信号源,位于sources下:
双击编辑属性
幅值输入.m文件里面的Um,Freq为w_t,phase为相位偏移,a为0,b为-2*pi/3,c为2*pi/3;
scope查看:
Clark(3-2)变换:
根据图1矢量分解有:
Ualpha = (1*Ua- 1/2*Ub - 1/2*Uc)*2/3;
Ubeta = (0*a + sqrt(3)/2*b - sqrt(3)/2*c)*2/3;
(2/3为等幅变换系数不加这个系数alpha与转换前的a的幅值就不一样,还有一种系数为sqrt(2/3)称为等功率变换)
scope查看:
输出啊两相幅值与三相幅值相同,频率相同都为50hz,两相相位差90°,实现了3-2变换。
Park变换:
根据图1矢量分解有:
Ud = Ualpha*cos(theta) + Ubeta*sin(theta);
Uq = -Ualpha*sin(theta) + beta*cos(theta);
theta = w_t *t;
simulink添加时间线clock;
scope查看:
信号从三相旋转到两相旋转再到两相静止,实现从旋转两相到静止两相变换。
但是为什么Uq=-Um呢?仔细分析发现,根据图1坐标和三相信号定义,实际上我们默认定义了一种情况:三相定子电压顺时针旋转(根据三相相位判断),而转子逆时针旋转(根据dq轴相位判断),此时电机工作在发电机模式。
实际上总共会有四种情况,即:
定子三相顺时针旋转时:
Ua = Um*cos(wt);
Ub = Um*cos(wt - 2*pi/3);
Uc = Um*cos(wt + 2*pi/3);
定子三相逆时针旋转时:
Ua = Um*cos(wt);
Ub = Um*cos(wt +2*pi/3);
Uc = Um*cos(wt - 2*pi/3);
当定子和转子方向相同时电机工作在电动模式(1、4);转向相反时工作在发电模式(2、3)。
发电模式时Uq=-Um,电动模式时Uq=Um;
选定上述工况1:
iPark变换:
Ualpha = Uq*sin(theta)+Ud*cos(theta);
Ubeta = Ud*sin(theta) - Uq*cos(theta);
iClark变换:
Ua = Ualpha;
Ub = Ubeta*sqrt(3)/2 - Ualpha*1/2;
Uc = -Ubeta*sqrt(3)/2 - Ualpha*1/2;
所有的变换simulink实现:
需注意的几个点:
1、坐标轴的定义,即上述四种工况,先定工况再变换,不同工况下的变换公式有区别;
2、simulink正弦信号实际为sin函数,而我们定义的信号为cos,这个没有影响,因为cos只是与sin有pi/2的相位偏移,三相全偏移就等效没有偏移。
3、3-2变换中有等幅或等功率变换系数。
源文件下载:simulink_foc_conv.rar-其它文档类资源-CSDN下载