PDA

查看完整版本 : [求助]显示受力区域


s_city_cn
2008-06-25, 21:34
大家好,本人新手,有一个力学问题,请大家多指点。

我做的一个小课题是关于飞机尾翼受力。我把XY平面划定了6个尾翼的区域,然后根据不同的XY值套入相应的公式得到Z值作为所受应力。

做完以后发现所受应力表示出来了,但是无法看出所对应的XY区域。

查help的过程中,希望能找到类似阴影或则light的命令,让所受应力的曲面下产生阴影,或者在mesh(X,Y,Z)的同时能够相应的画出(X,Y)的图像。这样在同一幅图里可以看到受力区域和所受应力,可是没有找到相应的表达。:(

不知道大家能不能解答这个问题。祝大家晚上看球愉快!

附:受应力图(2张);matlab的code.

CODE:

x02=549;
x03=200;
x04=49;
x05=295;
h1=280;
h2=545;
h3=610;
h4=1415;
h5=1405;
h6=1478;
xi=-x02:1:x03;
zi=0:1:h6;
wquer=203;
g=9.8;
[X,Z]=meshgrid(xi,zi);
for i=1:1:size(X,1)
for j=1:1:size(X,2)
x=xi(j);
z=zi(i);
% Area 1
if(x<=0 && z<=h1 && z+(h1/x02)*x>=0)
b=x02*(z/h1);
pquer=2*wquer*g;
Y(i,j)=公式1;
% Area 2
elseif(x<=0 && z>h1 && z<=h2 && z<=x*(h6-h1)/(x02-x05)+x02*(h6-h1)/(x02-x05)+h1)
b=x02+((z-h1)/(h6-h1))*(x05-x02);
pquer=2*wquer*g;
Y(i,j)=公式2;
% Area 3
elseif(x<=0 && z>h2 && z<=h3 && z<=x*(h6-h1)/(x02-x05)+x02*(h6-h1)/(x02-x05)+h1)
a=x03*(z-h2)/(h3-h2);
b=x02+((z-h1)/(h6-h1))*(x05-x02);
pquer=2*wquer*g*(a+b)/(5*a+b);
Y(i,j)=公式3.1;
elseif(x>0 && z<=h3 && z>=((h3-h2)/x03)*x+h2)
a=x03*(z-h2)/(h3-h2);
b=x02+((z-h1)/(h6-h1))*(x05-x02);
pquer=2*wquer*g*(a+b)/(5*a+b);
Y(i,j)=公式3.2;
% Area 4
elseif(x>0 && z>h3 && z<=h5 && z<=-((h5-h3)/(x03-x04))*x+((h5-h3)/(x03-x04))*x03+h3)
a=x03+((z-h3)/(h5-h3))*(x04-x03);
b=x02+((z-h1)/(h6-h1))*(x05-x02);
pquer=2*wquer*g*(a+b)/(5*a+b);
Y(i,j)=公式4.1;
elseif(x<=0 && z>h3 && z<=h5 && z<=x*(h6-h1)/(x02-x05)+x02*(h6-h1)/(x02-x05)+h1)
a=x03+((z-h3)/(h5-h3))*(x04-x03);
b=x02+((z-h1)/(h6-h1))*(x05-x02);
pquer=2*wquer*g*(a+b)/(5*a+b);
Y(i,j)=公式4.2;
% Area 5
elseif(x>0 && z>h5 && z<=-((h4-h5)/x04)*x+h4)
a=x04+((z-h5)/(h4-h5))*(0-x04);
b=x02+((z-h1)/(h6-h1))*(x05-x02);
pquer=2*wquer*g*(a+b)/(5*a+b);
Y(i,j)=公式5.1;
elseif(x<=0 && z>=h5 && z<h4 && z<=x*(h6-h1)/(x02-x05)+x02*(h6-h1)/(x02-x05)+h1)
a=x04+((z-h5)/(h4-h5))*(0-x04);
b=x02+((z-h1)/(h6-h1))*(x05-x02);
pquer=2*wquer*g*(a+b)/(5*a+b);
Y(i,j)=公式5.2;
% Area 6
elseif(z>=h4 && z<=-((h4-h5)/x04)*x+h4 && z<=x*(h6-h1)/(x02-x05)+x02*(h6-h1)/(x02-x05)+h1)
b=x02+((z-h1)/(h6-h1))*(x05-x02)-x05*(z-h4)/(h6-h4);
pquer=2*wquer*g;
Y(i,j)=公式6;

else
Y(i,j)=NaN;
end
end
end
figure;
mesh(-X,Z,Y);

view(0,120)