列车-轨道-桥梁交互仿真研究(Matlab代码实现)
👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
TTB-2D 软件以 2D 表示形式模拟列车-轨道-桥梁系统的动态响应。火车表示为多个车辆的连续。轨道包括轨道不规则性,并对轨道、垫、枕木、道砟和子道砟进行建模。该桥被建模为具有可定制支撑条件的有限元公式的梁,从而有效地表示各种结构配置。这个经过验证的数值模型考虑了车辆-基础设施的相互作用。
📚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 Matlab代码实现
🎉4 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]Daniel Cantero (2022) TTB-2D: Train-Track-Bridge interaction simulation tool for Matlab
相关文章
- MATLAB快速搭建一个神经网络以及神经网络工具箱的使用
- nsga2 matlab,NSGA2算法特征选择MATLAB实现(多目标)
- matlab支持向量回归,支持向量回归 MATLAB代码
- matlab画图标签,Matlab绘图
- matlab批量处理excel(CSV)文件数据
- matlab的解决反复激活问题的license.lic文件[通俗易懂]
- 香农编码的matlab实现总结_matlab简单代码实例
- matlab保存图片函数后突变分辨变化,MATLAB总结 – 图片保存「建议收藏」
- matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类|附代码数据
- Matlab 直方图_matlab分析
- 怎么用matlab画心形曲线方程,matlab画心形曲线「建议收藏」
- matlab循环语句for_MATLAB以下选择语句错误的是
- 【MATLAB】MATLAB 2017A 软件安装
- 【MATLAB】数据类型 ( 执行代码 | 清空命令 | 注释 | 数字 | 字符 | 字符串 )
- 【数学数据处理软件】MATLAB最新版2023a下载安装