【VC++开源代码栏目提醒】:网学会员为广大网友收集整理了,集成VISSIM_ExcelVBA和MATLAB的仿真平台研究 - 期刊论文,希望对大家有所帮助!
第 12 卷 第 4 期 交通运输系统工程与信息 Vol. 12 No. 42012 年 8 月 Journal of Transportation Systems Engineering and Information Technology August 2012 文章编号: 1009-6744 ( 2012) 04-0043-06 集成 VISSIM、Excel VBA 和 MATLAB 的 仿真平台研究 卢守峰 ,韦钦平 ,沈 文 ,刘喜敏 1 1 1 2 1, ( 1. 长沙理工大学 交通运输工程学院,长沙 410114; 2. 道路结构与材料交通行业重点实验室( 长沙) ,长沙 410114) 摘要: 本文提出了利用 Excel VBA 作为主控程序将 VISSIM 与 MATLAB 进行集成构 建仿真平台的方法,解决了直接对 VISSIM 二次开发编程难度大、耗时长的问题. 该方 法综合 Excel VBA 与 VISSIM、MATLAB 的接口编程容易, MATLAB 具有强大的工具 且 箱、库函数和擅长处理矩阵的优点,其中 VISSIM 和 MATLAB 作为 Excel VBA 的调用对 利用 MATLAB 编制新建交通控制模型的代码, 象, 利用 VISSIM 模拟车流运行和提取各 种交通运行性能指标. 具体地,VISSIM 与 Excel 之间采用 COM 数据通讯接口进行集成, Excel 与 MATLAB 之间采用 Excel Link 扩展接口进行集成. 采用这种方法建立的交通控 制仿真平台为研究验证新型的交通控制模型提供了有效途径 , 最后给出了一个基于该 控制仿真平台建立的 Q 学习配时优化模型的实例. 关键词: 智能交通; 仿真平台; 接口技术; VISSIM; Excel VBA; MATLAB 中图分类号: U491. 5 4 文献标识码: J Integrated Simulation Platform of VISSIM,Excel VBA,MATLAB LU Shou- 1 ,WEI Qin- feng min 2 ping1 ,SHEN Wen1 ,LIU Xi- 1, ( 1. Traffic and Transportation Engineering College,Changsha University of Science and Technology,Changsha 410114,China; 2. Key Lab of Road Structure and Material of Communication Ministry,Changsha,Changsha 410114,China) Abstract: The paper puts forward an integration method of Excel VBA,VISSIM and MATLAB for traffic simulation platform,which indeed solve the problem of programming difficulty and time consuming if the high-level programming language is used to re-program. The Excel VBA is the master control program. Excel VBA has the easy interface programming with VISSIM and MATLAB. The MATLAB has the powerful toolbox,library function and the advantages of analyzing the matrix. The VISSIM and MATLAB are the called objects of Excel VBA. VISSIM usually simulates traffic flow and outputs the performance index. 收稿日期: 2012- 21 03- 修回日期: 2012- 21 06- 录用日期: 2012- 29 06- 基金项目: 国 家 自 然 科 学 基 金 项 目 ( 71071024,70701006 ) ; 教 育 部 科 研 重 点 项 目 ( 145 ) ; 湖 南 省 教 育 厅 科 研 项 目 11C0038) ; 长沙市科技局重点项目( K1106004 - 11,( 09A003, K1001010 - 11) ; 道路结构与材料交通行业重点实验室开放基金( kfj100206) . 作者简介: 卢守峰( 1978 - ) , 吉林磐石人, 男, 副教授,博士. 通讯信者: itslu 126. com 44 交通运输系统工程与信息 2012 年 8 月 MATLAB is programmed for the proposed traffic control model. The integration of VISSIM and Excel is realized by the COM data communication interface. The integration of Excel and MATLAB is realized by the Excel Link extension interface. The proposed integration method for traffic control simulation platform provides an effective solution to validate the traffic control model. The paper also presents an example of Q-learning signal timing optimization based on the proposed traffic control simulation platform. Key words: intelligent transportation; simulation platform; interface technique; VISSIM; Excel VBA; MATLAB CLC number: U491. 5 4 Document code: J1 引 言 间步长的微观仿真模型,用以模拟和分析各种交通 近年来,人工智能领域取得了极大的进展,为 条件下 ( 车 道 设 置、 通 构 成、 通 信 号、 交 车 交 交 公交通控制研究提供了新的思路. 许多学者将人工智 站、驾驶行 为 等 ) 车 辆、 人、 道 交 通 的 运 行 状 行 轨能领域的专家系统、模糊控制、人工神经网络、遗传 况,是评价交通工程设计方案、配时方案等有效工算法和强化学习等实用技术应用于交通控制 . 新型 具. VISSIM 采用的理论模型是 Wiedemann 教授的 〔6〕交通控制模型研究的一个难点在于如何验证控制 多区域行为阈值模型 ,其中纵向运动采用了心模型的有效性. 通常,可通过现场实验、数学模型计 理—生理跟车模型,横向运动 ( 车道变换 ) 采用了算或者仿真实验三种方法来验证交通控制模型的 基于规则的算法,不同驾驶员行为的模拟分为保守效果,其中现场实验能提供最有效最直接的依据, 型和冒险型. VISSIM 提供了图形化的界面,以二维但耗资耗时、可行性差; 数学模型计算方法简单易 或三维形式向用户直观显示车辆的运动 .行,但对实际的复杂交通流做了很多的简化,极大地降低了可信度; 采用成熟的微观交通仿真软件来 3 VISSIM 与 Excel VBA 接口技术验证交通控制模型是目前同行认可的最有效方法 . 当预先为 VISSIM 输入配时方案进行仿真时, 〔1〕陈德望,蔡伯根,吴建平将 TSIS、 MATLAB 集 VC、 仿真过程中配时方案固定不变,这种做法不能够实成构建交通控制仿真平台的接口技术进行了研究 . 现 VISSIM 与配时优化模型之间的互动,不能够满 〔2〕陈茜,冉江宇,王炜 利用接口原理将 VC 编写的 足新建交通控制模型的开发. 为了验证新建交通控外部程序与 TSIS 进行了集成,对大型活动交通消 制模型的效果,必须利用 VISSIM 的 COM 接口技 〔3〕散进行了仿真. 李文勇, 陈学武 利用接口原理将 术 〔7〕 , VISSIM 仿真模型与外部的配时优化程序 将TSIS 和 VC 进 行 集 成, 交 通 诱 导 进 行 了 仿 真. 对 链接起来. 具体的结构如图 1 所示.Liu,Chu,Recker〔4〕,Zhang, 〔5〕 利用 Paramics 软 Jin件的二次开发功能, 对入口匝道的控制效果进行了评价. 目前关于 VISSIM 的二次开发方面的文献不多. 本 文 的 目 的 是 研 究 微 观 交 通 流 仿 真 软 件VISSIM 及其 COM( 通用对象模型 ) 接口, Excel 与VBA 和 MATLAB 的集成技术,实现以 Excel VBA 图1 VISSIM 与 Excel VBA 接口原理为主控 程 序, VISSIM 和 MATLAB 作 为 调 用 对 将 Fig. 1 The interface principle of VISSIM and Excel VBA象,其中利用 MATLAB 编制新建交通控制模型的代码,利用 VISSIM 模拟车流运行和提取各种交通 VISSIM COM Server 接口技术〔8〕为连接外部的运行性能指标. 配时优化程序提供了一个非常重要的新方法 ,这也 是当前交通流仿真软件的一个重要发展趋势 ,使得2 VISSIM 简介 研究人员对交通流的干预更加有效和主动 ,使得基 VISSIM 是由德国 PTV 公司开发的微观交通 于仿真的研究和分析更加实用. 这种 COM 接口技流仿真系统,是一个离散的、随机的、 0. 1 秒为时 以 术能够实现新建交通控制模型在现场实施之前在第 12 卷 第 4 期 集成 VISSIM、Excel VBA 和 MATLAB 的仿真平台研究 45仿真软件中模拟,从而确保在实施中取得好的效 交互,只需在 VBA 代码中定义对象变量,再创建一果. 具体地,通过 COM 接口可以获得 VISSIM 仿真 个 VISSIM 对象并赋予该变量.程序中的交通运行指标数据,此时 VISSIM 类似自动服务器,能够导出该文件中描述的对象、方法和 4 Excel VBA 与 MATLAB 接口技术特 征 属 性. VISSIM 的 COM 接 口 支 持 Microsoft Excel VBA 的缺点是缺少一些复杂的库函数,Automation, 户 可 以 应 用 所 用 的 RAD ( Rapid 用 所以要想在 VBA 中实现复杂的控制算法,需要做Application Development) 工具,可以对接的脚本语 大量编程工作. MATLAB 具有强大的数据计算、处言如 Visual Basic 或 Java,可以对接的编程环境如 理和图形显示能力. MATLAB 语言是目前使用最Visual C 或者 Visual J . 为广泛的科学计算软件,包括大量实用的工具箱和 Microsoft Excel 具有强大的表格处理 、数据统 库函数,很容易实现各种复杂的控制算法,如模糊计和显示能力 ,同时支持调用 Windows 底层 API, 控制、神经网络、遗传算法等. 如果实现 MATLAB可 兼 容 的 接 口 范 围 丰 富 . VBA ( Visual Basic for 和 Excel 的链接,就可以集成 Excel VBA 与 VISSIMApplications) 是 Visual Basic 的 一 种 宏 语 言 , 要 主 接口编程简单、MATLAB 具有强大计算能力的优用来扩展 Windows 的应用程序功能 ,是一种应用 点. 利 用 MATLAB 与 Excel VBA 的 接 口, 现 实方式视觉化的 Basic Script. VBA 嵌入在 Excel 等 MATLAB 语言与 Excel VBA 混合编程〔9〕,充分利用应用软件 之 中 , 其 他 应 用 软 件 有 很 好 的 接 口 , 与 两者的优点已成为 MATLAB 语言扩大应用和提高不需要单独购买开发工具就可以立即着手开发 , 编程效率的一个热点.它 们 具 有 宏 的 概 念, 优 点 包 括 支 持 调 用 其 总的来说,Excel VBA 调用 MATLAB 有以下四 〔10〕 编 开Windows 底层 API、 程 语 言 简 单 、 发 速 度 快 、 种方式 : 程开发文档 以 及 实 例 完 整 、 序 代 码 为 开 源 代 码 、 ( 1) 利用 Excel Link.软件执行死 机 时 可 以 终 止 应 用 程 序 而 不 必 关 闭 Excel Link 是 一 个 在 Windows 环 境 下 实 现应 用 软 件、 时 进 行 跟 踪 调 试. 基 于 以 上 优 点, 即 Excel 与 MATLAB 进 行 链 接 的 插 件. 通 过 ExcelExcel VBA 无疑是验证新建交通控制模型的最优 Link 连接 Excel 和 MATLAB 实现数据共享,不脱离秀编程工具之一 . Excel 环境直接在 Excel 中调用 MATLAB 函数. VISSIM 与 Excel VBA 交互过程中,COM 接口 ( 2) 利用 Excel 生成器( MATLAB 作为 COM 服起着一个中心的作用. Excel VBA 对 VISSIM 的调 务器) .用都是基于对象的,VISSIM 是模型中最高等级的 COM 是一组面向对象的技术和工具的集合.对象,其他的对象都是它的子集,隶属于它,COM 利用 MATLAB 提供的 COM 生成器, MATLAB 的 把应用程序自动进入第一个 VISSIM 实例运行,如果 算法程序生成组件,这些组件可作为独立的 COM此时没有任何实例,那么系统将会自动创建一个新 对象被 Excel 的 VBA 使用.的 INP 文件. IVISSIM 接口允许加载网络,创建低 ( 3) 利用 ActiveX 控制( MATLAB 作为 COM 客等级的模型对象, Net 和 Simulation. VISSIM 的 如 户端) .COM 接口模型有着一个严格的对象等级,用户如 ActiveX 是 Microsoft 对于一系列策略性面向对果要进入不同的低等级对象,如一个 Net 对象中的 象程序技术和工具的称呼,其中主要的技术是组件一个 Link 对象,就必须按照这个等级来操作. 对象模 型. 主 要 利 用 MATLAB 中 的 actxserver 函 为了在 Excel VBA 中成功调用 VISSIM 仿真软 数: actxserver ( ’progid ’) , 中 progid 为 程 序 的 其件, 使 用 COM 接 口 前 必 须 先 对 VISSIM COM 在 ActiveX 部件的标识符,针对不同的程序有不同的Server 进行适当的注册. 安装 VISSIM 时,一般默认 progid.安装 VISSIM COM Server, 对 COM 接 口 进 行 注 并 ( 4) 文件导入方法.册. VISSIM COM Server 是 VISSIM 与其他程序的通 利用 xlsread 和 xlswrite 函 数 读 写 Excel 文 件信接口,成为交换数据和通讯的中介. VISSIM COM ( 也可用 fopen、fread 和 fwrite 函数) ,然后进行数据Server 注册后,即可在 Excel VBA 中实现与 VISSIM 处理 操 作. 还 可 通 过 菜 单 File → Import data 46 交通运输系统工程与信息 2012 年 8 月方法. 的工作区或者宏操作中调用 MATLAB 函数,Excel 为了便于数据实时交互,本文采用第 1 种方 提供了 11 个函数来实现链接和数据操作.法,即利用 Excel Link,该方法对 MATLAB 支持最全面、 现 最 容 易, 直 接 在 Excel VBA 中 利 用 实 可 5 VISSIM、Excel VBA 与 MATLAB 集成MATLAB 引擎调用 MATLAB 中现有的库函数实现 技术新建交通控制模型,接口原理如图 2 所示. 结合本文第 3 部分和第 4 部分所探讨的技术, 综合集成 VISSIM、Excel VBA、MATLAB 三种软件, 利用 VISSIM 可 靠 的 微 观 交 通 流 仿 真 能 力、Excel VBA 高效的数据通信能力及 MATLAB 实现复杂智 能交通控制模型的能力,构建先进的交通控制仿真 平台,利用新建交通控制模型计算信号配时方案输 入到 VISSIM 仿真程序中,利用 VISSIM 仿真程序 图2 Excel VBA 与 MATLAB 接口原理 得到交通运行指标输入到新建交通控制模型中 . Fig. 2 The interface principle of Excel VBA and MATLAB 具体实现方法为: 以 Excel 为主控程序,通过 Excel Link 可将 Excel 与 MATLAB 进行集成, 实 COM 接口直接调用 VISSIM 对象,通过 Excel Link现它们之间的数据共享. 通过 MATLAB 与 Excel 的 接口直接调用 MATLAB 对象,实现复杂的智能交 用户可以在 Excel 的工作空间中,链接, 利用 Excel 通控 制 模 型, 图 3 所 示. VISSIM、 如 Excel VBA 与的宏编程功能, 使用 MATLAB 的数据处理和图形处 MATLAB 都具各自的优势,综合集成三者的优势理功能进行相关操作,同时 Excel 保证了 MATLAB 构建先进的交通控制仿真平台,该平台构建方法简和 Excel 工 作 空 间 .