1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJWWmJxx
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
影响声辐射模态声功率的因素主要有控制器参数QR,然后是控制力频率F和控制力位置,因此,我们再仿真的时候,主要通过遗传算法对这四个变量进行优化。
这四个参数共同决定了最后的声功率大小,因此,在进行优化的时候,通过对这四个变量进行遗传算法的优化,那么系统总体的构架如下所示:
4.部分源码
...........................................................................
%仿真时域声辐射模态平板的区域范围
%仿真时域声辐射模态平板的区域范围
Lx = 0.3;
Ly = 0.3;
%平面厚度
hs = 0.01;
%材料的密度
density = 5900;
%结构刚度
Es = 1e11;
As = Lx*hs;
MOM = hs^3*sqrt(Lx^2+Ly^2)/24;
%阻尼比
Rb = 0.01;
%这两个值设置较小即可,否则运算量非常大
m = 2;
n = 2;
%平板区域分割数
MN = m*n;
%力的区域
Xp = [0.15,0.2];
Xcon = [0.5 ,0.4];
Num_Force = 1;
Ms = density*Lx*Ly*As*eye(MN);
for j = 1:MN
a1(j) = j/5;
b1(j) = (sinh(a1(j)) + sin(a1(j)))/(cosh(a1(j)) - cos(a1(j)));
end
Ks = Es*MOM*Lx*diag(a1(1:MN).^2,0);
for k = 1:MN
Fvalue(k,1:Num_Force) = b1(k)*(cos(a1(k)*mean(Xcon)));
Pvalue(k,1) = b1(k)*(cos(a1(k)*mean(Xp)));
end
......................................................................
for j=1:1:NIND
x(j,1) = phen(j,1);
deltaT = 0.0005;
Tall = 2000;
T = deltaT:deltaT:deltaT*Tall;
%定义一个控制输入
%控制力频率
f = 50*(1+5*x(j,1));%50~200Hz之间优化
U = sin(2*pi*f*[1:length(T)]*deltaT);
[Y,X] = lsim(Ac,Bc,Cc,Dc,U,T);
for t = 1:Tall
Ws(t)= 1*(abs(Y(t)))^2;
tmps(t) = 10*log10(Ws(t)/Wr);
if abs(tmps(t)) >1e10
tmps(t) = -1e6;
end
end
J(j,1) = min(tmps);
end
Objv = 1./(J+eps);
gen = 0;
while gen < MAXGEN;
gen
FitnV=ranking(Objv);
Selch=select('sus',Chrom,FitnV);
Selch=recombin('xovsp', Selch,0.9);
Selch=mut( Selch,0.01);
phen1=bs2rv(Selch,FieldD);
for a=1:1:NIND
x1(a,1)=phen1(a,1);
deltaT = 0.0005;
Tall = 2000;
T = deltaT:deltaT:deltaT*Tall;
%定义一个控制输入
...............................................................
JJ(j,1) = min(tmps);
end
Objvsel=1./(JJ+eps);
[Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);
gen=gen+1;
end
MIN=min(Objv);
for ttt=1:1:size(Objv)
if Objv(ttt)<=MIN
tt=ttt;
break;
end
end
deltaT = 0.0005;
Tall = 2000;
T = deltaT:deltaT:deltaT*Tall;
for t = 1:Tall
f(t) = (t-1)/Tall*50*(1+5*x1(tt,1));
end
U = sin(2*pi*f.*[1:Tall]*deltaT);
[Y,X] = lsim(Ac,Bc,Cc,Dc,U,T);
figure;
plot(T,Y);
xlabel('time(s)');
ylabel('y1');
grid on
title('第1阶伴随系数');
axis([0,1,-20,20]);
for t = 1:Tall
Ws(t)= 1*(abs(Y(t)))^2;
end
figure;
plot(deltaT*(1:Tall),10*log10(Ws/Wr),'b');
xlabel('time(s)');
ylabel('声功率级别db');
grid on
axis([0,1,20,130]);
save r3.mat Y Ws Wr
08_020_m