MATLAB Simulink Tutorial for Beginners

相关资料:

Matlab Simulink 官方文档: https://www.mathworks.com/help/simulink/index.html

注: 本博客是基于 Matlab 2015a 来的,所以不支持一些高版本的语法,例如后面高版本可以用双引号表示字符串,这里的2015a 只能用单引号。

Simulink Basic:

如何进入simulink 呢?

1,命令行输入:simulink,即可

2,或者点击HOME > Simulink Library 

我们会看到很多Library,如下图:

MATLAB Simulink Tutorial for Beginners

每个library 下面有具体的block,例如Simulink(主库)下面有Sources 和 Sinks 

MATLAB Simulink Tutorial for Beginners

如何理解Simlink?

它是 Simulation(仿真) + Link(连接) ,它帮助我们使用图形的方式来开发仿真分析和研究任何系统,而不是从头开始编写这些系统的代码,我们在Simulink的库找到我们需要使用的block,拖动它即可。

Project01 Sine Waves :

如何生成正弦波(sin waves),并在Simulink中显示

点击new model 新建一个模型,如下

MATLAB Simulink Tutorial for Beginners

选择 Simulink/Sources/ 中的 Sine wave ,将它拖到Model 窗口中, 

MATLAB Simulink Tutorial for Beginners

双击Sine wave 可以编辑它的配置信息,  如下

MATLAB Simulink Tutorial for Beginners

在上图,配置好信息之后,可以点击Apply应用到当前block, 当然也可以点击OK(不过,它会关闭当前窗口)

MATLAB Simulink Tutorial for Beginners

设置三个不同的Sine wave,如下:

MATLAB Simulink Tutorial for Beginners

接下来再在 Simulink/Sinks 下,拖拽Scope到Model窗口,如下:

Scope block 的作用: The Scope block displays inputs signals with respect to simulation time.

MATLAB Simulink Tutorial for Beginners

默认的Scope是只有一个输入,双击更改它为3个输入,如下:

MATLAB Simulink Tutorial for Beginners

然后,连接起来,如下:

MATLAB Simulink Tutorial for Beginners

效果如下:

MATLAB Simulink Tutorial for Beginners

然后,Ctrl + S 保存, 有两个后缀,默认是.slx 

MATLAB Simulink Tutorial for Beginners

注: slx 比 mdl 后缀的文件小一些,

点击Run按钮,运行,如下:

MATLAB Simulink Tutorial for Beginners

自动缩放,显得更好看一些,

MATLAB Simulink Tutorial for Beginners

我们可以看到,第三个正弦波(fre 为10 )不是平滑,why?

它是因为我们实际上没有捕获到整个正弦波,我们可以通过在我们的Model窗口中的 Simulation> Model Configure Parameters 的Solver 下进行配置:如下

MATLAB Simulink Tutorial for Beginners

再次 Run, 然后AutoScale,就得到如下:

MATLAB Simulink Tutorial for Beginners

将三个正弦波(sin waves)加起来

我们在Simulink/Common Used Blocks 下可以看到 Sum Block,如下:

MATLAB Simulink Tutorial for Beginners

把它拖到我们的Model窗口中,它默认是有两个输入,我们将它改为3个输入,如下:

MATLAB Simulink Tutorial for Beginners

分别连接上:如下:

MATLAB Simulink Tutorial for Beginners

然后再加入一个Sink, 依然使用Scope,并连接上,如下:

MATLAB Simulink Tutorial for Beginners

然后Ctrl + S  保存,再Run,再AutoScale,得到Scope1 的情况如下:

MATLAB Simulink Tutorial for Beginners

将Scope1 这个信号 导出到工作区

这里需要一个新的Block,如下:

MATLAB Simulink Tutorial for Beginners

连接它,如下:

MATLAB Simulink Tutorial for Beginners

此时,我们保存,Run,就可以在Workspace,中看到我们的SUM_OUT(自己命名的)了,如下:

MATLAB Simulink Tutorial for Beginners

双击它可以看到我们的信号数据:

MATLAB Simulink Tutorial for Beginners

我们也就可以使用这个数据了,例如,我们可以绘制它,

在命令行输入以下命令绘制它,如下:

MATLAB Simulink Tutorial for Beginners

得到如下figure:

MATLAB Simulink Tutorial for Beginners

这就是将Simulink的信号导出到Workspace的用法,

练习

Execise1:

using the model we deveoped so far,we would like to magnify the output signal(which represents the summation of the three sine waves) by a factor of 3 and plot the answer

使用我们目前开发的模型,我们希望将输出信号(表示三个正弦波的总和)放大3倍并绘制答案

HINT: search for a gain multiplier in the simulink library

MATLAB Simulink Tutorial for Beginners

Execise2:

如何在一个Scope 中绘制两个多个信号?

HINT: search for MUX in the simulink library

MATLAB Simulink Tutorial for Beginners

Project02 摄氏温度转华氏温度:

Implement an equation that converts celsius temperature reading to fahrenheit  

MATLAB Simulink Tutorial for Beginners

MATLAB Simulink Tutorial for Beginners

MATLAB Simulink Tutorial for Beginners

所以,我们想要的基本上是一个脚本,它接收一个输入,并将结果展示出来

新建一个脚本,我们可以在脚本中调用 Simulink中的Model, 

MATLAB Simulink Tutorial for Beginners

MATLAB Simulink Tutorial for Beginners

MATLAB Simulink Tutorial for Beginners

再进一步,可以接受用户的输入,如下:

X = input('Please input a tempature:');
sim('project02'); %  sim Simulate a Simulink model  
% 相应的结果要在 模型 那里可以看到

Project03 条件控制:

将正弦波 转变为 矩形波

要用到的是一个 Switch,它位于: Simulink > Singnal Routing下  

MATLAB Simulink Tutorial for Beginners

MATLAB Simulink Tutorial for Beginners

更复杂的条件 

if in > 0.5 : out = 2*in 

else if in < 0 : out = 4*in 

else : out = 10  

此时需要用到 If 模块 和 If Action Subsystem,它们位于 Simulink > Ports & subsystems 下:

还需要 Merge ,它位于 Simulink > Signal Routing 

MATLAB Simulink Tutorial for Beginners

3 个子系统: 

MATLAB Simulink Tutorial for Beginners

MATLAB Simulink Tutorial for Beginners

MATLAB Simulink Tutorial for Beginners

MATLAB Simulink Tutorial for Beginners