找回密码
 注册
Simdroid-非首页
查看: 36|回复: 1

请教

[复制链接]
发表于 2012-11-3 11:23:02 | 显示全部楼层 |阅读模式 来自 江苏连云港
大师们,请帮我看一下如下程序,运行时出现:
??? 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)

请教哪里出问题了,谢谢!

 楼主| 发表于 2012-11-5 08:32:49 | 显示全部楼层 来自 江苏连云港
Simdroid开发平台
哪位大师帮忙看一下吧,我是新手,谢谢!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-29 22:01 , Processed in 0.030034 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表