打印

MATLAB2017版-SIMULINK入门教程

[复制链接]
32709|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaoyang9992006|  楼主 | 2017-12-25 09:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新版的MATLAB跟之前的版本大为不同,界面变的更陌生了,也更人性化了,但是如果你习惯老版本的界面那么你很难知道从哪儿下手。这里给大家介绍一下MATLAB的Simulink最新版的用法
创建简单模型
  • 本教程的模型概述
  • Simulink Editor 中打开新模型
  • 打开 Simulink Library Browser
  • 浏览或搜索特定模块
  • 向模型中添加模块
  • 移动模块和调整模块大小
  • 模块连接
  • 在模块之间绘制信号线
  • 绘制带分支的信号线
  • 定义配置参数
  • 运行仿真
  • 观察仿真结果

本教程的模型概述
您可以使用 Simulink® 对系统建模,然后仿真该系统的动态行为。本教程中创建简单模型所使用的基本方法也适用于创建更复杂的模型。
要创建这个简单模型,您需要四个 Simulink 模块。模块是一种模型元素,用来定义系统的数**算并提供输入信号:
  • Sine Wave - 为模型生成输入信号。
  • Integrator - 处理输入信号。
  • Bus Creator - 将多个信号合并为一个信号。
  • Scope - 可视化和比较输入信号与输出信号。





此模型的仿真过程就是将正弦波信号与余弦信号集成,然后在 Scope 窗口中随原始信号一起显示集成结果。
在 Simulink Editor 中打开新模型
使用 Simulink Editor 构建模型。
  • 启动 MATLAB®。从 MATLAB 工具条上,点击 Simulink 按钮
    第一次打开 Simulink 时,会出现短暂延迟。


  • 点击 Blank Model 模板,然后点击 Create Model 按钮。
    Simulink Editor 随即打开并显示一个新的模块图。


  • 选择 File > Save as。在 File name 文本框中,输入您的模型的名称,例如 simple_model。点击 Save。模型使用文件扩展名 .slx 进行保存。


打开 Simulink Library Browser
从 Simulink Library Browser 中,可以搜索要在模型中使用的模块。还可以创建新的 Simulink 模型、项目或 Stateflow® 图。
  • 从 Simulink Editor 工具栏上,点击 Simulink Library 按钮


  • 将 Library Browser 设置为始终在其他桌面窗口前端。在 Library Browser 工具栏中,选择 Stay on top 按钮


浏览或搜索特定模块
要浏览模块库,请从左窗格中选择一个 MathWorks® 产品,然后选择一个功能区。要搜索所有可用的模块库,请输入搜索词。

  • 搜索 Sine Wave 模块。在浏览器工具栏的搜索框中输入 sine,然后按 Enter 键。Simulink 将在模块库中搜索名称或说明中包含 sine 的模块,然后显示这些模块。


  • 获取模块的详细信息。右键点击某个模块,然后选择 Help for the <模块名称>。Help 浏览器随即打开并显示该模块的参考页。
  • 查看模块参数。右键点击某个模块,然后选择 Block Parameters。模块参数对话框随即打开。



向模型中添加模块
通过从 Simulink Library Browser 窗口将模块拖动到 Simulink Editor,或者通过点击模型并输入搜索词,即可构建模型。
要构建简单模型,请首先从 Simulink Library Browser 向 Simulink Editor 中复制模块。
  • 在 Simulink Library Browser 的左窗格中选择 Sources 库。
  • 从右窗格中选择 Sine Wave 模块。


  • 将 Sine Wave 模块拖到 Simulink Editor 中。您的模型中将出现 Sine Wave 模块的副本,还有一个文本框用于输入 Amplitude 参数的值。在文本框中输入 2。


  • 按照下列步骤添加 Scope 模块:
    • 在模块图中点击。
    • 出现搜索图标后,键入 scope,然后通过列表从 Simulink/Sinks 库中选择 “Scope”。




  • 按照添加 Sine Wave 和 Scope 模块所用的方法之一,将下列模块添加到模型中。

    模块

    Simulink/Continuous
    Integrator

    Simulink/Signal Routing
    Bus Creator


    现在您的模型应该具有简单模型需要的模块了。




移动模块和调整模块大小
在连接模型中的模块之前,请将模块输入和输出合理排列,以使信号连接尽可能直观。
  • 将 Scope 模块移到 Bus Creator 模块输出之后。您可以采用下列任一方法:
    • 点击并拖动模块。
    • 选择模块,然后按键盘上的箭头键。


  • 移动模块,直到您的模型看起来与下图类似。




模块连接
大多数模块的一侧或两侧带有尖括号。这些尖括号表示输入和输出端口:
  • 指向模块内部的 > 符号表示输入端口。
  • 指向模块外部的 > 符号表示输出端口。






用线条将模块的输出端口与输入端口连接起来。这些线条表示具有时变值的信号。
在模块之间绘制信号线
通过在输出端口和输入端口之间绘制线条来连接模块。
  • 将光标放在 Sine Wave 模块右侧的输出端口上。
    指针变为一个十字 (+)。
  • 点击并拖动鼠标,从该输出端口绘制一条线,连接到 Bus Creator 模块顶部的输入端口。
    在按住鼠标按钮时,连接线显示为红色虚线箭头。



  • 当指针位于输出端口上时,松开鼠标按钮。
    Simulink 用线条连接模块,并用箭头表示信号流的方向。



  • 使用 Ctrl 键快捷方式将 Integrator block 的输出端口连接到 Bus Creator 模块上的底部输入端口。
    • 选择 Integrator 模块。
    • 按住 Ctrl 键。
    • 点击 Bus Creator 模块。



    Integrator 模块通过一条信号线连接到 Bus Creator 模块。
  • 点击并将输出端口从 Bus Creator 模块拖动到 Scope block。




绘制带分支的信号线
您的简单模型已完成大部分。要完成模型,还需要将 Sine Wave 模块连接到 Integrator 模块。此连接不同于其他连接,其他连接都是从输出端口连接到输入端口。
  • 将光标放在分支线的起始位置。在此示例中,将光标放在 Sine Wave 和 Bus Creator 模块之间的信号线上。
  • 点击鼠标右键并从该线条向外拖动光标,以绘制一条虚线段。


  • 继续将光标拖动到 Integrator 模块的输入端口,然后松开鼠标按钮。
    新线条称为支线,它携带的信号与从 Sine Wave 模块传递给 Bus Creator 模块的信号相同。
  • 拖动线段,将其拉直并与模块对齐。现在模型已经完成。




定义配置参数
对模型的行为进行仿真之前,您可以修改配置参数的默认值。配置参数包括数值解算器的类型、开始时间、停止时间以及最大步长大小。
  • 从 Simulink Editor 菜单上,选择 Simulation > Model Configuration Parameters。Configuration Parameters 对话框随即打开并显示 Solver 窗格。
    提示
    您也可以通过点击 Simulink Editor 工具栏上的参数按钮 来打开 Model Configuration Parameters 对话框。

  • 在 Stop time 字段中,输入 20。如果 Solver 参数设置为 “auto”,Simulink 将为您的模型仿真确定最佳数值解算器。
  • 选择 Additional options。在 Max step size 字段中,输入 0.2。


  • 点击 Apply 或 OK。



运行仿真
定义配置参数后,即可进行模型仿真。
  • 从 Simulink Editor 菜单栏中,选择 Simulation > Run。
    仿真开始运行,然后在到达 Model Configuration Parameters 对话框所指定的停止时间时停止运行。
    提示
    也可以通过点击 Simulink Editor 工具栏或 Scope 窗口工具栏上的 Run 仿真按钮 和 Pause 仿真按钮 来控制仿真。





观察仿真结果
仿真模型后,可以在 Scope 窗口中查看仿真结果。
  • 双击 Scope 模块。
    Scope 窗口随即打开,并显示仿真结果。图中显示正弦波信号以及生成的余弦波信号。


  • 在 Scope 窗口工具栏中,点击 Style 按钮。


    Style 对话框随即打开,并提供了显示选项。


  • 更改显示外观。例如,为 Figure color 和 Axes color 背景(带颜料桶的图标)选择白色。
  • 为 Axes color 刻度、标签和网格颜色选择黑色(带画笔的图标)。
  • 将 Sine Wave 的信号线颜色更改为蓝色,将 Integrator 的信号线颜色更改为红色。要应用所做更改,请点击 OK 或 Apply。





相关帖子

沙发
gaoyang9992006|  楼主 | 2017-12-25 09:17 | 只看该作者
为防止图片挂掉,这里提供转换为PDF的版本
simulink 创建简单的模型.pdf (3.79 MB)


使用特权

评论回复
板凳
gaoyang9992006|  楼主 | 2017-12-25 09:20 | 只看该作者
启动 Simulink 软件
要构建模型,可以使用 Simulink® Editor 和 Library Browser。
启动 MATLAB 软件
启动 Simulink 之前,请先启动 MATLAB®。请参阅启动和关闭 (MATLAB)。
配置 MATLAB 以启动 Simulink
您在 MATLAB 会话中打开第一个模型时需要的时间比打开后续模型长,因为默认情况下,MATLAB 会在打开第一个模型时启动 Simulink。这种即时启动 Simulink 的方法可以缩短 MATLAB 启动时间,避免不必要的系统内存占用。
要快速打开第一个模型,您可以配置 MATLAB,在它启动时同时启动 Simulink。要启动 Simulink 而不打开模型或 Library Browser,请使用 start_simulink
根据 MATLAB 的启动方式,恰当使用此命令:
  • 在 MATLAB startup.m 文件中


  • 在操作系统命令行中,使用 matlab 命令和 -r 开关


例如,要在运行 Microsoft® Windows® 操作系统的计算机上启动 MATLAB 时启动 Simulink,请创建具有以下目标的桌面快捷方式:
matlabroot\bin\win64\matlab.exe -r start_simulink
在 Macintosh 和 Linux® 计算机上,可在启动 MATLAB 时使用以下命令启动 Simulink 软件:
matlab -r start_simulink
打开 Simulink Editor
要打开 Simulink Editor,您可以:
  • 创建一个模型。在 MATLAB 的 Home 选项卡上,点击 Simulink 并选择一个模型模板。
    或者,如果您已经打开了 Library Browser,请点击 New Model 按钮 。有关创建模型的其他方法,请参阅创建模型
  • 打开一个现有模型。要打开最近使用的模型,请在 MATLAB Home 选项卡上点击 Simulink。
    或者,如果您知道要打开的模型的名称,可在 MATLAB 命令提示符下输入名称,例如 vdp。有关打开模型的其他方法,请参阅打开模型


提示
Simulink Editor 会在 MATLAB 桌面的前端打开。要将 MATLAB 桌面移动到前端,请在 Simulink Editor 中选择 View > MATLAB Desktop。

打开 Library Browser
通过以下方式之一从 MATLAB 中打开 Simulink Library Browser:
  • 在主页选项卡上,点击 Simulink 并选择一个模型模板。在新模型中,点击 Library Browser 按钮
  • 在命令提示符下,输入 slLibraryBrowser。


Library Browser 随即打开,并显示您系统中的 Simulink 模块库的树视图。当您点击树视图中的库时,右侧窗格将显示库的内容。


使用特权

评论回复
地板
gaoyang9992006|  楼主 | 2017-12-25 09:22 | 只看该作者
本帖最后由 gaoyang9992006 于 2017-12-25 09:23 编辑

在 Simulink Editor 中构建和编辑模型
  • 启动 Simulink 并创建一个新模型
  • 向模型中添加模块
  • 对齐和连接模块
  • 设置模块参数
  • 添加更多模块
  • 建立分支连接
  • 组织模型
  • 对模型进行仿真并查看结果
  • 修改模型

本示例介绍创建模型、向模型中添加模块、连接模块以及仿真模型的基础知识。您还将学习如何使用子系统组织模型、为模型的组件命名以及修改模型。
启动 Simulink 并创建一个新模型
  • 在 MATLAB® 主页选项卡中,点击 Simulink。
  • 在 Simulink® Start Page 上,点击 Blank Model 模板。
    将在 Simulink Editor 中打开一个基于 Blank Model 模板的新模型。
  • 打开 Library Browser,以访问创建模型需要的模块。在 Simulink Editor 中,点击 Library Browser 按钮



向模型中添加模块
一个模型至少要接收一个输入信号,对该信号进行处理,然后输出结果。在 Library Browser 中,Sources 库包含代表输入信号的模块。Sinks 库包含用于捕获和显示输出的模块。其他库包含可用于各种用途(如数**算)的模块。
在此基本模型中,输入信号为正弦波,执行的操作为增益运算(通过乘法增加信号值),结果输出到一个 Scope 窗口。尝试使用不同的方法来浏览库,并向您的模型中添加模块。

  • 打开 Sources 库。在 Library Browser 的树视图中,点击 Sources 库。
  • 在右窗格中,将光标悬停在 Sine Wave 模块上,以查看描述其用途的工具提示。
  • 使用上下文菜单在模型中添加一个模块。右键点击该模块并选择 Add block to model untitled。(要了解该模块的详细信息,请从上下文菜单中选择 Help。)
  • 通过拖放操作在模型中添加一个模块。在库树视图中,点击 Math Operations。在 Math Operations 库中,找到 Gain 模块,然后将其拖到模型中 Sine Wave 模块的右侧。
  • 在库树视图中,点击 Simulink,查看以图标形式显示在右窗格中的子库。此视图是导航库结构的另一种方法。双击 Sinks 库图标。
  • 在 Sinks 库中,找到 Scope 模块,然后使用上下文菜单或通过拖放操作将其添加到模型中。
    现在,您的模型如下图所示。




对齐和连接模块
可将模块连接起来,在模型元素之间建立能够使模型正常工作所需要的关系。当您根据模块之间的交互方式对齐模块后,模型将更加一目了然。快捷方式可以帮助您对齐和连接模块。

  • 拖动 Gain 模块,使其与 Sine Wave 模块对齐。当两个模块水平对齐时,将出现一条对齐参考线。释放模块,此时将出现一个蓝色箭头,作为建议连接线的预览。
  • 要接受该连接线,请点击箭头的末端。此时参考线将变成一条实线。
  • 采用同样的方法,将 Scope 模块与 Gain 模块对齐并连接起来。
    提示
    可以使用 Diagram > Arrange 菜单查看其他对齐方式选项。



设置模块参数
您可以设置大多数模块上的参数。参数可以帮助您指定模块如何在模型中工作。您可以使用默认值,也可以根据需要设置值。可以使用 Property Inspector 设置参数。也可以双击大多数模块,使用模块对话框来设置参数。要了解何时使用每一种方式,请参阅设置属性和参数。
在模型中,您可以在 Sine Wave 模块中设置幅值,在 Gain 模块中设置增益值。

  • 显示 Property Inspector。选择 View > Property Inspector。
  • 选择 Sine Wave 模块。
  • 在 Property Inspector 中,将 Amplitude 参数设置为 2。
  • 选择 Gain 模块并将 Gain 参数设置为 3。该值将显示在模块上。



添加更多模块
假设您要再执行一个增益运算,但这次针对的是 Sine Wave 模块的输出绝对值。为了实现此目的,需要添加一些模块,请尝试通过不同的方式找到库中的模块并添加到模型中。

  • 如果知道要添加的模块的名称,可以使用快捷方式。点击模型中要添加模块的位置,然后键入模块名称(在本例中为 Gain)。此时将显示一个可能的模块列表。
  • 点击模块名称,或者在突出显示模块名称后按 Enter。如果它不是列表中的第一个模块,您可以使用箭头键突出显示模块名称。使用此方法可以在出现蓝色放大镜的任何位置添加模块,例如在您绘制信号线时。
  • 许多模块会显示要求您为某个模块参数输入值的提示。Gain 模块会提示您输入 Gain 值。键入 3 并按 Enter。
    每增加一个模块实例,名称中的数字就会增加 1,例如 Gain1、Gain2 等。
  • 在模型中添加一个 Abs 模块。假定您不知道模块在哪个库中,也不知道模块的完整名称。这种情况下,可以使用 Library Browser 中的搜索框进行搜索。在搜索框中输入 abs 并按 Enter。当您找到 Abs 模块后,将其添加到 Gain1 模块的左侧。
  • 添加另一个 Scope 模块。您可以右键点击并拖动现有的 Scope 模块为其创建一个副本,或使用 Edit > Copy 和Edit > Paste。
    下图显示了您的模型的当前状态。




    注意
    当您按照数字顺序为模型中的模块命名时(例如 Gain1、Gain2 等),复制和粘贴操作将按照 ASCII 字符的标准排序约定生成模块名称。这种排序方法可能会导致模块名称中出现一串难以理解的数字。如果编号方案对您很重要,请为模块编号,使复制和粘贴操作生成的模块名称遵循常见的阅读顺序。为此,请在模块名称中使用前导零,例如 Gain001、Gain002 等。



建立分支连接
第二个增益运算的输入是正弦波的绝对值。要使用一个 Sine Wave 模块作为两个增益运算的输入,需要从 Sine Wave 模块输出信号上创建一条分支。

  • 对于模型中的第一组模块,您使用了水平对齐参考线帮助您对齐和连接模块。您还可以使用参考线垂直对齐模块。将 Scope1 模块拖动到 Scope 模块下面并与之对齐。当垂直对齐参考线显示两个模块已对齐时,释放模块。

  • 按下图所示对齐并连接 Abs 和 Gain1 模块。
  • 从 Sine Wave 模块的输出端口创建一条连接到 Abs 模块的分支线。当光标悬停在 Sine Wave 模块的输出信号线上时,按住 Ctrl 键并向下拖动。拖动分支线,直到末端靠近 Abs 模块为止。
  • 向 Abs 模块拖动,直到分支线连接到该模块。根据需要移动顶点,以拉直该线。(顶点上出现一个圆圈。)



您可以尝试用其他方法来连接模块:
  • 拖动鼠标,从一个模块的输出向另一个模块的输入绘制一条连接。当您的模块已对齐(即不显示参考线)时,可以使用此方法。
  • 选择第一个模块,然后按住 Ctrl 键并点击要连接的模块。当您不希望模块对齐时,可以使用此方法。连接线根据需要拐弯以建立连接,如下图所示。
    注意
    您可以选择多个模块,将它们连接到一个具有多个输入端口的模块(例如,总线)。

    要从线段逼近对角线,请按住 Shift 键并拖动顶点。







提示
要改善信号线的形状,请选择信号线,然后从省略号菜单中选择 Autoroute Line。如果模型元素之间存在更好的路线,则会重新绘制信号线。


组织模型
您可以将模块组合成子系统,并为模块、子系统和信号添加标签。有关子系统的详细信息,请参阅创建子系统。

  • 拖动鼠标,在 Abs 和 Gain1 模块周围绘制一个选择框。
  • 将光标移动到选择框右下角出现的省略号上。从工具栏中选择 Create Subsystem。




    模型中将出现一个子系统模块,代替 Abs 和 Gain1 模块。要调整子系统模块的大小,使其最适合您的模型,请拖动模块句柄。
  • 为子系统指定有意义的名称。双击模块名称并键入 Absolute Value。
  • 双击 Absolute Value 子系统将其打开。

    提示
    要使用 Explorer Bar 来导航模型层次结构,请右键点击模块并选择 Open in New Tab。


    该子系统包含您选择作为子系统基础的 Abs 和 Gain1 模块。它们依次连接到两个新模块:In1(Inport 模块)和 Out1(Outport 模块)。Inport 和 Outport 模块对应于子系统的输入端口和输出端口。
  • 点击 Simulink Editor 中的 Up to Parent 按钮 返回到模型顶层。
  • 您可以为任何信号命名。双击信号并键入名称即可。例如,双击来自 Gain 模块的信号,然后键入 My Signal。双击信号线而不是画布的空白区域,否则将创建一个单独的文本元素(注释)。有关处理信号名称的其他方法,请参阅信号名称和标签操作。
    下图显示了您创建子系统、命名子系统并命名信号之后的模型。



提示
要查看其他调整大小和对齐选项,请使用 Diagram > Arrange 菜单。


对模型进行仿真并查看结果
  • 您可以使用 Simulation > Run 命令 (Ctrl+T) 或 Run 按钮 对模型进行仿真。您可以使用自己偏好的方法对模型进行仿真。
    在本示例中,仿真运行 10 秒,此为默认设置。
  • 双击两个 Scope 模块将其打开,然后查看结果。在每个 Scope 中,点击 Autoscale 按钮 以查看完整信号。
    下图显示了两个结果。在第二个图中,不出所料,正弦波的绝对值始终为正。



修改模型
您可以在现有信号上添加模块、从模型中移除模块以及重新绘制连接线。要修改此模型,请为模型中两个分支的输入添加一个偏置。再将其中一个 Scope 替换为另外一种信宿。
对于某些模块,从其他模块上连接一条线会在该模块上添加一个输入端口或输出端口。例如,当您为子系统添加连接线时,子系统上会出现一个端口。产生端口的其他模块包括 Bus Creator、Scope 以及 Add、Sum 和 Product 模块。有关详细信息,请参阅Automatic Port Creation: Add inports and outports to blocks when routing signals​。

  • 在模型中添加一个 Bias 模块,并将 Bias 参数设置为 2。
  • 将该模块拖动到 Sine Wave 模块后面、分支线前面的信号线上。如果您需要为该模块腾出空间,请将 Sine Wave 模块向左拖动,或者拖动分支线的末端,将分支线向右移动。
    当您将模块拖动到信号线上时,模块的两侧将与信号线连接起来。当您对位置感到满意时,释放模块。
  • 移除 Scope 模块。如果要断开 Scope 模块与模型的连接,但不想将其删除,请按住 Shift 键并拖动该模块。使用 Edit 菜单命令或键盘按键剪切或删除此模块。断开的连接线显示为红色点线。
    提示
    当您删除具有一个输入端口和一个输出端口的模块时,断开的连接线之间会出现提示。点击该提示可将信号连接起来。
  • 向模型中添加一个 To Workspace 模块,并将其放在断开的连接线的末端。To Workspace 模块将结果输出给 MATLAB 工作区中的一个变量。
  • 再向子系统中添加一个输入。向模型中添加一个 Sine Wave 模块,并将幅值设置为 5。将其放在子系统模块的左侧。
  • 拖动鼠标从新的 Sine Wave 模块向子系统的左侧绘制一条线。模块上将出现一个新端口 In2。
  • 再向子系统中添加一个输出。向模型中添加一个 To Workspace 模块,并将其放在子系统的右侧。拖动鼠标从输入端口向子系统的右侧绘制一条线。模块上将出现一个新端口 Out2。
  • 打开子系统并将 Out1 模块重命名为 Scope。将 Out2 模块重命名为 Workspace。向模型添加一个 Manual Switch 模块。调整大小并按下图所示进行连接。在 Gain 模块后绘制分支信号,以将输出指向 To Workspace 模块。


    然后,返回到模型的顶层。下图显示了当前模型。
  • 对模型进行仿真。

    • simout 和 simout1 变量出现在 MATLAB 工作区中。您可以双击每个变量以查看结果。
    • 如果要使用第二条正弦波作为子系统算法的输入,请打开子系统并双击开关。输入更改为 In2。再次进行仿真。




    提示
    要在使用和不使用 Bias 模块的模型仿真效果之间切换,请右键点击 Bias 模块,然后选择 Comment Through。此模块仍然在模型中,但不影响运算。右键点击 Bias 模块,然后选择 Uncomment 即可启用此模块。Comment Out 命令会注释掉模块的输出信号,因此不传递信号数据。请使用上述每个命令进行尝试,以便更好地理解它们的效果。




使用特权

评论回复
评论
gaoyang9992006 2019-2-14 00:48 回复TA
@哒小明 :在沙发上放着,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
哒小明 2019-2-13 19:13 回复TA
楼主,能不能把这个弄成PDF啊?看不见图片,写的贼好 
5
gaoyang9992006|  楼主 | 2017-12-25 09:24 | 只看该作者
本帖最后由 gaoyang9992006 于 2017-12-25 09:27 编辑

创建模型和现有打开模型
  • 创建模型
  • 使用自定义设置创建新模型
  • 打开模型
  • 在打开模型时加载变量
  • 打开使用不同字符编码的模型
  • Simulink 模型文件类型

创建模型
  • 在 MATLAB® 主页选项卡中,点击 Simulink。
  • 在 Simulink® 首页,选择一个模板或搜索模板。
    模型模板是应用常见建模方法的起点。它们可以帮助您重用设置和模块配置,并与他人分享知识。使用模型和工程模板来应用最佳实践,并充分利用以前的建模解决方案。


    点击模板标题以阅读其说明。


    要定位不在 MATLAB 搜索路径中的模板,请点击 Open。模型模板的扩展名为 .sltx。
  • 选择您需要的模板后,点击 Create Model。
    要使用模板而不阅读说明,请点击模板图像。或者按 Ctrl+N 以使用默认模板。要设置默认模板,请参阅使用自定义设置创建新模型
    此时将在 Simulink Editor 中打开一个使用模板设置和内容的新模型。有关后续步骤,请参阅在 Simulink Editor 中构建和编辑模型


如果内置模板不能满足您的需要,请尝试在 Examples 选项卡上搜索,也可以自行创建模板。请参阅Create a Template from a Model。在 Examples 选项卡上,输入搜索词以查找感兴趣的示例标题和描述,或者点击产品名称旁边的 View All,以打开网络上的更多示例。


使用自定义设置创建新模型
您可以为所有新模型指定一个模型模板。
  • 使用所需的配置设置和模块创建一个模型,然后将该模型导出到模板中。请参阅Create a Template from a Model
  • 要在每个新模型中重用这些设置,请使用 Simulink Start Page 或 Simulink.defaultModelTemplate 函数将新模板设置为默认的模型模板。
    在 Start Page 上,点击模板标题以展开其说明,然后点击 Create Model 旁边的向下箭头并选择 Set As Default。



设置默认的模型模板后,每个新模型都将使用该模板,例如,当您按 Ctrl+N、使用新模型按钮或使用 new_system 时,都会使用该模板。在 Simulink Editor 中,当您选择 File > New > MyDefaultTemplateName 时,默认模板名称位于列表的顶部。
默认模板在 Start Page 上显示一个标记。



打开模型
打开模型时,模型将加载到内存中并显示在 Simulink Editor 中。使用以下方式之一:
  • 在 MATLAB 主页选项卡中,点击 Simulink。在 Simulink Start Page 上,从列表中选择一个最近使用的模型或工程,或点击 Open。
  • 在 Simulink Editor 中,选择 File > Open Recent,然后选择一个最近使用过的模型。
  • 在 MATLAB 命令提示符下,输入不带文件扩展名的模型名称,例如 vdp。该模型必须在当前文件夹或 MATLAB 搜索路径中。
  • 在 Simulink Library Browser 中,点击 Open model or library 按钮
  • 使用“当前文件夹”浏览器或您操作系统上的文件浏览器打开模型。



提示
设置收藏夹可从 Start Page 轻松回到您喜欢的模型和工程。

在 Simulink Start Page 上最近使用的文件列表中,您可以将文件添加到收藏夹中。然后,Favorites 列表将显示在 Start Page 上最近使用的文件上方,以便您轻松重新打开自己喜欢的模型和工程。



要清除 Start Page 上最近使用的文件列表,请在 MATLAB 中输入:
slhistory.clear

注意
要在旧版本的 Simulink 中打开在新版本中创建的模型,首先要将模型导出到旧版本。请参阅将模型导出到以前的 Simulink 版本

在打开模型时加载变量
在构建模型的过程中,有时您需要为模型定义变量。例如,假设您有一个模型,其中包含一个 Gain 模块。您可以指定变量 K 作为增益,而不是在模块上设置该值。使用这种方法时,必须为要仿真的模型定义变量 K。
当您打开模型时,可以使用模型回调来加载变量。

  • 在使用 Gain 模块的模型中,将该模块的 Gain 值设置为 K。
  • 在 MATLAB 脚本中定义变量。在 MATLAB 中,选择新建 > 脚本。在脚本中输入您的变量定义:
    K=27
  • 将脚本另存为 loadvar.m。
  • 在模型中,打开 Property Inspector。选择 View > Property Inspector。如果未在模型顶层选择任何内容,可使用 Property Inspector 设置模型属性。否则,请使用 File > Model Properties。
  • 在模型属性的 Callbacks 部分,选择 PreLoadFcn 作为您要定义的回调。在窗格中输入 loadvar。
  • 保存模型。



下次您打开该模型时,PreloadFcn 回调会将变量加载到 MATLAB 工作区中。
有关回调的信息,请参阅针对自定义模型行为的回调。要以编程方式定义加载变量的回调,请参阅打开模型时通过编程方式加载变量
打开使用不同字符编码的模型
如果您在使用不同编码的 MATLAB 会话中打开使用特定字符集编码的 MDL 文件,将会出现警告。例如,假设您在为 Shift_JIS 配置的 MATLAB 会话中创建一个 MDL 文件,然后在为 US_ASCII 配置的会话中打开它,此时就会出现警告。警告消息显示当前会话的编码以及创建模型时所使用的编码。
SLX 文件不会发出警告,因为它们可以存储任何编码的字符。
如果您遇到任何字符损坏的问题(例如,使用与模型关联的 MATLAB 文件时),请尝试使用 slCharacterEncoding 函数更改当前 MATLAB 会话的字符编码,使其与模型的字符编码相匹配。
Simulink 可以检查模型中是否包含当前区域设置不支持的字符。有关详细信息,请参阅Check model for foreign characters保存具有不同字符编码的模型
Simulink 模型文件类型
默认情况下,您创建的新模型带有 .slx 扩展名。在 R2012b 之前创建的模型带有 .mdl 扩展名。可编辑的模型可以带有 .slx 或 .mdl 扩展名,具体取决于模型的创建时间以及是否进行过转换。请参阅将模型保存为 SLX 文件格式
.slxp 和 .mdlp 扩展名表示受保护的模型,不能打开和编辑。请参阅受保护模型。模型模板的扩展名为 .sltx。
Simulink 库还使用 .slx 扩展名,但您不能对这些模型进行仿真。要了解详细信息,请参阅创建自定义库
另请参阅
Simulink.createFromTemplate | Simulink.defaultModelTemplate | Simulink.findTemplates | open_system | simulink

使用特权

评论回复
6
gaoyang9992006|  楼主 | 2017-12-25 09:26 | 只看该作者
保存模型
  • 如何判断模型需要保存
  • 保存模型
  • 保存模型时会执行哪些操作?
  • 将模型保存为 SLX 文件格式
  • 保存具有不同字符编码的模型
  • 将模型导出到以前的 Simulink 版本
  • 从一个旧版本 Simulink 保存到另一个旧版本

如何判断模型需要保存
要判断模型是否需要保存,请查看 Simulink® Editor 的标题栏。如果模型需要保存,标题栏中的模型名称旁边会显示一个星号(称为修改标志:*)。


要通过编程方式确定模型是否需要保存,请使用模型参数 Dirty。例如:
if strcmp(get_param(gcs,'Dirty'),'on')        save_system;end
保存模型
第一次保存模型时,请在 Simulink Editor 中选择 File > Save。为模型文件提供位置和名称。有关名称的要求,请参阅模型名称
要保存之前保存过的模型,请执行以下操作:
  • 要替代文件内容,请在 Simulink Editor 中选择 File > Save。
  • 要使用新名称或在新位置保存模型,或者要从 MDL 更改为 SLX 格式,请在 Simulink Editor 中选择 File > Save As。
    注意
    有关 SLX 格式的详细信息,请参阅将模型升级到 SLX
  • 要将模型保存为与早期版本兼容的格式,请选择 File > Export Model to > Previous Version。请参阅将模型导出到以前的 Simulink 版本


模型名称
模型文件名必须以字母开头,可以包含字母、数字和下划线。文件名不能为:
  • 语言关键字(例如 if、for、end)
  • 保留名称:'simulink'、'sl'、'sf'
  • MATLAB® 软件命令



模型名称中的字符总数不能超过某个最大值,通常为 63 个字符。要确定您的系统的最大值是否大于 63 个字符,请使用 MATLAB 中的 namelengthmax 命令。
要了解当您指定模型名称时 MATLAB 如何确定调用哪个函数,请参阅函数优先顺序 (MATLAB)。
保存模型时会执行哪些操作?
Simulink 将模型(模块图)和模块属性保存在模型文件中。
如果您指定了任何要在保存前或保存后执行的函数,它们将按以下顺序执行:
  • 先执行所有模块的 PreSaveFcn 回调例程,然后执行模型的 PreSaveFcn 回调例程。
  • Simulink 写入模型文件。
  • 执行所有模块 PostSaveFcn 回调例程,然后执行模型 PostSaveFcn。


在保存过程中,Simulink 会维护一个临时备份副本(名为 modelname.bak),用于在发生错误时还原。如果在保存时,或者在保存过程中执行任何回调时发生错误,Simulink 会:
  • 还原原始文件
  • 将发生错误之前保存的任何内容写入到名为 modelname.err 的文件中
  • 发出一条错误消息



保存从 SLX 文件中加载的模型时,原始 SLX 文件必须依然存在。Simulink 对 SLX 文件执行增量加载和保存,因此,如果保存时原始文件不存在,Simulink 将发出警告,告诉您它无法完全重新构造该文件。
将模型保存为 SLX 文件格式将新模型另存为 SLX
默认情况下,Simulink 将新模型和库保存为 SLX 格式,文件扩展名为 .slx。SLX 是符合开放打包约定 (OPC) 互操作性标准的压缩包。SLX 使用 Unicode® UTF-8 以 XML 和其他国际格式存储模型信息。将 Simulink 模型保存为 SLX 格式:
  • 通常可以减小文件大小(与 MDL 格式相比)。MDL 与 SLX 之间减小的文件大小因模型而异。
  • 解决以前的版本中加载和保存包含韩语和中文字符的 MDL 文件时出现的一些问题。
  • 启用增量加载和保存。Simulink 通过只加载需要的模型部分并且只保存修改的模型部分,来优化性能和内存使用。



您可以使用 Simulink 预设File format for new models and libraries,指定用来保存新模型和库的文件格式。
将模型升级到 SLX
如果您将 MDL 文件升级到 SLX 文件格式,文件中包含的信息与 MDL 文件相同,并且您始终拥有一个备份文件。当前存在的适用于模型的所有功能和 API,例如 get_param 和 set_param 命令,在使用 SLX 文件格式时依然可用。如果您将 MDL 文件升级到 SLX 文件格式而没有更改模型名称或位置,Simulink 将通过重命名 MDL(如果可写)来创建备份文件。
如果您使用 File > Save 来保存现有 MDL 文件,Simulink 将保留文件的当前格式,并以 MDL 格式保存您的模型。
要将现有 MDL 文件保存为 SLX 文件格式,请执行以下操作:
  • 选择 File > Save as。
  • 保留 Save as type 的默认值 SLX,然后点击 Save。
    Simulink 将以 SLX 格式保存您的模型,并通过将 MDL(如果可写)重命名为 mymodel.mdl.releasename(例如 mymodel.mdl.R2010b)来创建备份文件。



此外,还可以使用 save_system
save_system mymodel mymodel.slx
此命令将创建 mymodel.slx,如果现有文件 mymodel.mdl 可写,则将其重命名为 mymodel.mdl.releasename。
SLX 文件的优先级高于 MDL 文件,因此,如果存在两个同名文件,而您没有指定文件扩展名,则将加载 SLX 文件。
Simulink Projects 可以帮助您将文件迁移到 SLX。要查看示例,请参阅Upgrade Model Files to SLX and Preserve Revision History
小心
如果您使用第三方源代码管理工具,请务必将模型文件扩展名 .slx 注册为二进制文件格式。否则,当您提交 SLX 文件时,这些第三方工具可能会导致文件损坏。

[td]
使用 SLX 时可能存在兼容性问题的操作
发生的情况
操作
硬编码引用带有 .mdl 扩展名的文件名。
脚本找不到或无法处理用新文件扩展名 .slx 保存的模型。
确保您的代码兼容 .mdl 和 .slx 扩展名。
使用函数(如 which 和 what),而不是文件名。
第三方源代码管理工具默认情况下采用文本格式。
提交二进制格式的 SLX 文件可能导致文件被第三方工具所破坏。
使用第三方源代码管理工具将 .slx 注册为二进制文件格式。建议对 .mdl 文件也如此处理。请参阅Register Model Files with Source Control Tools
更改字符编码。
某些情形已得到改进,例如,SLX 解决了以前的版本中加载和保存包含韩语和中文字符的 MDL 文件时出现的一些问题。但是,在不同的区域设置之间共享模型依然存在问题。
请参阅 SLX 文件和字符编码

MDL 和 SLX 文件内容的格式可能随时更改。要处理模型数据,请使用文档中介绍的 API(例如 get_paramfind_systemSimulink.MDLInfo)。
保存具有不同字符编码的模型
  • MDL 文件和字符编码
  • SLX 文件和字符编码

MDL 文件和字符编码
当您保存模型时,将使用当前字符编码方式对模型文件中存储的文本进行编码。对于 MDL 文件,如果您原来保存模型时使用的编码方式与当前编码方式不同,可能会导致模型损坏。
如果您更改字符编码方式,可能会引入当前编码方式无法表示的字符。如果是这种情况,模型将另存为 model.mdl.err(其中 model 是模型名称),而保留原始模型文件不变。Simulink 还会显示一条错误消息,指出无法表示的第一个字符所在的行号和列号。
要修复此错误,请执行以下操作之一:
  • 以 SLX 格式保存模型(请参阅将模型保存为 SLX 文件格式)。
  • 找到这些字符并逐个删除。

    • 使用文本编辑器,在 .err 文件中找到保存时显示的错误消息中指示的位置处的字符。
    • 在打开的模型中找到并删除对应的字符,然后重新保存模型。
    • 重复此过程,直到您能够成功保存模型,而不发生任何错误为止。






模型的原始编码方式也许能够显示您在当前会话中所做的所有文本更改,但有可能不正确。例如,假设您在会话中打开一个模型,模型的原始编码方式为 A,会话的当前编码方式为 B。再假设您编辑了该模型,引入一个在 A 和 B 中具有不同编码的字符,然后保存模型。进一步假设字符 x 在 B 中的编码与字符 y 在 A 中的编码相同,假如您在 B 有效时在模型中插入了字符 x,保存模型,然后使用 A 重新打开模型,则 Simulink 软件会将字符 x 显示为 y。为了提醒您发生此类损坏的可能性,每当您保存模型时,如果模型的当前编码方式与原始编码方式不同,但原始编码方式可以对保存到模型文件中的所有字符进行编码(但可能不正确)时,就会显示警告消息。
SLX 文件和字符编码
将 Simulink 模型保存为 SLX 格式通常可以减小文件大小,并解决在以前的版本中加载和保存包含韩语和中文字符的 MDL 文件时出现的一些问题。
选择模型文件格式时的注意事项:
  • 如果您要加载并保存包含韩语或中文字符的模型,请使用 SLX
  • 如果您希望通过压缩模型文件而获益,请使用 SLX
  • 不管您使用 SLX 还是 MDL,如果模型中包含当前区域设置不支持的字符,Simulink 都能检测出来并发出警告。对于 SLX,您可以使用 Model Advisor 来帮助您,请参阅Check model for foreign characters



将模型导出到以前的 Simulink 版本
您可以将使用最新版本的 Simulink 软件创建的模型导出(保存)为旧版本软件使用的格式。例如,要与只能访问旧版本 Simulink 产品的同事共享模型时。
要将模型导出为旧版本格式,请执行以下操作:
  • 在 Simulink Editor 中,选择 File > Save。此操作用最新版本的 Simulink 保存一个副本。这一步可以避免兼容性问题。
  • 在 Simulink Editor 中,选择 File > Export Model to > Previous Version。
    此时将显示 Export to Previous Version 对话框。
  • 在此对话框中,从 Save as type 列表中选择要将模型导出到的旧版本。此列表支持过去 7 年的版本。
  • 点击 Save 按钮。


当您将模型导出为旧版本格式时,不管模型中是否包含在该版本之后引入的模块和功能,都会以旧版本格式保存模型。如果模型中包含的模块或使用的功能是在旧版本之后引入的,则当您在旧版本 Simulink 软件中运行模型时,可能无法得到正确的结果。而且,Simulink 会将旧版本之后的模块转换为空的黄色封装 Subsystem 模块。例如,如果您使用 save_system 将模型导出到版本 R2007b,而模型中包含 Polynomial 模块,则 Simulink 会将 Polynomial 模块转换为空的黄色封装 Subsystem 模块。Simulink 还会从模型中删除任何不支持的功能。请参阅 save_system
从一个旧版本 Simulink 保存到另一个旧版本
您可以打开在旧版本 Simulink 中创建的模型,并将其导出到另一个旧版本。如果您需要将模型从一个旧版本保存到另一个旧版本,为了防止出现兼容性问题,请按以下步骤操作。
  • 使用最新版本的 Simulink 打开用旧版本创建的模型。
  • 在您进行任何更改之前,通过选择 File > Save,用最新版本保存模型。
    用最新版本保存模型之后,您可以根据需要进行更改并重新保存。
  • 通过选择 File > Export Model to > Previous Version,将模型保存为旧版本 Simulink 格式。
  • 启动旧版本 Simulink,并使用它打开您导出到该版本的模型。
  • 通过选择 File > Save,将模型保存为旧版本格式。


现在即可在旧版本 Simulink 中使用该模型了,就好像它是在该版本中创建的一样。
另请参阅 Simulink 预设,它们可以帮助您处理旧版本的模型:
  • Do not load models created with a newer version of Simulink
  • Save backup when overwriting a file created in an older version of Simulink



另请参阅
save_system

使用特权

评论回复
7
lgl63167048| | 2017-12-27 09:02 | 只看该作者
好资料

使用特权

评论回复
8
CCTV12345678| | 2017-12-27 18:24 | 只看该作者
很好的新手教程

使用特权

评论回复
9
owenlsa| | 2018-1-28 17:35 | 只看该作者
谢谢楼主,最近毕设要用这个,很给力版本也很新,想请问一下出处是哪?想去原出处再看看别的资料

使用特权

评论回复
10
kmlzh3547| | 2018-5-17 17:09 | 只看该作者
好资料

使用特权

评论回复
11
tianhaigelin| | 2018-7-20 22:26 | 只看该作者
很好的教程,以后多向你学习

使用特权

评论回复
12
myccl| | 2018-9-20 14:40 | 只看该作者
很好的资料

使用特权

评论回复
13
小时代的我们| | 2018-9-23 22:45 | 只看该作者
谢谢分享,正好需要,很给力;

使用特权

评论回复
14
wjp298667| | 2018-10-13 16:23 | 只看该作者
gaoyang9992006 发表于 2017-12-25 09:17
为防止图片挂掉,这里提供转换为PDF的版本

很不错的材料,不知后面将的东西有没有也转换为pdf?

使用特权

评论回复
15
就是你啊77| | 2020-6-1 09:49 | 只看该作者
谢谢~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1961

主题

15933

帖子

208

粉丝