毕业论文基于matlabrtw的仿真实验说明书文档格式.docx

上传人:b****0 文档编号:13877341 上传时间:2022-10-14 格式:DOCX 页数:32 大小:212.37KB
下载 相关 举报
毕业论文基于matlabrtw的仿真实验说明书文档格式.docx_第1页
第1页 / 共32页
毕业论文基于matlabrtw的仿真实验说明书文档格式.docx_第2页
第2页 / 共32页
毕业论文基于matlabrtw的仿真实验说明书文档格式.docx_第3页
第3页 / 共32页
毕业论文基于matlabrtw的仿真实验说明书文档格式.docx_第4页
第4页 / 共32页
毕业论文基于matlabrtw的仿真实验说明书文档格式.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

毕业论文基于matlabrtw的仿真实验说明书文档格式.docx

《毕业论文基于matlabrtw的仿真实验说明书文档格式.docx》由会员分享,可在线阅读,更多相关《毕业论文基于matlabrtw的仿真实验说明书文档格式.docx(32页珍藏版)》请在冰豆网上搜索。

毕业论文基于matlabrtw的仿真实验说明书文档格式.docx

④自动生成C代码并分析各文件内容功能(生成dll动态链接库);

⑤在VisualC++环境中集成生成代码(动态链接库),构建仿真模型,运行并与Simulink仿真模型运行结果进行对比。

2.基于MATLABEngine的建模与仿真

基于MATLABEngine的建模与仿真实验有以下内容:

①理解MATLABEngine的工作原理;

②在MATLAB中搭建Simulink仿真模型并配置;

③编写VC控制台程序通过Engine引擎调用Simulink模型;

④将结果与Simulink仿真模型运行结果进行对比分析。

三.实验步骤及过程

第一步:

仿真模型搭建,构建二阶系统的Simulink模型;

第二步:

配置参数,

在SimullinkParameter选项中,配置模型参数和RTW参数;

第三步:

分析生成的C代码(生成dll动态链接库);

第四步:

在VisualC++中对生成的代码(动态链接库)进行编译运行(需要添加头文件和库文件支持);

第五步:

对比仿真结果。

2.基于MATLABEngine的建模与仿真

MATLAB中仿真模型的搭建和配置(以一个简单二阶连续系统模型为例);

配置参数,配置WorkspaceI/O属性页;

编写VC控制台应用程序(需要添加头文件和库文件支持),通过引擎得到模型仿真结果。

四.实验软件设计与实现

软件流程:

①将RTW生成的C代码封装成DLL动态链接库;

②基于VC构建应用程序,调用动态链接库,行模型执,计算系统的输出。

③模型中止,绘图,对比仿真结果。

①首先要打开MATLABEngine引擎。

②进入模型所在目录,进行初始化操作。

③设置仿真开始时刻。

④使用循环调用的方式使模型推进,期间进行状态变量迭代,将本次时间步结束时系统的终端状态记录下来,作为下一个时间步运行的初始状态。

⑤画出模型输出。

⑥最后关闭引擎。

注:

使用的MATLAB版本是MATLABR2008b。

程序结构及主要功能模块

①初始化externvoid_declspec(dllexport)RTWInitialize(void);

voidRTWInitialize(void)

{

model();

//模型注册

MdlInitializeSizes();

//初始化大小

MdlInitializeSampleTimes();

//初始化采样次数

MdlStart();

//启动模型

model_U.In1=1;

//给定输入

}

②模型执行externdouble_declspec(dllexport)RTWOutput(void);

doubleRTWOutput(void)

doubleYout;

MdlOutputs();

//计算系统输出

MdlUpdate();

//更新离散状态向量

model_derivatives();

//计算连续模型导数

Yout=model_Y.Out1;

//记录输出结果

returnYout;

③模型中止externvoid_declspec(dllexport)RTWTerminate(void);

voidRTWTerminate(void)

MdlTerminate();

①开启引擎及初始化

Engine*ep=engOpen("

\0"

);

//开启引擎

engEvalString(ep,"

cd('

D:

\MATLAB'

)"

//进入模型所在目录

xInitial=[]"

//对模型运行所需变量初始化

value=zeros(1,401)"

//生成一个0向量用于存储模型的输出结果

②设置仿真时间进行仿真

t=0.0"

//设置仿真的开始时刻

j=0"

//记录迭代次数

for(inti=0;

i<

401;

i++)

{

engEvalString(ep,"

value(1,j+1)=simout(1,1)"

//记录模型的输出

t=t+0.1"

//仿真时刻推进

j=j+1"

//迭代次数推进

xInitial=xFinal"

//状态变量迭代,将本次时间步结束时系统的终端状态记录下来,作为下一个时间步运行的初始状态

}

③画出模型输出

engEvalString(ep,"

time=[0:

0.1:

40]"

plot(time,value)"

五.实验结果分析

MATLAB仿真运行结果:

VC代码仿真结果:

结果分析:

由图看出在VC下的仿真结果与在Simulink下的输出波形是一致的,通过使用MATLAB提供的自动化代码生成工具RTW来将Simulink模型框图转化为标准的C代码,之后在C中调用,然后给定输入再执行,因此和在Simulink下的结果应该一致。

MATLAB仿真运行结果(仿真步长0.1s):

VC代码通过engine调用matlab仿真结果(仿真步长0.1s):

由上图看出在VC下的仿真结果与在Simulink下的输出波形是一致的,由于式在VC下通过MATLAB引擎调用MATLAB的函数,即将MABTLAB当作应用程序进行数据计算的引擎,只是界面部分采用VC来实现,因此得到的结果应该是一致的。

六.总结:

收获及感想

通过本次实验,在熟悉MATLAB使用的基础上进一步了解了MATLAB的两种C语言调用方法:

C代码自动生成工具RTW和Engine引擎。

MATLAB提供了很多的函数计算方法和模型的仿真工具,应用这两种C语言调用方法可以比较方便的利用MATLAB已有的资源和方法进行相关模型以及仿真环境的构建。

Engine引擎主要是在安装了MATLAB的环境中通过相应的配置和调用语句打开MATLAB的引擎,在C语言环境下可以直接执行编写好的MATLAB语句,非常方便,但前提是需要MATLAB环境的支持。

RTW代码自动生成工具相对稍显繁琐,它将构建好的SIMULINK模型直接转化成C代码,并提供调用流程和函数接口,需要用户根据不同的需要将其集成进自己的程序,已达到不同的使用目的。

了解并实践了这些是非常必要的,它为我以后的科研实践提供了很大的帮助。

七.附:

软件结构说明及程序主要代码

①封装dll工程

/*********dllmain.h********/

#include"

model.h"

model_private.h"

model_types.h"

rt_nonfinite.h"

rtGetInf.h"

rtGetNaN.h"

rtmodel.h"

rtwtypes.h"

externmodel();

externMdlInitializeSizes();

externMdlInitializeSampleTimes();

externMdlStart();

externMdlOutputs();

externMdlUpdate();

externMdlTerminate();

externvoid_declspec(dllexport)RTWInitialize(void);

externdouble_declspec(dllexport)RTWOutput(void);

externvoid_declspec(dllexport)RTWTerminate(void);

/*********dllmain.c********/

dllmain.h"

②VC中调用dll

#include<

stdio.h>

#pragmacomment(lib,"

rtwdll.lib"

extern_declspec(dllimport)voidRTWInitialize(void);

extern_declspec(dllimport)doubleRTWOutput(void);

extern_declspec(dllimport)voidRTWTerminate(void);

inti;

doublet=0;

doublemodel_out;

voidmain()

RTWInitialize();

for(i=0;

i<

1000;

model_out=RTWOutput();

printf("

%f,"

model_out);

//printf("

t);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1