2023 年第八届数维杯大学生数学建模挑战赛 B 题详细思路 节能列车运行控制优化策略

news2024/11/19 23:40:45

一种可能的建模方法是基于列车的动力学方程和阻力方程,将列车视为单质点,忽略车厢间的车钩力和速度差。根据给定的参数,可以建立如下的方程:

$$m(p+1)\frac{dv}{dt}=F-f(v)-g(i)$$

$$f(v)=2.0895+0.0098v+0.006v^2$$

$$g(i)=mgi$$

 

其中,$m$是列车质量,$p$是旋转质量因子,$v$是列车速度,$t$是时间,$F$是列车牵引力或制动力,$f(v)$是列车所受基本阻力,$g(i)$是列车所受坡道附加阻力,$i$是坡度千分数。

为了求解这个微分方程,可以使用数值方法,如欧拉法或龙格-库塔法。具体的步骤如下:

1. 将时间区间$[0,T]$划分为$n$个小区间,每个区间的长度为$\Delta t=T/n$。令$t_k=k\Delta t,k=0,1,\dots,n$。

2. 给定初始条件$v_0=v(0)$和初始牵引力或制动力$F_0=F(0)$。

3. 对于$k=0,1,\dots,n-1$,根据数值方法计算$v_{k+1}=v(t_{k+1})$和$F_{k+1}=F(t_{k+1})$。例如,如果使用欧拉法,则有:

 

$$v_{k+1}=v_k+\frac{F_k-f(v_k)-g(i_k)}{m(p+1)}\Delta t$$

$$F_{k+1}=\min\{\max\{F_k+\alpha\Delta t,-760\},310\}$$

其中,$\alpha$是牵引力或制动力的变化率,可以根据不同的运行策略设定。注意,牵引力或制动力需要满足最大值和最小值的限制。

4. 根据$v_k$和$\Delta t$计算列车运行距离$s_k=s(t_k)$。例如,如果使用梯形法,则有:

$$s_{k+1}=s_k+\frac{v_k+v_{k+1}}{2}\Delta t$$

 

5. 根据$v_k,s_k,t_k,F_k$绘制所需的曲线。例如,速度-距离曲线就是$v=f(s)$,牵引制动力-距离曲线就是$F=f(s)$等。

6. 为了获取不同运行时间的曲线,可以调整$\alpha$的值或者在某些区间内设置惰行模式(即$F=0$)。例如,如果要求列车在最短运行时间上增加10s到达站台

实现代码

首先,需要定义一些常量和初始条件,如列车质量$m$、旋转质量因子$p$、坡度$i$、初始速度$v_0$、初始牵引力或制动力$F_0$、时间区间$[0,T]$、时间步长$\Delta t$等。这些参数可以根据具体的列车和路线进行设置。

m = 200000     # kg, 列车质量
p = 0.05       # 旋转质量因子
i = 0.01       # 坡度千分数
v0 = 0         # 初始速度
F0 = 30000     # 初始牵引力或制动力
T = 500        # s, 时间区间
dt = 1         # s, 时间步长
n = int(T/dt)  # 时间步数

接下来,可以定义一些函数,如阻力函数$f(v)$、附加阻力函数$g(i)$、数值解微分方程的函数$ode_func(v, t, F)$等。这些函数可以根据具体的物理模型进行定义。

def f(v):
    return 2.0895 + 0.0098*v + 0.006*v**2

def g(i):
    return m*9.8*i

def ode_func(v, t, F):
    dvdt = (F - f(v) - g(i)) / (m*(p+1))
    return dvdt

然后,可以使用欧拉法或者其他数值方法来求解微分方程。这里以欧拉法为例

# 初始化数组
v = [v0] * (n+1)
s = [0] * (n+1)
F = [F0] * (n+1)
t = [i*dt for i in range(n+1)]

# 求解微分方程
for i in range(n):
    dvdt = ode_func(v[i], t[i], F[i])
    v[i+1] = v[i] + dvdt*dt
    F[i+1] = min(max(F[i] + alpha*dt, -760), 310)
s[i+1] = s[i] + (v[i] + v[i+1])/2 * dt

根据求解出的速度、距离和牵引力或制动力,可以绘制速度-距离曲线、牵引制动力-距离曲线、时间-距离曲线和能量消耗-距离曲线。具体的实现可以使用matplotlib等库进行绘制。

import matplotlib.pyplot as plt

# 绘制速度-距离曲线
plt.plot(s, v)
plt.xlabel('Distance (m)')
plt.ylabel('Speed (m/s)')
plt.title('Speed-Distance Curve')
plt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/516765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NAT是如何工作的?

广域网是由很多的局域网组成的,比如公司网络、家庭网络、校园网络等。我们到微观层面,看看局域网是如何工作的。IPv4 的地址不够,因此需要设计子网。当一个公司申请得到一个公网 IP 后,会在自己的公司内部设计一个局域网。这个局域…

8自由度串联四足机器人实现前进功能

1. 功能说明 本文示例将实现R253样机8自由度串联四足机器人前进的功能,该机构是由4个 2自由度串联仿生腿 组成。 2. 串联关节型机器人运动算法 8自由度串联四足机器人的前进步态是将机器人四足分成两组腿(身体一侧的前足与另一侧的后足)分别进…

集群时间同步

集群时间同步 时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。 1.配置时间同步具体实操: 1.1)时间服务器配…

中国20强(上市)游戏公司2022年财报分析:营收结构优化,市场竞争进入白热化

易观:受全球经济增速下行的消极影响,2022年国内外游戏市场规模普遍下滑。但中国游戏公司凭借处于全球领先水平的研发、发行和运营的能力与经验,继续加大海外市场布局,推动高质量发展迈上新台阶。 风险提示:本文内容仅代…

lvm分区扩容

1.前言 此试验对root目录扩容20GB,使用lvm模式扩容,需要先声明,搭建centos主机的时候要把分区模式改成lvm模式,这样后期扩容的时候就比较好处理,如果使用了默认的part模式的话,扩容分区需要将数据先迁移备…

k8s架构了解

Kubernetes(k8s)是用于自动部署、扩展和管理“容器化应用程序”的开源系统 k8s由control plane以及cluster nodes构成 control plane control plane是维护所有k8s对象记录的系统,持续管理着对象状态,并且对集群的变化做出响应,并使状态匹…

2022年美国大学生数学建模竞赛B题水和水力发电分配解题全过程文档及程序

2022年美国大学生数学建模竞赛 B题 水和水力发电分配 原题再现: 背景:   几个世纪以来,人们在河流和溪流.上修建水坝来蓄水建造水库,以此作为管理供水的方式。这些水库储存各种用途的水(如农业、工业、住宅),提供休闲和娱乐场…

git可视化管理工具SourceTree安装教程

一、背景 本文主要写给,不熟悉git命令或者不喜欢使用git命令的开发者使用,SourceTree可视化见面可以清晰操作git,管理项目方便,可追溯代码编写者及日期。轻松完成项目的dev、sit、线上环境代码管理与合并。无需使用git命令,彻底释…

北京筑龙参编的《国有企业采购操作规范(2023版)》发布

近日,中国物流与采购联合会发布《国有企业采购操作规范(2023版)》团体标准,北京筑龙作为起草单位之一参与编写。新版团体标准为国有企业编制采购管理制度、规范采购行为提供了参照和依据,有助于进一步提高国企采购的规…

【腾讯云 Finops Crane 集训营】深入了解 Crane 开源项目,集训营实验操作指南,体验过程总结

前言 最近有幸参与了腾讯云举办的Finops Crane的集训营。在这个过程中,老师认真指导,让我受益非浅,也让我真正理解了这一产品所带来的意义。 在听了老师们的介绍和讲解后,我马不停蹄地开始了自己摸索。首先是跟着视频和官方教程…

7.100ASK_V853-PRO开发板支持人形检测和人脸识别

1.前言 ​ V853 芯片内置一颗 NPU核,其处理性能为最大 1 TOPS 并有 128KB 内部高速缓存用于高速数据交换,支持 OpenCL、OpenVX、android NN 与 ONNX 的 API 调用,同时也支持导入大量常用的深度学习模型。本章提供一个例程,展示如…

银医一站式服务终端

01 发卡/充值/挂号业务 ●发卡就诊 ●预约挂号 ●当日挂号 ●自助充值 ●医保关联 ●预约取号 ●现金充值 ●核酸预约 02 打印业务 ●打印检验报告 ●打印检查报告 ●打印费用清单 ●打印病历报告 ●打印住院病历 ●打印检验条码 03 缴费结算业务 ●支付宝支付…

AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘

terminal运行报错AttributeError: module lib has no attribute X509_V_FLAG_CB_ISSUER_CHECK 解决: pip install pyOpenSSL --upgrade

Log4j2远程命令执行(CVE-2021-44228)

漏洞原理 该漏洞是由于,在JNDI客户端的lookup()函数参数外部可控或Reference类构造方法的classFactoryLocation参数外部可控时,会使用户的JNDI客户端访问RMI注册表中绑定的恶意Reference类,从而加载远程服务器上的恶意class文件在客户端本地…

实现微信打开App功能

效果 要求 文档 开发标签文档 android接入指南 android实现 1.接入openSDK dependencies { api ‘com.tencent.mm.opensdk:wechat-sdk-android:6.8.0’ } 2.注册 需要在包名为(applicationId)wxapi的包下加入以上几个类。 类名功能AppRegister是一…

heic如何转换jpg格式?

heic如何转换jpg格式?HEIC是苹果推出的一种新型图片格式,它可以在保证高质量图像的同时减小图像文件的大小。虽然HEIC格式在iOS设备上使用广泛,但在其他操作系统或平台上,特别是Windows系统中,其兼容性和支持程度较差。…

蓝牙单连接和多连接知识

蓝牙单连接和多连接知识 生活中蓝牙连接多路蓝牙的情况越来越多&#xff0c;下面介绍下单连接和多连接的知识&#xff0c;供大家参考 一&#xff1a;蓝牙单连接 蓝牙单连接也称为Point-to-Point 点对点连接&#xff0c;是最常见的蓝牙连接场景,如手机<–>车载蓝牙。&…

〖Web全栈开发①〗—网络编程基础(上)

网络编程基础 网络编程网络编程概述TCP/IP协议IP地址什么是IPIP组成IP 地址使用过程查看IPIp地址分类&#xff1a;子网掩码 端口 socketSocket原理&#xff11;.什么是Socket2.创建一个tcp socket&#xff08;tcp套接字&#xff09; tcp 介绍 &#x1f3d8;️&#x1f3d8;️个…

安卓卡死,卡屏,死机,黑屏

(662条消息) 黑屏定屏那些事 - 系统机制&#xff0c;分析套路和实战&#xff08;系统篇&#xff09;_android黑屏问题分析_内核工匠的博客-CSDN博客

Java 是如何实现双亲委托加载机制的

Java 是一种面向对象的编程语言&#xff0c;它有一套独特的类加载机制。其中&#xff0c;双亲委托加载机制是 Java 类加载机制中的一个重要概念。本文将介绍 Java 的双亲委托加载机制是如何实现的&#xff0c;并解释其作用和优点。 Java 类加载机制 在 Java 中&#xff0c;类的…