基于粒子群算法的城轨列车牵引多目标能耗优化问题附matlab代码

news2025/7/19 3:47:44

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

城市轨道交通是我国公共交通系统的重要组成部分。作为一种安全舒适、准时快捷的交通方式,近年来,城市轨道交通建设取得了飞速发展。但由于城市轨道交通总运量大,能源消耗问题是一个亟待解决的问题。因此,研究城市轨道交通节能问题具有重要的现实意义。本文主要从节能的角度研究城市轨道交通基于通信的列车运行控制系统中单列车运行曲线优化和多列车追踪运行曲线优化问题。将单列车作为研究对象时,考虑节能和准点两个目标,采用多目标粒子群算法对列车曲线进行求解;将多列车作为研究对象时,考虑列车追踪过程中前车的位置和速度信息对后车的运行会产生一定的影响,结合列车追踪运行的动态特性,采用动态粒子群算法对追踪列车运行曲线进行优化。最后,结合实际线路数据对以上算法进行仿真验证,证明采用以上算法优化列车运行曲线可以达到较好的节能效果。本文具体的研究内容如下:(1) 对列车运行过程进行分析,描述列车动力学模型;分析列车追踪运行特性,按照不同追踪场景描述列车追踪运行模型;分析了影响列车节能运行的关键因素,并描述列车能耗计算模型。(2) 采用多目标粒子群算法对单列车运行曲线进行优化。对线路信息进行离散化处理,将节能和准点作为单列车运行曲线的优化目标,结合多目标粒子群算法参数收敛性好的特点,求解列车在区间运行的优化运行曲线。相较于传统多目标优化问题求解方法,多目标粒子群算法摒弃了将多个子目标优化问题转化为单目标优化问题的求解方式,不需要依赖设计者的经验值选取系数,能够更好地保持解的多样性。(3) 采用动态多目标粒子群算法优化追踪列车运行曲线。分析移动闭塞下两车追踪运行时,前车对后车运行产生的影响,结合动态粒子群算法在动态环境下能够有效寻优的特点,将前车的位置和速度信息考虑到后车运行曲线优化中,求解追踪列车优化运行曲线。

论文部分复现

⛄ 部分代码

clc

clear;

close all;

tic

%参数初始化

arginitial();

%限速和坡度约束处理,并且保存处理结果

CacBrakeSpeedLimit();

[Emax,Tmin]=CacMinTime();

%多目标粒子群算法参数

options.PopulationSize = 10;  %种群大小  

options.MaxGenerations = 50;  %算法最大迭代次数

options.Continue = 0 ;  %是否继续原来的优化,如果要继续则要传入种群options.Pop和速度参数options.Veo

for num=1:1

%正式开始优化

[ExREP,ExChar,REPNum,gridFit,Population,Velocity,enterCountList,repNumList,avgPersonalFitnessList,GobalFitNessList]=FMOPSO_d(options);

% for i=1:REPNum

%     [flag,Energy,Time,MissError] = CalcEJT(ExREP(i,:),2);

%     disp(['运行能耗:',num2str(Energy),'  运行时间:',num2str(Time),'  停车误差:',num2str(MissError)])

% end

[flag,Energy,Time,MissError] = CalcEJT(ExREP(1,:),1);   %展示优化结果

str=['Result',num2str(num),'.mat'];

save(str,'ExREP','ExChar','enterCountList','repNumList');

str=['运行次数:',num2str(num)];

disp(str);

end

toc

⛄ 运行结果

⛄ 参考文献

[1]李玲玉. 基于粒子群算法的城市轨道交通列车节能优化研究[D]. 北京交通大学, 2016.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

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

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

相关文章

python基础之元组

文章目录一、元组注意:二、创建元组怎么验证这个变量真的是一个元组类型:三、使用迭代遍历元组四、应用场景五、格式化字符串后面的()本质上就是元组六、元组和列表之间的转换一、元组 元组(Tuple)与列表类…

Python(PyQt5)制作帮助文档查看器(可显示后缀名为md的文件)同时显示文本和图片

先看完整效果图: 帮助文档查看器是很多程序中必备要素,而利用Qt中的QTreeView组件可以很方便的查看文件,而QTextBrowser可以直接显示格式化的MarkDown文本。因此可以利用这两个组件制作一个帮助文件查看器。 未优化 效果图: 问题优化: 你会发现QT treeView列宽设置不成功问题…

Mybatis-Plus 06 条件构造器和常用接口

一、wapper介绍 Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件 ​ QueryWrapper : 查询条件封装 ​ UpdateWrapper : Update 条件封装 AbstractL…

PG::Inclusiveness

nmap -Pn -p- -T4 --min-rate1000 192.168.134.14 nmap -Pn -p 21,22,80 -sCV 192.168.134.14 80端口是默认页面,先查看21端口FTP服务的匿名登录,并未发现可利用信息。 继续查看80端口,在robots.txt中得到提示。 https://www.howtogeek.co…

【Kubernetes | Pod 系列】Pod的 YAML 清单文件详解

目录3. Pod的 YAML 清单文件3.1 获取资源对象 YAML3.2 解析 YAML 清单文件(1)apiVersion查看 Kubernetes API 中全部的 API 组(2)kind查看 Kubernetes 中全部的对象资源类型(3)metadata(4&#…

SpringBoot整合Mybatis方式2:使用注解方式整合Mybatis

SpringBoot整合Mybatis简介SpringBoot整合Mybatis方式2:使用注解方式整合Mybatis1.先用idea创建一个添加mybatis需要的相关依赖的工程。2.准备数据库和表3.创建表映射类4.创建mapper代理接口5.创建Service层和Service的实现层6.创建控制层(也就是web层&a…

JQuery使用

简介 一个JavaScript的框架,简化了JS的语法和操作,定义了HTML属性操作、样式操作、DOM 操作等相关函数,实现了对ajax异步请求封装。提供了很多预定义函数的JS文件。 作用 简化部分JavaScript开发 使用步骤 1,引入Jquery 下载 地址1:http:/…

D-0015 红外接收硬件电路设计

红外接收硬件电路设计1 简介2 硬件电路实战3 红外遥控的原理4 主要参数5 电路设计要点1 简介 肉眼可见的光,按照波长进行排列依次为:红、成、黄、绿、青、蓝、紫。其中红光的波长范围为0.620.76μm;紫光的波长范围为0.380.46μm。比紫光波长…

[iOS]代码混淆

混淆有几点注意: 不能混淆系统方法 不能混淆init开头的等初始化方法 混淆属性时需要额外注意set方法 如果xib、 storyboard中用到了混淆的内容,需要手动修正。 可以考虑把需要混淆的符号都加上前缀,跟系统自带的符号进行区分。 混淆有风险&am…

MMEdu离线版的使用:实现石头剪刀布图像分类的检测

一、MMEdu离线版的使用 1.双击XEdu v1.0.exe解压缩到某个盘,会是一个文件夹XEdu 2.进入XEdu,双击运行“点我初始化.bat”,等待至运行结束命令提示符窗口自动关闭 3.双击运行“jupyter编辑器.bat”,将会打开一个网页版jupyter&…

记一次由于google新版本限制升级导致的跨域问题

记一次跨域问题 问题描述 系统集成到公司下面的门户网站,由于二级域名还没有申请下来只能先配置了我们的K8S域名 http://wire-qa.motortest.com/#/Data/systemNavigationK8s域名 http://wire-test.k8s-pv.motor.com/sce_web/index.html前端识别到跳转的如下地址后…

微服务介绍2

1 搭建项目 1.1 父项目的搭建 1.2 子项目的搭建 2 项目展示 1 搭建项目 1.1 父项目的搭建 步骤: 1 选择maven项目作为父项目,修改为1.8之后直接点击next 2 定义父项目的名称,修改Artifct Coordinates ---> GroupId 然后点击finsh就可以啦…

K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署

1、重置和清除旧工程:每个节点主机都要运行 kubeadm reset iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X 2、部署新的k8s项目: 只在主节点运行,apiserver-advertise-address填写主…

(附源码)计算机毕业设计JavaJava毕设项目美容院管理系统

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

HDC 2022 开发者主题演讲与技术分论坛干货分享(附课件)

11月4日-11月6日,HDC 2022在东莞成功举办,这是一场大规模落地的思维与技术的碰撞,众多业内专家到场,共话未来。其中,开发者主题演讲围绕增强的声明式开发体系,通过一个Demo实例讲解技术创新点,助…

LEADTOOLS 入门教程: 使用文件观察器转换文件 - C# .NET Core

LEADTOOLS 是一个综合工具包的集合,用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别和处理&#…

PyQt5 QTableWidget

PyQt5 QTableWidgetQTableWidget 示例1QTableWidget 示例2QTableWidget 示例3QTableWidget 示例4QTableWidget 示例5QTableWidget 示例6QTableWidget 示例1 演示QTableWidget控件的基本使用方法 import sys from PyQt5.QtWidgets import (QWidget, QTableWidget, QTableWidge…

The Seven Tools of Causal Inference with Reflections on Machine Learning 文章解读

目录 THE THREE LAYER CAUSAL HIERARCHY. 4 THE SEVEN TOOLS OF CAUSAL INFERENCE (OR WHAT YOU CAN DO WITH A CAUSAL MODEL THAT YOU COULD NOT DO WITHOUT?) 7 Tool 1: Encoding Causal Assumptions – Transparency and Testability. 10 Tool 2: Do-calculus and the …

CentOS 7:dmPython安装及测试连接达梦数据库

python下载地址:Python Source Releases | Python.org 查看数据库服务 dmPython 安装 cd /home/dmdba/dmdbms/drivers/python/dmPython python setup.py install [rootlocalhost dmPython]# python setup.py install running install running bdist_egg running e…

通过Python Pandas分析数据上涨下跌趋势的方法:求离散数据的差分、导数

在实际工作中,我们经常需要分析一组数据的历史走势/趋势情况,比如要从产品数据库中筛选出销量处于上升趋势的产品,或者从股票历史数据库中筛选出一直处于上涨的股票。 那么可以通过分析计算该组数据的差分来模拟求出该组数据走势线的导数&…