VC与Matlab混合编程之基于MATLAB RTW 的建模仿真
本文章只是博主用来记录自己的学习过程以及期间遇到的一些问题及解决方案的总结
首先Matlab(Matlab7.0)仿真模型部分配置过程如下:
注:上面的图是在Matlab2014a中截的,只是说明一下怎么配置,整个工程是在Matlab7.0中做的。
模型中In1的输入实现:(本人一开始一直不知道In1该怎么用,蹭了一段时间,这算是第一个问题)
在命令行窗口执行以下命令即可
t=0:0.01:10;
u=stepfun(t,0);
t=t';
u=u';
完成以上配置后,在Simulink模型中点击Build,生成C代码。
然后,在VC++6.0中进行编程,本人创建的是控制台应用程序(Win32 console application)。
注:一定要在创建的VC工程中加入上面生成的C代码(所有.c和.h文件),以及在工程中设置包含Matlab的一些include文件和library文件的路径。
#include <stdio.h>
#include "Matlab_RTW.h"
#include "Matlab_RTW_private.h"
#include "Matlab_RTW_types.h"
#include "rt_nonfinite.h"
#include "rtmodel.h"
#include "rtwtypes.h"void RTWInitialize(void);
double RTWOutput(void);
void RTWTerminate(void);
int main( )
{int i ;double t=0;double model_out;FILE* pData = fopen("data.txt","w"); //data.txt存储仿真结果if(pData==NULL){printf("Failed to open file\n");return 0;}RTWInitialize();for (i = 0; i < 1000; i++){model_out = RTWOutput();fprintf(pData,"%f\n",model_out);// printf("%f\n",model_out); //内存不足容易丢失数据t = t + 0.01;}fclose(pData);RTWTerminate();return 0;
}
void RTWInitialize(void)
{Matlab_RTW(); //模型注册MdlInitializeSizes(); //初始化大小MdlInitializeSampleTimes(); //初始化采样次数MdlStart(); //启动模型Matlab_RTW_U.In1 = 1; //给定输入
}
double RTWOutput(void)
{double Yout;MdlOutputs(); //计算系统输出MdlUpdate(); //更新离散状态向量Matlab_RTW_derivatives(); //计算连续模型导数Yout = Matlab_RTW_Y.Out1; //记录输出结果return Yout;
}
void RTWTerminate(void)
{MdlTerminate(); //模型停止
}
上面的程序中,本人用TXT文件来存储仿真数据,因为在DOS界面直接输出仿真数据时,只有299个,本该是1000个,所以本人猜测是显示问题(这是第二个问题),所以用TXT文件较好,另外也比较容易将数据导入Matlab中绘制曲线观看仿真效果。
至此整个仿真结束。
VC与Matlab混合编程之基于MATLAB RTW 的建模仿真相关推荐
- c 使用matlab引擎,[转载]C与MATLAB混合编程之调用MATLAB引擎
Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...
- c 与matlab混编,C与MATLAB混合编程之调用MATLAB引擎
Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...
- matlab模块化编程,DSP2812基于MATLAB模块化编程的SPWM调制实现.pdf
[实例简介] DSP2812基于MATLAB模块化编程的SPWM调制实现 58 32 Simulink func- tion builder SCI S-Function Builder B DSP ...
- java matlab混合编程_java和matlab混合编程
1. 从matlab 2006b版本起,开始提供javabuilder工具箱,以支持向java提供编程接口. 2. 安装matlab编译Runtime: MCR(例如:MATLAB/toolbox/c ...
- python与matlab混合编程_python 与 matlab 混编
Matlab的官方文档中介绍了 Matlab 与其余编程语言之间的引擎接口,其中包括对于 Python 开放的引擎 API,可参考官方教程,其中包括引擎安装,基本使用,以及Python与Matlab之 ...
- MATLAB混合编程视频教程下载 SIMULINK系统仿真视频
下载链接: http://item.taobao.com/item.htm?id=43401674106 精通MATLAB混合编程视频讲解 MATLAB各类函数视频讲解 基于MATLAB的高等数学问 ...
- MATLAB混合编程
MATLAB混合编程 java调用MATLAB 在MATLAB中新建脚本,编写需要函数,此处仅做示例(作图) Magic.m function f =Magic( input ) f=magic(in ...
- matlab与vc混合编程指导书.doc,vc与matlab混合编程—基于com.doc
vc与matlab混合编程-基于com.doc VC与MATLAB混合编程基于COM2010年03月21日星期日1118注意旨在提供一份VC调用MATLAB的快速试验参考和一些实际经验,不保证所有内容 ...
- matlab的矩阵编译器,MATLAB引擎方式实现VC与MATLAB混合编程
VS2008是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便.Matlab是一款将数值分析.矩阵计算.信号处理和图形显 ...
最新文章
- spring中aop设计与实现
- 基础数学:关于二次无理数
- 【ARDUINO】HC-05蓝牙不配对问题
- error U1087: cannot have : and :: dependents for same target
- Android服务函数远程调用源码分析
- VBScript脚本
- mysql 报错5 拒绝访问_linux上装mysql
- 基于SSM的社区消毒防疫物资系统
- 阿里云服务器mysql莫名丢失_MySQL5.6 突然死掉 阿里云端的 服务器上搭建的
- 在线JSON校验格式化工具,文本对比工具,截图notepad工具
- 关于IDEA无法使用搜狗输入法输入中文问题
- php后台登录页,后台登录页面模板源码
- hdu 2629 Identity Card (字符串解析模拟题)
- censo7安装mysql_centos7 安装MySQL
- 窗帘轨道怎么安装?方法有哪些?-江南爱窗帘十大品牌
- python笔记 - urllib模块(二十一)
- 纪念Dropbox君
- 渲染函数render
- 如何使用视频流媒体服务器支持HTML5直播?
- window的onload事件的用法
热门文章
- Python OpenCV 图像处理之直方图的应用,取经之旅第 26 天
- Android对渐变颜色的处理
- 每天学命令get_propertyPin Properties
- [随笔] 数据库NULL值的含义及陷阱
- 使用Bootstrap框架-实现响应式页面开源案例-阿里百秀静态页面
- 数据可视化分析教学课件——FineBI实验册节选====交通运输及物流管理等专业
- matlab仿真参考文献,仿真实验论文,关于MATLAB系统仿真课程教学改革相关参考文献资料-免费论文范文...
- CentOS 7 无线网卡驱动安装教程
- 名编辑电子杂志大师教程 | 如何在电子杂志页面直接添加链接?
- 多功能视频处理器——MS1823