基于GA遗传算法的悬索桥静载试验车辆最优布载matlab仿真
目录
1.程序功能描述
2.测试软件版本以及运行结果展示
3.核心程序
4.本算法原理
5.完整程序
1.程序功能描述
基于GA遗传算法的悬索桥静载试验车辆最优布载matlab仿真。主要是为了实现悬索桥静载试验自动化布载(确定车辆位置使得满足加载效率ηq的要求,0.95≤ηq≤1.05),总体要求是ηq尽量靠近1,所用的加载车辆尽量少,进行布载耗时越少越好。
2.测试软件版本以及运行结果展示
MATLAB2022A版本运行
测试工况:
测试仿真图:
测试数据结论:
车辆布载位置:
Xi_best =
179.5512 191.5642 216.6627 258.8153
车辆方向:
Di_best =
1 1 -1 1
车辆类型:
Ti_best =
3 3 3 3
占用车道:
Li_best =
6 6 6 5
最优函数值:
Minf =
3.3329e+03
加载效应值:
Ss =
3.3329e+03
载荷效率:
Lr =
0.9884
有效车辆:
ans =
23
算法仿真时间:
Times =
29.4721
(完整程序运行后无水印)
3.核心程序
..........................................................
%约束条件分析
if setss == 1 & Lr >= 0.95 & Lr <= 1.05 & flag == 1 & Lr8 <= 1.05 & Lr10 <= 1.05 & Lr37 <= 1.05 & Lr38 <= 1.05 & Lr52 <= 1.05 & Lr53 <= 1.05 & Lr142 <= 1.05 & Lr143 <= 1.05 & Lr144 <= 1.05 & Lr159 <= 1.05 & Lr160 <= 1.05 & Lr161 <= 1.05 & Lr162 <= 1.05 & Lr163 <= 1.05 & Lr164 <= 1.05 & Lr181 <= 1.05 & Lr199 <= 1.05 & Lr258 <= 1.05 & Lr259 <= 1.05
% [epls,Lr,Ss] = func_obj(Xi,Di,Ti,Li,L_influence,S);
XXX=XXX+1;
Right(a) = 1;
Xis{XXX} = [Xi];
Dis{XXX} = [Di];
Tis{XXX} = [Ti];
Lis{XXX} = [Li];
Lrs = [Lrs;Lr];
Jrs = [Jrs;epls];
Sss = [Sss;Ss];
Lrs1= [Lrs1;Lr8];
Lrs2= [Lrs2;Lr10];
Lrs3= [Lrs3;Lr37];
Lrs4= [Lrs4;Lr38];
Lrs5= [Lrs5;Lr52];
Lrs6= [Lrs6;Lr53];
Lrs7= [Lrs7;Lr142];
Lrs8= [Lrs8;Lr143];
Lrs9= [Lrs9;Lr144];
Lrs10= [Lrs10;Lr159];
Lrs11= [Lrs11;Lr160];
Lrs12= [Lrs12;Lr161];
Lrs13= [Lrs13;Lr162];
Lrs14= [Lrs14;Lr163];
Lrs15= [Lrs15;Lr164];
Lrs16= [Lrs16;Lr181];
Lrs17= [Lrs17;Lr199];
Lrs18= [Lrs18;Lr258];
Lrs19= [Lrs19;Lr259];
end
JJ(a,1) = E;
end
Objvsel=(JJ);
[Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);
gen=gen+1;
%保存参数收敛过程和误差收敛过程以及函数值拟合结论
Error(gen) = mean(Objvsel);
end
[V,I] = max(Jrs);
Xi_best = Xis{I};
Di_best = Dis{I};
Ti_best = Tis{I};
Li_best = Lis{I};
N;
Lr = Lrs(I);
Ss = Sss(I);
Minf = V;
Times = toc;
% Lrs1= [Lrs1;Lr8];
% Lrs2= [Lrs2;Lr10];
% Lrs3= [Lrs3;Lr37];
% Lrs4= [Lrs4;Lr38];
% Lrs5= [Lrs5;Lr52];
% Lrs6= [Lrs6;Lr53];
% Lrs7= [Lrs7;Lr142];
% Lrs8= [Lrs8;Lr143];
% Lrs9= [Lrs9;Lr144];
% Lrs10= [Lrs10;Lr159];
% Lrs11= [Lrs11;Lr160];
% Lrs12= [Lrs12;Lr161];
% Lrs13= [Lrs13;Lr162];
% Lrs14= [Lrs14;Lr163];
% Lrs15= [Lrs15;Lr164];
% Lrs16= [Lrs16;Lr181];
% Lrs17= [Lrs17;Lr199];
% Lrs18= [Lrs18;Lr258];
% Lrs19= [Lrs19;Lr259];
Lr8 = Lrs1(I);
Lr10 = Lrs2(I);
Lr37 = Lrs3(I);
Lr38 = Lrs4(I);
Lr53 = Lrs5(I);
Lr52 = Lrs6(I);
Lr142 = Lrs7(I);
Lr143 = Lrs8(I);
Lr144 = Lrs9(I);
Lr159 = Lrs10(I);
Lr160 = Lrs11(I);
Lr161 = Lrs12(I);
Lr162 = Lrs13(I);
Lr163 = Lrs14(I);
Lr164 = Lrs15(I);
Lr181 = Lrs16(I);
Lr199 = Lrs17(I);
Lr258 = Lrs18(I);
Lr259 = Lrs19(I);
%画图
func_view2(Xi_best,Di_best,Ti_best,Li_best,N,x1,x2);
hold on
% data8 = load('dat\8.txt');
% data9 = load('dat\9.txt');
% data37 = load('dat\37.txt');
% data38 = load('dat\38.txt');
% data52 = load('dat\52.txt');
% data53 = load('dat\53.txt');
% data142 = load('dat\142.txt');
% data143 = load('dat\143.txt');
% data144 = load('dat\144.txt');
% data159 = load('dat\159.txt');
% data160 = load('dat\160.txt');
% data161 = load('dat\161.txt');
% data162 = load('dat\162.txt');
% data163 = load('dat\163.txt');
% data164 = load('dat\164.txt');
% data181 = load('dat\181.txt');
% data199 = load('dat\199.txt');
% data258 = load('dat\258.txt');
% data159 = load('dat\159.txt');
DD1 = data9;
DD2 = data10;
DD3 = data37;
DD4 = data38;
DD5 = data52;
DD6 = data53;
DD7 = data142;
DD8 = data143;
DD9 = data144;
DD10 = data159;
DD11 = data160;
DD12 = data161;
DD13 = data162;
DD14 = data163;
DD15 = data164;
DD16 = data181;
DD17 = data199;
DD18 = data258;
DD19 = data259;
DD20 = data259;
func_influence_line(DD1,DD2,DD3,DD4,DD5,DD6,DD7,DD8,DD9,DD10,DD11,DD12,DD13,DD14,DD15,DD16,DD17,DD18,DD19,DD20,NUS);
clc;
disp('车辆布载位置:');
Xi_best
disp('车辆方向:');
Di_best
disp('车辆类型:');
Ti_best
disp('占用车道:');
Li_best
disp('最优函数值:');
Minf
disp('加载效应值:');
Ss
disp('载荷效率:');
Lr
disp('有效车辆:');
sum(Li_best)
disp('算法仿真时间:');
Times
[Lr,Lr8,Lr10,Lr37,Lr38,Lr52,Lr53,Lr142,Lr143,Lr144,Lr159,Lr160,Lr161,Lr162,Lr163,Lr164,Lr181,Lr199,Lr258,Lr259]'
figure;
plot(Error,'b-o');
xlabel('迭代次数');
ylabel('error');
06_057m
4.本算法原理
基于遗传算法(Genetic Algorithm, GA)的拱桥静载试验车辆最优布载问题是一个复杂的优化问题。在这个问题中,目标是最小化车辆布置对拱桥产生的不利影响,同时确保试验能够有效检测出拱桥的承载能力和潜在问题。假设有一座拱桥,我们需要对其进行静载试验,以评估其承载能力。为了进行这项试验,我们需要确定如何将车辆放置在桥面上,以便能够模拟最不利的情况,同时又不会对桥梁造成损害。这涉及到了车辆的位置、重量分布等问题。我们的目标是找到一种车辆布载方案,使得桥梁的关键部位承受最大的荷载,从而能够有效地评估桥梁的性能。
为了实现桥梁静载试验自动化布载(确定车辆位置使得满足加载效率ηq的要求,0.95≤ηq≤1.05),总体要求是ηq尽量靠近1,所用的加载车辆尽量少,进行布载耗时越少越好。
ηq=Ss/(1+μ)∙S
式中:
Ss—为静载试验荷载作用下控制截面设计内力或位移计算值;
S—为控制荷载作用下相应截面最不利内力或位移计算值;
μ—为按规范取用的冲击系数,对于平板挂车、履带车、重型车辆,取μ=0。
建立如下的优化模型:
这个目标函数意义为,第一项,最小的车辆,第二个,是尽可能接近1。以这两个为优化目标进行优化。
除了目标函数外,还存在一些约束条件,包括但不限于:1.车辆的总重量不超过桥梁的允许载荷;
2.车辆之间的最小距离;
3.桥梁上的最大允许载荷密度等。
基于遗传算法的拱桥静载试验车辆最优布载问题是一个典型的优化问题。通过合理的选择、交叉和变异操作,遗传算法可以有效地搜索最优解。在实际应用中,还需要结合具体的桥梁模型和实际情况来进行调整和优化。
5.完整程序
VVV