MatlabCode

本站所有资源均为高质量资源,各种姿势下载。

您现在的位置是:MatlabCode > 资源下载 > 一般算法 > Newmark-beta法车桥耦合振动仿真系统

Newmark-beta法车桥耦合振动仿真系统

资 源 简 介

本项目旨在利用MATLAB编程环境,核心采用Newmark-beta数值积分方法,针对移动车辆载荷作用下的桥梁结构动力响应进行精确仿真。项目主要功能包括构建精细化的车桥耦合系统数学模型,其中车辆被简化为具有质量、刚度和阻尼的多自由度弹簧-质量系统,桥梁被建模为满足欧拉-伯努利梁理论或铁摩辛柯梁理论的有限元模型。系统通过位移协调条件和力的平衡条件将车辆方程与桥梁方程耦合,形成时变系数的二阶微分方程组。核心算法模块运用Newmark-beta法(一种无条件稳定的隐式积分算法)在时间域内逐步推进求解,能够有效处理由于车辆移动引起的系统矩阵时变特性。此外,项目还包含路面不平度模拟功能,利用功率谱密度函数生成随机路面谱作为系统激励。用户可以通过该系统分析不同车速、车辆参数、路面状况下,桥梁的动态挠度、加速度响应以及车辆的舒适性指标,并计算桥梁的动力冲击系数,为桥梁设计和安全评估提供理论支持。

详 情 说 明

基于Newmark-beta法的车桥耦合振动仿真分析系统

项目简介

本项目是一个基于MATLAB编程环境开发的车桥耦合动力学(Vehicle-Bridge Interaction, VBI)仿真分析系统。核心算法采用Newmark-beta数值积分方法,旨在对移动车辆载荷作用下的桥梁结构动力响应进行精细化仿真。系统集成了有限元建模、路面不平度模拟、静力影响线计算以及动力时程分析等功能模块,能够模拟四自由度半车模型在简支梁桥上行驶的耦合振动过程。

功能特性

  • 精细化车辆模型:构建了包含车体垂向、车体俯仰、前轮垂向、后轮垂向的4自由度(4-DOF)半车模型,考虑了悬挂系统和轮胎的刚度及阻尼特性。
  • 参数化桥梁有限元:采用有限元法建立桥梁模型,支持自定义跨径、弹性模量、截面特性及单位质量,自动组装质量与刚度矩阵。
  • 瑞利阻尼(Rayleigh Damping):基于桥梁前两阶固有频率自动计算并生成瑞利阻尼矩阵,更真实地反映结构耗能。
  • 随机路面激励:支持生成并加载指定等级(如B级)的随机路面不平度,并通过插值算法获取车辆轮胎接触点的实时路面高程及其导数。
  • 静力基准计算:通过移动静载荷模拟,自动寻找并计算车辆通过时的桥梁跨中最大静位移,为动力冲击系数的计算提供基准。
  • Newmark-beta 动力求解器:内置无条件稳定的隐式积分算法求解器,支持处理车桥耦合系统的大型稀疏矩阵运算。

系统要求

  • MATLAB R2016b 及以上版本
  • 无需额外工具箱(核心依靠基础矩阵运算及 eigs, interp1 等内置函数)

使用方法

  1. 确保项目文件夹中包含 main.m 及相关的辅助函数(如 form_beam_matrices, generate_road_roughness, get_shape_functions 等)。
  2. 直接运行 main.m 脚本。
  3. 程序将依次执行参数初始化、有限元建模、路面生成、静力分析及动力学求解准备。

核心算法与实现逻辑细节

以下内容严格基于 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)$ 等),用于描述车辆内部的力学相互作用。