CN105335240B - 基于文件共享的paramics和matlab数据交互方法和设备 - Google Patents
基于文件共享的paramics和matlab数据交互方法和设备 Download PDFInfo
- Publication number
- CN105335240B CN105335240B CN201510665898.9A CN201510665898A CN105335240B CN 105335240 B CN105335240 B CN 105335240B CN 201510665898 A CN201510665898 A CN 201510665898A CN 105335240 B CN105335240 B CN 105335240B
- Authority
- CN
- China
- Prior art keywords
- file
- program
- plug
- matlab
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于文件共享的PARAMCIS软件的插件程序和MATLAB程序的数据交互方法,插件程序与MATLAB程序通过共享文件进行数据交互,根据共享标志值分别实现对共享文件的读写。
Description
技术领域
本发明属于交通仿真领域,具体涉及一种基于文件共享的PARAMCIS和MATLAB数据交互方法和设备。
背景技术
智能交通系统的应用能够改善交通出行状况,而交通仿真是智能交通系统的重要组成部分,能够对系统进行评价和估计,为交通控制算法的选择提供了科学的依据。PARAMICS是一款领先的微观交通仿真软件,具有动态三维可视化用户界面,支持100万个交叉口,32000个小区的仿真,旨在设计经济、高效、对驾驶员和行人友好的交通系统。PARAMICS软件本身提供了API函数供使用者进行二次开发,使用者可通过C/C++语言调用API函数来开发插件程序,然后将插件程序编译为动态链接库。将成功编译的动态链接库的路径写入programming文件后,在核心仿真模块运行时,PARAMICS会自动加载该动态链接库。然而,在应用PARAMICS进行交通仿真时,常会用到智能控制算法,采用C/C++语言来实现这些算法,工作量较大,开发周期较长,而且算法的效率和精度很大程度上依赖于开发者对算法结构的深刻理解。
MATLAB是一款成熟的数学软件,提供了较为全面的智能控制算法工具箱,开发者能够迅速实现相关算法。MATLAB和PARAMICS本身并不能直接进行数据交互,而WINDOWS的进程间通讯及消息传递技术或MATLAB和C/C++混合编程技术实现较为复杂,且与交通仿真并无太大联系。因此,寻找一种易于实现的MATLAB和PARAMICS数据交互方法成为亟待解决的问题。
发明内容
本发明提供了一种通过PARAMCIS软件的插件程序所实现的方法,该插件程序通过共享文件与MATLAB程序交互,该方法包括:插件程序初始化;设置共享文件更新时刻;以及读取flag文件,并根据flag文件中的驱动标志值来读写相应共享文件。
本发明还提供了一种通过与PARAMICS软件一起使用的MATLAB程序所实现的方法,该MATLAB程序通过共享文件与PARAMICS软件的插件程序交互,共享文件包括flag文件、data文件和control文件,该方法包括:a)初始化MATLAB程序的参数;b)改写flag文件的驱动标志为0;c)读取flag的驱动标志,直到驱动标志为1;d)读取data文件,得到PARAMICS软件的交通数据;e)根据data文件中的交通数据,运行控制算法,获得运行结果;以及f)将控制算法的运行结果写入control文件。
本发明还提供了一种通过PARAMCIS软件的插件程序所实现的设备,该插件程序通过共享文件与MATLAB程序交互,该设备包括:用于插件程序初始化的装置;用于设置共享文件更新时刻的装置;以及用于读取flag文件,并根据flag文件中的驱动标志值来读写相应共享文件的装置。
本发明还提供了一种通过与PARAMICS软件一起使用的MATLAB程序所实现的设备,该MATLAB程序通过共享文件与PARAMICS软件的插件程序交互,共享文件包括flag文件、data文件和control文件,该设备包括:a)用于初始化MATLAB程序的参数的装置;b)用于改写flag文件的驱动标志为0的装置;c)用于读取flag的驱动标志,直到驱动标志为1的装置;d)用于读取data文件,得到PARAMICS软件的交通数据的装置;e)用于根据data文件中的交通数据,运行控制算法,获得运行结果的装置;以及f)用于将控制算法的运行结果写入control文件的装置。
根据本发明的基于文件共享的MATLAB和PARAMICS数据交互方 法,能在不同的MATLAB和PARAMICS版本下实现数据交互,为快速而有效地验证交通控制算法效果提供了一种有效途径。该数据交互方法能够通过相对简单的共享文件,迅速建立起微观交通仿真软件PARAMICS和数学软件MATLAB之间的数据联系,从而缩短开发周期,降低算法实现的难度,为交通控制算法的仿真提供有力保障。
附图说明
图1示出了根据本发明方法的实施例的结构图。
图2示出了根据本发明方法的实施例的数据交互结构图。
图3示出了根据本发明方法的实施例的PARAMICS插件程序流程图。
图4示出了根据本发明方法的实施例的MATLAB程序流程图。
具体实施方式
以下结合附图和实施例对本发明的技术方案作进一步详细说明。以下实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和过程,但本发明的保护范围不限于下述的实施例。
图1示出了本发明根据本发明方法的实施例的结构图。如图1所示,插件程序对PARAMICS软件执行各种读写和控制操作,并通过共享文件机制与MATLAB程序交互。
为更好地理解本实施例提出的方法,选取一个两相位的单交叉口的PARAMCIS控制算法仿真进行说明。
(1)定义共享文件形式:
如图2所示,定义三种类型的共享文件,分别为data文件、flag文件以及control文件。其中,data文件用来存储从PARAMCIS软件中采集到的交通数据,例如各车道交通流量,插件程序拥有写入权限,MATLAB程序拥有读出权限;flag文件为程序交替运行驱动标志,插件程序和MATLAB程序都可以对其进行读写操作;control用来存储MATLAB程序 的算法结果,此实施例中为绿信比,插件程序对其拥有读出权限,MATLAB软件对其拥有写入权限。
(2)获取路网相关参数:
为了采集到PARAMICS相关的仿真数据,并且能够通过插件对其进行控制,需要获取该交叉口所有相关link的名称和位置和每个link上detector的名称,以及该交叉口node的名称等参数。
(3)插件程序设计:
参考图3说明插件程序的操作机制。
a)程序初始化
插件程序的初始化主要在void qpx_NET_preOpen(void)函数中完成,在初始化过程中,根据要控制的node名称,获取其相关指针,然后通过结点外部控制设置函数voidqps_NDE_externalController(NODE*node,Bool on),将其设置为外部控制节点。
b)设置共享文件更新时刻
在该实施例中,插件程序的主体部分在void qpx_NET_second(void)函数中编写,该函数在仿真时间每秒结束时调用。本实施例仿真时间每40秒(控制周期)更新一次共享文件。
c)读取flag文件
i驱动标志为0,用函数int qpg_DTL_count(LOOP*loop,int type)采集每个车道的流量,然后将数据写入data文件,然后将驱动标志置为1;
ii驱动标志为1,先读取flag文件,然后读取control文件,在本实施例中control文件中存储的是绿信比,绿信比与控制周期的乘积即为下一个周期的绿灯时间,以此可得到新的配时方案。根据新的配时方案更新PARAMICS参数,可以使PARAMICS按照更新的参数运行,执行以上操作,直到驱动标志位不等于1;
iii驱动标志为2,无操作。
(4)编译生成动态链接库:
将插件程序编译生成动态链接库(DLL),并在PARAMICS路网文件夹下新建programming文件(后缀为“.Modeller”或无后缀),将动态链接库的地址和文件名复制到该文件中,如“D:\ParamicsPlugin\SingleControl.dll”并保存。
(5)MATLAB程序设计:
参考图4说明MATLB程序的操作机制。
a)初始化参数
初始化MATLAB程序时,关键参数为程序最大循环次数,该次数应与PARAMICS仿真时间相对应。本实施例中仿真时间为400分钟,故最大循环次数为
b)改写flag文件的驱动标志为0。
c)读取flag驱动标志位,直到标志位为1。
d)读取data文件,得到每个车道的流量数据。
e)根据data文件中的数据,运行控制算法,计算出绿信比。
f)将控制算法的运行结果写入control文件。
g)若未达最大次数,则跳转至b),否则程序终止。
(6)程序运行方法:
先用PARAMICS软件的核心仿真模块Modeller打开相应的路网,再打开编写完成的MATLAB程序,之后运行MATLAB程序,然后运行Modeller开始仿真。
根据本发明实施例,提供了一种通过PARAMCIS软件的插件程序所实现的设备,该插件程序通过共享文件与MATLAB程序交互,该设备包括:用于插件程序初始化的装置;用于设置共享文件更新时刻的装置;以及用于读取flag文件,并根据flag文件中的驱动标志值来读写相应共享文件的装置。
根据本发明的实施例,还提供了一种通过与PARAMICS软件一起使用的MATLAB程序所实现的设备,该MATLAB程序通过共享文件与PARAMICS软件的插件程序交互,共享文件包括flag文件、data文 件和control文件,该设备包括:
a)用于初始化MATLAB程序的参数的装置;
b)用于改写flag文件的驱动标志为0的装置;
c)用于读取flag的驱动标志,直到驱动标志为1的装置;
d)用于读取data文件,得到PARAMICS软件的交通数据的装置;
e)用于根据data文件中的交通数据,运行控制算法,获得运行结果的装置;以及
f)用于将控制算法的运行结果写入control文件的装置。
以上装置是通过有计算能力的设备(例如处理器)执行存储在机器可读介质中的指令时所产生的相应功能模块。
尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (25)
1.一种通过PARAMICS软件的插件程序所实现的方法,该插件程序通过共享文件与MATLAB程序交互,该方法包括:
插件程序初始化;
设置共享文件更新时刻;以及
读取共享文件中的flag文件,并根据flag文件中的驱动标志值来读写共享文件中的data文件和control文件,其中,flag文件用于存储程序交替运行驱动标志,插件程序和MATLAB程序都可以对其进行读写操作,data文件用于存储从PARAMICS软件中采集到的交通数据,control文件用于存储MATLAB程序的算法结果。
2.根据权利要求1所述的方法,其中:
插件程序对data文件拥有写入权限,MATLAB程序对data文件拥有读出权限;以及
插件程序对control文件拥有读出权限,MATLAB软件对control文件拥有写入权限。
3.根据权利要求2所述的方法,其中:
交通数据包括各车道交通流量;以及
MATLAB程序的算法结果包括绿信比。
4.根据权利要求1所述的方法,还包括:获取PARAMICS软件的路网相关数据,包括交叉口相关link的名称和位置和每个link上detector的名称,以及该交叉口node的名称。
5.根据权利要求1所述的方法,其中在void qpx_NET_preOpen(void)函数中完成插件程序的初始化,在初始化过程中,根据要控制的node名称,获取其相关指针,然后通过结点外部控制设置函数void qps_NDE_extern alController(NODE*node,Bool on),将该node设置为外部控制节点。
6.根据权利要求1所述的方法,其中插件程序的主体部分在void qpx_NET_second(void)函数中编写,该函数在仿真时间每秒结束时调用。
7.根据权利要求1所述的方法,其中根据flag文件中的驱动标志值来读写相应共享文件包括:
当驱动标志为0时,用函数int qpg_DTL_count(LOOP*loop,int type)采集每个车道的流量,然后将数据写入data文件,然后将驱动标志置为1;
当驱动标志为1时,先读取flag文件,然后读取control文件,获取绿信比,绿信比与控制周期的乘积即为下一个周期的绿灯时间,以得到下一周期的新的配时方案,执行以上操作,直到驱动标志位不等于1;以及
当驱动标志为2时,无操作。
8.根据权利要求1所述的方法,还包括:
将插件程序编译生成动态链接库。
9.一种通过与PARAMICS软件一起使用的MATLAB程序所实现的方法,该MATLAB程序通过共享文件与PARAMICS软件的插件程序交互,共享文件包括flag文件、data文件和control文件,该方法包括:
a)初始化MATLAB程序的参数;
b)改写flag文件的驱动标志为0;
c)读取flag的驱动标志,直到驱动标志为1;
d)读取data文件,得到PARAMICS软件的交通数据;
e)根据data文件中的交通数据,运行控制算法,获得运行结果;以及
f)将控制算法的运行结果写入control文件。
10.根据权利要求9所述的方法,其中初始化MATLAB程序的参数包括:基于PARAMICS的仿真时间,设置MATLAB程序的最大循环次数。
11.根据权利要求9所述的方法,其中控制算法的运行结果是绿信比。
12.根据权利要求10所述的方法,还包括:如果MATLAB程序未达到最大循环次数,则返回b)继续执行,否则程序终止。
13.根据权利要求9所述的方法,其中:
data文件用于存储从PARAMICS软件中采集到的交通数据,插件程序拥有写入权限,MATLAB程序拥有读出权限;
flag文件用于存储程序交替运行驱动标志,插件程序和MATLAB程序都可以对其进行读写操作;
control文件用于存储MATLAB程序的算法结果,插件程序对其拥有读出权限,MATLAB软件对其拥有写入权限;以及
交通数据包括各车道交通流量。
14.一种通过PARAMICS软件的插件程序所实现的设备,该插件程序通过共享文件与MATLAB程序交互,该设备包括:
用于插件程序初始化的装置;
用于设置共享文件更新时刻的装置;以及
用于读取共享文件中的flag文件,并根据flag文件中的驱动标志值来读写共享文件中的data文件和control文件的装置,其中,flag文件用于存储程序交替运行驱动标志,插件程序和MATLAB程序都可以对其进行读写操作,data文件用于存储从PARAMICS软件中采集到的交通数据,control文件用于存储MATLAB程序的算法结果。
15.根据权利要求14所述的设备,其中:
插件程序对data文件拥有写入权限,MATLAB程序对data文件拥有读出权限;以及
插件程序对control文件拥有读出权限,MATLAB软件对control文件拥有写入权限。
16.根据权利要求15所述的设备,其中:
交通数据包括各车道交通流量;以及
MATLAB程序的算法结果包括绿信比。
17.根据权利要求14所述的设备,还包括:用于获取PARAMICS软件的路网相关数据的装置,路网相关数据包括交叉口相关link的名称和位置和每个link上detector的名称,以及该交叉口node的名称。
18.根据权利要求14所述的设备,其中在void qpx_NET_preOpen(void)函数中完成插件程序的初始化,在初始化过程中,根据要控制的node名称,获取其相关指针,然后通过结点外部控制设置函数void qps_NDE_extern alController(NODE*node,Bool on),将该node设置为外部控制节点。
19.根据权利要求14所述的设备,其中插件程序的主体部分在void qpx_NET_second(void)函数中编写,该函数在仿真时间每秒结束时调用。
20.根据权利要求14所述的设备,其中根据flag文件中的驱动标志值来读写相应共享文件包括:
当驱动标志为0时,用函数int qpg_DTL_count(LOOP*loop,int type)采集每个车道的流量,然后将数据写入data文件,然后将驱动标志置为1;
当驱动标志为1时,先读取flag文件,然后读取control文件,获取绿信比,绿信比与控制周期的乘积即为下一个周期的绿灯时间,以得到下一周期的新的配时方案,执行以上操作,直到驱动标志位不等于1;以及
当驱动标志为2时,无操作。
21.根据权利要求14所述的设备,还包括:
用于将插件程序编译生成动态链接库的装置。
22.一种通过与PARAMICS软件一起使用的MATLAB程序所实现的设备,该MATLAB程序通过共享文件与PARAMICS软件的插件程序交互,共享文件包括flag文件、data文件和control文件,该设备包括:
a)用于初始化MATLAB程序的参数的装置;
b)用于改写flag文件的驱动标志为0的装置;
c)用于读取flag的驱动标志,直到驱动标志为1的装置;
d)用于读取data文件,得到PARAMICS软件的交通数据的装置;
e)用于根据data文件中的交通数据,运行控制算法,获得运行结果的装置;以及
f)用于将控制算法的运行结果写入control文件的装置。
23.根据权利要求22所述的设备,其中初始化MATLAB程序的参数包括:基于PARAMICS的仿真时间,设置MATLAB程序的最大循环次数。
24.根据权利要求22所述的设备,其中控制算法的运行结果是绿信比。
25.根据权利要求22所述的设备,其中:
data文件用于存储从PARAMICS软件中采集到的交通数据,插件程序拥有写入权限,MATLAB程序拥有读出权限;
flag文件用于存储程序交替运行驱动标志,插件程序和MATLAB程序都可以对其进行读写操作;
control文件用于存储MATLAB程序的算法结果,插件程序对其拥有读出权限,MATLAB软件对其拥有写入权限;以及
交通数据包括各车道交通流量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510665898.9A CN105335240B (zh) | 2015-10-15 | 2015-10-15 | 基于文件共享的paramics和matlab数据交互方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510665898.9A CN105335240B (zh) | 2015-10-15 | 2015-10-15 | 基于文件共享的paramics和matlab数据交互方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335240A CN105335240A (zh) | 2016-02-17 |
CN105335240B true CN105335240B (zh) | 2019-09-10 |
Family
ID=55285795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510665898.9A Active CN105335240B (zh) | 2015-10-15 | 2015-10-15 | 基于文件共享的paramics和matlab数据交互方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335240B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595220B (zh) * | 2018-04-25 | 2021-04-16 | 上海掌门科技有限公司 | 应用组件的处理方法、设备及计算机可读存储介质 |
CN110221926B (zh) * | 2019-05-27 | 2021-11-16 | 中国电建集团华东勘测设计研究院有限公司 | 一种高拱坝浇筑进度仿真的隔离计算管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452454A (zh) * | 2007-11-30 | 2009-06-10 | 华为技术有限公司 | 文件集共享方法及装置 |
CN103310057A (zh) * | 2013-06-14 | 2013-09-18 | 广州市公共交通数据管理中心 | 交通微观仿真运行方法和装置 |
CN104572312A (zh) * | 2013-10-22 | 2015-04-29 | 北京临近空间飞行器系统工程研究所 | Windows系统下基于文件名的异构程序交互方法 |
-
2015
- 2015-10-15 CN CN201510665898.9A patent/CN105335240B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452454A (zh) * | 2007-11-30 | 2009-06-10 | 华为技术有限公司 | 文件集共享方法及装置 |
CN103310057A (zh) * | 2013-06-14 | 2013-09-18 | 广州市公共交通数据管理中心 | 交通微观仿真运行方法和装置 |
CN104572312A (zh) * | 2013-10-22 | 2015-04-29 | 北京临近空间飞行器系统工程研究所 | Windows系统下基于文件名的异构程序交互方法 |
Non-Patent Citations (2)
Title |
---|
Chao Guo等.Model Predictive Control Implementation and Simulation for Urban Traffic Networks.《IEEE International Conference on Service Operations and Logistics, and Informatics(SOLI)》.2014,334-337. |
赵晓华等.交通控制算法在Paramics交通仿真软件中的实现.《公路交通科技》.2006,第23卷(第6期),138-139. |
Also Published As
Publication number | Publication date |
---|---|
CN105335240A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bunte et al. | The mCRL2 toolset for analysing concurrent systems: improvements in expressivity and usability | |
CN105677446B (zh) | 分布式仿真平台的可视化建模方法 | |
CN105739983B (zh) | 脚本程序编辑装置及其实现方法 | |
Goldin et al. | Turing machines, transition systems, and interaction | |
US8352906B2 (en) | Method, system, and computer program product for implementing external domain independent modeling framework in a system design | |
Matallaoui et al. | Model-driven serious game development integration of the gamification modeling language gaml with unity | |
US20150294039A1 (en) | Graphical Design Verification Environment Generator | |
CN105556569A (zh) | 动画编辑 | |
CN105335240B (zh) | 基于文件共享的paramics和matlab数据交互方法和设备 | |
Bonaventura et al. | Graphical modeling and simulation of discrete-event systems with CD++ Builder | |
CN103942092A (zh) | 一种支持LabView图形化编程的HLA协同仿真方法 | |
CN104866319A (zh) | 基于邻接矩阵的逻辑图执行顺序和反馈解耦的方法 | |
CN102968533B (zh) | 一种液体火箭发动机通用化仿真方法 | |
Pohl et al. | vMAGIC—automatic code generation for VHDL | |
CN109726063A (zh) | 一种基于指令行为对Verilog实现的MIPS处理器的自动化评判方法 | |
Lazăr et al. | Tool support for fUML models | |
Debnath et al. | Defining Patterns Using UML Profiles. | |
Hause et al. | Frenemies: Opm and SysML together in an MBSE model | |
Flora-Holmquist et al. | The virtual finite-state machine design and implementation paradigm | |
Bottoni et al. | Enforced generative patterns for the specification of the syntax and semantics of visual languages | |
Schulze | Text in diagrams: challenges to and opportunities of automatic layout | |
Gast | Developer-oriented correctness proofs: A case study of Cheney’s algorithm | |
Hämäläinen et al. | Gamification of System-on-Chip design | |
JP2011165051A (ja) | 開発支援装置及び方法並びにプログラム | |
Laouadi et al. | A novel organizational model for real time MAS: Towards a formal specification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |