⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainprogram.m

📁 用MATLAB编写关于飞机设计的matlab程序
💻 M
📖 第 1 页 / 共 2 页
字号:
%      REAL MT(0:10),Jar(0:10),Jmin,Jmax,Kgold,MTUC(0:10)
%      DIMENSION ALPHA(0:25,0:25), RE(0:25,0:25), Z(0:1,0:25,0:25)
%      DIMENSION GK(0:10,0:10), S(0:10), GP(0:10),CbyR(0:9)
%      DIMENSION X(0:9),R(0:9),BETA(0:9),C(0:9),T(0:9),DUM(0:9)
%      DIMENSION DT(0:11,0:11),DQ(0:11,0:11),F(0:10,0:10)
%      DIMENSION CT(0:10),CP(0:10),ETA(0:10)
%      CHARACTER*20 AFds(10)
%      CHARACTER*20 PROPNAME,AIRFOILNAME,AFNAME,DUMMYNAME
%
%      CHARACTER*3 S28
%      CHARACTER*2 Goldstr
%	   CHARACTER*1 A1
%      INTEGER AF,RA,Ufixed,ROWS,COLS,F1,F2,F3,Fzero
%      COMMON /logunits/imon,ikey
%      common /propel/af,pitch
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       clear
       global MT  Jar Jmin Jmax  Kgold  MTUC
       global ALPHA  RE  Z
       global GK  S  GP  CbyR 
       global X  R  BETA  C  T  DUM
       global DT  DQ  F
       global CT  CP  ETA
       global AFds
       global PROPNAME  AIRFOILNAME  AFNAME  DUMMYNAME
       global S28
       global Goldstr
       global A1
       global AF  RA  LDA  Ufixed  ROWS  COLS  F1  F2  F3  F4  F5  Fzero  
       global af  pitch
       global Azero
       global DR  RD  MF  Czero  C1  C2  P1  P2  P3%单位变换系数
       global H  A  MPH  RPM  N %输入高度,音速,速度转速
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%       
       
       
       X=[0.30,0.45,0.60,0.70,0.75,0.80,0.85,0.90,0.95,1.0];
%
%************************* 变量初始化 **********************************
 %----1101
      for I=1:26
          for J=1:26
              ALPHA(I,J)=0.0;%攻角矩阵
              RE(I,J)=0.0;%雷诺数矩阵
              for JJ=1:2
                  Z(JJ,I,J)=0.0;%翼型气动系数矩阵
              end
          end 
      end
 %----1101
 %----1102
      for I=1:12
          for J=1:12
              DT(I,J)=0.0;
              DQ(I,J)=0.0;
          end
      end    
 %----1102
 %----1103
      for I=1:11
          MT(I)=0.0;
          Jar(I)=0.0;
          S(I)=0.0;
          GP(I)=0.0;
          CT(I)=0.0;
          CP(I)=0.0;
          ETA(I)=0.0;
          for J=1:11
              F(I,J)=0.0;%拟合系数矩阵
          end   
      end
 %----1103
 %----1104
      for I=1:10
          R(I)=0.0;
          BETA(I)=0.0;
          C(I)=0.0;
          T(I)=0.0;
          DUM(I)=0.0; 
          CbyR(I)=0.0;
      end
 %----1104
 %
 %***************************** 常数赋值 *********************************
      imon=6;
      ikey=5;
      Fzero=0;                                   %(厚度……标志)
      F1=0;
      F2=0;
      F3=0;
      F4=0;
      F5=0;
      pi;%PI=4.*ATAN(1.0)
      DR=pi/180.0;%degree-->radian
      RD=180.0/pi;%radian-->degree
      Czero=(pi^3.0)/8.0;
      C1=360.0;
      C2=5.E-4;
      MF=1.46667;%mile per hour-->feet per second
      P1 = 10.0;
      P2 = 100.0;
      P3 = 1000.0;
 %
 %************************* 输入可用翼型信息**************************
 
      AIRFOILS;%已是调用了文件AIRFOILS,OPEN(UNIT=1,FILE='AIRFOILS.d',STATUS = 'OLD')
      NAIRFOILS = 5;
      AFds(1,:); 
      AFds(2,:);
      AFds(3,:); 
      AFds(4,:)'; 
      AFds(5,:)'; 
 %
 %************************** 从文件中输入数据 **************************************
 %---1__continue
      propeller;%***********OPEN(23, FILE = 'propeler.dat', STATUS = 'OLD')
      fprintf('****************** Openning the file :propeller.m********************\n');
      PROPNAME
      N;
      NB;
 %
 %---2循环
      for I=1:N
          R(I)=propdata(I,1);                          % DO 2 I = 0, N-1
          CbyR(I)=propdata(I,2);
          T(I)=propdata(I,3);                                 %READ(23,*) R(I), CbyR(I), T(I)
          BETA(I) = atan(pitch/(2*Radius)/(3.14158*R(I)))*180./3.14159;
          C(I)=CbyR(I)*Radius;
      end
      fprintf('The  number of blades  is: %4i \n',NB);
      fprintf('*********************矩阵R*****************************\n');
      R
      fprintf('*********************请敲回车确认*****************************\n');
      pause;
      fprintf('*********************矩阵CbyR*****************************\n');
      CbyR
      fprintf('*********************请敲回车确认*****************************\n');
      pause;
      fprintf('*********************矩阵Beta*****************************\n');
      BETA
      fprintf('*********************请敲回车确认*****************************\n');
      pause;
%write(*,*) 'R = ',R(i),'   CbyR = ',CbyR(i),'    beta = ',beta(i)
%      read(*,*) 
     F6=0;
     AF=0;
     while F6<=0
           fprintf('******************Which airfoil section do you want to use****************\n');
           fprintf('\n');
           fprintf('        (1) flatplat\n');
           fprintf('        (2) ClarkY\n');
           fprintf('        (3) RAF6\n');
           fprintf('        (4) NACA44Lo\n');
           fprintf('        (5) Symmetri\n');
           AF=input('******************请输入翼型标号****************\n');
           if  ((AF==1)|(AF==2)|(AF==3)|(AF==4)|(AF==5)) %如果正确输入翼型,F6=1
               F6=1;
               fprintf('你选择的翼型标号为%4i\n',AF);
           end
           if F6==0
              fprintf('*********************** 错误输入,请重新输入!!!********************\n');
          end 
      end 
      AIRFOILNAME=AFds(AF,:)
      fprintf('*********************请敲回车确认*****************************\n');
      pause;
%*******************************选择分析模型,CL/CD ADJUSTMENTS *********************************************     
%---17
     FLAGRA=0;
     while FLAGRA<=0
           fprintf('******************Select desired refinement of analysis: ****************\n');
           fprintf('\n');
           fprintf('        (1) Analysis by simple blade element theory\n');
           fprintf('        (2) Analysis including induced velocity\n');
           fprintf('        (3) Analysis including induced velocity and tip losses\n');
           fprintf('                  (1-3)?\n');
           RA=input('******************请输入分析模型标号****************\n');
           if  ((RA==1)|(RA==2)|(RA==3)) %如果正确分析模型, FLAGRA=1
               FLAGRA=1;
               fprintf('你选择的分析模型标号为%4i\n',RA);
           end
           if ((RA~=1)&(RA~=2)&(RA~=3))
              fprintf('********************** Incorrect Entry.  Please Try Again.!!!*******************\n');
              FLAGRA=0;
           end
     end
%---17
%---16
     FLAGLDA=0;
     while FLAGLDA<=0
           fprintf('******************Select one of these Lift/Drag coefficient adjustments: ****************\n');
           fprintf('\n');
           fprintf('        (1) No Cl/Cd adjustments\n');
           fprintf('        (2) Mach number adjustments\n');
           fprintf('        (3) Reynolds number adjustments\n');
           fprintf('        (4) Mach and Reynolds number adjustments\n');
           fprintf('                  (1-4)?\n');
           LDA=input('******************请输入Lift/Drag coefficient调整模型标号****************\n');
           if  ((LDA==1)|(LDA==2)|(LDA==3)|(LDA==4)) %如果正确分析模型, FLAGRA=1
               FLAGLDA=1;
               fprintf('你选择的调整模型标号为%4i\n',LDA);
           end
           if ((LDA~=1)&(LDA~=2)&(LDA~=3)&(LDA~=4))
              fprintf('********************** Incorrect Entry.  Please Try Again.!!!*******************\n');
              FLAGLDA=0;
           end
     end
%---16
%*******************************INPUT ALTITUDE*******************************
 %---15
      FLAGH=0;
       while FLAGH<=0
             H=input('******************Select altitude in thousands of feet: (0 - 75): ****************\n');
             if ((H<(75.0))&(H>(0.0)))
                 FLAGH=1;
             else   
                 fprintf( '********************Number must be between 0.0 and 75.0 !!!*************\n');
                 FLAGH=0;    
             end
             altitude=H;
       end
%---15
%调用气体函数
      [RHO, NU, A]=ATMOSPROPS(H);
%
%      fprintf( 'RPM =%6f\n ', RPM);
%      pause;
      [LDA,MPH,RPM,S28,Ufixed]=GETMPHRPM(C1,LDA, A, MF, Radius, H);
%
%**************************************************************************
      GETJNJX;
%**************************************************************************
%*****************************曲线拟合初始数据*****************************
 %
 %******** Determine if the input data file includes the tip **********
    
      if (R(N)>0.9999)%该点是桨尖 
          X(10)=0.99;
          N=N-1;%共有10个点,带桨尖点,    抛弃桨尖
      else%该点不是桨尖,则添加桨尖
          C(N+1)=0.0;%桨尖弦长记为0
          T(N+1)=T(N);%桨尖厚度记为T(N-1)
          R(N+1)=1.0;%桨尖无量纲半径记为1
          BETA(N+1)=(BETA(N)-BETA(N-1))/(R(N)-R(N-1))*(R(N+1)-R(N))+BETA(N);
      end    %至此,共有10个点,带桨尖点
%
% ********************  Curve Fit Chord  ***********************
%---40头
      for I=1:N+1            %       Do 40 I = 0,N
          F(1,I) = R(I);      %       F(0,I) = R(I)
          F(2,I) = C(I);      %       F(1,I) = C(I)
      end                    % 40    Continue
%---40尾,至此,第一行为无量纲半径,第二行为弦长,下面送给函数  spline 求得各拟合系数
%**************************************************************************
                         SPLINE;
%**************************************************************************
%---41头
       for I=1:10    %Do 41 I = 0,9
           FX = X(I);
           [FY]=FNEVAL(FX, P3, F);
           C(I) = FY;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -