function dydt=f(t,y)
r=.02282,R=.0282,Rfd=.00255,Rkd=.01687,Rkp=.04635;
xd=0.616;xq=0.485;xdD=.576;xqQ=.445;xaf=.569,xakd=0.569,
xakq=0.438;xf=.636,xfkd=0.569,xkd=.87,xkq=1.037;
Xdq0=[-xq,0,-xdD,0,xaf,xakd,0;
0,-xq,0,-xqQ,0,0,xakq;
-xdD,0,-xd,0,xaf,xakd,0;
0,-xqQ,0,-xq,0,0,xakq;
-xaf,0,-xaf,0,xf,xfkd,0;
-xakd,0,-xakd,0,xfkd,xkd,0;
0,-xakq,0,-xakq,0,0,xkq];
Rdq0=[-r,0,0,0,0,0,0;
0,-r,0,0,0,0,0;
0,0,-r,0,0,0,0;
0,0,0,-r,0,0,0;
0,0,0,0,Rfd,0,0;
0,0,0,0,0,Rfd,0;
0,0,0,0,0,0,Rfd];
gdq0=
[0,xq,0,xqQ,0,0,-xakq;
-xd,0,-xdD,0,xaf,xakd,0;
0,xqQ,0,xq,0,0,-xakq;
-xdD,0,-xd,0,xaf,xakd,0;
0,0,0,0,0,0,0;
0,0,0,0,0,0,0;
0,0,0,0,0,0,0;
0,0,0,0,0,0,0];
Udq0=[0,-3,0,0,0,0,0]';
dydt=[-inv(Xdq0)*(gdq0+Rdq0)*y+inv(Xdq0)*Udq0];
function fangzhen
%RIGIDOGE Euler equations of a rigid body without external forces
tspan=[0 200];
y0=[0;1;0;0;0;0;0];
%solve the problem using 0de45
[t,y]=ode45('f',tspan,y0);
%ic=cos(t+2*pi/3).*y(;,1)-sin(t+2*pi/3).*y(;,2);
plot(t,y(;,5))
%本算例来自于电子工业出版社出版的《MATLAB电机仿真精华50例》中一篇算例。希望能让大家有所收获
%程序的思想是将电机的运行过程转化为电机的dqB轴的问题,利用数学矩阵的求解方法将电机中的复杂实际问题抽象为数学问题,从而利用数学模型进行求解,简单粗暴,便于理解。