关注交通仿真公众号,获取更多精彩文章
未来的汽车是怎么跑起来的。
从滴滴交通大脑看交通仿真软件的创新变革。
还有更多资讯,请扫码关注。
如何自己编写一个交通仿真软件 开篇---- 走火入魔。
如何自己编写一个交通仿真软件(二)原野。
注意以下为老版本软件和代码。
软件下载地址(百度网盘)(可运行的软件位于debug目录下)
CSDN源代码下载(需有csdn账号)该文章也同时在CSDN 发布,有图有真相,也有exe(就是没有女票)。
以下为新版本软件和代码
任何安装了git客户端的人都可以用git pull最新完整版代码。
GIT项目地址:/sapperjiang/TrafficSim
git地址:/sapperjiang/TrafficSim.git
作者联系方式 :1286008361@.
作为专业人士(学生也算,烟酒僧,播士更不在话下),仅仅迷醉于用用vissim,看看3d仿真后的效果,是不行的,五无意批评某一款软件,但商业软件可用于微观交通建模的功能几乎没有(我是说,让你自己建立驾驶员模型,建立自己的行为规则,建立自己的交通规则,建立自己的交通控制规则,建立自己的巴拉巴拉,从根本上,而不仅仅是修改现有模型的参数)。so,way not 自己写一个?
OMG (噢my 瓜的,这太难了吧?)
对对,工作量很大,很难活到看到成果的那一刻,好在你是站在我的屁股(不,肩膀)上,可以活的快活些,可以看到努力+时间+女朋友的小手结合的结晶。
一、时光穿越
首先,让我们穿越到一段时间后(时间长取决于你的勤奋程度)看看我们的最终成果:
学过交通工程课本的童鞋一定很熟习,这不就是课本里面的那个拥堵消散的时空图吗?嘻嘻,是不是?我不告诉你。
仿真软件设置界面、以及仿真软件的初始界面(很丑?确实不如你女票漂亮。但是,放大缩小,图片移动等基本都实现了。忍着,看下一张图片。)
仿真运行界面截图、注意小色块即为仿真软件的车辆模拟。黑色为道路及双向分割的双黄线、车道分隔线等。
仿真建立的9节点24双向路段仿真模型。
最终的仿真数据展示界面,分别为仿真的时空图、车辆平均速度、数据输出窗口和路段平均速度。(不错的样子哦~~)
整个解决方案的几个project,以及屁股(哦,是肩膀)工程量的统计,大约1.2万行代码,还可以,不算多。
二、摩拳擦掌
穿越回来,发现软件很简陋,还不完善,还有众多的想象空间,你希望赶紧改善它:
首先,磨刀不误砍柴工。你需要准备以下工作:
(1)、下载源代码(需有CSDN账号)
百度网盘(无csdn账号)。(我以找不到女朋友担保,这不是广告)
有exe。有图有真相(就是没有女票)
(2)、下载开发工具(sharpdevelop 5.0版 只有11M,没有visual studio 那么蛋疼)。链接我就不放了,满大街都是。
(3)、准备好自己的头脑和自己的女票。。(女票的作用很强大,是秘密武器) 稀缺资源。
(4)、吃喝拉撒等事宜操备妥当(这个。。。。。其实蛮重要的,这是为了表示郑重。“——”)。
三、当头一棒
为了有个心理准备。开始伟大的事业(编写仿真软件,没错,自己编写,国产自主核心产权有没有?)之前,对以下知识有个基本的概念。
1、软件系统基本知识
(靠,我是学交通的,不懂啊。好难得吧?没关系,天才都是实践中造就的。。。。你会成为a branch of power that will challenge 商业交通仿真软件。~*~)
(1)基本的关于编程开发工具的知识(不知道?没关系,随着我们的文档逐步学习)包括开发的IDE(高富帅可用 据说版本将开源并免费?平民子弟可用sharpdevelop 写作本文时候,版本为5.0 。)
(2)关于数据结构的基本知识(不懂?没关系,需要的时候,翻翻队列、栈、矩阵和图等的表示方法就行了。why i need these 知识?好吧,后边关于交通模型,我是说,交通灯,车道及道路(队列和栈),交叉口(矩阵),路网模型(图),无一不用到这些知识,既然要写仿真软件,哪怕是最简陋的,也是需要让计算机知道你的意图的吧。计算机可不认识交通模型,它只认识队列、栈、类等,其实计算机是个挺蠢的东西,就是勤奋,死脑筋,工作效率高哈哈。)
(3)关于软件编写的基本知识,类和对象的关系、继承、派生、几大设计模式(。。。。。?不懂也可以。专业术语从来就不亲民,暂当他们不存在)
2 、交通工程相关知识
(靠,我是学软件的,好难得哇?没关系,想想计算机。)
好了,下面我将重点介绍如何建立大厦的基础,在开始编译我们的软件之前,了解一下。如何表示这些交通中的基本要素----车、车道、道路(包含多个车道)、交叉口、交通灯、可变信息版等(人哪里去了?车和人,可表示为一类)。
3、元胞自动机器和智能体基本概念。
(靠,我不是这个专业的,没有这个专业哇?没关系,真的没关系,想当初,追个女朋友也是很难的不是吗?现在拉拉她的手,想想当年的忐忑,勇气也就有了)
引入这个玩意,其实是构建一个基础。在建模过程中,我所编制的交通仿真原型系统,是以网格为运行空间的,人和车的动态移动,只不过是网格颜色的变化,因此,人和车才没有本质的区别,只不过一个占用网格多,一个占用网格少而已。(不明白?想想国际象棋,仿真软件中,王、兵、车、后等都是在一个网格空间相互作用的。退下吧),本章结束。。。。。(鄙视,什么都没讲是不)
四 广告
如何自己编写一个交通仿真软件 开篇---- 走火入魔。