基于文件共享的paramics和matlab数据交互方法和设备的制造方法

文档序号:9579142阅读:776来源:国知局
基于文件共享的paramics和matlab数据交互方法和设备的制造方法
【技术领域】
[0001] 本发明属于交通仿真领域,具体涉及一种基于文件共享的PARAMCIS和MATLAB数 据交互方法和设备。
【背景技术】
[0002] 智能交通系统的应用能够改善交通出行状况,而交通仿真是智能交通系统的重 要组成部分,能够对系统进行评价和估计,为交通控制算法的选择提供了科学的依据。 PARAMICS是一款领先的微观交通仿真软件,具有动态三维可视化用户界面,支持100万 个交叉口,32000个小区的仿真,旨在设计经济、高效、对驾驶员和行人友好的交通系统。 PARAMICS软件本身提供了API函数供使用者进行二次开发,使用者可通过C/C++语言调用 API函数来开发插件程序,然后将插件程序编译为动态链接库。将成功编译的动态链接库的 路径写入programming文件后,在核心仿真模块运行时,PARAMICS会自动加载该动态链接 库。然而,在应用PARAMICS进行交通仿真时,常会用到智能控制算法,采用C/C++语言来实 现这些算法,工作量较大,开发周期较长,而且算法的效率和精度很大程度上依赖于开发者 对算法结构的深刻理解。
[0003] MATLAB是一款成熟的数学软件,提供了较为全面的智能控制算法工具箱,开发者 能够迅速实现相关算法。MATLAB和PARAMICS本身并不能直接进行数据交互,而WINDOWS的 进程间通讯及消息传递技术或MATLAB和C/C++混合编程技术实现较为复杂,且与交通仿真 并无太大联系。因此,寻找一种易于实现的MATLAB和PARAMICS数据交互方法成为亟待解 决的问题。

【发明内容】

[0004] 本发明提供了一种通过PARAMCIS软件的插件程序所实现的方法,该插件程序通 过共享文件与MATLAB程序交互,该方法包括:插件程序初始化;设置共享文件更新时刻;以 及读取flag文件,并根据flag文件中的驱动标志值来读写相应共享文件。
[0005] 本发明还提供了一种通过与PARAMICS软件一起使用的MATLAB程序所实现的方 法,该MATLAB程序通过共享文件与PARAMICS软件的插件程序交互,共享文件包括flag文 件、data文件和control文件,该方法包括:a)初始化MATLAB程序的参数;b)改写flag文 件的驱动标志为〇 ;c)读取flag的驱动标志,直到驱动标志为1 ;d)读取data文件,得到 PARAMICS软件的交通数据;e)根据data文件中的交通数据,运行控制算法,获得运行结果; 以及f)将控制算法的运行结果写入control文件。
[0006] 本发明还提供了一种通过PARAMCIS软件的插件程序所实现的设备,该插件程序 通过共享文件与MATLAB程序交互,该设备包括:用于插件程序初始化的装置;用于设置共 享文件更新时刻的装置;以及用于读取flag文件,并根据flag文件中的驱动标志值来读写 相应共享文件的装置。
[0007] 本发明还提供了一种通过与PARAMICS软件一起使用的MATLAB程序所实现的设 备,该MATLAB程序通过共享文件与PARAMICS软件的插件程序交互,共享文件包括flag文 件、data文件和control文件,该设备包括:a)用于初始化MATLAB程序的参数的装置;b) 用于改写flag文件的驱动标志为0的装置;c)用于读取flag的驱动标志,直到驱动标志 为1的装置;d)用于读取data文件,得到PARAMICS软件的交通数据的装置;e)用于根据 data文件中的交通数据,运行控制算法,获得运行结果的装置;以及f)用于将控制算法的 运行结果写入control文件的装置。
[0008] 根据本发明的基于文件共享的MATLAB和PARAMICS数据交互方法,能在不同的 MATLAB和PARAMICS版本下实现数据交互,为快速而有效地验证交通控制算法效果提供了 一种有效途径。该数据交互方法能够通过相对简单的共享文件,迅速建立起微观交通仿真 软件PARAMICS和数学软件MATLAB之间的数据联系,从而缩短开发周期,降低算法实现的难 度,为交通控制算法的仿真提供有力保障。
【附图说明】
[0009] 图1示出了根据本发明方法的实施例的结构图。
[0010] 图2示出了根据本发明方法的实施例的数据交互结构图。
[0011] 图3示出了根据本发明方法的实施例的PARAMICS插件程序流程图。
[0012] 图4示出了根据本发明方法的实施例的MATLAB程序流程图。
【具体实施方式】
[0013] 以下结合附图和实施例对本发明的技术方案作进一步详细说明。以下实施例在以 本发明技术方案为前提下进行实施,给出了详细的实施方式和过程,但本发明的保护范围 不限于下述的实施例。
[0014] 图1示出了本发明根据本发明方法的实施例的结构图。如图1所示,插件程序对 PARAMICS软件执行各种读写和控制操作,并通过共享文件机制与MATLAB程序交互。
[0015] 为更好地理解本实施例提出的方法,选取一个两相位的单交叉口的PARAMCIS控 制算法仿真进行说明。
[0016] (1)定义共享文件形式:
[0017] 如图2所示,定义三种类型的共享文件,分别为data文件、flag文件以及control 文件。其中,data文件用来存储从PARAMCIS软件中采集到的交通数据,例如各车道交通流 量,插件程序拥有写入权限,MATLAB程序拥有读出权限;flag文件为程序交替运行驱动标 志,插件程序和MATLAB程序都可以对其进行读写操作;control用来存储MATLAB程序的 算法结果,此实施例中为绿信比,插件程序对其拥有读出权限,MATLAB软件对其拥有写入权 限。
[0018] ⑵获取路网相关参数:
[0019] 为了采集到PARAMICS相关的仿真数据,并且能够通过插件对其进行控制,需要获 取该交叉口所有相关link的名称和位置和每个link上detector的名称,以及该交叉口node的名称等参数。
[0020] (3)插件程序设计:
[0021 ] 参考图3说明插件程序的操作机制。
[0022] a)程序初始化
[0023] 插件程序的初始化主要在voidqpx_NET_preOpen(void)函数中完成,在初始化 过程中,根据要控制的node名称,获取其相关指针,然后通过结点外部控制设置函数void qps_NDE_externalController(NODE*node,Boolon),将其设置为外部控制节点。
[0024]b)设置共享文件更新时刻
[0025] 在该实施例中,插件程序的主体部分在void qpx_NET_second(void)函数中编写, 该函数在仿真时间每秒结束时调用。本实施例仿真时间每40秒(控制周期)更新一次共 享文件。
[0026]c)读取flag文件
[0027]i驱动标志为 0,用函数intcjpg_DTL_count(L00P*loop,inttype)采集每个车道 的流量,然后将数据写入data文件,然后将驱动标志置为1;
[0028]ii驱动标志为1,先读取flag文件,然后读取control文件,在本实施例中 control文件中存储的是绿信比,绿信比与控制周期的乘积即为下一个周期的绿灯时间,以 此可得到新的配时方案。根据新的配时方案更新PARAMICS参数,可以使PARAMICS按照更 新的参数运行,执行以上操作,直到驱动标志位不等于1 ;
[0029]iii驱动标志为2,无操作。
[0030] (4)编译生成动态链接库:
[0031] 将插件程序编译生成动态链接库(DLL),并在PARAMICS路网文件夹下新建 programming文件(后缀为Modeller"或无后缀),将动态链接库的地址和文件名复制到 该文件中,如"D:\ParamicsPlugin\SingleControl.dll" 并保存。
[0032] (5)MATLAB程序设计:
[0033] 参考图4说明MATLB程序的操作机制。
[0034]a)初始化参数
[0035] 初始化MATLAB程序时,关键参数为程序最大循环次数,该次数应与PARAMICS仿真 时间相对应。本实施例中仿真时间为400分钟,故最大循环次数为
[0036]b)改写flag文件的驱动标志为0。
[0037]c)读取flag驱动标志位,直到标志位为1。
[0038]d)读取data文件,得到每个车道的流量数据。
[0039]e)根据data文件中的数据,运行控制算法,计算出绿信比。
[0040]f)将控制算法的运行结果写入control文件。
[0041]g)若未达最大次数,则跳转至b),否则程序终止。
[0042] (6)程序运行方法:
[0043]先用PARAMICS软件的核心仿真模块Modeller打开相应的路网,再打开编写完成 的MATLAB程序,之后运行MATLAB程序,然后运行Modeller开始仿真。
[0044] 根据本发明实施例,提供了一种通过PARAMCIS软件的插件程序所实现的设备,该 插件程序通过共享文件与MATLAB程序交互,该设备包括:用于插件程序初始化的装置;用 于设置共享文件更新时刻的装置;以及用于读取flag文件,并根据flag文件中的驱动标志 值来读写相应共享文件的装置。
[0045] 根据本发明的实施例,还提供了一种通过与PARAMICS软件一起使用的MATLAB程 序所实现的设备,该
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1