initial commit

This commit is contained in:
2010-04-17 12:00:00 -05:00
commit 0da2092d89
460 changed files with 10528 additions and 0 deletions

58
Matlab code/strut/ARfit.m Executable file
View File

@@ -0,0 +1,58 @@
function [AR,xLE]=ARfit(P,t)
global tmax
% This function calculates the AR of a rectangle fitted inside an airfoil
% described by the cubic spline function in P. The value t is the thickness
% if the required rectangle (<t/c max).
% OUTPUT:
% AR=Aspect ratio of fitted rectangle
% xLE=Forward x-position of rectangle.
% Penalty functions for going out of bounds
flag=0;
x1=tmax/1000;
if (t>tmax-x1)
tsave=t;
t=tmax-x1;
flag=2;
elseif (t<x1)
tsave=t;
t=x1;
flag=1;
end;
N=50;
theta=(pi-logspace(-1,pi,N))/2;
theta(1)=[];
theta=[fliplr(theta) pi-theta];
f1=ppval(P,theta).*sin(theta)-t/2;
f2=[f1(2:N*2-2) f1(N*2-2)];
FF=abs(sign(f1)-sign(f2));
roots=find(FF>0);
thetaTE=reversefit(P,t/2,theta(roots(1)));
rTE=ppval(P,thetaTE);
xTE=rTE*cos(thetaTE);
thetaLE=reversefit(P,t/2,theta(roots(2)));
rLE=ppval(P,thetaLE);
xLE=rLE*cos(thetaLE);
l=abs(xTE-xLE);
AR=l/t;
if flag==1
x3=2*x1;
y1=AR;
y2=1.1*AR;
a = (y1-y2)/(-2*x3*x1+x1^2);
b=(y1-a*x1^2-y2)/x1;
AR=a*tsave^2+b*tsave+y2;
elseif flag==2
x3=tmax-x1*.001;
x2=tmax;
x1=tmax-2*x1;
a=-AR/((x2^2-x3^2)-2*x1*(x2-x3));
b=-2*a*x1;
c=-a*x2^2-b*x2;
AR=a*tsave^2+b*tsave+c;
end;

60
Matlab code/strut/CB3.dat Executable file
View File

@@ -0,0 +1,60 @@
Centerbody 3
0.92743 0.03097
0.88580 0.03617
0.83259 0.04000
0.77100 0.04266
0.70420 0.04437
0.63540 0.04534
0.56776 0.04578
0.50371 0.04585
0.44392 0.04568
0.38886 0.04536
0.33898 0.04499
0.29474 0.04467
0.25657 0.04450
0.22425 0.04448
0.19666 0.04448
0.17264 0.04438
0.15102 0.04404
0.13063 0.04334
0.11039 0.04214
0.09021 0.04042
0.07079 0.03824
0.05285 0.03564
0.03713 0.03269
0.02434 0.02944
0.01508 0.02594
0.00899 0.02216
0.00531 0.01807
0.00325 0.01363
0.00203 0.00880
0.00088 0.00354
0.00084 -0.00546
0.00269 -0.01211
0.00680 -0.01962
0.01437 -0.02765
0.02663 -0.03587
0.04482 -0.04397
0.07014 -0.05160
0.10364 -0.05845
0.14471 -0.06435
0.19192 -0.06920
0.24380 -0.07289
0.29892 -0.07532
0.35581 -0.07639
0.41302 -0.07600
0.46913 -0.07405
0.52309 -0.07058
0.57428 -0.06580
0.62208 -0.05990
0.66587 -0.05307
0.70504 -0.04551
0.73898 -0.03742
0.76707 -0.02899
0.78959 -0.02039
0.80857 -0.01167
0.82619 -0.00288
0.84469 0.00592
0.86625 0.01468
0.89310 0.02334
0.92743 0.03186

60
Matlab code/strut/CB4.dat Executable file
View File

@@ -0,0 +1,60 @@
Centerbody 4
0.91334 0.02171
0.87802 0.03287
0.82202 0.04154
0.75161 0.04805
0.67304 0.05272
0.59260 0.05591
0.51655 0.05793
0.44911 0.05907
0.39005 0.05946
0.33849 0.05924
0.29356 0.05851
0.25442 0.05742
0.22019 0.05607
0.19013 0.05455
0.16366 0.05285
0.14022 0.05098
0.11921 0.04894
0.10008 0.04672
0.08226 0.04433
0.06558 0.04169
0.05009 0.03871
0.03589 0.03528
0.02306 0.03128
0.01169 0.02660
0.00186 0.02118
-0.00621 0.01519
-0.01228 0.00894
-0.01609 0.00272
-0.01740 -0.00318
-0.01595 -0.00844
-0.01403 -0.01488
-0.01170 -0.01993
-0.00658 -0.02531
0.00278 -0.03084
0.01782 -0.03636
0.03997 -0.04172
0.07067 -0.04676
0.11111 -0.05130
0.16022 -0.05517
0.21577 -0.05819
0.27553 -0.06016
0.33725 -0.06092
0.39870 -0.06026
0.45764 -0.05800
0.51190 -0.05397
0.56072 -0.04828
0.60476 -0.04132
0.64472 -0.03348
0.68132 -0.02516
0.71528 -0.01676
0.74732 -0.00867
0.77814 -0.00131
0.80793 0.00506
0.83590 0.01040
0.86111 0.01467
0.88263 0.01788
0.89954 0.01999
0.91093 0.02099
0.91585 0.02087

60
Matlab code/strut/CB40015.dat Executable file
View File

@@ -0,0 +1,60 @@
Centerbody 4
0.913338 0.021800
0.877970 0.034797
0.821913 0.045691
0.751433 0.054894
0.672786 0.062540
0.592283 0.068148
0.516194 0.071685
0.448734 0.073592
0.389666 0.074289
0.338105 0.074109
0.293179 0.073245
0.254045 0.071912
0.219823 0.070247
0.189772 0.068366
0.163313 0.066266
0.139884 0.063965
0.118886 0.061463
0.099769 0.058747
0.081963 0.055821
0.065298 0.052587
0.049825 0.048941
0.035645 0.044756
0.022837 0.039891
0.011493 0.034215
0.001693 0.027642
-0.006343 0.020334
-0.012373 0.012545
-0.016127 0.004160
-0.017398 -0.003265
-0.015915 -0.009781
-0.013964 -0.017422
-0.011608 -0.023477
-0.006454 -0.030168
0.002946 -0.037244
0.018028 -0.044397
0.040218 -0.051317
0.070955 -0.057764
0.111427 -0.063556
0.160565 -0.068479
0.216135 -0.072286
0.275908 -0.074779
0.337635 -0.075783
0.399083 -0.075073
0.458015 -0.072478
0.512259 -0.067836
0.561057 -0.061299
0.605070 -0.053312
0.645000 -0.044314
0.681569 -0.034760
0.715496 -0.025094
0.747503 -0.015741
0.778291 -0.007162
0.808052 0.000349
0.835995 0.006731
0.861180 0.011979
0.882675 0.016154
0.899562 0.019146
0.910935 0.020782
0.915849 0.020892

60
Matlab code/strut/CB40018.dat Executable file
View File

@@ -0,0 +1,60 @@
Centerbody 4
0.913335 0.021890
0.877920 0.036739
0.821804 0.049876
0.751254 0.061793
0.672529 0.072440
0.591963 0.080485
0.515834 0.085551
0.448354 0.088233
0.389278 0.089240
0.337716 0.089099
0.292793 0.088100
0.253666 0.086521
0.219452 0.084540
0.189411 0.082295
0.162962 0.079792
0.139544 0.077056
0.118558 0.074088
0.099454 0.070872
0.081662 0.067405
0.065013 0.063573
0.049557 0.059256
0.035397 0.054309
0.022612 0.048573
0.011294 0.041892
0.001524 0.034156
-0.006478 0.025521
-0.012468 0.016180
-0.016165 0.005614
-0.017396 -0.003349
-0.015880 -0.011133
-0.013898 -0.019978
-0.011515 -0.027052
-0.006327 -0.035066
0.003113 -0.043699
0.018238 -0.052500
0.040470 -0.060992
0.071243 -0.068857
0.111748 -0.075911
0.160913 -0.081897
0.216504 -0.086498
0.276291 -0.089516
0.338024 -0.090767
0.399471 -0.090007
0.458394 -0.087074
0.512622 -0.081815
0.561398 -0.074424
0.605384 -0.065401
0.645284 -0.055237
0.681820 -0.044437
0.715714 -0.033494
0.747688 -0.022870
0.778445 -0.013063
0.808175 -0.004401
0.836091 0.003033
0.861250 0.009268
0.882720 0.014415
0.899584 0.018292
0.910941 0.020569
0.915849 0.020918

73
Matlab code/strut/CB600185b.dat Executable file
View File

@@ -0,0 +1,73 @@
1.00000 0.00000
0.97500 0.00996
0.95000 0.01900
0.92500 0.02718
0.90000 0.03460
0.87500 0.04131
0.85000 0.04739
0.82500 0.05288
0.80000 0.05785
0.77500 0.06232
0.75000 0.06636
0.72500 0.06998
0.70000 0.07325
0.67500 0.07617
0.65000 0.07879
0.62500 0.08112
0.60000 0.08320
0.55000 0.08664
0.50000 0.08924
0.45000 0.09109
0.40000 0.09218
0.35000 0.09250
0.30000 0.09204
0.25000 0.09067
0.20000 0.08803
0.17500 0.08599
0.15000 0.08328
0.12500 0.07968
0.10000 0.07485
0.07500 0.06855
0.05000 0.05962
0.03750 0.05414
0.02500 0.04820
0.01250 0.03472
0.00652 0.03090
0.00200 0.01606
0.00000 0.00000
0.00200 -0.01606
0.00652 -0.03090
0.01250 -0.03472
0.02500 -0.04820
0.03750 -0.05414
0.05000 -0.05962
0.07500 -0.06855
0.10000 -0.07485
0.12500 -0.07968
0.15000 -0.08328
0.17500 -0.08599
0.20000 -0.08803
0.25000 -0.09067
0.30000 -0.09204
0.35000 -0.09250
0.40000 -0.09218
0.45000 -0.09109
0.50000 -0.08924
0.55000 -0.08664
0.60000 -0.08320
0.62500 -0.08112
0.65000 -0.07879
0.67500 -0.07617
0.70000 -0.07325
0.72500 -0.06998
0.75000 -0.06636
0.77500 -0.06232
0.80000 -0.05785
0.82500 -0.05288
0.85000 -0.04739
0.87500 -0.04131
0.90000 -0.03460
0.92500 -0.02718
0.95000 -0.01900
0.97500 -0.00996
1.00000 0.00000

10
Matlab code/strut/FFunc1.m Executable file
View File

@@ -0,0 +1,10 @@
function FF = FFunc1(theta,P);
% Derivative of function 1
FF=derppval(P,theta)*sin(theta)+ppval(P,theta)*cos(theta);
if theta < 0
FF=-2*theta+pi;
elseif theta > pi
FF=-2*theta+pi;
end;

10
Matlab code/strut/Func1.m Executable file
View File

@@ -0,0 +1,10 @@
function F = Func1(theta,P,yrqd);
% Derivative of function 1
F=ppval(P,theta)*sin(theta)-yrqd;
if theta < 0
F=-theta^2+pi*theta-yrqd;
elseif theta > pi
F=-theta^2+pi*theta-yrqd;
end;

60
Matlab code/strut/GB30015.dat Executable file
View File

@@ -0,0 +1,60 @@
Centerbody 3
0.927434 0.030867
0.885738 0.037894
0.832426 0.044544
0.770708 0.050733
0.703824 0.054767
0.634967 0.057296
0.567289 0.058793
0.503215 0.059528
0.443412 0.059717
0.388348 0.059516
0.338469 0.059099
0.294235 0.058631
0.256072 0.058263
0.223760 0.058026
0.196178 0.057792
0.172167 0.057433
0.150558 0.056791
0.130182 0.055719
0.109959 0.054041
0.089801 0.051717
0.070408 0.048804
0.052499 0.045333
0.036815 0.041386
0.024065 0.037043
0.014845 0.032427
0.008795 0.027556
0.005152 0.022433
0.003127 0.017031
0.001941 0.011266
0.000833 0.004850
0.000868 -0.006228
0.002777 -0.014501
0.006960 -0.024027
0.014590 -0.033727
0.026905 -0.043466
0.045147 -0.053006
0.070516 -0.061993
0.104060 -0.070058
0.145165 -0.076927
0.192399 -0.082424
0.244294 -0.086545
0.299425 -0.089280
0.356322 -0.090523
0.413532 -0.090135
0.469635 -0.087990
0.523580 -0.084127
0.574750 -0.078781
0.622524 -0.072162
0.666283 -0.064484
0.705419 -0.055972
0.739322 -0.046855
0.767373 -0.037351
0.789853 -0.027657
0.808793 -0.017830
0.826372 -0.007917
0.844831 0.002026
0.866348 0.011975
0.893151 0.021929
0.927426 0.031964

61
Matlab code/strut/Newton.m Executable file
View File

@@ -0,0 +1,61 @@
function x=newton(Fs,FPs,P0,y,P,TOL);
% NEWTON-RAPHSON ALGORITHM 2.3
%
% To find a solution to f(x) = 0 given an
% initial approximation p0:
%
% y,P can be used for additional info if the function
% requires it.
%
% Initially written by Burden and Faires, revised by
% B.A. Broughton, 10/01/1999
%
% INPUT: initial approximation p0; tolerance TOL;
% maximum number of iterations NO.
%
% OUTPUT: approximate solution p or a message of failure
TRUE = 1;
FALSE = 0;
F = inline(Fs,'x','P','y');
FP = inline(FPs,'x','P');
NO=150;
OUP = 1;
F0 = F(P0,P,y);
% STEP 1
I = 1;
OK = TRUE;
% STEP 2
while I <= NO & OK == TRUE
% STEP 3
% compute P(I)
FP0 = FP(P0,P);
D = F0/FP0;
% STEP 6
P0 = P0 - D;
F0 = F(P0,P,y);
% STEP 4
if abs(D) < TOL
% procedure completed successfully
% fprintf(OUP,'\nApproximate solution = %.10e\n',P0);
% fprintf(OUP,'with F(P) = %.10e\n',F0);
% fprintf(OUP,'Number of iterations = %d\n',I);
% fprintf(OUP,'Tolerance = %.10e\n',TOL);
OK = FALSE;
% STEP 5
else
I = I+1;
end
end
if OK == TRUE
% STEP 7
% procedure completed unsuccessfully
fprintf(OUP,'\nIteration number %d',NO);
fprintf(OUP,' gave approximation %.10e\n',P0);
fprintf(OUP,'with F(P) = %.10e not within tolerance %.10e\n',F0,TOL);
end
x = P0;

4
Matlab code/strut/default.dat Executable file
View File

@@ -0,0 +1,4 @@
Strut length:
4.0
Strut width:
1.5

48
Matlab code/strut/derppval.m Executable file
View File

@@ -0,0 +1,48 @@
function v=derppval(pp,xx)
%PPVAL Evaluate piecewise polynomial.
% V = PPVAL(PP,XX) returns the value at the points XX of the
% piecewise polynomial contained in PP, as constructed by SPLINE
% (or MKPP).
%
% Revised by B.A. Broughton on 10/01/1999 to calculate the derivative
% for a pre-fitted cubic spline in the points xx
%
% See also SPLINE.
% Carl de Boor 7-2-86
% Revised 10-14-97 CB to speed up locating points in mesh (as in
% PPUAL) and to handle vector-valued functions.
% Copyright (c) 1984-98 by The MathWorks, Inc.
% $Revision: 5.8 $ $Date: 1997/11/21 23:41:00 $
[mx,nx] = size(xx); lx = mx*nx; xs = reshape(xx,1,lx);
% if necessary, sort xx
tosort=0;
if any(diff(xs)<0)
tosort=1;[xs,ix]=sort(xs);
end
% take apart pp
[x,c,l,k,d]=unmkpp(pp);
% for each data point, compute its breakpoint interval
[ignored,index] = sort([x(1:l) xs]);
index = max([find(index>l)-(1:lx);ones(1,lx)]);
% now go to local coordinates ...
xs = xs-x(index);
if d>1 % ... replicate xs and index in case pp is vector-valued ...
xs = reshape(xs(ones(d,1),:),1,d*lx);
index = d*index; temp = [-d:-1].';
index = reshape(1+index(ones(d,1),:)+temp(:,ones(1,lx)), d*lx, 1 );
end
% ... and apply nested multiplication to get derivative:
v = 3*c(index,1).';
for i=2:k-1
v = xs.*v + (4-i)*c(index,i).';
end
v = reshape(v,d,lx);
if tosort>0, v(:,ix) = v; end
v = reshape(v,d*mx,nx);

61
Matlab code/strut/e169.dat Executable file
View File

@@ -0,0 +1,61 @@
1.00000 0.00000
0.99640 0.00022
0.98598 0.00115
0.96948 0.00290
0.94737 0.00514
0.91970 0.00771
0.88673 0.01081
0.84899 0.01458
0.80708 0.01904
0.76168 0.02416
0.71346 0.02985
0.66316 0.03596
0.61148 0.04231
0.55912 0.04866
0.50675 0.05477
0.45499 0.06036
0.40442 0.06516
0.35555 0.06889
0.30884 0.07127
0.26456 0.07202
0.22289 0.07110
0.18408 0.06858
0.14839 0.06450
0.11605 0.05896
0.08721 0.05212
0.06206 0.04427
0.04085 0.03567
0.02379 0.02657
0.01106 0.01729
0.00290 0.00819
0.00000 0.00000
0.00290 -0.00819
0.01106 -0.01729
0.02379 -0.02657
0.04085 -0.03567
0.06206 -0.04427
0.08721 -0.05212
0.11605 -0.05896
0.14839 -0.06450
0.18408 -0.06858
0.22289 -0.07110
0.26456 -0.07202
0.30884 -0.07127
0.35555 -0.06889
0.40442 -0.06516
0.45499 -0.06036
0.50675 -0.05477
0.55912 -0.04866
0.61148 -0.04231
0.66316 -0.03596
0.71346 -0.02985
0.76168 -0.02416
0.80708 -0.01904
0.84899 -0.01458
0.88673 -0.01081
0.91970 -0.00771
0.94737 -0.00514
0.96948 -0.00290
0.98598 -0.00115
0.99640 -0.00022
1.00000 0.00000

73
Matlab code/strut/n0011sc.dat Executable file
View File

@@ -0,0 +1,73 @@
1.0000000 0.0000000
0.9750000 0.0063610
0.9500000 0.0120340
0.9250000 0.0170990
0.9000000 0.0216250
0.8750000 0.0256760
0.8500000 0.0293060
0.8250000 0.0325640
0.8000000 0.0354920
0.7750000 0.0381270
0.7500000 0.0404990
0.7250000 0.0426350
0.7000000 0.0445560
0.6750000 0.0462810
0.6500000 0.0478240
0.6250000 0.0491980
0.6000000 0.0504100
0.5500000 0.0523760
0.5000000 0.0537580
0.4500000 0.0545710
0.4000000 0.0547830
0.3500000 0.0544670
0.3000000 0.0535880
0.2500000 0.0521250
0.2000000 0.0499050
0.1750000 0.0484210
0.1500000 0.0466150
0.1250000 0.0444000
0.1000000 0.0416430
0.0750000 0.0381170
0.0500000 0.0333730
0.0375000 0.0302420
0.0250000 0.0262080
0.0125000 0.0203230
0.0065243 0.0157510
0.0020000 0.0092250
0.0000000 0.0000000
0.0020000 -.0092250
0.0065243 -.0157510
0.0125000 -.0203230
0.0250000 -.0262080
0.0375000 -.0302420
0.0500000 -.0333730
0.0750000 -.0381170
0.1000000 -.0416430
0.1250000 -.0444000
0.1500000 -.0466150
0.1750000 -.0484210
0.2000000 -.0499050
0.2500000 -.0521250
0.3000000 -.0535880
0.3500000 -.0544670
0.4000000 -.0547830
0.4500000 -.0545710
0.5000000 -.0537580
0.5500000 -.0523760
0.6000000 -.0504100
0.6250000 -.0491980
0.6500000 -.0478240
0.6750000 -.0462810
0.7000000 -.0445560
0.7250000 -.0426350
0.7500000 -.0404990
0.7750000 -.0381270
0.8000000 -.0354920
0.8250000 -.0325640
0.8500000 -.0293060
0.8750000 -.0256760
0.9000000 -.0216250
0.9250000 -.0170990
0.9500000 -.0120340
0.9750000 -.0063610
1.0000000 0.0000000

121
Matlab code/strut/profoil.xy Executable file
View File

@@ -0,0 +1,121 @@
1.000000000000000000 .000000000000000000
.998777486086680500 .000039128734319942
.995149957201797900 .000299711123091620
.989223412000951500 .000970050932764146
.981145670975447400 .002191944459643063
.971086173541115400 .004058131322947883
.959218271065854100 .006616851929127301
.945706851119262500 .009881834306856888
.930700273461090700 .013843493660014540
.914325006657736200 .018490106396244770
.896712202983196000 .023831183551336430
.878031579617458700 .029870359503535860
.858469985253515600 .036571096694192990
.838207410107304000 .043866397021870910
.817417182035262800 .051666396180680990
.796262725420542100 .059858757685190970
.774895277507216700 .068310658901039420
.753451484645534000 .076868732703536020
.732051524265323200 .085358173538330990
.710796631329745400 .093576839857823130
.689766787023759400 .101284440285054700
.669021789514310700 .108004130409690200
.647984505083075700 .113517558583694500
.626209753346901800 .118160978748600900
.603906937326857100 .122183989186028700
.581174458182988900 .125643551228927200
.558085325789258000 .128571298857894900
.534708385904846900 .130995982227475800
.511125153673589700 .132936634797773900
.487414917632911500 .134395393258587100
.463636942159360800 .135372544946359500
.439849646582566200 .135880924872991600
.416129229529416800 .135932324935261500
.392551604725222700 .135523839972135600
.369169924983092400 .134652210372689700
.346035451945036500 .133331029810853700
.323220217914391800 .131575843856679300
.300797046657626900 .129386347101403700
.278812453307359000 .126760721548801400
.257309179976361900 .123717036224272600
.236353559973413300 .120277956367501000
.216014161654179800 .116448525272583100
.196329554560218300 .112229851320313100
.177332029646007900 .107645700117241500
.159080386059838400 .102727725529926800
.141637945695737200 .097488150841075400
.125034496189223100 .091931510154726490
.109290253339481500 .086087704486253860
.094454976917392910 .079999204540625310
.080586667085654870 .073687741829588080
.067707008469758520 .067161789240575750
.055823753574367530 .060457858461761200
.044977281751047430 .053632340809673470
.035222563429941790 .046721462576666080
.026578369204382610 .039740223071008730
.019044521471932470 .032734528562300090
.012657486477428590 .025783468434054890
.007479235811376661 .018955265852321320
.003562052994489084 .012298802928596600
.000960867432208801 .005899665413544174
.000000000000000000 -.000000000000782577
.000960867432658108 -.005899665415042383
.003562052995440102 -.012298802929920450
.007479235812865470 -.018955265853393500
.012657486479490610 -.025783468434806120
.019044521474602230 -.032734528562669890
.026578369207690860 -.039740223070943440
.035222563433915280 -.046721462576115150
.044977281755714470 -.053632340808588400
.055823753579757880 -.060457858460098970
.067707008475899390 -.067161789238299510
.080586667092570670 -.073687741826664210
.094454976925108960 -.079999204537022460
.109290253348024500 -.086087704481945620
.125034496198618000 -.091931510149692600
.141637945706006300 -.097488150835299620
.159080386071004300 -.102727725523395900
.177332029658094500 -.107645700109947200
.196329554573247400 -.112229851312253600
.216014161668171400 -.116448525263761400
.236353559988387900 -.120277956357923900
.257309179992340000 -.123717036213952500
.278812453324360100 -.126760721537757600
.300797046675668400 -.129386347089661000
.323220217933491400 -.131575843844267600
.346035451965212900 -.133331029797809100
.369169925004362300 -.134652210359056000
.392551604747601900 -.135523839957963200
.416129229552922000 -.135932324920607600
.439849646607214700 -.135880924857921400
.463636942185169900 -.135372544930947900
.487414917659898500 -.134395393242918100
.511125153701774000 -.132936634781941800
.534708385934251100 -.130995982211587800
.558085325819907400 -.128571298842073600
.581174458214914100 -.125643551213313200
.603906937360098000 -.122183989170786900
.626209753381513200 -.118160978733930500
.647984505119135800 -.113517558569847300
.669021789552016100 -.108004130397079200
.689766787063014900 -.101284440274386000
.710796631370007800 -.093576839849761590
.732051524305964800 -.085358173533257910
.753451484685878400 -.076868732701677340
.774895277546564200 -.068310658902473520
.796262725458194400 -.059858757689853240
.817417182070549100 -.051666396188368860
.838207410139606300 -.043866397032250560
.858469985282292200 -.036571096706810770
.878031579642266200 -.029870359517829740
.896712203003706900 -.023831183566654460
.914325006673737600 -.018490106411837240
.930700273472570900 -.013843493674984400
.945706851126577300 -.009881834320268800
.959218271069722000 -.006616851940244741
.971086173542466100 -.004058131331368275
.981145670975267700 -.002191944465334945
.989223412000137400 -.000970050936046449
.995149957201033200 -.000299711124549478
.998777486086403700 -.000039128734678850
.999999999999999800 .000000000000000049

69
Matlab code/strut/readme.txt Executable file
View File

@@ -0,0 +1,69 @@
**********************************************************************
STRUT
**********************************************************************
Using the strut fitting program
-------------------------------
Make sure that all the .m files are in the same directory. Your
airfoil coordinate files do not have to be in the same directory.
Make sure that the first line in the airfoil coordinate file is not
the name of the airfoil, i.e. only numbers are allowed in the file.
Also make sure the coordinates are sorted TE-LE-TE and that the
leading edge point (usually 0,0) is not repeated. This is important,
since it is easy to forget to remove the extra point if you sorted the
coordinates with a spreadsheet such as MS Excel.
Start Matlab.
Change the directory to the directory with the .m files. Use the "cd"
command in Matlab to do this.
Run the GUI by typing "strut".
Now you can load an airfoil by clicking on the "load" button. Simply
choose the file. After loading the filename of the current airfoil,
the name of the filename will appear in the box below the "load"
button.
The size of the strut can be changed by changing the values for
"length" and "width". "Length" is the distance in the chordwise
direction. Units do not matter. You can also change the default
values by editing the "default.dat" text file.
Click on "calculate", wait a couple of seconds and the information for
the fitted airfoil should appear in the three remaining boxes. The
values are:
scale - How much you must enlarge the airfoil to fit over the box.
xLE% - Chord percentage where the leading edge of the strut is located.
xLE - Actual distance from the LE of the airfoil to the LE of the
strut.
Notes:
------
The program will not converge for low aspect ratio struts in very thin
airfoils. It should however work for all practical cases for the AE
416 homework assignment.
**********************************************************************
Development Notes
**********************************************************************
1) Matlab program for sizing airfoils to fit over a rectangular
strut written Sept 1999 by
B.A. Broughton
Graduate Student
Applied Aerodynamics Group
Dept. of Aerospace Engineering
University of Illinois at Urbana-Champaign
2) Minor fixes/updates/changes by Selig 090925
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

7
Matlab code/strut/reversefit.m Executable file
View File

@@ -0,0 +1,7 @@
function theta=reversefit(P,y,theta0);
TOL=1e-8;
F='Func1(x,P,y)';
FP='FFunc1(x,P)';
theta=Newton(F,FP,theta0,y,P,TOL);

194
Matlab code/strut/strut.m Executable file
View File

@@ -0,0 +1,194 @@
function fig = strut()
% This is the machine-generated representation of a Handle Graphics object
% and its children. Note that handle values may change when these objects
% are re-created. This may cause problems with any callbacks written to
% depend on the value of the handle at the time the object was saved.
% This problem is solved by saving the output as a FIG-file.
%
% To reopen this object, just type the name of the M-file at the MATLAB
% prompt. The M-file and its associated MAT-file must be on your path.
%
% NOTE: certain newer features in MATLAB may not have been saved in this
% M-file due to limitations of this format, which has been superseded by
% FIG-files. Figures which have been annotated using the plot editor tools
% are incompatible with the M-file/MAT-file format, and should be saved as
% FIG-files.
load strut
h0 = figure('Color',[0.8 0.8 0.8], ...
'Colormap',mat0, ...
'FileName','strut.m', ...
'PaperPosition',[18 180 576 432], ...
'PaperUnits','points', ...
'Position',[392 219 560 420], ...
'Tag','Fig1', ...
'ToolBar','none');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'Callback','strutcall load', ...
'ListboxTop',0, ...
'Position',[356.25 289.5 50.25 15.75], ...
'String','Load Airfoil', ...
'Tag','Pushbutton1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[341.25 248.25 40 11], ...
'String','Strut Size:', ...
'Style','text', ...
'Tag','StaticText1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[341.25 228.75 30 11.25], ...
'String','Width', ...
'Style','text', ...
'Tag','StaticText1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[341.25 208.625 30 11], ...
'String','Length', ...
'Style','text', ...
'Tag','StaticText1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'ListboxTop',0, ...
'Position',[377.25 226.5 39.75 15.75], ...
'String','0', ...
'Style','edit', ...
'Tag','width');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'ListboxTop',0, ...
'Position',[377.25 206.25 39.75 15.75], ...
'String','0', ...
'Style','edit', ...
'Tag','length');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'Callback','strutcall calculate', ...
'ListboxTop',0, ...
'Position',[356.25 177 50.25 15.75], ...
'String','Calculate', ...
'Tag','Pushbutton1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'ListboxTop',0, ...
'Position',[347.25 133.5 30 11.25], ...
'String','Scale', ...
'Style','text', ...
'Tag','StaticText2');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[347.25 88.875 30 11.25], ...
'String','Xle (%)', ...
'Style','text', ...
'Tag','StaticText2');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[347.25 44.25 30 11.25], ...
'String','Xle', ...
'Style','text', ...
'Tag','StaticText2');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'Enable','off', ...
'ListboxTop',0, ...
'Position',[354.75 114 50.25 15.75], ...
'String','0', ...
'Style','edit', ...
'Tag','scale');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'Enable','off', ...
'ListboxTop',0, ...
'Position',[354.75 69.375 50.25 15.75], ...
'String','0', ...
'Style','edit', ...
'Tag','xlepers');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'Enable','off', ...
'ListboxTop',0, ...
'Position',[354.75 24.75 50.25 15.75], ...
'String','0', ...
'Style','edit', ...
'Tag','xle');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[341.25 152.25 40 12], ...
'String','Results:', ...
'Style','text', ...
'Tag','StaticText3');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'Enable','off', ...
'ListboxTop',0, ...
'Position',[347.25 264.75 66 15.75], ...
'String','None Selected', ...
'Style','edit', ...
'Tag','airfoilname');
h1 = axes('Parent',h0, ...
'Units','pixels', ...
'CameraUpVector',[0 1 0], ...
'CameraUpVectorMode','manual', ...
'Color',[1 1 1], ...
'ColorOrder',mat1, ...
'Position',[34 27 418 386], ...
'Tag','Axes1', ...
'XColor',[0 0 0], ...
'YColor',[0 0 0], ...
'ZColor',[0 0 0]);
h2 = text('Parent',h1, ...
'Color',[0 0 0], ...
'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[0.4988009592326139 -0.06233766233766236 9.160254037844386], ...
'Tag','Axes1Text4', ...
'VerticalAlignment','cap');
set(get(h2,'Parent'),'XLabel',h2);
h2 = text('Parent',h1, ...
'Color',[0 0 0], ...
'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[-0.06954436450839328 0.4961038961038962 9.160254037844386], ...
'Rotation',90, ...
'Tag','Axes1Text3', ...
'VerticalAlignment','baseline');
set(get(h2,'Parent'),'YLabel',h2);
h2 = text('Parent',h1, ...
'Color',[0 0 0], ...
'HandleVisibility','off', ...
'HorizontalAlignment','right', ...
'Position',[-0.0815347721822542 1.018181818181818 9.160254037844386], ...
'Tag','Axes1Text2', ...
'Visible','off');
set(get(h2,'Parent'),'ZLabel',h2);
h2 = text('Parent',h1, ...
'Color',[0 0 0], ...
'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[0.4988009592326139 1.018181818181818 9.160254037844386], ...
'Tag','Axes1Text1', ...
'VerticalAlignment','bottom');
set(get(h2,'Parent'),'Title',h2);
if nargout > 0, fig = h0; end

BIN
Matlab code/strut/strut.mat Executable file

Binary file not shown.

BIN
Matlab code/strut/strutWindow.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

110
Matlab code/strut/strutcall.m Executable file
View File

@@ -0,0 +1,110 @@
function strutcall(action)
global x y tmax
% Remove
global P
switch(action)
case 'load'
% Read Input Data
[fname,pname] = uigetfile('*.*','File containing airfoil co-ordinates');
if fname == 0
return;
end
dot=find(fname=='.');
oldpath = pwd;
eval(['cd ' pname]);
data = load(fname);
eval(['cd ' oldpath]);
x = data(:,1);
y = data(:,2);
txtHndl=findobj(gcbf,'Tag','airfoilname');
set(txtHndl,'String',fname(1:dot-1));
plot(x,y); axis([0 1 -.5 .5]);
% Load default strut size
fid=fopen('default.dat','r');
fgetl(fid);
lstrut=eval(fgetl(fid));
fgetl(fid);
wstrut=eval(fgetl(fid));
fclose(fid);
txtHndl=findobj(gcbf,'Tag','length');
set(txtHndl,'String',num2str(lstrut));
txtHndl=findobj(gcbf,'Tag','width');
set(txtHndl,'String',num2str(wstrut));
case 'calculate'
global x y
delt=1e-7; % Used for calculating dF/dt
TOL=1e-6; % Tolerance for N-R iteration
N = length(x);
c = max(x)-min(x);
x1 = x-c/2;
r = sqrt(x1.^2+y.^2);
theta = acos(x1./r);
% Use a continues theta
theta((N+1)/2:N)=2*pi-theta((N+1)/2:N);
P = spline(theta,r); % Fit cubic spline in polar coords
txtHndl=findobj(gcbf,'Tag','length');
lstrut=eval(get(txtHndl,'String'));
txtHndl=findobj(gcbf,'Tag','width');
tstrut=eval(get(txtHndl,'String'));
ARrqd=lstrut/tstrut; % AR of strut
[tmax,I]=max(y); % Approx. max thickness
tmax=tmax*2;
t0=tmax/2; % Start with tmax/2
F='ARfit(P,x)-y'; % For sol. F=AR(t)-ARrqd=0
FP=['(ARfit(P,x+' num2str(delt) ')-(ARfit(P,x)))/' num2str(delt)];
% Derivative: F'=(F(t+dt)-F(t))/dt
tnew=Newton(F,FP,t0,ARrqd,P,TOL);
% Find size of strut that will fit in norm. airfoil
[AR,xLEnew]=ARfit(P,tnew);
% Scale
scale = tstrut/tnew;
chord=scale*c;
xLEnewnorm = xLEnew+c/2;
xLEnew = xLEnewnorm*scale;
x1=x*scale;
y1=y*scale;
% Plotit
c1x=xLEnew; cy=tstrut/2;
c2x=xLEnew+lstrut;
strx=[c1x c2x c2x c1x c1x];
stry=[cy cy -cy -cy cy];
plot(x1,y1,'b',strx,stry,'r');
axis([0 chord -chord/2 chord/2]);
txtHndl=findobj(gcbf,'Tag','scale');
set(txtHndl,'String',num2str(scale));
txtHndl=findobj(gcbf,'Tag','xlepers');
set(txtHndl,'String',num2str(xLEnewnorm*100));
txtHndl=findobj(gcbf,'Tag','xle');
set(txtHndl,'String',num2str(xLEnew));
end;

View File

@@ -0,0 +1,110 @@
function strutcall(action)
global x y tmax
% Remove
global P
switch(action)
case 'load'
% Read Input Data
[fname,pname] = uigetfile('*.dat','File containing airfoil co-ordinates');
if fname == 0
return;
end
dot=find(fname=='.');
oldpath = pwd;
eval(['cd ' pname]);
data = load(fname);
eval(['cd ' pwd]);
x = data(:,1);
y = data(:,2);
txtHndl=findobj(gcbf,'Tag','airfoilname');
set(txtHndl,'String',fname(1:dot-1));
plot(x,y); axis([0 1 -.5 .5]);
% Load default strut size
fid=fopen('default.dat','r');
fgetl(fid);
lstrut=eval(fgetl(fid));
fgetl(fid);
wstrut=eval(fgetl(fid));
fclose(fid);
txtHndl=findobj(gcbf,'Tag','length');
set(txtHndl,'String',num2str(lstrut));
txtHndl=findobj(gcbf,'Tag','width');
set(txtHndl,'String',num2str(wstrut));
case 'calculate'
global x y
delt=1e-7; % Used for calculating dF/dt
TOL=1e-6; % Tolerance for N-R iteration
N = length(x);
c = max(x)-min(x);
x1 = x-c/2;
r = sqrt(x1.^2+y.^2);
theta = acos(x1./r);
% Use a continues theta
theta((N+1)/2:N)=2*pi-theta((N+1)/2:N);
P = spline(theta,r); % Fit cubic spline in polar coords
txtHndl=findobj(gcbf,'Tag','length');
lstrut=eval(get(txtHndl,'String'));
txtHndl=findobj(gcbf,'Tag','width');
tstrut=eval(get(txtHndl,'String'));
ARrqd=lstrut/tstrut; % AR of strut
[tmax,I]=max(y); % Approx. max thickness
tmax=tmax*2;
t0=tmax/2; % Start with tmax/2
F='ARfit(P,x)-y'; % For sol. F=AR(t)-ARrqd=0
FP=['(ARfit(P,x+' num2str(delt) ')-(ARfit(P,x)))/' num2str(delt)];
% Derivative: F'=(F(t+dt)-F(t))/dt
tnew=Newton(F,FP,t0,ARrqd,P,TOL);
% Find size of strut that will fit in norm. airfoil
[AR,xLEnew]=ARfit(P,tnew);
% Scale
scale = tstrut/tnew;
chord=scale*c;
xLEnewnorm = xLEnew+c/2;
xLEnew = xLEnewnorm*scale;
x1=x*scale;
y1=y*scale;
% Plotit
c1x=xLEnew; cy=tstrut/2;
c2x=xLEnew+lstrut;
strx=[c1x c2x c2x c1x c1x];
stry=[cy cy -cy -cy cy];
plot(x1,y1,'b',strx,stry,'r');
axis([0 chord -chord/2 chord/2]);
txtHndl=findobj(gcbf,'Tag','scale');
set(txtHndl,'String',num2str(scale));
txtHndl=findobj(gcbf,'Tag','xlepers');
set(txtHndl,'String',num2str(xLEnewnorm*100));
txtHndl=findobj(gcbf,'Tag','xle');
set(txtHndl,'String',num2str(xLEnew));
end;

208
Matlab code/strut/strutfit.m Executable file
View File

@@ -0,0 +1,208 @@
function fig = strut()
% This is the machine-generated representation of a Handle Graphics object
% and its children. Note that handle values may change when these objects
% are re-created. This may cause problems with any callbacks written to
% depend on the value of the handle at the time the object was saved.
% This problem is solved by saving the output as a FIG-file.
%
% To reopen this object, just type the name of the M-file at the MATLAB
% prompt. The M-file and its associated MAT-file must be on your path.
%
% NOTE: certain newer features in MATLAB may not have been saved in this
% M-file due to limitations of this format, which has been superseded by
% FIG-files. Figures which have been annotated using the plot editor tools
% are incompatible with the M-file/MAT-file format, and should be saved as
% FIG-files.
load strut
h0 = figure('Color',[0.8 0.8 0.8], ...
'Colormap',mat0, ...
'FileName','strutfit.m', ...
'MenuBar','none', ...
'PaperPosition',[18 180 576 432], ...
'PaperUnits','points', ...
'Position',[392 219 560 420], ...
'Tag','Fig1', ...
'ToolBar','none', ...
'NumberTitle','off', ...
'Name','Strutfit');
h1 = uimenu('Parent',h0, ...
'Label','Help', ...
'Tag','uimenu1');
h2 = uimenu('Parent',h1, ...
'Callback','edit readme.txt', ...
'Label','Readme', ...
'Tag','Helpuimenu1');
h2 = uimenu('Parent',h1, ...
'Callback','edit about.txt', ...
'Label','About Strutfit', ...
'Tag','Aboutuimenu1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'Callback','strutcall load', ...
'ListboxTop',0, ...
'Position',[356.25 289.5 50.25 15.75], ...
'String','Load Airfoil', ...
'Tag','Pushbutton1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[341.25 248.25 40 11], ...
'String','Strut Size:', ...
'Style','text', ...
'Tag','StaticText1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[341.25 228.75 30 11.25], ...
'String','Width', ...
'Style','text', ...
'Tag','StaticText1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[341.25 208.625 30 11], ...
'String','Length', ...
'Style','text', ...
'Tag','StaticText1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'ListboxTop',0, ...
'Position',[377.25 226.5 39.75 15.75], ...
'String','0', ...
'Style','edit', ...
'Tag','width');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'ListboxTop',0, ...
'Position',[377.25 206.25 39.75 15.75], ...
'String','0', ...
'Style','edit', ...
'Tag','length');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'Callback','strutcall calculate', ...
'ListboxTop',0, ...
'Position',[356.25 177 50.25 15.75], ...
'String','Calculate', ...
'Tag','Pushbutton1');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'ListboxTop',0, ...
'Position',[347.25 133.5 30 11.25], ...
'String','Scale', ...
'Style','text', ...
'Tag','StaticText2');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[347.25 88.875 30 11.25], ...
'String','Xle (%)', ...
'Style','text', ...
'Tag','StaticText2');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[347.25 44.25 30 11.25], ...
'String','Xle', ...
'Style','text', ...
'Tag','StaticText2');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'Enable','off', ...
'ListboxTop',0, ...
'Position',[354.75 114 50.25 15.75], ...
'String','0', ...
'Style','edit', ...
'Tag','scale');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'Enable','off', ...
'ListboxTop',0, ...
'Position',[354.75 69.375 50.25 15.75], ...
'String','0', ...
'Style','edit', ...
'Tag','xlepers');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'Enable','off', ...
'ListboxTop',0, ...
'Position',[354.75 24.75 50.25 15.75], ...
'String','0', ...
'Style','edit', ...
'Tag','xle');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ...
'ListboxTop',0, ...
'Position',[341.25 152.25 40 12], ...
'String','Results:', ...
'Style','text', ...
'Tag','StaticText3');
h1 = uicontrol('Parent',h0, ...
'Units','points', ...
'BackgroundColor',[1 1 1], ...
'Enable','off', ...
'ListboxTop',0, ...
'Position',[347.25 264.75 66 15.75], ...
'String','None Selected', ...
'Style','edit', ...
'Tag','airfoilname');
h1 = axes('Parent',h0, ...
'Units','pixels', ...
'CameraUpVector',[0 1 0], ...
'CameraUpVectorMode','manual', ...
'Color',[1 1 1], ...
'ColorOrder',mat1, ...
'Position',[34 27 418 386], ...
'Tag','Axes1', ...
'XColor',[0 0 0], ...
'YColor',[0 0 0], ...
'ZColor',[0 0 0]);
h2 = text('Parent',h1, ...
'Color',[0 0 0], ...
'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[0.4988009592326139 -0.06233766233766236 9.160254037844386], ...
'Tag','Axes1Text4', ...
'VerticalAlignment','cap');
set(get(h2,'Parent'),'XLabel',h2);
h2 = text('Parent',h1, ...
'Color',[0 0 0], ...
'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[-0.06954436450839328 0.4961038961038962 9.160254037844386], ...
'Rotation',90, ...
'Tag','Axes1Text3', ...
'VerticalAlignment','baseline');
set(get(h2,'Parent'),'YLabel',h2);
h2 = text('Parent',h1, ...
'Color',[0 0 0], ...
'HandleVisibility','off', ...
'HorizontalAlignment','right', ...
'Position',[-0.0815347721822542 1.018181818181818 9.160254037844386], ...
'Tag','Axes1Text2', ...
'Visible','off');
set(get(h2,'Parent'),'ZLabel',h2);
h2 = text('Parent',h1, ...
'Color',[0 0 0], ...
'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[0.4988009592326139 1.018181818181818 9.160254037844386], ...
'Tag','Axes1Text1', ...
'VerticalAlignment','bottom');
set(get(h2,'Parent'),'Title',h2);
if nargout > 0, fig = h0; end