假设一辆列车在水平轨道上运行,从站台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 11:03:51 浏览: 1038
城市轨道交通站台门系统-站台门供电系统.pptx
为了建立列车的运动模型,我们需要先了解列车在运动过程中所受到的各种力,进而运用牛顿力学公式来求解列车的加速度和速度。
列车在运动过程中受到的力可以分为以下几种:
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总共六组曲线,我们只需要在程序中增加对应的限制条件,即可得到不同运行时间下的曲线数据。
程序的运行时间取决于所设置的时间步长和迭代次数,一般来说,程序的运行时间不会超过几分钟。
阅读全文