根据列车质量、运行时间、运行距离、区段限速和道路坡度等参数,只考虑牵引力、总阻力、制动力的情况下计算列车最低消耗能量的matlab程序
时间: 2023-07-10 12:05:05 浏览: 105
以下是一个简单的 MATLAB 程序,用于计算列车在给定运行条件下的最低能量消耗:
```matlab
% 列车参数
m = 100000; % 列车质量(kg)
v0 = 0; % 初始速度(m/s)
vf = 50; % 最终速度(m/s)
d = 10000; % 运行距离(m)
g = 9.81; % 重力加速度(m/s^2)
theta = 3; % 道路坡度(度)
% 区段限速
vmax = 80/3.6; % 最高限速(m/s)
% 牵引力和制动力
Ftmax = 50000; % 最大牵引力(N)
Fdmax = 40000; % 最大制动力(N)
% 计算阻力
Cr = 0.002; % 滚动阻力系数
Cd = 0.3; % 空气阻力系数
A = 25; % 空气阻力面积(m^2)
L = 200; % 列车长度(m)
v = v0:0.1:vf; % 速度范围(m/s)
Fg = m*g*sin(theta); % 上坡阻力
Fr = m*g*Cr*cos(theta); % 滚动阻力
Fa = 0.5*Cd*A*(v.^2); % 空气阻力
Ftotal = Fr + Fa + Fg; % 总阻力
% 计算最低能量消耗
Emin = inf; % 初始能量设为无穷大
for Ft = 0:Ftmax
for Fd = 0:Fdmax
Fnet = Ft - Fd - Ftotal; % 净牵引力
Fnet(Fnet < 0) = 0; % 净牵引力不能小于零
vlim = min(vmax, sqrt(2*Fnet./m)*3.6); % 计算限制速度
t = (d./vlim).*(vlim <= vf) + (d./(vlim + (vlim >= vf).*(vlim - vf))).*(vlim > vf); % 计算运行时间
E = trapz(t, Fnet.*v); % 计算能量消耗
if E < Emin
Emin = E;
Ft_optimal = Ft;
Fd_optimal = Fd;
vlim_optimal = vlim;
t_optimal = t;
end
end
end
% 输出结果
fprintf('最低能量消耗为 %f J\n', Emin);
fprintf('最优牵引力为 %f N\n', Ft_optimal);
fprintf('最优制动力为 %f N\n', Fd_optimal);
plot(v, Ftotal, vlim_optimal, Fnet, 'r', [v0 vf], [Ft_optimal-Fd_optimal Ft_optimal-Fd_optimal], 'g--');
xlabel('速度(m/s)');
ylabel('力(N)');
legend('总阻力', '净牵引力', '最优速度', '最优牵引力-制动力');
```
这个程序首先定义了列车的各种参数,包括质量、运行距离、坡度、限速等。然后计算了列车在给定速度范围内的阻力,并使用两个循环来计算所有可能的牵引力和制动力的组合。对于每个组合,程序计算净牵引力,并根据净牵引力和区段限速计算最优速度和运行时间。最后程序通过积分计算能量消耗,并记录最低能量消耗和相应的牵引力和制动力。
程序输出最低能量消耗和最优牵引力和制动力,并绘制了速度-力曲线和最优速度对应的净牵引力和牵引力-制动力之间的差值曲线。注意,这个程序假设列车在水平面上运行,因此没有考虑转弯等其他因素。
阅读全文