急,请帮帮小妹^_^!
j=1;f=30000; %定义频率f=30kHzfor m=0:pi/6:2*pi %定义相位差m的变化步长,即30度。
t=0:1/(16*f):1/f; %定义时间t的变化步长
y1=sin(2*pi*f*t);
y2=sin(2*pi*f*t+m);
y(1,:)=y1;
y(2,:)=y2;
plot(t,y1,'r.-');
hold on
plot(t,y2,'b.-');
hold on
for i=1:17
fid=fopen('c:\duqu.txt','wt');
fprintf(fid,'%6.4f\n',y(:,i));
fclose(fid);
system('D:\ansys90 -b -p ane3fl -i C:\bianliang.txt -o C:\jieguo.out'); %用matlab启动ansys
onlynumber('D:\Matlab7.0\work\Potential.OUT','number.txt'); %提取有用的数据
load number.txt;
all_V(j,i)=number(1,2)-number(2,2);
end
j=j+1;
end
save all_V.txt all_V -ascii;
上面是一个我用matlab调用ansys,并在matlab和ansys之间进行数据相互传递的的程序!目的是通过改变电流的相位来改变ansys中激励电流的大小(我用的是双电流源激励)!Potential.out里面存着指定的两个极点的电压值!当电流改变时,all_V.txt中的数据是应该改变的!但我是运行之后,结果都是一样的,就是从第一个到最后一个数据都是同一个值!我调试了一下,第一个for循环是没错的,怀疑是第二个for循环里面有错误,但一直没能找出来.
希望大家能帮小妹看看.先在这里谢谢大家了!