假设一辆列车在水平轨道上运行,从站台A运行至站台B,其间距为5144.7m, 运行的速度上限为100km/h,列车质量为176.3t,列车旋转部件惯性的旋转质量 因数� = 1.08,列车电机的最大牵引力为310KN,机械制动部件的最大制动力为 760KN。列车受到的阻力满足Davis阻力方程� = 2.0895 + 0.0098v + 0.006v 2,该 公式中的速度单位为m/s,阻力单位为KN。 你如何通过建模方法编写程序以获得列车运行过程的速度-距离曲线、牵引 制动力-距离曲线、时间-距离曲线与能量消耗-距离曲线?程序的运行时间是多 长?需要获取列车以最短时间到达站台B、在最短运行时间上分别增加10s、20s、 50s、150s、300s到达站台B总共六组曲线。

时间: 2023-06-18 21:03:51 浏览: 388
为了建立列车的运动模型,我们需要先了解列车在运动过程中所受到的各种力,进而运用牛顿力学公式来求解列车的加速度和速度。 列车在运动过程中受到的力可以分为以下几种: 1. 牵引力:由列车电机提供,使列车加速运动。 2. 阻力:包括空气阻力、摩擦阻力、曲线阻力等,使列车减速或匀速运动。 3. 制动力:由机械制动部件提供,使列车减速或停止运动。 4. 惯性力:由列车旋转部件的惯性作用产生,影响列车运动状态。 我们可以根据列车受到的各种力,建立列车的运动方程组: F = ma 其中,F为列车受到的合力,m为列车质量,a为列车的加速度。根据万有引力定律,列车所受到的合力F可以表示为: F = F_t - F_b - F_d - F_i 其中,F_t为列车的牵引力,F_b为列车的制动力,F_d为列车的阻力,F_i为列车的惯性力。 牵引力F_t和制动力F_b可以根据列车的运行状态和限制条件计算得到,阻力F_d和惯性力F_i可以根据给定的阻力方程和惯性系数计算得到。 因此,我们可以通过迭代求解列车的运动方程组,得到列车运行过程的速度-距离曲线、牵引制动力-距离曲线、时间-距离曲线与能量消耗-距离曲线。 下面是程序的伪代码: ``` # 初始化参数 distance = 5144.7 # 站台A到站台B的距离,单位m max_speed = 100 # 列车的最大速度,单位km/h mass = 176.3 # 列车的质量,单位t inertia_factor = 1.08 # 列车旋转部件惯性的旋转质量因数 max_traction_force = 310 # 列车电机的最大牵引力,单位KN max_braking_force = 760 # 机械制动部件的最大制动力,单位KN air_resistance_coef = 2.0895 # 空气阻力系数 friction_resistance_coef = 0.0098 # 摩擦阻力系数 curve_resistance_coef = 0.006 # 曲线阻力系数 time_step = 1 # 时间步长,单位s total_time = 0 # 总时间,单位s total_distance = 0 # 总距离,单位m total_energy = 0 # 总能量消耗,单位J # 初始化列车状态 speed = 0 # 列车速度,单位m/s position = 0 # 列车位置,单位m acceleration = 0 # 列车加速度,单位m/s^2 traction_force = 0 # 牵引力,单位KN braking_force = 0 # 制动力,单位KN air_resistance = 0 # 空气阻力,单位KN friction_resistance = 0 # 摩擦阻力,单位KN curve_resistance = 0 # 曲线阻力,单位KN inertia_force = 0 # 惯性力,单位KN # 初始化曲线数据 speed_distance_curve = [] # 速度-距离曲线 traction_braking_distance_curve = [] # 牵引制动力-距离曲线 time_distance_curve = [] # 时间-距离曲线 energy_distance_curve = [] # 能量消耗-距离曲线 # 迭代求解列车的运动方程组 while position < distance: # 计算牵引力和制动力 if speed < max_speed: traction_force = max_traction_force else: traction_force = 0 if speed == 0: braking_force = 0 else: braking_force = max_braking_force # 计算阻力和惯性力 air_resistance = air_resistance_coef * speed ** 2 friction_resistance = friction_resistance_coef * mass * 9.8 curve_resistance = curve_resistance_coef * mass * 9.8 * (speed / max_speed) ** 2 inertia_force = inertia_factor * acceleration # 计算加速度 acceleration = (traction_force - braking_force - air_resistance - friction_resistance - curve_resistance - inertia_force) / mass # 计算速度和位置 speed += acceleration * time_step if speed < 0: speed = 0 position += speed * time_step # 计算能量消耗 energy = (traction_force - braking_force) * speed * time_step total_energy += energy # 计算时间和距离 total_time += time_step total_distance += position - total_distance # 记录曲线数据 speed_distance_curve.append((position, speed)) traction_braking_distance_curve.append((position, traction_force - braking_force)) time_distance_curve.append((position, total_time)) energy_distance_curve.append((position, total_energy)) # 输出曲线数据 print("速度-距离曲线:", speed_distance_curve) print("牵引制动力-距离曲线:", traction_braking_distance_curve) print("时间-距离曲线:", time_distance_curve) print("能量消耗-距离曲线:", energy_distance_curve) ``` 根据程序的伪代码,我们可以得到列车运行过程的速度-距离曲线、牵引制动力-距离曲线、时间-距离曲线与能量消耗-距离曲线。为了获取列车以最短时间到达站台B、在最短运行时间上分别增加10s、20s、50s、150s、300s到达站台B总共六组曲线,我们只需要在程序中增加对应的限制条件,即可得到不同运行时间下的曲线数据。 程序的运行时间取决于所设置的时间步长和迭代次数,一般来说,程序的运行时间不会超过几分钟。

相关推荐

最新推荐

recommend-type

PID调参基础.docx

我们所乘坐的动车,在即将到达站点的时候会切断动力,凭借惯性进入月台,如果火车在切断动力的时候时速是100km/h并且距离月台是1KM,那么这个100比1就是比例P的含义,P越大,他在站前开始滑行的速度也就越快,...
recommend-type

基于物联网的智能公交系统设计

系统通过RFID技术对公交车辆进行跟踪、定位、监控和调度,站台的触摸屏统计各路次候车乘客数,及电子站牌实时发布各车次到站时间等信息,利用Zigbee无线网络技术实现车载终端、站台系统和调度监控中心之间的通信。...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用matlab绘制高斯色噪声情况下的频率估计CRLB,其中w(n)是零均值高斯色噪声,w(n)=0.8*w(n-1)+e(n),e(n)服从零均值方差为se的高斯分布

以下是用matlab绘制高斯色噪声情况下频率估计CRLB的代码: ```matlab % 参数设置 N = 100; % 信号长度 se = 0.5; % 噪声方差 w = zeros(N,1); % 高斯色噪声 w(1) = randn(1)*sqrt(se); for n = 2:N w(n) = 0.8*w(n-1) + randn(1)*sqrt(se); end % 计算频率估计CRLB fs = 1; % 采样频率 df = 0.01; % 频率分辨率 f = 0:df:fs/2; % 频率范围 M = length(f); CRLB = zeros(M,1); for
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

实现实时监控告警系统:Kafka与Grafana整合

![实现实时监控告警系统:Kafka与Grafana整合](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9BVldpY3ladXVDbEZpY1pLWmw2bUVaWXFUcEdLT1VDdkxRSmQxZXB5R1lxaWNlUjA2c0hFek5Qc3FyRktudFF1VDMxQVl3QTRXV2lhSWFRMEFRc0I1cW1ZOGcvNjQw?x-oss-process=image/format,png) # 1.1 Kafka集群架构 Kafka集群由多个称为代理的服务器组成,这
recommend-type

python中从Excel中取的列没有了0

可能是因为Excel中的列被格式化为数字,而数字前导的0被省略了。可以在Excel中将列的格式更改为文本,这样就会保留数字前导的0。另外,在Python中读取Excel时,可以将列的数据类型指定为字符串,这样就可以保留数字前导的0。例如: ```python import pandas as pd # 读取Excel文件 df = pd.read_excel('data.xlsx', dtype={'列名': str}) # 输出列数据 print(df['列名']) ``` 其中,`dtype={'列名': str}`表示将列名为“列名”的列的数据类型指定为字符串。