-
在做毕业设计时用到了通过随机车流来计算荷载效应的方法,用QT写了一个软件,其中包括了这一部分功能,为了能让大家避免重复造轮子的工作,我用matlab重写了段代码,分享在这里。其原理并不复杂,让车队在桥梁的影响线上一步一步向前移动,记录下每移动一次所产生的荷载效应。
-
相比于很多研究用固定的单辆汽车来分析荷载效应,这种方法可能会更加有效,因为,如果采集到桥梁历史的的一些交通车流数据(WIM设备能够实现这一目的),再通过数理统计的方法得到车重的分布特征并生成一定数量的样本,组成随机车流对桥梁进行加载,就能够实现由既有的、历史的数据递推或预测未来时刻桥梁的状态。
-
通过一座四跨的混凝土连续梁桥,跨径布置为30+30.5+30m,进行了演示。
-
关键用到了桥梁的影响线数据,采用excel读入,数据格式如下:
-
车流选了2辆汽车,都是经常用到的车型。
-
下面给出了源代码和运行的结果。
clc
clear
close
% 模块1:用户定义模块
% 输入车流参数
axel_load = [[140,140,120,120,30],[120,120,60]]; %单位为kN
Dist = [1.4,7.0,1.4,3.0, 10, 1.4,4.0]; %单位为m
% 车流每次移动步长
step = 1; %单位为m
% 桥梁长度
bridge_length = 90.5; 单位为m
% 绝对路径导入桥梁影响线
[data]=xlsread('D:\CodeFile\MatlabCode\科研\1.桥梁限载\影响线数据.xlsx');
% 模块2:程序内处理模块
n = length(Dist);
dist = [];
temp = 0;
for i = 1:n
dist(n-i+1) = -Dist(n-i+1)+temp;
temp = dist(n-i+1);
end
dist = [dist,0];
Length = (bridge_length - dist(1));
num = Length / step+1;
effect = [];
for i = 1:num
%每一次移动,更新参与计算的轴重与轴距
dist_new=[];
load_new=[];
%初始荷载效应值
s = 0;
% 更新操作
for j = 1: n
if (dist(j) >= 0 && dist(j) <= bridge_length)
dist_new = [dist_new,dist(j)];
load_new = [load_new,axel_load(j)];
end
end
for ii = 1:length(load_new)
s = spline(data(:,1),data(:,2),dist_new(ii)) * load_new(ii)+s;
end
for jj = 1: n
dist(jj) = dist(jj) + step;
end
effect(i)=s;
end
% 模块3:可视化绘图展示模块
plot(0:length(effect)-1,effect,'r','linewidth',2.0)
grid on
legend('\bf车流荷载历程曲线','fontsize',16)
legend('boxoff')
xlabel('\bf移动历程(/m)','fontsize',16)
ylabel('\bf荷载效应(kN*m)','fontsize',16)
xlim([0,length(effect)+1])
set(gca,'fontsize',14);
-
程序与运行结果:
-
希望能够对看到这篇帖子的人有所帮助,也算是我对桥梁系的一点微不足道的贡献。
-
毕业快乐!