您的位置:首页 > 编程语言 > MATLAB

matlab-simulink一些用法(1)

2012-05-12 12:50 441 查看
这段时间一直在用matlab的simulink,因为毕设需要,在此记录一些学习心得。

首先要先了解simulink是什么,据维基百科上说:

Simulink是The MathWorks公司开发的用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具,常集成于MathWorks公司的另一产品MATLAB中与之配合使用。

Simulink提供了一个交互式的图形化环境及可定制模块库(Library),可对各种时变系统,例如通讯、控制、信号处理、视频处理和图像处理系统等进行设计、仿真、执行和测试。

就我理解,它把很多需要的系统模块化,只需要简单的连接就能完成和编程一样的效果,当然有些特殊处理还是要编程解决。

下面介绍一些小用法,很初级,以供参考(本文使用matlab2011b版本):

1.仿真时间和workspace

首先建立以下模型



一个可以产生8进制整数的随机发生器,接一个输出simout,它其实是一个输出指向workspace的模块,可以通过在workspace中观察数据,这是一个很好的办法知道自己的数据是什么或者对否。我们将仿真时间设置为10,上图红笔画出部分。

进行仿真后,我们来看看输出到底什么,在命令窗口右上角能够找到workspace。



你会发现simout和tout,tout是仿真时间。双击simout--signals--values,你会发现输出数据:



你会发现产生了11个8进制数,但是仿真时间却为10,其实simulink从0开始就会产生第一个数据,从tout中也可以看到是11个仿真时间。我们再把仿真时间设置为9.99来看一看:



很容易发现现在数据变为了10个,这里需要注意仿真开始后,实际在0单位时间时就会有第一个数据输出了。同时合理使用to workspace和from workspace能起到很好的效果。

2.仿真参数化

很多时候,我们会建立复杂的模型,这时很多数据会从头到尾都会用到,例如某些数据长度,当然可能在你模型中,到处都是数字,如果我们能够将某些数字参数化,对于自己或其他人的理解和修改控制等方面都会起到很大帮助。我们仍然以刚才模型为例,如果我们想要输出一帧一帧的数据,可以如下设置:



这里一帧的长度为10,当然这里模块很少,但是当模块很多时,这个“10”在后面某些地方也会出现,例如需要数据速率相同时或者产生其他数据拼装时,那么后面可能会出现更多的“10”或“1/10”这样的数字,对于自己理解和修改或别人理解修改都很不方便,也许时间长了回来再看某一部分都不会知道10到底是什么意思或者从何而来。

我们其实只需要将其参数化便能解决一系列麻烦的问题,我们将10改为data_length:



然后我们打开file选项:



打开file--model properties--callbacks--initfcn,将输入如下语句,记得加分号。



然后,模型中所有data_length都会被换为10,这样我们不仅可以了解参数的含义,也能够很容易修改或者控制,例如switch模块。

在此先介绍两个小用法,尽管很简单,但是却容易被忽略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: