- 积分
- 39
- 回帖
- 0
- 西莫币
-
- 贡献
-
- 威望
-
- 存款
-
- 阅读权限
- 5
- 最后登录
- 1970-1-1
该用户从未签到
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
求助:求变压器励磁电流的程序哪里出错了,谁能指点指点我,帮忙看看啊?
程序如下:
clear all
disp(['磁路-电路耦合lhq_dc04,开始...']);
t1=clock;
disp(['Time: ',int2str(fix(t1(4))),': ',int2str(fix(t1(5))),': ',int2str( fix(t1(6)))]);
load bh.mat;
Ii=((39+13)*2)/1008/1000*bh(:,1);% i=HL/1000N
Fi=26*37/1e6*bh(:,2); % Φ=BS/e6
%DESCRT=1000;
xx=min(Ii):max(Ii);%将Ii中数据全部赋给xx
%fiti=interp1(Ii,Fi,xx,'spline');
num=length(xx);%取得xx的长度,即等于H中数据点个数
N=num %输出num的值
%ydif=(fiti(2:1:num)-fiti(1:1:num-1))/max(Ii)*DESCRT;
%xdif=xx(1:1:num-1);
xxx=zeros(1,num);
for M=1:num
% xxx(M+num-1)=xx(M);
FI(M)=Fi(M)%FI(M+num-1)=fiti(M)+Fi(73);
%FI(M)=-fiti(num-M+1)+Fi(73);
end
TM=10000;
i=zeros(1,TM);
t1=clock;
disp(['非线性迭代开始...']);
disp(['Time: ',int2str(fix(t1(4))),': ',int2str(fix(t1(5))),': ',int2str( fix(t1(6)))]);
dt=5e-5;
i(1)=0;
i1(1)=0;
for M=1:TM
N=1:num;
a=i(M);
while (a>=xxx(N))
N=N+1;
if(N==length(xxx))
N=N-1;
break;
end
end
dfidt=(Fi(N+1)-Fi(N))/(xxx(N+1)-xxx(N));%di/dt=[Φ(n+1)-Φ(n)]/[i(n+1)-i(n)]
i(M+1)=dt*(220*1.414*sin(314*M*dt)-75*i(M))/1008/dfidt+i(M);%Φ(n+1)-Φ(n)=[u-Ri]/N*dt
end
%t=0:dt:3000*dt
%figure(13)
%plot(t,i,'r-')
hold on
plot(i,'r');
t1=clock;
disp(['程序计算结束.']);
disp(['Time: ',int2str(fix(t1(4))),': ',int2str(fix(t1(5))),': ',int2str( fix(t1(6)))]);
运行后报错如下:
磁路-电路耦合lhq_dc04,开始...
Time: 10: 56: 22
N =
1
FI =
-0.0014
非线性迭代开始...
Time: 10: 56: 22
??? Index exceeds matrix dimensions.
Error in ==> xiugai at 35
while (a>=xxx(N)) |
|