sd5060072 发表于 2011-10-30 06:38

如何才能正确运行,总有错误,请指教,谢谢

本帖最后由 sd5060072 于 2011-10-30 06:42 编辑

异步电机的Park转换,应用matlab

错误提示

???In an assignmentA(I) = B, the number of elements in B and
I must be the same.

Error in ==> projet at 18
   Disd(k)=(a*isd+b*ird+c*w*isq+d*w*irq+g*cos(ws*t)+e*cos((ws+w)*t))*dt;

请高手帮忙改正,谢谢

sd5060072 发表于 2011-10-30 06:40

a=21.06;
b=-18.95;
c=-4.26;
d=-4.74;
V=410;
e=-94.74*V*sqrt(3);
f=5.27;
g=105.3*V*sqrt(3);
ws=100*pi;
h=(3*0.045)/0.018;
L=0.05;
R=0.2;
Tau=L/R;
dt=Tau/1000;
t=0:dt:5*Tau;
isd(1)=0;ird(1)=0;isq(1)=0;irq(1)=0;w(1)=0;
fork=1:5000;   
   Disd(k)=(a*isd+b*ird+c*w*isq+d*w*irq+g*cos(ws*t)+e*cos((ws+w)*t))*dt;
   Dird(k)=(b*isd+a*ird-d*w*isq+f*w*irq+e*cos(ws*t)+g*cos((ws+w)*t))*dt;
   Disq(k)=(-c*w*isd-d*w*ird+a*isq+b*irq-g*sin(ws*t)-e*sin((ws+w)*t))*dt;
   Dirq(k)=(d*w*isd-f*w*ird+b*isq+a*irq-e*sin(ws*t)-g*sin((ws+w)*t))*dt;
   Dw(k)=(h*(isq*ird-isd*irq)+0.6/0.018+(0.00035/0.018)*w^2)*dt;   
   isd(k+1)=isd(k)+Disd(k);
   ird(k+1)=ird(k)+Dird(k);
   isq(k+1)=isq(k)+Disq(k);
   irq(k+1)=irq(k)+Dirq(k);
   w(k+1)=w(k)+Dw(k);
end
plot(t,isd);
xlabel('vitesse de rotation (trs/mn)');
ylabel('couple (Nm)');
grid;

sd5060072 发表于 2011-10-30 06:40

上面的是我写的,错误不知道如何改正,求助

lilybunny 发表于 2011-10-30 13:31

矩阵不符合乘法规则

sd5060072 发表于 2011-10-31 17:02

回复 4# lilybunny


    我其实算是个新手,所以我看不出哪的问题,正如你所说,不符合规则,可是在哪呢,怎么改正,您知道吗,可能的话,多指教指教,谢谢

lilybunny 发表于 2011-11-1 16:16

你要求画出对应t的isd(i)
应该在循环内用plot(t(K),isd(k)),
然后加hold on

lilybunny 发表于 2011-11-1 16:17

如果在循环外画,不能识别
页: [1]
查看完整版本: 如何才能正确运行,总有错误,请指教,谢谢