OPNET与Matlab联合仿真方法
2014-09-18 20:27
681 查看
有关OPNET和MATLAB的联合仿真方法,在参考网上大家的分享的东西和一些书籍之后,我终于试成功了,现将过程分享给他家,一起学习交流~
主要过程如下:
配置OPENT的环境:在Edit-->preference中:(我的MATLAB安装在D盘根目录中)
l Complication的设置
Comp_flags_common中添加/ID:MATLAB/extern/include,这里D:/MATLAB为MATLAB的安装目录,这个设置可以使编译器中包含一些必要的MATLAB头文件。
l Link的设置
添加值/LIBPATH:”D:/MATLAB/extern/lib/win32/microsoft/msvc60”到变量Bind_shobj_flag中;Bind_shobj_lib的值设置为libmx.lib
libmat.lib libeng.lib,通过该设置,OPNET中就可以调用到MATLAB的引擎函数库。
l 环境变量设置:
include中添加:D:/MATLAB/extern/include;
Lib中添加:D:/MATLAB/extern/lib/win32/microsoft;
PATH中添加:D:/MATLAB/bin/win32。
2. 编程指南
1) 添加头文件 #include “engine.h”,打开计算引擎ep=engOpen();
2) 定义OPNET中的变量,如double* t;
3) 定义MATLAB的mx接口的数据结构 mxArray* T,并创建矩阵,使用函数T=mxCreateDoubleMatrix(3,2,mxREAL)创建3行2列的实数矩阵;
4)将double* t的值转换到T中,使用语句memcpy(mxGetPr(T),t,6*sizeof(double));
5) 将OPNET中的T引入到MATLAB工作空间中:使用函数engPutVariable(ep,"T",T),其中ep为 Engine* ep;
6) 进行MATLAB计算,使用函数engEvalString,可以执行简单的MATLAB指令如:engEvalString(ep,“polt(T,T)”);也可以执行自定义的m文件中的函数:如 engEvalString(ep,“path(path,‘m文件的路径’)”);engEvalString(ep,“m文件的函数”);
7) 如果有返回值,使用函数接收到返回值mxArray* T1=engGetVariable(ep,"T");
8) 将接收回的的返回值转换成OPNET中的数据类型,如还是double* t1,使用函数t1 = (double *) mxGetData(T1);
9) 销毁所有的mxArray类型数据,使用函数:mxDestroyArray(T);
10)关闭计算引擎 engClose(ep);
所有这些就可以完成OPNET和MATLAB的联合仿真了
主要过程如下:
配置OPENT的环境:在Edit-->preference中:(我的MATLAB安装在D盘根目录中)
l Complication的设置
Comp_flags_common中添加/ID:MATLAB/extern/include,这里D:/MATLAB为MATLAB的安装目录,这个设置可以使编译器中包含一些必要的MATLAB头文件。
l Link的设置
添加值/LIBPATH:”D:/MATLAB/extern/lib/win32/microsoft/msvc60”到变量Bind_shobj_flag中;Bind_shobj_lib的值设置为libmx.lib
libmat.lib libeng.lib,通过该设置,OPNET中就可以调用到MATLAB的引擎函数库。
l 环境变量设置:
include中添加:D:/MATLAB/extern/include;
Lib中添加:D:/MATLAB/extern/lib/win32/microsoft;
PATH中添加:D:/MATLAB/bin/win32。
2. 编程指南
1) 添加头文件 #include “engine.h”,打开计算引擎ep=engOpen();
2) 定义OPNET中的变量,如double* t;
3) 定义MATLAB的mx接口的数据结构 mxArray* T,并创建矩阵,使用函数T=mxCreateDoubleMatrix(3,2,mxREAL)创建3行2列的实数矩阵;
4)将double* t的值转换到T中,使用语句memcpy(mxGetPr(T),t,6*sizeof(double));
5) 将OPNET中的T引入到MATLAB工作空间中:使用函数engPutVariable(ep,"T",T),其中ep为 Engine* ep;
6) 进行MATLAB计算,使用函数engEvalString,可以执行简单的MATLAB指令如:engEvalString(ep,“polt(T,T)”);也可以执行自定义的m文件中的函数:如 engEvalString(ep,“path(path,‘m文件的路径’)”);engEvalString(ep,“m文件的函数”);
7) 如果有返回值,使用函数接收到返回值mxArray* T1=engGetVariable(ep,"T");
8) 将接收回的的返回值转换成OPNET中的数据类型,如还是double* t1,使用函数t1 = (double *) mxGetData(T1);
9) 销毁所有的mxArray类型数据,使用函数:mxDestroyArray(T);
10)关闭计算引擎 engClose(ep);
所有这些就可以完成OPNET和MATLAB的联合仿真了
相关文章推荐
- OPNET与MATLAB的联合仿真方法
- OPNET与Matlab联合仿真参数设置
- STK与MATLAB联合仿真方法及应用研究
- 减少Xilinx Ise与Modelsim联合仿真的错误方法
- 汽车仿真软件ADVISOR2002 在高版本Matlab下的兼容使用方法
- [win8.1 64位] MATLAB导出控制系统的ADAMS联合仿真的实践 [一]
- 通过文件读写方式实现Matlab和Modelsim的联合仿真
- (转)通过文件读写方式实现Matlab和Modelsim的联合仿真
- 关于quartus和modelsim联合仿真中预编译库文件,减少仿真时间的方法
- MATLAB与SABER联合仿真(Co-sim)遇到的问题
- matlab和modelsim联合仿真
- matlab和c#联合仿真之一(VS2010,Matlab2012a)
- MATLAB 与Modelsim之间对测试系统的联合仿真
- matlab和c#联合仿真之二
- matlab和c#联合仿真之一(VS2010,Matlab2012a)
- ADAMS 和Matlab 联合仿真
- 关于modelsim与matlab联合仿真
- 通过文件读写方式实现Matlab和Modelsim的联合仿真
- matlab机器人 联合单片机仿真
- 标题:用matlab仿真时,提高工作效率的一种方法