MATLAB仿真时间是怎么确定的啊?

如题所述

首先、仿真时间要设置好,时间太长了就会一直等着。
第二、变步长解法器也要设置
第三、变步长的最大值也要设置当然越小越好,但是太小了会仿真的时间很长,就会一直在等着。

仿真的时间很重要,有一次做斜坡函数如果仿真时间不够长,都无法到达自己想要的值,只能仿真一部分。
用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。用户还可以在第二个下拉选项框中选择对应模式下仿真所采用的算法。
变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。
ode45:缺省值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45。
ode23:二/三阶龙格-库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器。
ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解。
ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。
ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题。
ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况。
ode23tb:是TR-BDF2的一种实现, TR-BDF2 是具有两个阶段的隐式龙格-库塔公式。
discrtet:当Simulink检查到模型没有连续状态时使用它。
步长参数:对于变步长模式,用户可以设置最大的和推荐的初始步长参数,缺省情况下,步长自动地确定,它由值auto表示。
Maximum step size(最大步长参数):它决定了解法器能够使用的最大时间步长,它的缺省值为“仿真时间/50”,即整个仿真过程中至少取50个取样点,但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失真。一般建议对于仿真时间不超过15s的采用默认值即可,对于超过15s的每秒至少保证5个采样点,对于超过100s的,每秒至少保证3个采样点。
Initial step size(初始步长参数):一般建议使用“auto”默认值即可。
仿真精度的定义(对于变步长模式)
Relative tolerance(相对误差):它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%。
Absolute tolerance(绝对误差):表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。
Mode(固定步长模式选择)
Multitasking:选择这种模式时,当simulink检测到模块间非法的采样速率转换,它会给出错误提示。所谓的非法采样速率转换指两个工作在不同采样速率的模块之间的直接连接。在实时多任务系统中,如果任务之间存在非法采样速率转换,那么就有可能出现一个模块的输出在另一个模块需要时却无法利用的情况。通过检查这种转换,Multitasking将有助于用户建立一个符合现实的多任务系统的有效模型。
使用速率转换模块可以减少模型中的非法速率转换。Simulink提供了两个这样的模块:unit delay模块和zero-order hold模块。对于从慢速率到快速率的非法转换,可以在慢输出端口和快输入端口插入一个单位延时unit delay模块。而对于快速率到慢速率的转换,则可以插入一个零阶采样保持器zero-order hold。
Singletasking:这种模式不检查模块间的速率转换,它在建立单任务系统模型时非常有用,在这种系统就不存在任务同步问题。
Auto:这种模式,simulink会根据模型中模块的采样速率是否一致,自动决定切换到multitasking和singletasking。

输出选项
Refine output:这个选项可以理解成精细输出,其意义是在仿真输出太稀松时,simulink会产生额外的精细输出,这一点就像插值处理一样。用户可以在refine factor设置仿真时间步间插入的输出点数。
产生更光滑的输出曲线,改变精细因子比减小仿真步长更有效。精细输出只能在变步长模式中才能使用,并且在ode45效果最好。
Produce additional output:它允许用户直接指定产生输出的时间点。一旦选择了该项,则在它的右边出现一个output times编辑框,在这里用户指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。与精细因子相比,这个选项会改变仿真的步长。
Produce specified output only:它的意思是让simulink只在指定的时间点上产生输出。为此解法器要调整仿真步长以使之和指定的时间点重合。这个选项在比较不同的仿真时可以确保它们在相同的时间输出。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-21
摘要:由于MA7ⅡAB不能直接对硬件端12进行读写操作,缺乏了实时性,使得工程上的应用受到了
极大的限制。而通过MATI.AB应用程序接口Mex调用C++语言,可实现在MATLAB环境下对硬件端
12信号的读写。为此,笔者对Mex接口文件进行了详细介绍,包括Mex接口的各种特殊功能、详细编
写规则和具体编译要求,具体阐述了Mex接口在MA啊AB环境下的调用及使用。并根据Mex接口的
相关功能。对MATLAB数据采集系统的设计在理论上进行了探讨,以图对MATLAB功能进行进一步
的扩展。
关键词:MATLAB:接口;数据采集
Research of Data—Collection System Based onⅣ队TLAB
Wang Hailong,Chen Shanjie,Li Qian,Zhang Peng,Ku Tao,Xu Dahua
(Co//ege ofEngieering,Nanjing Agriculture University,Nanjing 210031)
Abstract:Since MATLAB can not write directly to hardware available for operation.and it lacks of a re。
al-time,it works on the applications has been significantly hampered.MATLAB applications through rede—
ployment C++language interface Mex.Achievable in the MATI。AB environment for the specific hardware
interface signals.Therefore,author of a paper details Mex interfaces,inchding interfaces Mex various spe—
cial functions,and specific translation rules for the preparation of detailed,enuncimed the transfer and the
use of Mex interfaee in the MA’nAB environment.And in accordance with the relevant functional interface
Mex.MATIAB data acquisition system for the design in theory explored in a bid to further expand the
functions of MA7n。AB.
Key words:MA,11AB,Interface,Data collection
MATLAB产品系列被广泛地应用于包括信号与
图像处理、控制系统设计、通讯、系统仿真等诸多领域。
它的一大特性是有众多的面向具体应用的工具箱和仿
真块,包含了完整的函数集用来对信号图像处理,控制
系统设计,神经网络等特殊应用进行分析和设计。其他
的产品延伸了MATLAB的能力,包括数据采集,报告
生成,和依靠MATLAB语言编程产生独立C/C++代
码等等。
正因为其强大的科学计算与可视化功能、简单易
用的开放式可扩展环境以及所拥有的各种面向不同领
域而扩展的工具箱(ToolBox)t11,使得MATLAB在许多
学科领域中成为计算机辅助设计与分析、算法研究和
应用开发的基本工具和首选平台。
但是,MATLAB也存在局限性,就是不能直接对
硬件端口进行读写操作,从而影响了它在测控系统开
发上的应用范围。但它提供了应用程序接口API,通过
该接口,用户可以方便地完成MATLAB与外部环境
的交互(如图1所示)。为此,如何通过接口文件调用其
它语言编写的程序(如C_卜}),再通过其实现对硬件端
口的读写操作,最终实现在单一MArⅡAB环境中进
行测控系统的开发,便成了一项值得探讨和研究的问
题。
1 MATLAB应用程序接口文件Mex
MATLAB应用程序接口(APD主要包括3部分:
Mex文件(外部程序调用接13),Mat文件(数据输入输
出接口)及MATLAB计算引擎函数库。它们实现的一
般功能分别为:(1)在MATLAB环境中调用C/c++
语言或FORTRAN语言编写的程序,以提高数据处理
效率;(2)向MATLAB环境传送数据或从MATLAB
环境接收数据,即实现MATLAB系统与外部环境的
数据交换;(3)在MATLAB和其他应用程序间建立客
户机/服务器关系,将MATLAB作为一个计算引擎,
在其他应用程序中调用从而降低程序设计的工作量。
以下重点介绍Mex文件的应用。
1.1眦X是一种动态链接的子程序,其具体功能如下
(1)对于某些已有的C程序,可以通过Mex方式
在MATLAB环境中直接调用;
(2)对于影响MATLAB执行速度的FOR__I,OOP
等循环体,可以编写相应的C程序完成相同功能,并
编译成Mex文件,提高运行速度;
(3)对于A/D或D/A卡,或其他PC硬件,可以直
接用Mex文件进行访问,扩展MATLAB的功能;
(4)利用MEX文件,还可以使用一些软件,如
Windows的用户界面资源等。
1.2 Mex文件的编程规则
(1)编制自己的C++算法程序;
(2)编制MEX源文件代码;
MEX文件的源文件主要有两个部分组成:
①计算子例行程序(Computational Routine)。它是
链接的外部子程序,包含所有要完成计算功能的源代
码,用来完成实际的计算工作。
②入口子例行程序(Gateway Routine)。它是计算
子例行程序和MATLAB环境之间的接口,用于完成
两者间的数据交互。入口子例行程序是MATLAB调
用C抖程序所必需的部分,计算子例行程序可以由入
口子例行程序调用以完成其特定的功能要求。入口子
例行程序具体的使用格式如下:
#include"mex.h"void MexFunction(int nlhs,
mxArray牛pills[],
int nrhs,const mxArray·prhs[])
{
//C语言代码
)
其中,入口子程序的函数名必须为MexFunction。
prhs为一个结构体类型的指针数组,该数组元素按顺
序指向所有的输入参数;nrhs为输入参数的个数;plhs
与prhs的类型一致,它指向所有的输出参数;nlhs表
示输出参数的个数。该函数通过prhs获得输入数据,
对这些输入数据的处理后经由plhs获得结果,该结果
作为输出数据与其它程序进行数据交互嘲。
1.3 Mex文件的编译和调用
在编译Mex文件之前,必须先在MATLAB下安
装好Mex编译器,安装方法如下:在MATLAB命令窗
口中输入mex.setup然后按照提示向导逐步安装即
可。
Mex文件在MATLAB命令窗口中直接编译,方
式如下:mex filename,然后按回车键,如果编译通
过,系统就会生成同名字的DLL文件,在以后的程序
中可以像调用MATLAB的内建函数一样直接调用此
函数。原理如图2。
由上可知,Mex文件可以作为一个MATLAB的
内建函数来处理,但这个函数又具有强大的接口功能,
可以完成对硬件端口信号的读写操作。其对硬件端口
读写操作的总流程如图3所示:
2基于MATLAB的数据采集系统的概念设计
拟采用MATLAB和C的交互编程来处理数据采
集问题,这样系统不仅具有传统计算机数据采集系统
的全部功能,而且还具有很强的数据处理能力,实际上
构成了智能虚拟仪器t3]。
初步设计系统由三个模块构成,MATLAB模块的
功能包括图形显示和存取、数据分析和处理等,C语言
模块主要实现串行通信功能,而硬件设备则完成对物
理量的变换[4,5/。如图4所示。
当采样对象确定后硬件设备也就随之而定,而C
语言部分实现通信功能也是固定的,故所有的数据处
理功能设置都在MATLAB环境中的人机界面中实
现。该系统的3个界面实现功能如下。
主界面主要由一个图形框和4个按钮构成。图形
框借助于MATLAB的图形处理功能,以最佳匹配模
式动态显示实时采样数据,实现自动示波器功能。4个
按钮名称分别尚酽设置串口”、“开始采集”、“数据处理”
和“退出系统”,鼠标点击即可实现相应功能。
在主界面选择了“串口设置”后,就进入通信协议.
设置界面。这个界面主要由5个弹出式菜单和2个按
钮构成,弹出式菜单的名称和选项分别是:端口选择
(COMI--COM4)、波特率(300-19200)、数据位m8)、停
止位(o~2)和校验位(无、奇、偶),而2个按钮则分别对
所设参数进行确认或者修正。
在主界面选择了“数据处理,,后,则进入数据处理
界面。这个界面的功能与采样对象有关,需由用户自己
针对任务要求进行编程。
3结束语
MATLAB具有各种丰富的数值运算及图形处理
功能,大量实用控制工具箱的存在更为其控制应用奠
定了坚实的基础;而C语言则对硬件系统具有强有力
的处理能力,可方便地实现数据采集、串行通讯等功
能嘲。Mex文件是MATLAB调用C++和其他语言(如
Visual Fortran等)的简易接口,它极大地扩展了
MATLAB的应用范围,使MATLAB系统成为真正意
义上的开放的、功能完善的、自包容的程序设计和数据
处理集成环境Isl。
参考文献
王正林,王盛开,陈国顺.MATLAB/Simulink与控制系统仿真嗍.
北京:电子工业出版社,2005:11-13.
张威.MATLAB外部接121编程嗍.西安:西安电子科技大学出版
社,2004:50-85.
廖良斌,喻方平.基于DSP和USB的图像采集系统的研究叨.武汉
理工大学学报(交通科学与工程版),2006,.30(1):120.123.
[4】申鼎才,郭庆平.基于Interact的分布式数据采集与分析在岩土工
程中的应用研究明.武汉理工大学学报(交通科学与工程版),
2005,29(6):974-976,992.
王志冰,李汉强.基于USB总线的数据采集系统的设计与实现叨.
武汉理工大学学报(交通科学与工程版),2005,29(5):758.761.
[6】杨义伟,蒋大明,戴胜华.驼峰信号微机监测系统的数据采集阴.武
汉理工大学学报(交通科学与工程版),2005,.29(1):154-156.
[7】杨健,张慧慧.基于DSP和ARM的网络化数据采集与信号分析终
端田.计算机工程,2006,32(8):269-271.
李尧坤,史忠科,毕业等.Matlab在基于B/S模式的决策支持系统
中的应用叨.计算机工程,2006,32(5):255-256,282.本回答被网友采纳
第2个回答  2011-02-20
根据效果