【发布时间】:2014-04-03 19:17:38
【问题描述】:
这是我正在尝试创建的程序(对 Matlab 来说非常新)。 我有一个主程序,它使用翼型几何来计算压力分布并稍后在其他方程中使用压力分布。
到目前为止:我已经根据用户输入的序列号生成了 NACA 4 和 5 系列翼型的方程式。 但是,我想要另一个选项让用户生成自己的翼型 x 和 y 坐标,并且我需要能够在程序中使用这些值。
function [xs]=FSP()
%closes all windows, clears everything
writeofile=0;
fprintf('\n');
fprintf('Enter option: 1= 4 series, 2=5 series 3= upload');
if ~nargin
option = input ('\n select option:');
if option ==1
FourDigit=input('\n Type in NACA 4 series: ');
alpha = input ('\n Type in angle of attack in degree: ');
elseif option ==2
FiveDigit= input('\n Type in NACA 5 series: ');
alpha = input ('\n Type in angle of attack in degree: ');
elseif option ==3
%
%
end
end
N=100; % Number of points generated.
if option == 1
[x,y]= Airfoil4 (N,N,FourDigit);
% [xmid,ymid,Cp]=HessSmithPanel (x,y,alpha);
% [xU,yU,CpU]=UpperSurface (xmid,ymid,Cp,N);
elseif option ==2
[x,y]= Airfoil5 (N,N,FiveDigit);
% [xmid,ymid,Cp]=HessSmithPanel (x,y,alpha);
% [xU,yU,CpU]=UpperSurface (xmid,ymid,Cp,N);
elseif option ==3
end
figure
plot (x,y);
axis([-.1 1.1 -.4 .4]);
这是当前为 4 和 5 系列工作的主程序的一部分,它获取数组中的 x 和 y 坐标并将它们绘制出来以供将来使用。我需要与此类似的第三个数据收集选项。
这是 NACA 5 系列的示例
function [x,y]=Airfoil5(nU,nL,NACA)
xU=zeros(nU,1);
cU=zeros(nU,1);
dcU=zeros(nU,1);
betaU=zeros(nU,1);
xL=zeros(nL,1);
cL=zeros(nL,1);
dcL=zeros(nL,1);
betaL=zeros(nL,1);
L=floor(NACA/10000);
P=floor(NACA/1000)-L*100;
R=floor(NACA/100)-L*100-P*10;
XX=NACA-L*10000-P*1000-R*100;
maxt=XX/100;
xf=P/20;
Cli=3*L/20;
%cmax=cmax*.01;
%pcmax=pcmax*.1;
%maxt=maxt*.01;
syms m;
sol=solve(xf==m*(1-sqrt(m/3)),m);
m = double(real(sol(2)));
Q=(3*m-7*m^2+8*m^3-4*m^4)/sqrt(m*(1-m))-3/2*(1-2*m)*(pi/2-asin(1-2*m));
k1=6*Cli/Q;
if R == 0
for i=1:nU
xU(i)=.5*(1-cos(pi*(i-1)/nU));
end
for i=1:nL
xL(i)=.5*(1+cos(pi*(i-1)/nL));
end
tU=5*maxt*(.2969*sqrt(xU)-xU.*(.126+xU.*(.35372-xU.*(.2843-xU*.1015))));
tL=5*maxt*(.2969*sqrt(xL)-xL.*(.126+xL.*(.35372-xL.*(.2843-xL*.1015))));
for i=1:nU
if xU(i)<m
cU(i)=(k1/6)*(xU(i)*xU(i)*xU(i)-3*m*xU(i)*xU(i)+m^2*(3-m)*xU(i));
dcU(i)=(k1/6)*(3*xU(i)*xU(i)-6*m*xU(i)+m^2*(3-m));
else
cU(i)=k1*m^3*(1-xU(i))/6;
dcU(i)=-k1*m^3/6;
end
betaU=atan(dcU);
end
for i=1:nL
if xL(i)<m
cL(i)=(k1/6)*(xL(i)*xL(i)*xL(i)-3*m*xL(i)*xL(i)+m^2*(3-m)*xL(i));
dcL(i)=(k1/6)*(3*xL(i)*xL(i)-6*m*xL(i)+m^2*(3-m));
else
cL(i)=k1*m^3*(1-xL(i))/6;
dcL(i)=-k1*m^3/6;
end
betaL=atan(dcL);
end
else
k2=(3*(0.217-.15)^2-0.217^3)/(1-0.217)^3;
for i=1:nU
xU(i)=.5*(1-cos(pi*(i-1)/nU));
end
for i=1:nL
xL(i)=.5*(1+cos(pi*(i-1)/nL));
end
tU=5*maxt*(.2969*sqrt(xU)-xU.*(.126+xU.*(.35372-xU.*(.2843-xU*.1015))));
tL=5*maxt*(.2969*sqrt(xL)-xL.*(.126+xL.*(.35372-xL.*(.2843-xL*.1015))));
for i=1:nU
if xU(i)<m
cU(i)=(k1/6)*((xU(i)-m)^3-k2*(1-m)^3*xU(i)-m^3*xU(i)+m^3);
dcU(i)=(k1/6)*(3*(xU(i)-m)^2-k2*(1-m)^3-m^3);
else
cU(i)=(k1/6)*(k2*(xU(i)-m)^3-k2*(1-m)^3*xU(i)-m^3*xU(i)+m^3);
dcU(i)=(k1/6)*(3*k2*(xU(i)-m)^2-k2*(1-m)^3-m^3);
end
betaU=atan(dcU);
end
for i=1:nL
if xL(i)<m
cL(i)=(k1/6)*((xL(i)-m)^3-k2*(1-m)^3*xL(i)-m^3*xL(i)+m^3);
dcL(i)=(k1/6)*(3*(xL(i)-m)^2-k2*(1-m)^3-m^3);
else
cL(i)=(k1/6)*(k2*(xL(i)-m)^3-k2*(1-m)^3*xL(i)-m^3*xL(i)+m^3);
dcL(i)=(k1/6)*(3*k2*(xL(i)-m)^2-k2*(1-m)^3-m^3);
end
betaL=atan(dcL);
end
end
x=xL+tL.*sin(betaL);
y=cL-tL.*cos(betaL);
x=[x;xU-tU.*sin(betaU);x(1)];
y=[y;cU+tU.*cos(betaU);y(1)];
所以我需要第三个选项来进行类似 NACA 5 系列的开发,并将文本文件中的数据存储到变量 x 和 y 中。
这是文本文件。
AG19
0.999992 0.000244
0.994067 0.000848
0.982082 0.002113
0.968544 0.003504
0.954708 0.004914
0.940826 0.006276
0.926943 0.007613
0.913056 0.008933
0.899168 0.010245
0.885282 0.011547
0.871396 0.012840
0.857515 0.014123
0.843633 0.015399
0.829754 0.016658
0.815876 0.017909
0.801995 0.019144
0.788118 0.020364
0.774240 0.021567
0.760358 0.022757
0.746480 0.023934
0.732598 0.025098
0.718714 0.026246
0.704832 0.027382
0.690952 0.028505
0.677070 0.029611
0.663191 0.030702
0.649316 0.031769
0.635436 0.032803
0.621559 0.033813
0.607686 0.034792
0.593811 0.035742
0.579936 0.036661
0.566066 0.037549
0.552198 0.038403
0.538328 0.039225
0.524462 0.040010
0.510601 0.040760
0.496741 0.041474
0.482880 0.042149
0.469025 0.042788
0.455177 0.043387
0.441328 0.043948
0.427484 0.044466
0.413649 0.044946
0.399815 0.045383
0.385986 0.045776
0.372169 0.046125
0.358355 0.046428
0.344545 0.046682
0.330750 0.046887
0.316965 0.047037
0.303185 0.047134
0.289421 0.047171
0.275674 0.047146
0.261933 0.047054
0.248213 0.046888
0.234514 0.046643
0.220830 0.046310
0.207177 0.045881
0.193554 0.045344
0.179962 0.044689
0.166424 0.043904
0.152931 0.042974
0.139504 0.041884
0.126159 0.040617
0.112901 0.039151
0.099774 0.037462
0.086793 0.035521
0.074020 0.033292
0.061500 0.030726
0.049351 0.027778
0.037754 0.024395
0.027090 0.020576
0.018069 0.016536
0.011377 0.012750
0.006933 0.009581
0.004065 0.007011
0.002186 0.004880
0.000960 0.003044
0.000235 0.001406
0.000001 -0.000094
0.000368 -0.001552
0.001471 -0.002908
0.003259 -0.004084
0.005777 -0.005206
0.009368 -0.006368
0.014713 -0.007619
0.022632 -0.008896
0.033028 -0.009988
0.044948 -0.010773
0.057612 -0.011265
0.070626 -0.011515
0.083847 -0.011575
0.097208 -0.011488
0.110664 -0.011286
0.124193 -0.010995
0.137773 -0.010634
0.151402 -0.010216
0.165062 -0.009753
0.178754 -0.009253
0.192471 -0.008724
0.206209 -0.008174
0.219965 -0.007607
0.233740 -0.007028
0.247527 -0.006440
0.261333 -0.005847
0.275149 -0.005250
0.288979 -0.004652
0.302827 -0.004054
0.316687 -0.003459
0.330560 -0.002868
0.344449 -0.002282
0.358351 -0.001705
0.372267 -0.001137
0.386195 -0.000582
0.400136 -0.000039
0.414079 0.000487
0.428014 0.000997
0.441936 0.001488
0.455848 0.001958
0.469754 0.002410
0.483648 0.002838
0.497536 0.003246
0.511417 0.003632
0.525297 0.003999
0.539171 0.004338
0.553041 0.004649
0.566907 0.004932
0.580771 0.005183
0.594629 0.005404
0.608483 0.005597
0.622333 0.005758
0.636177 0.005888
0.650015 0.005989
0.663852 0.006060
0.677688 0.006098
0.691521 0.006104
0.705354 0.006082
0.719189 0.006029
0.733027 0.005945
0.746863 0.005833
0.760702 0.005691
0.774544 0.005518
0.788385 0.005316
0.802230 0.005089
0.816081 0.004833
0.829932 0.004550
0.843784 0.004242
0.857640 0.003908
0.871495 0.003551
0.885353 0.003171
0.899212 0.002768
0.913070 0.002347
0.926931 0.001903
0.940790 0.001439
0.954652 0.000956
0.968488 0.000451
0.982076 -0.000064
0.994074 -0.000511
1.000008 -0.000710
文本文件通常包含翼型名称,然后是x坐标和y坐标的列。我需要能够获取每个坐标并将它们保存在数组 x 和 y 变量中,就像我在 airfoil5 函数中一样。我还需要将 FSP 函数中的 N 变量更改为来自翼型文本文件的 x-y 坐标数。
任何帮助将不胜感激, 谢谢。
【问题讨论】: