随机车流荷载模拟程序

  • 在做毕业设计时用到了通过随机车流来计算荷载效应的方法,用QT写了一个软件,其中包括了这一部分功能,为了能让大家避免重复造轮子的工作,我用matlab重写了段代码,分享在这里。其原理并不复杂,让车队在桥梁的影响线上一步一步向前移动,记录下每移动一次所产生的荷载效应。

  • 相比于很多研究用固定的单辆汽车来分析荷载效应,这种方法可能会更加有效,因为,如果采集到桥梁历史的的一些交通车流数据(WIM设备能够实现这一目的),再通过数理统计的方法得到车重的分布特征并生成一定数量的样本,组成随机车流对桥梁进行加载,就能够实现由既有的、历史的数据递推或预测未来时刻桥梁的状态。

  • 通过一座四跨的混凝土连续梁桥,跨径布置为30+30.5+30m,进行了演示。

  • 关键用到了桥梁的影响线数据,采用excel读入,数据格式如下:
    截图于_2022年-06月-06日-17-6-37

  • 车流选了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);
  • 程序与运行结果:

  • 希望能够对看到这篇帖子的人有所帮助,也算是我对桥梁系的一点微不足道的贡献。

  • 毕业快乐!

建议在这里写一篇小论文,系统叙述该项研究工作。