This Program Solves Hover Performance of A Two

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

%

% This program solves hover performance of a two-bladed rotor


% using Landgrebe's Prescribed Wake Model
%
b=2;
AR=13.7;
theta1=0.0;
theta0=5.0;
alpha0=0.;
ainf=5.7;
d0=0.011;
d1=0.0;
d2=0.4;
pi=3.14158;
theta0=theta0 *pi/180.;
theta1=theta1*pi/180.;
alpha0=alpha0*pi/180.;
c=1./AR;
rc=0.2*c;
sigma=b*c/pi;
M=90;
n1=36;
n2=20;
deltasi=0.5*pi/M;
si=0;
rn0=1.0;
r=zeros(M);
cl=zeros(M);
v=zeros(M);
dr=zeros(M);
for i=1:M
si=si+deltasi;
rn=cos(si);
dr(i)=rn0-rn;
r(i)=rn+0.5*dr(i);
rn0=rn;
end
gamam=0.;
ct=0.;
for i=1:M
vinf=r(i);
theta=theta0+r(i)*theta1;
vi=sigma*ainf*(sqrt(1.+32.*theta*r(i)/sigma/ainf)-1.)/16.;
alpha = theta - alpha0 - vi/vinf;
cl(i)=ainf*alpha;
gama(i)=0.5*vinf*c*cl(i);
if(gama(i)> gamam)
gamam=gama(i);
end
ct=ct+0.5*sigma*vinf*vinf*cl(i)*dr(i);
end
ct
gamam
r0=0.2;
%
% iterate on CT a few times
%
for itglobal=1:5
BTIP=1.-(2.*ct)^0.5/b;
a=0.78;
lambda=0.145+27.*ct;

k1=-.25*(ct/sigma);
k2=-sqrt(ct);
n=n1*n2;
dpsi=2.*pi/n1;
ddpsi=2.*pi/b;
psi=0;
psi0=0;
rv0=1.0;
zv0=0.0;
for i=1:M
v(i)=0.0;
end
for j=1:n
psi=j*dpsi;
rv=a+(1-a)*exp(-lambda*psi);
if(psi<2.*pi/b)
zv=k1*psi;
else
zv=k1 * 2.*pi/b+ k2 *(psi-2.*pi/b);
end
for k=1:b
psi1 = j*dpsi + (k-1)* 2*pi/b;
psi0 = psi1 - dpsi;
xv0=rv0*cos(psi0);
yv0 = - rv0*sin(psi0);
xv = rv * cos(psi1);
yv =- rv * sin(psi1);
for i = 1:M

x0 = r(i);
x1=xv0;
y1=yv0;
z1=zv0;
x2=xv;
y2=yv;
z2=zv;
r1cr2z=y1*(x0-x2)-y2*(x0-x1);
r12=(x0-x1)^2+y1*y1+z1*z1;
r22=(x0-x2)^2+y2*y2+z2*z2;
r1=(r12)^0.5;
r2=(r22)^0.5;
r1r2=r1*r2;
r1pr2=(x0-x1)*(x0-x2)+y1*y2+z1*z2;
coef1=(r1+r2)*(1.-r1pr2/r1r2);
coef2=r12*r22-r1pr2^2+rc*rc*(r12+r22-2.*r1pr2);
coef=coef1/coef2;
w=r1cr2z*coef;
v(i)=v(i)+w;

end
rv0=rv;
zv0=zv;

end
end
vi0=0.0;
plot(r,v);
% iterate on gama

for itn=1:5
for i=1:M
vi = -0.25 * gamam * v(i)/pi;
vinf=r(i);
theta=theta0+r(i)*theta1;
alpha=theta-alpha0-vi/vinf;
cl(i)=ainf*alpha;
gama(i)=0.5*vinf*c*cl(i);
if(r(i)>a)
if(vi > vi0)
gaman=gama(i);
end
end
vi0=vi;
end
gaman
err_in_gama=gaman-gamam
gamam=0.5*(gamam+gaman);
end
ct0=ct;
ct=0.0;
cq=0.0;
for i=1:M
v(i)=-0.25 * gaman * v(i)/pi;
vinf=r(i);
theta=theta0+r(i)*theta1;
alpha=theta-alpha0-vi/vinf;
cl(i)=ainf*alpha;
cd=d0+d1*alpha+d2*alpha^2;
cq=cq+.5*sigma*vinf*(v(i)*cl(i)+vinf*cd)*r(i)*dr(i);
if(r(i) < BTIP)
if(r(i)>r0)
ct=ct+0.5*sigma*vinf*vinf*cl(i)*dr(i);
end
end
end
ct
err_ct=ct-ct0;
ct=0.5*(ct+ct0);

end
%
plot(r,v);
% plot(r,gama);
ct
cq

You might also like