資源簡介
使用超限差值法生成二維的網格,這個程序是在matlab軟件下進行編寫的。針對葉型生成葉柵通道的網格。具體葉型數據見附件。

代碼片段和文件信息
function?[mesh_xmesh_yntxn]=mesh(naca)
%%生成各個網格節點的xy坐標,其中mesh_x存儲所有節點的x坐標;輸入data的格式為naca葉型數據格式。
%%所畫的網格針對的是二維葉柵通道,分為三個網格塊,葉柵前,葉柵通道,葉柵后,葉柵間距為5,弦長10。
%%網格生成方法采用代數法,并在靠近葉片表面附近逐漸加密。
t=5;
%%繪制葉柵通道s吸力面,p壓力面。葉珊距5.
nn=fix(length(naca(:1))/2);%%確定有多少點
mm=length(naca(:1));
for?i=1:nn
????s(i1)=10*naca(1+nn-i1);??%x坐標,整體模型都放大了10倍
????s(i2)=10*naca(1+nn-i2);??%%y坐標
????p(i1)=10*naca(nn+i1);????%%x坐標
????p(i2)=10*naca(nn+i2)+t;??%%y坐標
end
%%生成通道內網格
XM=32;?????
XD=0.12;
xn=length(s(:1));??%%吸力面長度
for?n=1:xn
????len=(p(n2)-s(n2))/100;
for?m=1:100
????R0=2*(m-1)/(80-1);
????R1=XM*R0+(1-XM)*(1-tan(XD*(1-R0))/tan(XD));
????R2=(m-1)*len;
????y_1(mn)=R2+s(n2);%%%n是網格點的橫向位置
????x_1(mn)=(p(n1)-s(n1))/2*R1+s(n1);%%%m是網格點的縱向位置
end
end
%%生成葉柵通道前緣進口流網格
nt=50;
dt=0.2;
yk=(max(naca(:2))-y_1(11))/0.8;??????%%%斜率
ta=nt*dt;
af=0.01;
M=m;
for?i=1:nt?????????%%%前緣進口的邊界處理
????tx=dt*(i-1);
????saf=abs(ta-af*tx^2+(2-af-ta)*tx/ta);
????x_0(1i)=x_1(11)-(ta-saf)*sqrt(1+yk^2);???%%x_1(11)就是前緣點的橫坐標
????y_0(1i)=y_1(11)-yk*abs(x_0(1i)-x_1(11));
????
????y_0(Mi)=y_0(1i)+t;?????%%%上下邊界的相差5
end
for?n=1:nt???????????%%%%內部的網格生成
len=5/100;
for?m=1:100
????R0=2*(m-1)/(80-1);
????R1=XM*R0+(1-XM)*(1-tan(XD*(1-R0))/tan(XD));
????R2=(m-1)*len;???%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????y_0(mn)=R2+s(12)-n*0.015;
????x_0(mn)=x_0(1n);????%%%縱坐標不變,橫坐標對每一層網格賦值
end
end
????
%%生成葉柵通道后緣出口流網格????
yk=(max(naca(:2))-y_1(1xn))/0.6;???
for?i=1:nt
????tx=dt*(i-1);
????saf=abs(ta-af*tx^2+(2-af-ta)*tx/ta);
????x_2(1i)=x_1(1xn)+(ta-saf)*sqrt(1+yk^2);
????y_2(1i)=y_1(1xn)-yk*abs(x_0(1i)-x_1(11));
????y_2(Mi)=y_2(1i)+t;
end
for?n=1:nt
len=5/100;
for?m=1:100
????%R0=2*(m-1)/(80-1);
????%R1=XM*R0+(1-XM)*(1-tan(XD*(1-R0))/tan(XD));
????R1=(m-1)*len;???%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????y_2(mn)=R1+s(882)-(0.03*n);
????x_2(mn)=x_2(1n);
????
end
end????
%%將三塊網格組合并繪圖
for?a=1:nt
??????mesh_x(:a)=x_0(:1+nt-a);
??????mesh_y(:a)=y_0(:1+nt-a);
end
for?a=(nt+1):(nt+xn-1)
??????mesh_x(:a)=x_1(:a-nt+1);
??????mesh_y(:a)=y_1(:a-nt+1);
end
for?a=(nt+xn):(2*nt+xn-2)
??????mesh_x(:a)=x_2(:a-nt-xn+2);
??????mesh_y(:a)=y_2(:a-nt-xn+2);
end
%%%?plot?%%%????????
for?m=1:(length(mesh_x(:1)))
????plot(mesh_x(m:)mesh_y(m:));
????axis([-10?20?-5?10]);
????hold?on;
end
for?n=1:(length(mesh_x(1:)))
????plot(mesh_x(:n)mesh_y(:n));
????axis([-10?20?-5?10]);
????hold?on;
end
plot(10*naca(:1)10*naca(:2));
axis([-10?20?-5?10]);
hold?off;
????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2860??2018-05-17?12:28??陳楠-第六次小作業\mesh.m
?????文件????????3351??2014-08-25?00:58??陳楠-第六次小作業\naca65-1810.txt
?????文件??????188936??2018-05-17?11:55??陳楠-第六次小作業\使用超限差值法生成葉柵通道的網格.docx
?????目錄???????????0??2018-05-17?17:10??陳楠-第六次小作業\
評論
共有 條評論