计算条件
主要是以隐极感应电机为例,以隐极机为例是因为隐极机的气隙是均匀的,所以定子方绕组之间的互感是相同的(均为-1/2ms,其中ms为两相绕组“重合”时候的互感,也是两绕组之间最大的互感,又ms=sqrt(L1L2),所以ms=L1=L2,L1和L2为两线圈的电感)。在最后结果中,转子方有运动电势,所以转子方的表达式中有x_w(角速度)。下面代码中的L1和L2并不是线圈的电感,而是线圈的漏感,代码中ms才是线圈的电感,定子方绕组之间的互感为cos(PI*2/3)ms(即-1/2ms)。
源代码
clc
clear
syms x x_w Rs Rr Ls Ms Lr ms Mr L1 L2 Mrs ids iqs i0s idr iqr i0r ids_temp iqs_temp i0s_temp idr_temp iqr_temp i0r_temp t P
x=int(x_w,t);%角度等于角速度的积分,x为角度,x_w为角速度
Lr=ms+L2;
Ls=ms+L1;
Ms=-1/2*ms;
Mr=-1/2*ms;
Mrs=ms;
ids_temp=str2sym('id_s(t)');
iqs_temp=str2sym('iq_s(t)');
i0s_temp=str2sym('i0_s(t)');
idr_temp=str2sym('id_r(t)');
iqr_temp=str2sym('iq_r(t)');
i0r_temp=str2sym('i0_r(t)');
Cr_ABC2ab=sqrt(2/3)*[1 -0.5 -0.5;
0 sqrt(3)/2 -sqrt(3)/2;
1/sqrt(2) 1/sqrt(2) 1/sqrt(2)];
Cr_ab2dq=[cos(x) -sin(x) 0;
sin(x) cos(x) 0;
0 0 1];
Cs_ABC2dq=Cr_ABC2ab;
Cr_ABC2dq=Cr_ab2dq*Cr_ABC2ab;
% Cr_ABC2dq=sqrt(2/3)*[cos(x) -sin(x+pi/6) -cos(x+pi/3);
% -sin(x) -cos(x+pi/6) sin(x+pi/3);
% 1/sqrt(2) 1/sqrt(2) 1/sqrt(2)];
C_ABC2dq=[Cs_ABC2dq,zeros(3,3);
zeros(3,3),Cr_ABC2dq];
Mrs0=Mrs*cos(x);
Mrs120=Mrs*cos(x-pi*2/3);
Mrs240=Mrs*cos(x+pi*2/3);
Lrr=[Lr Mr Mr;
Mr Lr Mr;
Mr Mr Lr;];
Lss=[Ls Ms Ms;
Ms Ls Ms;
Ms Ms Ls;];
Lrs=[Mrs0 Mrs120 Mrs240;
Mrs240 Mrs0 Mrs120;
Mrs120 Mrs240 Mrs0];
L=[Lss,Lrs.';
Lrs,Lrr];
i_dq=[ids_temp iqs_temp i0s_temp idr_temp iqr_temp i0r_temp].';
i_dqTemp=[ids iqs i0s idr iqr i0r];%并不参与运算,但是后面显示结果的时候要用到
i_ABC=(C_ABC2dq.')*i_dq;
%六个绕组全磁链
magnetic_chain=simplify(L*i_ABC);
diff_chain=diff(magnetic_chain,t);%全磁链微分
Sans=simplify(Cs_ABC2dq*diff_chain(1:3,1));%坐标变化后dq轴系下定子磁链项
Rans=simplify(Cr_ABC2dq*diff_chain(4:6,1));%坐标变化后dq轴系下转子磁链项
%% 将最后结果中定子磁链阵中的微分换为微分算子
Rans=subs(Rans,{str2sym('diff(id_r(t), t)') , str2sym('diff(iq_r(t), t)') , str2sym('diff(id_s(t), t)')...
, str2sym('diff(iq_s(t), t)'),str2sym('diff(i0_s(t), t)'),str2sym('diff(i0_r(t), t)')}...
,{str2sym('P*idr') , str2sym('P*iqr') , str2sym('P*ids') ...
, str2sym('P*iqs') ,str2sym('P*i0s') ,str2sym('P*i0r')});
Rans=subs(Rans,{str2sym('id_r(t)') , str2sym('iq_r(t)') , str2sym('id_s(t)') ...
, str2sym('iq_s(t)'),str2sym('i0_s(t)'),str2sym('i0_r(t)')}...
,{str2sym('idr') , str2sym('iqr') , str2sym('ids') ...
, str2sym('iqs') ,str2sym('i0s') ,str2sym('i0r')});
%% 将最后结果中转子磁链阵中的微分换为微分算子
Sans=subs(Sans,{str2sym('diff(id_r(t), t)') , str2sym('diff(iq_r(t), t)') , str2sym('diff(id_s(t), t)')...
, str2sym('diff(iq_s(t), t)'),str2sym('diff(i0_s(t), t)'),str2sym('diff(i0_r(t), t)')}...
,{str2sym('P*idr') , str2sym('P*iqr') , str2sym('P*ids') ...
, str2sym('P*iqs') ,str2sym('P*i0s') ,str2sym('P*i0r')});
Sans=subs(Sans,{str2sym('id_r(t)') , str2sym('iq_r(t)') , str2sym('id_s(t)') ...
, str2sym('iq_s(t)'),str2sym('i0_s(t)'),str2sym('i0_r(t)')}...
,{str2sym('idr') , str2sym('iqr') , str2sym('ids') ...
, str2sym('iqs') ,str2sym('i0s') ,str2sym('i0r')});
%% 结果输出
tempans=[Sans;Rans];
[A B]=equationsToMatrix([tempans],[ids iqs i0s idr iqr i0r]);
R=[diag([Rs Rs Rs]),zeros(3,3);
zeros(3,3),diag([Rr Rr Rr])];
endans=R+A;
endans=[endans(1:2,1:2),endans(1:2,4:5);
endans(4:5,1:2),endans(4:5,4:5)]
输出结果
endans =
[ Rs + (L1 + (3*ms)/2)*P, 0, ((3*ms)/2)*P, 0]
[ 0, Rs + (L1 + (3*ms)/2)*P, 0, ((3*ms)/2)*P]
[ ((3*ms)/2)*P, ((3*ms)/2)*x_w, Rr + (L2 + (3*ms)/2)*P, (L2 + (3*ms)/2)*x_w]
[ (-(3*ms)/2)*x_w, ((3*ms)/2)*P, (- L2 - (3*ms)/2)*x_w, Rr + (L2 + (3*ms)/2)*P]