- 积分
- 0
- 注册时间
- 2008-12-4
- 仿真币
-
- 最后登录
- 1970-1-1
|
大师们,请帮我看一下如下程序,运行时出现:
??? Error using ==> fprintf
Function is not defined for 'sym' inputs.
程序如下:
clear all
Cpdesign=0.485
air=1.225
P=3.0e6
R=62
L=60
N=3
TRS=9.0
V=10
RPM=11.5
u=RPM*2*pi/60
SumP=0.5*1.225*pi*R^2*V^3
a=1/3
P1=0
k=0
Foil=[100 0.03 0 0 0.5
40 0.20 0.801 5 0.015
35 0.25 1.215 8 0.015
30 0.40 1.388 9 0.014
25 0.60 1.230 6 0.009
21 0.75 1.181 5 0.008
18 0.95 0.988 5 0.006
18 0.95 0.988 5 0.006
]
[FoilROW FoilCOL]=size(Foil)
FinalCp=[]
r1=0
r2=0
r3=0
r4=0
r5=0
r6=0
r7=0
min=0.1
max=0.1
INTERNAL=0.005 %循环步长&小段长
Resultdoc=fopen('D:\Blade design\Matlab\Results1.txt','w')
fprintf(Resultdoc,'%10s%10s%10s%10s%10s%10s%10s%10s\n','r1','r2','r3','r4','r5','r6','r7','Cp')
for r1=Foil(1,2)
for r2=((Foil(2,2)-min):INTERNAL:(Foil(2,2)+max))
for r3=((Foil(3,2)-min):INTERNAL:(Foil(3,2)+max))
for r4=((Foil(4,2)-min):INTERNAL:(Foil(4,2)+max))
for r5=((Foil(5,2)-min):INTERNAL:(Foil(5,2)+max))
for r6=((Foil(6,2)-min):INTERNAL:(Foil(6,2)+max))
for r7=((Foil(7,2)-min):INTERNAL:(Foil(7,2)+max))
Smallsectionrecord=fopen('D:\Blade design\Matlab\Smallsection-record1.txt','w')
fprintf(Smallsectionrecord,'%16s%16s%16s%16s%16s%16s%16s\n','Cl','Cd','ALFA','chord','inflow','twist','Q','P1')
Location=[0.03 r2 r3 r4 r5 r6 r7 1] % 该数组包含所有的临时截面位置
for i=1:1:(FoilROW-1) % 叶片段数与标准翼型的数量一致
Start=Location (i)
End=Location (i+1)
Seclen=End-Start % 相邻翼型的段长
remainder=rem(Seclen,INTERNAL)
Secnum=Seclen/INTERNAL % 相邻翼型中小段的个数
for j=1:1:Secnum
rx=Start+(j-1)*INTERNAL % r位置
LTRS=rx*TRS % 局部尖速比
Cl=(Foil(i+1,3)-Foil(i,3))/(Location(i+1)-Location (i))*rx+(Foil(i+1,3)*Location (i)-Foil(i,3)*Location(i+1))/(Foil(i+1,3)-Foil(i,3))
Cd=(Foil(i+1,5)-Foil(i,5))/(Location(i+1)-Location (i))*rx+(Foil(i+1,5)*Location (i)-Foil(i,5)*Location(i+1))/(Foil(i+1,5)-Foil(i,5))
ALFA=(Foil(i+1,4)-Foil(i,4))/(Location(i+1)-Location (i))*rx+(Foil(i+1,4)*Location (i)-Foil(i,4)*Location(i+1))/(Foil(i+1,4)-Foil(i,4))
chord=2*pi*rx*L*8/9/N/(4/9+LTRS^2*(1+2/9/LTRS^2)^2)^0.5/TRS/Cl
inflow=acot(2/3/LTRS/(1+2/3/LTRS^2)*180/pi)
twist=inflow-ALFA
W=(V^2*4/9+RPM^2*rx^2*L^2*(1+2/9/LTRS^2)^2)^0.5
syms R
Q=0.5*air*V^2*pi*R^3*TRS*{int(rx^2*(8*2/9/LTRS^2*2/3*rx-W/V*N*chord/R/pi*Cd*(1+2/9/LTRS^2)),'R',2,62)}
Power=Q*u
P1=P1+Power
fprintf(Smallsectionrecord,'%16.3f%16.3f%16.3f%16.3f%16.3f%16.3f%16.3f%16.3f\n',rx,LTRS,Cl,Cd,ALFA,chord,inflow,Q,P1)
end
if remainder>0
rx=End-remainder/2
LTRS=rx*TRS
Cl=(Foil(i+1,3)-Foil(i,3))/(Location(i+1)-Location (i))*rx+(Foil(i+1,3)*Location (i)-Foil(i,3)*Location(i+1))/(Foil(i+1,3)-Foil(i,3))
Cd=(Foil(i+1,5)-Foil(i,5))/(Location(i+1)-Location (i))*rx+(Foil(i+1,5)*Location (i)-Foil(i,5)*Location(i+1))/(Foil(i+1,5)-Foil(i,5))
ALFA=(Foil(i+1,4)-Foil(i,4))/(Location(i+1)-Location (i))*rx+(Foil(i+1,4)*Location (i)-Foil(i,4)*Location(i+1))/(Foil(i+1,4)-Foil(i,4))
chord=2*pi*rx*L*8/9/N/(4/9+LTRS^2*(1+2/9/LTRS^2)^2)^0.5/TRS/Cl
inflow=acot(2/3/LTRS/(1+2/3/LTRS^2)*180/pi)
twist=inflow-ALFA
W=(V^2*4/9+RPM^2*rx^2*L^2*(1+2/9/LTRS^2)^2)^0.5
syms R
Q=0.5*air*V^2*pi*R^3*TRS*{int(rx^2*(8*2/9/LTRS^2*2/3*rx-W/V*N*chord/R/pi*Cd*(1+2/9/LTRS^2)),'R',2,62)}
Power=Q*u
P1=P1+Power
fprintf(Smallsectionrecord,'%16.3f%16.3f%16.3f%16.3f%16.3f%16.3f%16.3f%16.3f\n',rx,LTRS,Cl,Cd,ALFA,chord,inflow,Q,P1)
end
end
Cp=P1/SumP
fclose(Resultdoc)
if Cp>=Cpdesign
k=k+1
FinalCp(k)=Cp
fprintf(Resultdoc,'%10s%10s%10s%10s%10s%10s%10s%10s\n',[r1 r2 r3 r4 r5 r6 r7 Cp])
% fidin=fopen('D:\Blade design\Matlab\Smallsection-record1.txt','w')
% while ~feof(fidin) % 判断是否为文件末尾
% tline=fgetl(fidin); % 从文件读入一行文本(不含回车键)
% fprintf(Resultdoc,'%s\n',tline);
% end
%
% fclose(fidin)
end
P1=0
end
end
end
end
end
end
end
fprintf(Resultdoc,'%10s%10s%20s\n','Cp-num','MIN','MAX') %写出此次计算的结果,符合要求的Cp的个数,MIN值,MAX值
fprintf(Resultdoc,'%10i%10.3e%10.3f\n', [k min(FinalCp) max(FinalCp)])
fclose(Resultdoc)
请教哪里出问题了,谢谢!
|
|