• 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,如下图:

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

    如何理解Simlink?

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

    Project01 Sine Waves :

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

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

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

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

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

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

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

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

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

    然后,连接起来,如下:

    效果如下:

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

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

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

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

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

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

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

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

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

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

    分别连接上:如下:

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

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

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

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

    连接它,如下:

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

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

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

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

    得到如下figure:

    这就是将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

    Execise2:

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

    HINT: search for MUX in the simulink library

    Project02 摄氏温度转华氏温度:

    Implement an equation that converts celsius temperature reading to fahrenheit  

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

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

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

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

    Project03 条件控制:

    将正弦波 转变为 矩形波

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

    更复杂的条件 

    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 

    3 个子系统: 

  • 相关阅读:
    CWinApp类 功能
    CreateCompatibleBitmap
    CreateCompatibleDC CreateCompatibleBitmap SelectObject详解
    Linux学习_菜鸟教程_4
    Linux学习_菜鸟教程_1
    Linux学习_菜鸟教程_2
    Linux学习_菜鸟教程_3
    MATLAB生成正弦波
    03补件处理流程
    对数据库中所有的表进行操作
  • 原文地址:https://www.cnblogs.com/zach0812/p/14318317.html
Copyright © 2020-2023  润新知