列车-轨道-桥梁交互仿真研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、文章下载


💥1 概述

TTB-2D 软件以 2D 表示形式模拟列车-轨道-桥梁系统的动态响应。火车表示为多个车辆的连续。轨道包括轨道不规则性,并对轨道、垫、枕木、道砟和子道砟进行建模。该桥被建模为具有可定制支撑条件的有限元公式的梁,从而有效地表示各种结构配置。这个经过验证的数值模型考虑了车辆-基础设施的相互作用。

参考文献1:

摘要:
本文研究了关于铰接高速列车在桥梁上的动力相互作用系统的问题。建立了桥梁-铰接列车系统的动力相互作用模型,该模型由铰接车辆元素模型和有限元桥梁模型组成。根据铰接车辆的结构和悬挂特性建立了车辆模型,并编制了计算机仿真程序。以塔力斯铰接列车沿巴黎-布鲁塞尔高铁线上的Antoing桥通过为例,对桥梁和车辆的动态响应进行了计算分析。通过比较计算结果和实地测量数据验证了提出的分析模型和解决方法。讨论了铰接列车的振动行为。

参考文献2:

摘要:
本文讨论了火车在一系列简支铁路桥上行驶的二维稳态响应和乘坐舒适度,以及轨道和桥梁的冲击响应。通过之前开发的凝结技术解决了车辆-轨道-桥梁相互作用系统的动态响应。为了使行驶的火车达到稳态响应,应考虑由最少单元组成的桥梁段。通过使用功率谱密度(PSD)函数来考虑具有随机性质的轨道不平整。计算和讨论了火车、轨道和桥梁的稳态响应,以及响应的快速傅里叶变换(FFT)。利用冲击系数研究了不同火车速度下轨道和桥梁的冲击响应。确定了由于火车-轨道-桥梁共振引起的火车的最大响应。最后,使用斯伯林骑行指数评估了行驶在不同不规则等级轨道上的火车的乘坐舒适度。

参考文献3:

摘要
本文考虑了具有非线性轮轨接触力的模型,用于分析高速列车与桥梁之间的动态相互作用,以研究由耦合引起的桥梁和车辆中的动态效应。在评估诸如列车跨越强横风吹袭的桥梁或发生地震时车辆翻车等情况下的行车稳定性和安全性时,可能需要使用非线性接触模型。为了研究列车和桥梁的耦合动态响应,车辆采用多体动力学模型,结构采用有限元方法。本文特别强调了铁路车辆和轨道之间接触相互作用力的考虑。本文比较了四种不同的相互作用模型:(1)车辆轮对被认为与轨道刚性耦合的模型;(2)交错解耦方法,在该方法中分别分析车辆和结构;(3)线性接触模型,在该模型中,允许轨道和列车车轮之间的横向相对位移,假设双圆锥车轮和轨道剖面,以及Kalker理论的正接触的线性理论;(4)非线性模型,其中使用实际的车轮和轨道剖面,Hertz的非线性理论用于法向接触,Kalker的非线性理论用于切向接触。不同模型应用并与中国高速列车的一项实验测量进行比较。

📚2 运行结果

 部分代码:

% Input processing
if calc_type == 0
    out_field = 'StaticShear';
    in_field = 'StaticU';
elseif calc_type == 1
    out_field = 'Shear';
    in_field = 'U';
end % if calc_type == 0
    
% Initialize variables
Sol.Beam.(out_field).xt = zeros(Beam.Mesh.Nodes.Tnum,Calc.Solver.num_t);

% In-line functions (more efficient alternative to subfunctions)
B32_Beam_ele_HS = ...
    @(L,E,I) double(E*I*[[12/L^3,6/L^2,-12/L^3,6/L^2];[12/L^3,6/L^2,-12/L^3,6/L^2]]);

% ---- NO average nodal values ----
if Calc.Options.Shear_calc_mode == 0
    
    for ele = 1:Beam.Mesh.Ele.Tnum

        aux1 = B32_Beam_ele_HS(Beam.Mesh.Ele.a(ele),Beam.Prop.E_n(ele),Beam.Prop.I_n(ele));
        Sol.Beam.(out_field).xt(ele,:) = aux1(1,:) * ...
            Sol.Model.Nodal.U(Model.Mesh.DOF.beam(Beam.Mesh.Ele.DOF(ele,:)),:);

    end %for ele

    ele = Beam.Mesh.Nodes.Tnum;
    aux1 = B32_Beam_ele_HS(Beam.Mesh.Ele.a(ele-1),Beam.Prop.E_n(ele-1),Beam.Prop.I_n(ele-1));
    Sol.Beam.(out_field).xt(ele,:) = aux1(2,:) * ...
        Sol.Model.Nodal.(in_field)(Model.Mesh.DOF.beam(Beam.Mesh.Ele.DOF(ele-1,:)),:);
    
% ---- AVERAGE nodal values ----
elseif Calc.Options.Shear_calc_mode == 1
    
    for ele = 1:Beam.Mesh.Ele.Tnum

        Sol.Beam.(out_field).xt([1,2]+(ele-1),:) = Sol.Beam.(out_field).xt([1,2]+(ele-1),:) + ...
            B32_Beam_ele_HS(Beam.Mesh.Ele.a(ele),Beam.Prop.E_n(ele),Beam.Prop.I_n(ele)) * ... 
            Sol.Model.Nodal.(in_field)(Model.Mesh.DOF.beam(Beam.Mesh.Ele.DOF(ele,:)),:);

    end %for ele

    % Average of nodes with multiple calculations
    Sol.Beam.(out_field).xt(2:end-1,:) = Sol.Beam.(out_field).xt(2:end-1,:)/2;
    
end % Calc.Options.Shear_calc_mode

% ---- Additional Outputs ----

% Maximum Shear Force
[Sol.Beam.(out_field).max,aux1] = max(Sol.Beam.(out_field).xt);
[Sol.Beam.(out_field).max,aux2] = max(Sol.Beam.(out_field).max);
Sol.Beam.(out_field).max_node = aux1(aux2);
Sol.Beam.(out_field).max_COP = Beam.Mesh.Nodes.acum(Sol.Beam.(out_field).max_node);
Sol.Beam.(out_field).max_pCOP = Sol.Beam.(out_field).max_COP/Beam.Prop.L*100;
Sol.Beam.(out_field).max_t_crit = Calc.Solver.t(aux2);
if Sol.Beam.(out_field).max_pCOP < 50
    Sol.Beam.(out_field).max_supp = max(Sol.Beam.(out_field).xt(1,:));
else
    Sol.Beam.(out_field).max_supp = max(Sol.Beam.(out_field).xt(end,:));
end % if Sol.Beam.(out_field).max_pCOP < 50

% Minimum Shear Force
[Sol.Beam.(out_field).min,aux1] = min(Sol.Beam.(out_field).xt);
[Sol.Beam.(out_field).min,aux2] = min(Sol.Beam.(out_field).min);
Sol.Beam.(out_field).min_node = aux1(aux2);
Sol.Beam.(out_field).min_COP = Beam.Mesh.Nodes.acum(Sol.Beam.(out_field).min_node);
Sol.Beam.(out_field).min_pCOP = Sol.Beam.(out_field).min_COP/Beam.Prop.L*100;
Sol.Beam.(out_field).min_t_crit = Calc.Solver.t(aux2);
if Sol.Beam.(out_field).min_pCOP < 50
    Sol.Beam.(out_field).min_supp = min(Sol.Beam.(out_field).xt(1,:));
else
    Sol.Beam.(out_field).min_supp = min(Sol.Beam.(out_field).xt(end,:));
end % if Sol.Beam.(out_field).min_pCOP < 50

% ---- End of function ----

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]He Xia, Nan Zhang, Guido De Roeck,Dynamic analysis of high speed railway bridge under articulated trains,Computers & Structures,Volume 81, Issues 26–27,2003,Pages 2467-2478,ISSN 0045-7949.

[2]Yean-Seng Wu, Yeong-Bin Yang,Steady-state response and riding comfort of trains moving over a series of simply supported bridges,Engineering Structures,Volume 25, Issue 2,2003,
Pages 251-265,ISSN 0141-0296.

[3]Pablo Antolín, Nan Zhang, José M. Goicolea, He Xia, Miguel Á. Astiz, Javier Oliva, Consideration of nonlinear wheel–rail contact forces for dynamic vehicle–bridge interaction in high-speed railways,Journal of Sound and Vibration,Volume 332, Issue 5,2013,Pages 1231-1251,
ISSN 0022-460X.

🌈4 Matlab代码、文章下载

  • 33
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值