王良一 发表于 2020-11-5 08:50

matlab 蜂窝板STL计算问题

根据这篇论文,用matlab写的STL计算的程序,但是出的图和论文里的不一样,参数对了很多遍应该没有什么问题,这是写的程序的问题吗。。。。。

a=0.1524; %x边长
Ef=71e9;%铝的弹性模量
b=0.136;%y边长
h=0.006;%芯层厚度
d=0.001;%面板厚度
Vf=0.33;%泊松比
t=0.000866;%蜂窝壁厚
l=0.008;   %蜂窝边长
Gf=2.6692e10;%铝剪切弹性模量
Ge=1*t*Gf/(3^0.5*l);%芯层等效剪切弹性模量
C=Ge*h/100;   %芯层剪切刚度
C0=340;    %声速
r0=1.293;%空气密度
rf=2810;   %面板密度

Q=0; %入射角
Z=90;    %θ
re=8*t*rf/(3*3^0.5*l);%芯层等效密度
r=h*re+2*d*rf;%夹层板单位面积质量
D=Ef*(h+d)^2*d/(2*(1-Vf^2));%夹层板抗弯刚度

K=pi/a*(D/C)^0.5;   %无量纲参数

Emn11 = zeros(1,1000);
for W = 1:1000
    w = (W+1)*10;
    Emn = 0;
    Bmn = 0;
    eSum = 0;
    iSum = 0;
   
    K0=w/C0;    %空气中声波数量
    Kx=K0*sin(Q)*cos(Z);%波数在x分量
    Ky=K0*sin(Q)*sin(Z);%波数在y分量
    Kz=K0*cos(Q);   %波数在z分量
   
    for m = 1:70
      for n = 1:70
            
            Itop1 = 4*m*n*pi^2;
            Itop2 = (exp(-(1j*(Kx*a))))*cos(m*pi)-1;
            Itop3 = (exp(-(1j*(Ky*b))))*cos(n*pi)-1;
            Ibot1 = (Kx*a)^2-(m*pi)^2;
            Ibot2 = (Ky*b)^2-(n*pi)^2;
            Imn1 = (Itop1*Itop2*Itop3)/(Ibot1*Ibot2);   %Imn公式
            
            Bmn1 = (m*pi/a)^2+(n*pi/b)^2;
            Etop1 = 2j*r0*(w^2);
            Etop2 = (D/C)*Bmn1 + 1;
            Etop3Temp = Kz*(h+2*d);
            Etop3 = exp(1j*(Etop3Temp));
            Ebot1 = Kz;
            Ebot2 = D*(Bmn1^2);
            Ebot3 = w^2*(r-((2j*r0)/Kz))*(((D/C)*Bmn1)+1);
            
            Emn1Temp = (Etop1*Etop2*Etop3)/(Ebot1*(Ebot2-Ebot3));
            Emn1 = Emn1Temp*Imn1;   %Emn公式
            
            Itemp = (real(Imn1))^2 + (imag(Imn1))^2;
            Etemp = (real(Emn1))^2 + (imag(Emn1))^2;
            eSum=eSum+Etemp;
            iSum=iSum+Itemp;
      end
    end

    temp = iSum/eSum;
    stemp =10*log10(temp);   %STL公式

    Emn11(1,W) = stemp;
end
xp = linspace(10,10000,1000);
plot(xp,Emn11);
页: [1]
查看完整版本: matlab 蜂窝板STL计算问题