基于Newmark-beta法的车桥耦合振动仿真分析系统
项目简介
本项目是一个基于MATLAB编程环境开发的车桥耦合动力学(Vehicle-Bridge Interaction, VBI)仿真分析系统。核心算法采用Newmark-beta数值积分方法,旨在对移动车辆载荷作用下的桥梁结构动力响应进行精细化仿真。系统集成了有限元建模、路面不平度模拟、静力影响线计算以及动力时程分析等功能模块,能够模拟四自由度半车模型在简支梁桥上行驶的耦合振动过程。
功能特性
- 精细化车辆模型:构建了包含车体垂向、车体俯仰、前轮垂向、后轮垂向的4自由度(4-DOF)半车模型,考虑了悬挂系统和轮胎的刚度及阻尼特性。
- 参数化桥梁有限元:采用有限元法建立桥梁模型,支持自定义跨径、弹性模量、截面特性及单位质量,自动组装质量与刚度矩阵。
- 瑞利阻尼(Rayleigh Damping):基于桥梁前两阶固有频率自动计算并生成瑞利阻尼矩阵,更真实地反映结构耗能。
- 随机路面激励:支持生成并加载指定等级(如B级)的随机路面不平度,并通过插值算法获取车辆轮胎接触点的实时路面高程及其导数。
- 静力基准计算:通过移动静载荷模拟,自动寻找并计算车辆通过时的桥梁跨中最大静位移,为动力冲击系数的计算提供基准。
- Newmark-beta 动力求解器:内置无条件稳定的隐式积分算法求解器,支持处理车桥耦合系统的大型稀疏矩阵运算。
系统要求
- MATLAB R2016b 及以上版本
- 无需额外工具箱(核心依靠基础矩阵运算及
eigs, interp1 等内置函数)
使用方法
- 确保项目文件夹中包含
main.m 及相关的辅助函数(如 form_beam_matrices, generate_road_roughness, get_shape_functions 等)。 - 直接运行
main.m 脚本。 - 程序将依次执行参数初始化、有限元建模、路面生成、静力分析及动力学求解准备。
核心算法与实现逻辑细节
以下内容严格基于 main.m 源代码的实际实现进行描述:
1. 系统参数初始化
代码首先定义了完整的物理参数,包括:
- 桥梁:30米跨径简支梁,定义了$E$, $I$, $m$及阻尼比 $xi$。
- 车辆:设定车速(20 m/s),质量分布(车身、轮对),转动惯量,以及悬挂和轮胎的刚度、阻尼系数。车辆几何参数包含轴距及质心位置。
- 时域控制:设定时间步长 $dt=0.005s$,总仿真时间根据车速和桥长自动计算,确保车辆完全驶离桥梁。
- Newmark参数:设定 $beta=0.25$, $gamma=0.50$,保证算法的无条件稳定性。
2. 有限元模型建立 (桥梁)
- 离散化:将桥梁离散为30个单元(31个节点),每个节点包含竖向位移和转角两个自由度,总自由度为 $2 times (30+1)$。
- 矩阵组装:调用
form_beam_matrices 生成全局质量矩阵 $M_b$ 和刚度矩阵 $K_b$。 - 阻尼矩阵计算:使用
eigs 函数求解 $K_b$ 和 $M_b$ 的广义特征值问题,获取前两阶固有频率 $omega_1, omega_2$。据此求解瑞利阻尼系数 $alpha, beta$,构造阻尼矩阵 $C_b = alpha M_b + beta K_b$。 - 边界条件处理:针对简支梁特性,锁定首尾节点的竖向位移自由度。代码通过建立
active_dofs 索引列表,采用划行划列法对系统矩阵进行缩减,以用于后续的数值求解。
3. 路面不平度模拟
- 生成:在空间域上生成长距离的路面不平度数据(默认B级路面)。
- 插值与求导:
* 构建匿名函数句柄
get_road_z,利用
interp1 进行线性插值,以获取任意位置的路面高程。
* 计算路面空间导数并乘以车速,构建
get_road_dz 函数句柄,用于模拟轮胎接触点的垂向速度激励(用于计算阻尼力)。
4. 静力分析(冲击系数基准)
- 移动荷载模拟:主要用于计算冲击系数的分母(最大静位移)。
- 逻辑流程:
1. 建立一个静态位置循环(
static_steps)。
2. 根据车辆位置计算前后轮坐标。
3. 利用形函数(
get_shape_functions)将前后轮的重力荷载分配到对应的单元节点上,形成载荷向量 $F_{static}$。
4. 求解线性方程组 $u = K_{b_reduced} backslash F$ 得到静位移。
5. 实时比较并记录跨中节点的最大绝对位移
max_static_deflection。
5. Newmark-beta 动力时程分析准备
- 耦合系统自由度:系统总状态向量由“桥梁非约束自由度”与“车辆4个自由度”共同组成。
- 积分常数计算:根据 $dt, beta, gamma$ 预先计算Newmark法所需的8个积分常数($a_0$ 至 $a_7$),以提高迭代效率。
- 车辆子矩阵构建:
*
质量矩阵:构建车辆对角质量矩阵,包含车身质量、车身转动惯量及两个轮对质量。
*
刚度与阻尼矩阵:代码展示了车辆内部刚度矩阵 $K_v$ 的手动组装过程。该矩阵基于悬挂系统的物理连接关系(车身垂向、俯仰与轮对的耦合),推导并填充了刚度项(如 $2k_{sus}$, $k_{sus}(L_1-L_2)$ 等),用于描述车辆内部的力学相互作用。