一种基于VISSIM和C#的遗传算法标定方法
未命名
07-18
阅读:146
评论:0
一种基于vissim和c#的遗传算法标定方法
技术领域
1.本发明涉及交通软件vissim二次开发技术领域,特别涉及一种基于vissim和c#的遗传算法标定方法。
背景技术:
2.目前,交通仿真是解决交通城市问题的重要手段,特别是当今交通工具以及交通环境的发展迅速之下仿真技术可以解决很多现实中我们遇到的很多难以解决和分析处理的问题。vissim是一款常用的交通问题剖析的微观交通软件,它的应用非常广泛,不但能对交通基础设施和运转情况进行交通模拟,还能够以文件的形式输出各种交通流参数,如时间,速度,排队长度等等,因此是评价交通设施的重要工具之一。在微观交通仿真中,建立仿真路网是交通仿真的基础,比如包括道路,检测器以及车辆输入等。vissim作为交通仿真模型适合模拟各种城市交通系统,比如匝道控制,公交方案的能力分析以及检验,行人模块,混合交通流等等,在实际的应用中,vissim参数标定是基础工作。参数标定模型是调节驾驶员行为参数以达到模拟中的交通流更加逼近现实中的交通流的目的,使得场景更加接近现实,vissim参数标定研究的主要方法有模拟退火算法,遗传算法等,以二次开发为基础进行研究。
3.目前,关于vissim参数标定的文献不多,马文欣等提出了检测数据驱动的交通仿真参数标定研究方法,所提方法误差较小,针对初始参数集合进行了敏感性分析,基于分析结果选择所需标定的参数,在vissim仿真平台中对案例进行了建模并标定了其驾驶行为参数,张长春等提出了基于正交实验法的交叉口vissim参数标定,减少了试验次数,具有较好的的实验效果。很多研究算法有一定的适应性不强,以及误差较大的不足。
技术实现要素:
4.为了克服现有技术中的不足,本发明提供一种基于vissim和c#的遗传算法标定方法,解决对vissim二次开发的复杂实现算法以及解决误差比较大的困难。
5.为了达到上述发明目的,解决其技术问题所采用的技术方案如下:
6.一种基于vissim和c#的遗传算法标定方法,包括以下步骤:
7.步骤a:使用vissim仿真构建城市快速路仿真运行模型平台同时收集得到基本交通流运行数据,并将所得参数数据保存到指定文件中;
8.步骤b:利用vissim中对vissim com接口初始化对象进行注册,并在visual c#中创建vissim com加载文件以及接口;
9.步骤c:利用visual c#通过步骤a中保存的路网信息,并操作基本仿真参数,并且定义与实例化评价对象,激活路网评价,初始化net;
10.步骤d:利用visual c#进行仿真模型的运行,对定义的路段检测器,路段流量以及路段速度和路段密度进行激活,进行数据的采集,通过vissim com接口获取相关仿真参数信息,构建仿真模型;
11.步骤e:利用visual c#设置随机种子,仿真精度以及仿真时常,随后进行遗传算法的编写;
12.步骤f:利用visual c#设置遗传算法收敛要求、种群个数、染色体所用基因个数、每个染色体的种群以及适应度,编写函数设置for循环随机生成染色体,保存误差平方,编写函数进行选择,交叉,变异运算,设置在遗传算法迭代次数中的仿真时间间隔;
13.步骤g:通过com接口调用交通流参数,计算目标函数,检查是否满足收敛停止要求,并对每个参数的种群进行排序,交叉和变异得到新的种群,根据是否满足迭代要求选择是否停止仿真。
14.进一步的,所述步骤a中通过vissim构建仿真模型进行建模,可以有两种方法:
15.第一种是直接运行所建仿真模型,然后获取运行得到的数据再用visual c#等软件进行处理和分析;
16.第二种方法是通过visual c#连接vissim com接口,加载路网,通过接口获取车辆以及其他对象的信息参数再进行编程处理,然后再用算法进行具体的研究过程。
17.进一步的,所述步骤c中visual c#通过设置com接口对象来对vissim的参数对象进行访问,从每个信号控制器读取数据,然后进行数据处理。
18.进一步的,所述步骤d中visual c#通过创建的对象,设置数组保存信息,之后将获取信息保存在txt文档中,并且构建函数进行具体功能实现。
19.进一步的,所述步骤e中遗传算法模型具体分析要求为:
20.利用visual c#通过创建的vissim com接口与vissim获取车辆跟驰行为和车辆变道行为参数,停车距离,车头时距,最大加速度,根据实测速度与参数标定后的速度进行对比,同时进行参数误差对比,对于实测值和标定值的误差计算进行分析,对于遗传算法标定的效果进行分析,得到优化后的结果。
21.进一步的,对于仿真初始化时和参数标定后的车辆速度和实测数据分别进行对比分析,降低测试值和实测值的误差对比,改进模型算法,获取比较满意的结果。
22.本发明由于采用以上技术方案,使之与现有技术相比,具有以下的优点和积极效果:
23.本发明利用vissim仿真路网平台,使用visual c#编写程序,通过com接口对象与vissim交通流参数进行交互,并且编写函数进行智能算法处理,使用遗传算法标定,优化函数缩小误差,对于标定参数的优化和处理大大提高了效率,同时也缩小了复杂的代码处理,具有较强的可拓展性和适应性,对提高利用人工智能类算法和便于后续交通方面的研究有一定的价值和意义。
附图说明
24.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图中:
25.图1是本发明为模拟仿真平台vissim软件与visual c#开发流程示意图;
26.图2是本发明为模拟仿真平台vissim软件构建路网的流程示意图;
27.图3是本发明为参数标定仿真平台visual c#程序流程图;
28.图4是本发明为参数标定仿真vissim与visual c#接口示意图;
29.图5是本发明为参数标定仿真平台的二次开发遗传算法示意图;
30.图6是本发明为参数标定仿真平台的流程化数据分析处理流程图。
具体实施方式
31.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.如图1所示,本发明的模拟仿真平台vissim软件与visual c#二次开发流程示意图。一种基于vissim和c#的遗传算法标定方法,包括以下步骤:
33.步骤a:使用vissim仿真构建城市快速路仿真运行模型平台同时收集得到基本交通流运行数据,并将所得参数数据保存到指定文件中;
34.步骤b:利用vissim中对vissim com接口初始化对象进行注册,并在visual c#中创建vissim com加载文件以及接口;
35.步骤c:利用visual c#通过步骤a中保存的路网信息,并操作基本仿真参数,并且定义与实例化评价对象,激活路网评价,初始化net;
36.步骤d:利用visual c#进行仿真模型的运行,对定义的路段检测器,路段流量以及路段速度和路段密度进行激活,进行数据的采集,通过vissim com接口获取相关仿真参数信息,构建仿真模型;
37.步骤e:利用visual c#设置随机种子,仿真精度以及仿真时常,随后进行遗传算法的编写;
38.步骤f:利用visual c#设置遗传算法收敛要求、种群个数、染色体所用基因个数、每个染色体的种群以及适应度,编写函数设置for循环随机生成染色体,保存误差平方,编写函数进行选择,交叉,变异运算,设置在遗传算法迭代次数中的仿真时间间隔;
39.步骤g:通过com接口调用交通流参数,计算目标函数,检查是否满足收敛停止要求,并对每个参数的种群进行排序,交叉和变异得到新的种群,根据是否满足迭代要求选择是否停止仿真。
40.进一步的,所述步骤a中通过vissim构建仿真模型进行建模,可以有两种方法:
41.第一种是直接运行所建仿真模型,然后获取运行得到的数据再用visual c#等软件进行处理和分析;
42.第二种方法是通过visual c#连接vissim com接口,加载路网,通过接口获取车辆以及其他对象的信息参数再进行编程处理,然后再用算法进行具体的研究过程。
43.本实施例步骤a中,vissim是对涉及交通驾驶行为、运行车辆以及交叉道路等交通要素的模拟交通状况进行仿真,对城市快速路交通进行详细建模。可测参数以及不可测参数描述了交通过程中的车辆或者道路的交互行为,车辆与车辆的相互作用关系等等,是对模拟现实交通流状况和仿真复杂情况下的路网模型的一种方法。
44.如图2所示,为本发明模拟仿真平台vissim构建路网的流程示意图。本发明利用vissim对城市快速路交通运行进行交通仿真建模,微观交通流特性参数包括车辆的期望车
速分布曲线、车辆的加减速度特性、车辆的尺寸以及驾驶员行为参数设置等;宏观交通流参数包括车型分类,交通量组成的流量输入,路径选择等。vissm应用除了信号控制模块之外,还有车道车辆定义模块和评价和优化交通运行状况,以及交织区交通方案分析,行人仿真等。利用vissim中对所创建的模拟交通路网测试仿真流量和输入流量是否相符合,如果符合则进行下一步,否则重建路网重新再进行判断,再开启路网仿真,输出评价指标和路网。
45.在步骤b中,本实施例在visual c#中调用vissim仿真软件,使用com接口,即在visual c#中创建接口对象,其详细的流程为:打开visual c#后台代码,添加vissim的com接口命名空间,并建立一个初始化函数进行数据连接,完成后点击编译后运行,就可以打开指令路径的所创建好的路网,之后设置仿真速度以及仿真周期等参数。vissim com是vissim与其他软件进行二次开发和沟的重要接口。在visual c#代码中定义初始化对象,再将由接口函数获得的参数给该对象就可以得到vissim中车辆、道路数据等参数信息。
46.利用visual c#与vissim仿真软件结合可以更好的模拟接近现实交通的情况,本发明利用vissim的二次开发技术,可以利用编程软件visual c#实现对vissim路网中各种类型车辆跟车微观模型,车辆变换道模型交通流控制,信号控制,分析断面交通流特性,行程时间和排队分析等功能。
47.本实施例利用高级语言进行二次开发,通常visual c#编程中是通过面向对象的思路和其他软件进行交互处理,比如在获取各个参数对象时,用定义的对象进行接收,然后可以进行改变或者重新赋值。
48.如图3所示,为本发明参数标定仿真平台visual c#程序流程图。在步骤b中,本发明利用visual c#导入vissim com接口获取加载路网信息,实例化vissim对象,加载路网和配置文件,并设置相关的仿真参数,之后设置车辆检测器接口以及评价接口,获取路段,车辆等属性,再通过人工智能算法对数据进行处理分析,选取合适参数建立算法模型,参数标定采用遗传算法方法,传入由visual c#结合com接口获取的参数,通过仿真运行测试算法得到最优解。
49.在步骤b中,本发明的visualc#通过vissim com接口获取各种参数,如:速度、时间和流量等数据,vissim软件首先设置仿真参数,选取待标定参数,然后再设置遗传算法参数;其次通过vissim com接口获取仿真参数,再获取待标定参数值,输出运行之后的结果;最后对于visual c#的主程序,仿真参数获取之后如果不符合条件则再继续循环,继续选择、交叉、变异得到新种群,如果达到收敛条见即可退出循环算法,得到最优解后结束仿真,输出结果。本发明需要在visual c#中创建vissim com服务接口,加载路网文件代码为:
50.string filename=path_of_com_basic_commands_network+
″
vissimcom改变方案.inpx
″
;//定义要打开的vissim文件名称
51.vissim.loadnet(filename,false);//加载路网文件
52.进一步的,所述步骤c中visual c#通过设置com接口对象来对vissim的参数对象进行访问,从每个信号控制器读取数据,然后进行数据处理。
53.进一步的,所述步骤d中visual c#通过创建的对象,设置数组保存信息,之后将获取信息保存在txt文档中,并且构建函数进行具体功能实现。
54.本实施例中,所述步骤e中遗传算法模型具体分析要求为:
55.利用visual c#通过创建的vissim com接口与vissim获取车辆跟驰行为和车辆变
道行为参数,停车距离,车头时距,最大加速度等等参数,根据实测速度与参数标定后的速度进行对比,同时进行参数误差对比,对于实测值和标定值的误差计算进行分析,对于遗传算法标定的效果进行分析,得到优化后的结果。
56.进一步的,对于仿真初始化时和参数标定后的车辆速度和实测数据分别进行对比分析,降低测试值和实测值的误差对比,改进模型算法,获取比较满意的结果。
57.本发明利用遗传算法解决问题时,确定问题的目标函数和变量,对变量编码之后进行遗传操作,为了使得最后结果逼近最优解,遗传操作包括选择,交叉,变异三个基本遗传算子,就是这些算子完成大多数搜索任务。本发明选择速度等基本参数作为交通仿真评价指标,从跟驰模型和车道变换模型中选择需要标定的参数,通过com接口交互参数值,根据适应度判断是或否收敛,不是则继续选择、交叉、变异得到新种群,如果收敛则参数标定任务结束,输出结果即可,如图5所示。
58.本发明结合vissim和visual c#接口技术,利用vissim微观交通流仿真和visual c#实现人工智能模型算法,为验证算法有效性和精确度,利用vissim搭建真实仿真环境,同时设置检测器,信号数据,采集排队长度等等,用visual c#优化结果,再通过vissim com接口与vissim连接,以达到对vissim路网中各交通参数的获取和研究。
59.如图6所示,为本发明实例中参数标定仿真平台的流程化数据分析处理流程图,vissim的有wiedemann74和wiedemann99两种跟驰模型,用于城市交通和高速路的仿真分析,前者模型参数包括最大前视距离、最小前视距离、观察到的车辆、最大前后视距离等参数,后者包括跟车变量、跟车状态阈值、停车间距和车时加速度等等,参数标定中可选取的最大减速度、最小车头时距、平均停车间距、安全距离附加数等几项待标定参数,当使用遗传算法标定后,根据实际测量的速度与参数标定后的速度和初始速度进行对比,然后再进行具体分析。
60.本发明利用visual c#利用遗传算法进行参数标定,通过vissim进行具体的参数设置,实现智能算法与二次开发的结合,对于未来智能交通模型和其他算法的研究应用有实际的重要意义,vissim与matlab、python或者vb等编程工具也可以进行交互和开发,本发明方法不仅仅有利于搭建vissim二次开发与数据处理平台,也可以利用其他算法进行交通的控制和处理,实现更加复杂和具有挑战的算法,具有一定的普适性。
61.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
技术特征:
1.一种基于vissim和c#的遗传算法标定方法,其特征在于,包括以下步骤:步骤a:使用vissim仿真构建城市快速路仿真运行模型平台同时收集得到基本交通流运行数据,并将所得参数数据保存到指定文件中;步骤b:利用vissim中对vissim com接口初始化对象进行注册,并在visual c#中创建vissim com加载文件以及接口;步骤c:利用visual c#通过步骤a中保存的路网信息,并操作基本仿真参数,并且定义与实例化评价对象,激活路网评价,初始化net;步骤d:利用visual c#进行仿真模型的运行,对定义的路段检测器,路段流量以及路段速度和路段密度进行激活,进行数据的采集,通过vissim com接口获取相关仿真参数信息,构建仿真模型;步骤e:利用visual c#设置随机种子,仿真精度以及仿真时常,随后进行遗传算法的编写;步骤f:利用visual c#设置遗传算法收敛要求、种群个数、染色体所用基因个数、每个染色体的种群以及适应度,编写函数设置for循环随机生成染色体,保存误差平方,编写函数进行选择,交叉,变异运算,设置在遗传算法迭代次数中的仿真时间间隔;步骤g:通过com接口调用交通流参数,计算目标函数,检查是否满足收敛停止要求,并对每个参数的种群进行排序,交叉和变异得到新的种群,根据是否满足迭代要求选择是否停止仿真。2.根据权利要求1所述的一种基于vissim和c#的遗传算法标定方法,其特征在于,所述步骤a中通过vissim构建仿真模型进行建模,可以有两种方法:第一种是直接运行所建仿真模型,然后获取运行得到的数据再用visual c#等软件进行处理和分析;第二种方法是通过visual c#连接vissim com接口,加载路网,通过接口获取车辆以及其他对象的信息参数再进行编程处理,然后再用算法进行具体的研究过程。3.根据权利要求1所述的一种基于vissim和c#的遗传算法标定方法,其特征在于,所述步骤c中visual c#通过设置com接口对象来对vissim的参数对象进行访问,从每个信号控制器读取数据,然后进行数据处理。4.根据权利要求1所述的一种基于vissim和c#的遗传算法标定方法,其特征在于,所述步骤d中visual c#通过创建的对象,设置数组保存信息,之后将获取信息保存在txt文档中,并且构建函数进行具体功能实现。5.根据权利要求1所述的一种基于vissim和c#的遗传算法标定方法,其特征在于,所述步骤e中遗传算法模型具体分析要求为:利用visual c#通过创建的vissim com接口与vissim获取车辆跟驰行为和车辆变道行为参数,停车距离,车头时距,最大加速度,根据实测速度与参数标定后的速度进行对比,同时进行参数误差对比,对于实测值和标定值的误差计算进行分析,对于遗传算法标定的效果进行分析,得到优化后的结果。6.根据权利要求5所述的一种基于vissim和c#的遗传算法标定方法,其特征在于,对于仿真初始化时和参数标定后的车辆速度和实测数据分别进行对比分析,降低测试值和实测值的误差对比,改进模型算法,获取比较满意的结果。
技术总结
本发明公开了一种基于VISSIM和C#的遗传算法标定方法,在VISSIM仿真软件基础中,使用VisualC#进行二次开发,并且进行参数标定,该方法利用在Visual C#中建立VISSIMCOM接口对象,通过建立的路网目录打开路网并获取仿真参数,利用Visual C#编写遗传算法,选择速度等参数作为交通仿真评价指标,通过VISSIM COM接口交互参数值,进行算法最优选择,最后得到最优解。本发明能将使用人工智能算法与VISSIM和编程软件进行二次开发,对于未来进行仿真仿真优化具有重要的意义,对智能交通和智能算法的结合发展和深入研究有一定的价值。合发展和深入研究有一定的价值。合发展和深入研究有一定的价值。
技术研发人员:汪静 任家博
受保护的技术使用者:上海应用技术大学
技术研发日:2023.02.27
技术公布日:2023/5/25
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
