概述
文章目录
- 前言
- 一、问题概述
- 二、问题相关代码
- 三、运行结果及报错内容
- 四、解决思路及方法
- 总结
前言
COM 是一种实现软件之间进程间通信的技术,可以用能够处理 COM 对象的任何类型的语言进行编程。通过 Vissim COM,用户能够动态地操作大多数内部对象的属性。
使用 Matlab 进行联合仿真的主要优点之一是 Matlab 脚本语言比较简单,并且有很多内置函数可以自由调用。与其他编程语言相比,使用 Matlab 可以节省大量时间和精力。
一、问题概述
Matlab 联合 Vissim 协同仿真时,在 Matlab 中使用命令“actxserver”创建一个新的 COM 服务器,出现了“创建服务器失败”的问题。
二、问题相关代码
创建COM服务器代码如下:
%% 建立VISSIM的COM接口
vissim = actxserver('VISSIM.vissim.430');
三、运行结果及报错内容
错误使用 feval
创建服务器失败: 没有注册类
出错 actxserver (line 89)
h=feval(['COM.' convertedProgID], 'server', machinename, interface);
四、解决思路及方法
这样的错误意味着 Matlab 由于系统某些问题而无法连接到 Vissim,这是 Windows 产生的错误。 提供以下几种方法给大家尝试,也是我在解决问题过程中都试过的一些行之有效方法。
1.【杀毒软件】可能会导致出现此种问题,尝试关闭并检查是否可以解决该问题(我的电脑就是由于火绒杀毒软件导致无法运行代码,将火绒关闭后即可以运行)。
2.同时按住 windows+R 组合键打开“运行”,输入 “DCOMCNFG” 后打开组件服务,点击 DCOM 配置,查看 VISSIM_COMServer 是否安装好。
3.在 Vissim 软件的菜单栏尝试操作:帮助-点击注册COM服务器。我用的是 Vissim 4.3 版本,是没有找到“点击注册COM服务器”选项的,可能是版本的问题,也欢迎了解 Vissim 4.3 注册的同学与我一起交流。(咨询了一位学长的建议:Vissim 新版本的COM接口更加友好,也可以用开源软件SUMO替代 Vissim,它的 TraCI 接口可以实现和 COM 相同的功能)
总结
这个问题困扰了我差不多快一个月,走了不少弯路。这段时间一直在各平台上搜索提问,翻墙上外网找答案,还给一位同样做仿真的陌生学长发邮件询问,感谢这位学长为我提供的帮助。几经波折,终于解决这个问题。
于我而言,整个探寻问题解决方案的过程、运行时看到 Matlab 正忙的紧张以及能够跑通代码后的激动,这些都是我科研路上宝贵的经历,弥足珍贵,令我受益匪浅。
虽然得到答案后会觉得“啊,原来是这么简单的原因”,但是在自己探索的时候,由于网上资料比较少真的会很抓狂,幸好问题得到圆满的解决。写此文章分享给大家,希望能够给遇到同样问题的同学提供一些帮助。
最后
以上就是个性小霸王为你收集整理的Matlab联合Vissim协同仿真时报错“创建服务器失败”——问题解决方案前言一、问题概述二、问题相关代码三、运行结果及报错内容四、解决思路及方法总结的全部内容,希望文章能够帮你解决Matlab联合Vissim协同仿真时报错“创建服务器失败”——问题解决方案前言一、问题概述二、问题相关代码三、运行结果及报错内容四、解决思路及方法总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复