基于matlab rtw的仿真实验

基于matlab rtw的仿真实验

ID:3147122

大小:299.50 KB

页数:11页

时间:2017-11-20

基于matlab rtw的仿真实验_第1页
基于matlab rtw的仿真实验_第2页
基于matlab rtw的仿真实验_第3页
基于matlab rtw的仿真实验_第4页
基于matlab rtw的仿真实验_第5页
资源描述:

《基于matlab rtw的仿真实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于MATLABRTW/Engine的建模仿真实验专业名称导航、制导与控制学号学生姓名指导教师2011年12月23日第10页共10页一.实验目的利用MATLABRTW及Engine工具,通过两种不同的方式在VisualC++环境中对Simulink模型进行集成和调用,从而辅助在科研及工程实践中准确、通用、快速地建立分布交互仿真体系结构下的复杂系统仿真模型。RTW(Real-TimeWorkshop)是MATLAB提供的自动化代码生成工具,它可以将Simulink模型框图转化为标准的C代码。Engine是MATLAB提供的C语言的调用接口,通过打开该引擎可以执行

2、命令调用如Simulink之类的MATLAB资源。二.实验内容1.基于MATLABRTW的建模与仿真基于MATLABRTW的建模与仿真实验有以下内容:①理解MATLABRTW的运行机制;②在MATLAB中搭建Simulink仿真模型;③仿真模型参数及RTW参数配置;④自动生成C代码并分析各文件内容功能(生成dll动态链接库);⑤在VisualC++环境中集成生成代码(动态链接库),构建仿真模型,运行并与Simulink仿真模型运行结果进行对比。2.基于MATLABEngine的建模与仿真基于MATLABEngine的建模与仿真实验有以下内容:①理解MATLAB

3、Engine的工作原理;②在MATLAB中搭建Simulink仿真模型并配置;③编写VC控制台程序通过Engine引擎调用Simulink模型;④将结果与Simulink仿真模型运行结果进行对比分析。三.实验步骤及过程1.基于MATLABRTW的建模与仿真第一步:仿真模型搭建,构建二阶系统的Simulink模型;第二步:配置参数,在SimullinkParameter选项中,配置模型参数和RTW参数;第三步:分析生成的C代码(生成dll动态链接库);第10页共10页第四步:在VisualC++中对生成的代码(动态链接库)进行编译运行(需要添加头文件和库文件支持

4、);第五步:对比仿真结果。2.基于MATLABEngine的建模与仿真第一步:MATLAB中仿真模型的搭建和配置(以一个简单二阶连续系统模型为例);第二步:配置参数,配置WorkspaceI/O属性页;第三步:编写VC控制台应用程序(需要添加头文件和库文件支持),通过引擎得到模型仿真结果。四.实验软件设计与实现软件流程:1.基于MATLABRTW的建模与仿真①将RTW生成的C代码封装成DLL动态链接库;②基于VC构建应用程序,调用动态链接库,行模型执,计算系统的输出。③模型中止,绘图,对比仿真结果。2.基于MATLABEngine的建模与仿真①首先要打开MAT

5、LABEngine引擎。②进入模型所在目录,进行初始化操作。③设置仿真开始时刻。④使用循环调用的方式使模型推进,期间进行状态变量迭代,将本次时间步结束时系统的终端状态记录下来,作为下一个时间步运行的初始状态。⑤画出模型输出。⑥最后关闭引擎。注:使用的MATLAB版本是MATLABR2008b。程序结构及主要功能模块1.基于MATLABRTW的建模与仿真①初始化externvoid_declspec(dllexport)RTWInitialize(void);voidRTWInitialize(void){model();//模型注册第10页共10页MdlIni

6、tializeSizes();//初始化大小MdlInitializeSampleTimes();//初始化采样次数MdlStart();//启动模型model_U.In1=1;//给定输入}②模型执行externdouble_declspec(dllexport)RTWOutput(void);doubleRTWOutput(void){doubleYout;MdlOutputs();//计算系统输出MdlUpdate();//更新离散状态向量model_derivatives();//计算连续模型导数Yout=model_Y.Out1;//记录输出结果re

7、turnYout;}③模型中止externvoid_declspec(dllexport)RTWTerminate(void);voidRTWTerminate(void){MdlTerminate();}2.基于MATLABEngine的建模与仿真①开启引擎及初始化Engine*ep=engOpen("");//开启引擎engEvalString(ep,"cd('D:MATLAB')");//进入模型所在目录engEvalString(ep,"xInitial=[]");//对模型运行所需变量初始化engEvalString(ep,"value=zer

8、os(1,401)");//生成一个0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。