![Matlab Simulink Tutorial](/matlab_simulink/images/matlab-simulink-mini-logo.jpg)
- MATLAB Simulink 教程
- MATLAB Simulink - 首页
- MATLAB Simulink - 简介
- MATLAB Simulink - 环境设置
- MATLAB Simulink - 启动 Simulink
- MATLAB Simulink - 模块
- MATLAB Simulink - 连线
- MATLAB Simulink - 构建和仿真模型
- MATLAB Simulink - 信号处理
- MATLAB Simulink - 向信号添加延迟
- MATLAB Simulink - 数学库
- 构建模型并应用 If-else 逻辑
- MATLAB Simulink - 逻辑门模型
- MATLAB Simulink - 正弦波
- MATLAB Simulink - 函数
- MATLAB Simulink - 创建子系统
- MATLAB Simulink - For 循环
- MATLAB Simulink - 导出数据
- MATLAB Simulink - 脚本
- 求解数学方程
- 一阶微分方程
- MATLAB Simulink 有用资源
- MATLAB Simulink 快速指南
- MATLAB Simulink - 有用资源
- MATLAB Simulink - 讨论
MATLAB Simulink 快速指南
MATLAB Simulink - 简介
Simulink 是一个用于动态和嵌入式系统的仿真和基于模型的设计环境,它与 MATLAB 集成在一起。Simulink 由计算机软件公司 MathWorks 开发。
它是一个数据流图形编程语言工具,用于建模、仿真和分析多领域动态系统。它基本上是一个图形化框图工具,具有可自定义的模块库集。
此外,它允许您将 MATLAB 算法整合到模型中,并将仿真结果导出到 MATLAB 中进行进一步分析。
Simulink 支持以下功能:系统级设计。
仿真。
自动代码生成。
嵌入式系统的测试和验证。
要开始使用 Simulink,请在命令窗口中输入 simulink,如下所示:
![Simulink Page](/matlab_simulink/images/simulink_page.jpg)
它将打开 Simulink 页面,如下所示:
![Simulink StartPage](/matlab_simulink/images/simulink_startpage.jpg)
您也可以使用 MATLAB 中的 Simulink 图标来开始使用 Simulink:
![Start Stimulink](/matlab_simulink/images/start_simulink.jpg)
启动 Simulink 后,您将导航到如下所示的启动页面
![Dsp System](/matlab_simulink/images/dsp_system.jpg)
在这里,您可以创建自己的模型,也可以使用现有的模板。
单击“空白模型”,您将获得一个 Simulink 库浏览器,可用于创建自己的模型。
空白模型的屏幕如下:
![Blankmodel](/matlab_simulink/images/blankmodel.jpg)
单击“库”,它将显示 Simulink 库,如下所示:
![Simulink Library](/matlab_simulink/images/simulink_library.jpg)
Simulink 库浏览器包含许多库。它提供常用的模块、连续模块、仪表盘模块、逻辑和位运算模块、数学运算模块等。
除此之外,您还将获得其他库列表,例如控制系统工具箱、DSP 系统工具箱等。
![Library Browser](/matlab_simulink/images/library_browser.jpg)
这是一个数学运算库列表的示例:
![Math Operations](/matlab_simulink/images/math_operations.jpg)
它具有 Abs、Add、代数约束、赋值等功能,您可以在模型中使用。
以下是逻辑和位运算的示例:
![Bit Operations](/matlab_simulink/images/bit_operations.jpg)
MATLAB Simulink - 环境设置
MATLAB Simulink 是 MATLAB 的一个产品,要使用它,我们需要下载 MATLAB。
MATLAB 的官方网站是 https://www.mathworks.com/
您的屏幕上将出现以下页面:
![Matlab AI](/matlab_simulink/images/matlab_ai.jpg)
要下载 MATLAB,请访问 https://in.mathworks.com/downloads/,如下所示。
![Mathworks](/matlab_simulink/images/mathworks.jpg)
MATLAB 不是免费下载的,您需要付费购买许可副本。稍后您可以下载它。
![Downloads](/matlab_simulink/images/downloads.jpg)
提供免费试用版,您需要为此创建相应的帐户登录。创建帐户后,他们允许您下载 MATLAB 以及 30 天试用许可证的在线版本。
![Trial Version](/matlab_simulink/images/trial_version.jpg)
完成从其网站创建登录后,下载 MATLAB 并安装到您的系统上。然后,启动 MATLAB,也可以使用它们的在线版本。
Simulink 内置于 MATLAB 中。安装 MATLAB 后,您将获得 Simulink,如下所示:
![Workspace](/matlab_simulink/images/workspace.jpg)
MATLAB Simulink - 启动 Simulink
在本节中,我们将了解如何使用 Simulink 构建模型。
这是一个 MATLAB 显示:
![Matlab](/matlab_simulink/images/matlab.jpg)
您可以通过在 MATLAB 命令窗口中使用 simulink 命令来启动 Simulink,如下所示:
![Simulink Command](/matlab_simulink/images/simulink_command.jpg)
单击 Enter 键打开 Simulink 启动页面,如下所示:
![S Page](/matlab_simulink/images/s_page.jpg)
您也可以直接通过单击 MATLAB 界面上的 Simulink 图标来打开 Simulink,如下所示:
![Matlab Drive](/matlab_simulink/images/matlab_drive.jpg)
单击 Simulink 图标后,它将带您进入 Simulink 启动页面,如下所示:
![Startup Page](/matlab_simulink/images/startup_page.jpg)
启动页面包含空白模型、子系统、库,可从头开始创建模型。
还有一些内置模板可以帮助用户入门。
要创建模型,用户可以单击“空白模型”,它将显示如下页面:
![Untitled](/matlab_simulink/images/untitled.jpg)
单击“保存”以保存您的模型。构建模型的模块位于 Simulink 库浏览器中。
单击库浏览器,如下所示:
![LB](/matlab_simulink/images/lb.jpg)
库浏览器列出了所有类型的库及其不同的模块,如下所示:
![Bus Creator](/matlab_simulink/images/bus_creator.jpg)
Simulink 中的库
让我们了解 Simulink 中一些常用的库。
连续
连续模块库提供与导数和积分相关的模块。模块列表如下:
![Continuous Blocks](/matlab_simulink/images/continuous_blocks.jpg)
仪表盘
使用仪表盘,您将获得控件和指示器模块,有助于与仿真交互。您的计算机上将显示以下屏幕:
![Dashboard](/matlab_simulink/images/dashboard.jpg)
不连续性
在这里,您将获得如下所示的不连续函数模块列表:
![Discontinuities](/matlab_simulink/images/discontinuous.jpg)
离散
在这里,您将获得如下所示的时间关系函数模块:
![Discrete](/matlab_simulink/images/discrete.jpg)
逻辑和位运算
在此类别中,您将获得如下所示的所有逻辑和关系型模块:
![Logicbit Operations](/matlab_simulink/images/logicbit_operations.jpg)
查找表
您将获得所有正弦、余弦函数模块,如下所示:
![Lookup Tables](/matlab_simulink/images/lookup_tables.jpg)
数学运算
所有数学运算,如加、绝对值、除、减都可用。列表如下:
![Math Operations](/matlab_simulink/images/math_operations.jpg)
消息和事件
此模块包含所有与消息/通信相关的函数,如下所示:
![Messages](/matlab_simulink/images/messages.jpg)
模型验证
此处的模块有助于自验证模型,例如“检查输入分辨率”。您的计算机上将显示以下屏幕:
![Model Verification](/matlab_simulink/images/model_verification.jpg)
模型范围实用程序
这将为您提供“模型信息”、“模块支持表”等模块。您的计算机上将显示以下屏幕:
![Model Wide](/matlab_simulink/images/model_wide.jpg)
端口和子系统
您将获得诸如子系统、开关情况、启用等模块。列表如下所示:
![Subsystem](/matlab_simulink/images/subsystem.jpg)
信号属性
修改信号属性模块,例如数据类型转换。您的计算机上将显示以下屏幕:
![Signal Attributes](/matlab_simulink/images/signal_attributes.jpg)
信号路由
此类别中的模块用于路由信号模块,例如总线创建器、开关等。您的计算机上将显示以下屏幕:
![Signal Routing](/matlab_simulink/images/signal_routing.jpg)
接收器
此类别中的模块有助于显示或导出信号数据模块,例如示波器和 To Workspace。您的计算机上将显示以下屏幕:
![Sinks](/matlab_simulink/images/sinks.jpg)
源
它有助于生成或导入数据模块。例如,正弦波。您的计算机上将显示以下屏幕:
![Sources](/matlab_simulink/images/sources.jpg)
字符串
此类别包含如下所示的字符串相关模块:
![String](/matlab_simulink/images/string.jpg)
用户定义函数
自定义函数模块,例如 MATLAB 函数、MATLAB 系统、Simulink 函数和初始化函数。您的计算机上将显示以下屏幕:
![UserDefined Functions](/matlab_simulink/images/userdefined_functions.jpg)
MATLAB Simulink - 模块
在本节中,我们将学习 Simulink 中的基本元素之一。这些被称为模块。
Simulink 中的模块有助于创建模型。您可以使用 Simulink 库浏览器,其中包含不同类型的模块来创建模型。
首先,打开一个空白模型。显示将如下所示:
![Property Inspector](/matlab_simulink/images/property_inspector.jpg)
您可以通过单击“保存”按钮来保存您的模型。因此,您的更改将成功保存。现在,打开库浏览器以将模块添加到模型画布中。
选择模块的两种方法如下:
使用 Simulink 浏览器库。
在模型画布内搜索模块。
Simulink 浏览器库
打开 Simulink 库浏览器,如下所示:
![Simulink Browserlibrary](/matlab_simulink/images/simulink_browserlibrary.jpg)
如果您正在寻找特定模块并且不知道哪个库中包含,您可以在搜索模块中搜索它,如下所示:
![Sine](/matlab_simulink/images/sine.jpg)
在这里,我们获得了所有与正弦相关的模块。您也可以进入库并选择您的模块。
添加模块、乘积模块等。显示将如下所示:
![Product Block](/matlab_simulink/images/product_block.jpg)
要将模块添加到模型中,您可以选择模块并将其拖动到模型中,如下所示:
![Assignment](/matlab_simulink/images/assignment.jpg)
另一种方法是右键单击模块并添加到当前模型中。
下面给出了一个相同的示例:
![Current Model](/matlab_simulink/images/current_model.jpg)
我们尚未保存模型。因此,它显示为未命名。现在,您可以添加到未命名模型中。该模块将在您的模型中显示。
在模型画布内搜索模块
向模型添加模块的另一种方法是在模型内单击并键入模块的名称。它将在库浏览器中搜索并列出所有符合您键入内容的模型。
下面给出了一个相同的示例:
![Sine Wave](/matlab_simulink/images/sine_wave.jpg)
我们键入了“正弦”,它显示了所有与正弦相关的模块。
MATLAB Simulink - 连线
在上一节中,我们学习了 Simulink 库中提供的不同类型的模块。在本节中,我们将了解连线。
连线用于使用箭头连接模块。每个模块都有其自身的输入和输出连接器。模块之间的通信将借助连线进行。
让我们用一个例子来理解这一点。从 Simulink 页面选择一个空白模型,如下所示:
![Blank Model](/matlab_simulink/images/blank_model.jpg)
它将打开一个空白模型工作区,如下所示:
![Debug](/matlab_simulink/images/debug.jpg)
单击 Simulink 库浏览器以将一些模块拖动到模型工作区。
![Blocks](/matlab_simulink/images/blocks.jpg)
假设在模型中,我们要添加两个给定的数字。因此,让我们选择“加法”模块、“显示”模块和“常量”模块。
常量模块有一个输出连接器,“加法”模块有两个输入连接器,“显示”模块分别有一个输入连接器。您可以将链接从一个输出拖动到另一个输入,如下所示。
这里,我们有两个值为 10 和 20 的常量。它们通过连线连接到“加法”模块。“加法”模块通过连线连接到“显示”模块。
![10](/matlab_simulink/images/10.jpg)
连接连线后,显示如下:
![20](/matlab_simulink/images/20.jpg)
现在单击“运行”以查看“显示”模块中的结果。它将添加 10 + 20,在“显示”模块中给出结果 30。
![Run](/matlab_simulink/images/run.jpg)
MATLAB Simulink - 构建和仿真模型
我们已经看到了 Simulink 库浏览器和库列表中可用的模块。在本节中,我们将使用这些模块来构建一个简单的正弦波模型。
打开Simulink并点击空白模型,如下图所示:
![Createmodel](/matlab_simulink/images/createmodel.jpg)
空白模型将打开一个空白弹出窗口,如下图所示:
![Popup Window](/matlab_simulink/images/popup_window.jpg)
现在,打开Simulink库浏览器,以便我们可以选择模块。
![Modelling](/matlab_simulink/images/modelling.jpg)
您的电脑上将出现以下屏幕:
![Signal Builder](/matlab_simulink/images/signal_builder.jpg)
要将正弦波移动到您的模型中,请选择该模块并将其拖动到模型工作区内。我们想显示正弦波,这里我们在模型工作区中使用了四个正弦波,如下图所示:
![Data Inspector](/matlab_simulink/images/data_inspector.jpg)
现在我们想显示信号的输出,所以让我们从Sink库中使用一个示波器模块,如下图所示:
![Floating scope](/matlab_simulink/images/floating_scope.jpg)
现在选择并将示波器模块拖动到模型工作区内。
![Scope](/matlab_simulink/images/scope.jpg)
正弦波有一个输出,示波器模块有一个输入。我们显示了四个正弦波。我们必须更改示波器模块的参数以接收四个输入。
右键单击示波器模块,然后单击“模块参数”,将显示如下图所示的屏幕:
![Stepping Options](/matlab_simulink/images/stepping_options.jpg)
转到设置图标,并将输入参数从1更改为4,如下图所示:
![Parameter](/matlab_simulink/images/parameter.jpg)
单击“应用”以保存更改。
现在让我们用箭头将正弦波连接到示波器模块,如下图所示:
![Scope Block](/matlab_simulink/images/scope_block.jpg)
我们想将每个正弦波的频率更改为不同的频率,以便我们获得不同频率的信号图。
因此,右键单击正弦波并打开正弦波模块参数,如下图所示:
![Block Parameters](/matlab_simulink/images/block_parameters.jpg)
我们将所有正弦波的幅度保持为1,第一个正弦波的频率为1,第二个为3,第三个为6,最后一个为10。
单击如下图所示的“运行”按钮以查看正弦波。
![S Wave](/matlab_simulink/images/s_wave.jpg)
打开示波器模块参数以查看正弦波,如下图所示。
![BP](/matlab_simulink/images/bp.jpg)
MATLAB Simulink - 信号处理
在本章中,我们将了解Simulink中的信号生成。首先,从Simulink页面选择一个空白模型并打开Simulink浏览器库,如下图所示:
![SP](/matlab_simulink/images/sp.jpg)
在Sources库中,您将获得一个信号发生器符号。它将帮助我们创建不同类型的信号。
![Signal Generator](/matlab_simulink/images/signal_generator.jpg)
选择信号发生器并将其拖动到空白模型中,如下图所示:
![SG](/matlab_simulink/images/sg.jpg)
要查看信号发生器的输出,我们需要另一个名为示波器的模块,该模块来自Sink库,如下图所示:
![Sinks Library](/matlab_simulink/images/sinks_library.jpg)
选择该模块并将其拖动到模型中。
![Model](/matlab_simulink/images/model.jpg)
双击信号发生器或右键单击并选择模块参数,将显示如下图所示的屏幕:
![Square](/matlab_simulink/images/square.jpg)
信号发生器可以显示正弦波、方波、锯齿波、随机波等波形。我们将选择方波波形。让幅度和频率都为1。单击“确定”以更新所做的更改。
现在,连接信号发生器和示波器模块之间的线,如下图所示:
![Waveform](/matlab_simulink/images/waveform.jpg)
现在单击“运行”按钮以查看方波波形,如下图所示:
![Square Waveform](/matlab_simulink/images/square_waveform.jpg)
现在让我们尝试锯齿波形。右键单击信号发生器或双击并将其波形更改为锯齿波。
![Sawtooth](/matlab_simulink/images/sawtooth.jpg)
让我们将频率更改为2。单击“确定”以更新更改。现在运行模型以查看更改,如下图所示:
![Frequency](/matlab_simulink/images/frequency.jpg)
现在让我们向上述模型添加更多信号。我们将从Sources库中获取阶跃信号,如下图所示:
![Step](/matlab_simulink/images/step.jpg)
示波器模块只有一个输入。让我们将其输入数量增加到2。右键单击并打开模块参数。
![Configuration Properties](/matlab_simulink/images/configuration_properties.jpg)
单击“确定”按钮以更新更改。现在,示波器模块有2个输入,如下图所示:
![Block3](/matlab_simulink/images/block3.jpg)
将阶跃输入箭头与示波器箭头连接。
![Input Arrow](/matlab_simulink/images/input_arrow.jpg)
现在单击“运行”按钮运行模型。
![Runmodel](/matlab_simulink/images/runmodel.jpg)
您可以添加更多信号并进行相同的测试。
MATLAB Simulink - 向信号添加延迟
在上一章中,我们学习了不同的信号仿真。在本章中,我们将学习如何向信号添加延迟。
让我们创建一个空白模型,并向其中添加正弦波和示波器模块,如下图所示:
![SW](/matlab_simulink/images/sw.jpg)
现在让我们运行模型以查看示波器模块中的仿真。正弦波如下图所示:
![Terminator](/matlab_simulink/images/terminator.jpg)
现在让我们为正弦波添加延迟。我们将使用Continuous库中的传输延迟模块,如下图所示:
![Pid Controller](/matlab_simulink/images/pid_controller.jpg)
选择该模块并将其拖动到模型画布中。现在我们的模型中有了传输延迟,右键单击它并打开模块参数,如下图所示:
![Transport delay](/matlab_simulink/images/transport_delay.jpg)
让我们将时间延迟从1更改为3。进行更改并单击“确定”按钮。
现在向示波器模块添加另一个输入端口。右键单击示波器模块并选择信号和端口。为输入端口数量选择2,如下图所示:
![Explore](/matlab_simulink/images/explore.jpg)
现在将传输延迟连接到正弦波和示波器,如下图所示
![TD](/matlab_simulink/images/td.jpg)
现在运行仿真以查看正弦波的3秒延迟。右键单击示波器模块并选择模块参数以查看显示。
![3 Seconds](/matlab_simulink/images/3seconds.jpg)
MATLAB Simulink - 数学库
在本章中,我们将学习如何对两个给定信号求和并获得输出。
选择空白模型并打开Simulink库浏览器,如下图所示:
![Step Simulink](/matlab_simulink/images/step_Simulink.jpg)
我们将使用Math Operations中的Add模块组合Chirp信号和正弦波模块,并查看最终显示。
让我们选择我们想要的模块。从Sources库中选择Chirp信号和正弦波,从Math Operations中选择Add模块,从Sinks库中选择示波器模块。
![SinksLibrary](/matlab_simulink/images/sinkslibrary.jpg)
将线条连接到每个模块。
![Addscope](/matlab_simulink/images/addscope.jpg)
双击Chirp信号并将初始频率从0.1更改为0.05,然后单击“确定”按钮。
![Chirpsignal](/matlab_simulink/images/chirpsignal.jpg)
其他模块保持默认值。现在,单击“运行”以查看示波器中的输出,如下图所示。
![Default Value](/matlab_simulink/images/default_value.jpg)
构建模型并应用 If-else 逻辑
在本章中,我们将创建一个模型并向其应用if-else逻辑。让我们首先收集创建模型的模块。
现在,打开MATLAB Simulink(空白模型)和Simulink库浏览器,如下图所示:
![BM](/matlab_simulink/images/bm.jpg)
单击空白模型并打开Simulink库浏览器,如下图所示:
![Math](/matlab_simulink/images/math.jpg)
我们需要使用以下模块来构建具有if-else逻辑的模型:
常用模块中的常数模块
![Constant](/matlab_simulink/images/constant.jpg)
信号路由中的Switch模块
![SwitchBlock](/matlab_simulink/images/switchblock.jpg)
Sink中的显示模块
![Displayblock](/matlab_simulink/images/displayblock.jpg)
现在让我们将所有模块放在一起创建一个模型,如下图所示:
![11](/matlab_simulink/images/11.jpg)
现在让我们用线连接每个模块。您可以看到常数模块有一个输出,而Switch模块有三个输入和一个输出。我们将它们连接到显示模块。
连接线后,模型如下图所示:
![111](/matlab_simulink/images/111.jpg)
现在,双击Switch模块并添加一个阈值。
阈值将与中间的模块进行比较。根据中间模块的常数值,将显示第一个模块的值或最后一个常数模块的值。
让我们向Switch添加一个阈值,如下图所示:
![Threshold Value](/matlab_simulink/images/threshold_value.jpg)
给定的阈值为3。单击“确定”以更新阈值。现在在Switch模块内可以看到阈值,如下图所示:
![Switch Block](/matlab_simulink/images/switch_block.jpg)
中间的常数模块将与Switch阈值进行比较,并据此确定显示。
现在让我们用一些值更新中间的常数模块,如下图所示:
![C1](/matlab_simulink/images/c1.jpg)
常数模块的值为1。现在让我们更改第一个常数模块,并将其值设置为0.5,如下图所示:
![CB1](/matlab_simulink/images/cb1.jpg)
现在让我们将最后一个常数的值更改为2.5,如下图所示:
![CB2](/matlab_simulink/images/cb2.jpg)
因此,第一个常数值为0.5,中间常数值为1,最后一个为2.5。中间常数值1将与Switch阈值3进行比较,即(1 > 3)。它将打印值为2.5,即最后一个常数值。
单击“运行”按钮以在显示模块中获取输出,如下图所示:
![Middle Constant](/matlab_simulink/images/middle_constant.jpg)
现在让我们将中间常数更改为高于Switch阈值的值,然后查看输出:
![Bpc1](/matlab_simulink/images/bpc1.jpg)
该值从1更改为3.5。单击“确定”并运行模型以查看显示中的输出:
![Output](/matlab_simulink/images/output.jpg)
现在,由于中间常数值较大,因此第一个常数值将打印在显示中。如果较小,则将打印最后一个常数值。
MATLAB Simulink - 逻辑门模型
在本章中,让我们了解如何构建演示逻辑门的模型。
例如,OR、AND、XOR等门。
打开Simulink并打开一个空白模型,如下图所示:
![Template](/matlab_simulink/images/template.jpg)
单击空白模型并选择Simulink库,如下图所示:
![SL](/matlab_simulink/images/sl.jpg)
让我们选择构建OR门的模块。我们需要两个常数模块作为输入,一个逻辑运算符模块和一个显示模块。
常数和逻辑运算符模块将从常用模块库中获取。选择模块并将其拖动到模型中,或者只需在模型中键入模块的名称并选择模块,如下图所示:
![Constant Ramp](/matlab_simulink/images/constant_ramp.jpg)
选择常数模块,我们需要两个常数模块、一个逻辑运算符和一个常数。
模块如下所示:
![And](/matlab_simulink/images/and.jpg)
右键单击逻辑运算符模块,将显示模块参数,如下图所示:
![Logic Operator](/matlab_simulink/images/logic_operator.jpg)
使用逻辑运算符,您可以使用AND、OR、NAND、NOR、XOR、NXOR和NOT门。现在我们将选择OR门。
![Or Operator](/matlab_simulink/images/or_operator.jpg)
现在连接线条,模型将如下图所示:
![Lines](/matlab_simulink/images/lines.jpg)
对于OR门,如果输入为1,1,则输出为1。如果输入为0,0,则输出为0。现在,常数值为1,1。让我们运行模型以查看输出,如下图所示:
![OR Gate](/matlab_simulink/images/or_gate.jpg)
我们可以在显示模块中看到显示的输出为1。现在让我们将常数值更改为0。右键单击常数模块并更改值,如下图所示:
![Display Block](/matlab_simulink/images/display_block.jpg)
将常数值更改为0后,运行模型时输出将变为0。输出如下图所示:
![C0](/matlab_simulink/images/c0.jpg)
现在让我们将常数值更改为0,1并查看输出:
![C01](/matlab_simulink/images/c01.jpg)
值为1,0时,显示如下:
![C02](/matlab_simulink/images/c02.jpg)
同样,您可以设计AND和其他门。
MATLAB Simulink - 正弦波
在本章中,我们将使用导数和积分器模块对正弦波进行积分和微分。
打开空白模型和Simulink库,如下图所示:
![Integrator Blocks](/matlab_simulink/images/integrator_blocks.jpg)
让我们从Sources库中选择正弦波,从Sinks库中选择示波器模块。
![SW1](/matlab_simulink/images/sw1.jpg)
我们想从Continuous库中添加导数和积分器模块,如下图所示:
![Derivative](/matlab_simulink/images/derivative.jpg)
我们需要示波器模块的3个输入端口,因为正弦波、导数和积分器模块将连接到它。
右键单击示波器模块并将输入从1更改为3,如下图所示:
![Inputs](/matlab_simulink/images/inputs.jpg)
连接线条,如下图所示:
![Connect Lines](/matlab_simulink/images/connect_lines.jpg)
现在,运行模型以查看显示。
![Integrator](/matlab_simulink/images/integrator.jpg)
因此,我们有三个信号:正弦波、导数和积分。
MATLAB Simulink - 函数
本章将讲解如何在Simulink中使用MATLAB函数。
打开Simulink并点击空白模型。
![SBM](/matlab_simulink/images/sbm.jpg)
我们需要一个常数模块、一个MATLAB函数模块和一个用于输出的显示模块。
以下是创建的模型:
![MATLAB Function](/matlab_simulink/images/matlab_function.jpg)
MATLAB函数位于用户自定义函数库中。
![MATLAB ud](/matlab_simulink/images/matlab_ud.jpg)
现在,点击MATLAB函数并将其拖到模型画布中。双击MATLAB函数模块并编写您选择的函数。
我们将尝试在给定数字为奇数时显示1,为偶数时显示0。您还可以保存该函数,以便稍后与另一个函数一起使用。
![Function](/matlab_simulink/images/function.jpg)
函数编写完成后,点击MATLAB函数旁边的向上箭头,它将带您返回之前创建的模型。
现在,让我们使用5作为常数值来测试模型。
![FNC](/matlab_simulink/images/fnc.jpg)
我们可以看到显示结果为1,这表明值5是奇数。
现在让我们将常数值更改为10,如下所示,然后运行仿真:输出为0,表示它是偶数。
![FNC Y](/matlab_simulink/images/fnc_y.jpg)
MATLAB Simulink - 创建子系统
当模型变得庞大而复杂时,子系统非常有用。您可以将模型的一部分更改为子系统,这有助于保持流程非常清晰易懂。
在本章中,让我们学习如何在Simulink中创建一个简单的子系统。首先,创建一个空白模型,如下所示:
![Format](/matlab_simulink/images/format.jpg)
现在,我们将创建一个简单的模型,该模型将两个数字相加,然后将模型的一部分转换为子系统。
![Simple Model](/matlab_simulink/images/simple_model.jpg)
我们创建了一个简单的模型,它有两个输入。这些输入将相加,并在显示器中显示结果。
我们将常数值更改为10和20。结果10+20 = 30应该在显示模块中显示。
![DisplayBlock1](/matlab_simulink/images/displayblock1.jpg)
让我们再添加一个名为“一元减”的模块,它将输出从30更改为-30,如下所示:
![Unary Minus](/matlab_simulink/images/unary_minus.jpg)
现在,让我们选择部分内容,即求和模块和一元减模块,以创建一个子系统,如下所示:
![Unary Minus A](/matlab_simulink/images/unaryminus_a.jpg)
![Unary Minus U](/matlab_simulink/images/unaryminus_u.jpg)
点击“创建子系统”。完成后,求和模块和一元减模块将转换为子系统,如下所示:
![Sumblock](/matlab_simulink/images/sumblock.jpg)
现在,当您运行仿真时,它将显示与之前相同的結果。
![Same Result](/matlab_simulink/images/sameresult.jpg)
双击子系统以查看原始模块,如下所示:
![Original Block](/matlab_simulink/images/original_block.jpg)
点击子系统旁边的向上箭头返回模型。
MATLAB Simulink - For 循环
在本章中,让我们了解for迭代器模块的工作原理。首先,创建一个空白模型,如下所示:
![Iterator](/matlab_simulink/images/iterator.jpg)
在这个模型中,我们将使用for迭代器来计算1到N的和。
您可以根据自己的选择使用n的值。此值将采用常数模块并将其值更新为5,如下所示:
![Value 5](/matlab_simulink/images/value_5.jpg)
让我们添加for迭代器模块,如下所示:
![For Iterator](/matlab_simulink/images/for_iterator.jpg)
选择for迭代器子系统模块并添加到您的模型中。接下来,我们需要显示模块,如下所示:
![Subsystem Block](/matlab_simulink/images/subsystem_block.jpg)
按照以下方式连接模块:
![Connect Blocks](/matlab_simulink/images/connect_blocks.jpg)
for迭代器模块是一个子系统。选择该模块并按Enter键。它将带您进入新的模型区域,您必须在此处定义for模块。
![Model Area](/matlab_simulink/images/model_area.jpg)
右键单击for迭代器并选择模块参数,如下所示:
![For Iteratorbp](/matlab_simulink/images/for_iteratorbp.jpg)
将“启动时的状态”更改为“重置”,并将“迭代限制源”更改为“外部”。点击“确定”以更新更改。
现在,您将获得for循环的输入模块,如下所示:
![For N](/matlab_simulink/images/for_n.jpg)
我们需要一个求和模块和一个延迟模块,如下所示:
![Delayblock](/matlab_simulink/images/delayblock.jpg)
延迟模块必须翻转,以便可以将其添加到输出中。我们需要将输出反馈给求和模块,以便将其与当前迭代相加。
右键单击延迟模块,并将延迟长度从2更改为1,如下所示。点击“确定”以更新更改。
![Bp Delay](/matlab_simulink/images/bp_delay.jpg)
最终的for循环子系统模块如下所示:
![For Loop](/matlab_simulink/images/for_loop.jpg)
现在,在运行仿真之前,请将停止时间更改为1。我们这样做是因为我们希望仿真只运行一次。
![Stoptime](/matlab_simulink/images/stoptime.jpg)
点击“立即运行”以查看显示模块中的结果,如下所示
输入值为5,因此for循环将从1到5循环。因此,显示的值为1+2+3+4+5 = 15。
![Inputvalue](/matlab_simulink/images/inputvalue.jpg)
MATLAB Simulink - 导出数据
在本章中,我们将学习如何在MATLAB中使用Simulink输出结果。让我们尝试一个简单的正弦波模型,如下所示:
![MATLABS](/matlab_simulink/images/matlabs.jpg)
当我们运行模型时,示波器会显示正弦波,如下所示:
![Configuration](/matlab_simulink/images/configuration.jpg)
现在,要获取正弦波的数据,请转到配置属性并选择“记录”选项卡。
![CP Scope](/matlab_simulink/images/cp_scope.jpg)
选中“将数据记录到工作区”复选框,如下所示:
![Logdata](/matlab_simulink/images/logdata.jpg)
设置您选择的变量名。在这里,我们将其命名为swave,保存格式为数组。点击“确定”按钮并再次运行仿真。
您应该在工作区中看到输出。
![Array](/matlab_simulink/images/array.jpg)
双击它,它将显示我们之前保存的swave变量的详细信息。
![Swave](/matlab_simulink/images/swave.jpg)
在命令提示符中键入**swave**,它将给出如下所示的输出:
![Out Swave](/matlab_simulink/images/out_swave.jpg)
您可以使用plot命令绘制正弦波,如下所示:
![Command Window](/matlab_simulink/images/command_window.jpg)
图形如下所示:
![Graph](/matlab_simulink/images/graph.jpg)
MATLAB Simulink - MATLAB脚本
在本章中,我们将使用MATLAB脚本创建模型。我们有一种直接且简单的方法来创建模型,只需选择所需的模块即可。但是,编写创建模型的代码有时可以帮助您自动化任务,因为您的项目会越来越复杂。
因此,让我们学习如何使用下面讨论的应用程序编程接口 (API) 来创建模型。
我们将创建一个非常简单的正弦波模型。为此,我们需要正弦波和示波器模块。
在MATLAB命令窗口中,我们可以使用API创建模型和模块。要创建新模型,API如下所示:
new_system('matlabmodel')
这里,matlabmodel是模型的名称。您可以使用open_system()打开模型,并将模型名称作为函数的参数。
命令如下所示:
open_system('matlabmodel')
当您点击Enter键时,模型将打开,如下所示:
![Matlabmodel](/matlab_simulink/images/matlabmodel.jpg)
现在,让我们向其中添加正弦波模块。添加模块的命令是add_block(source, dest)。
您可以从Simulink库浏览器中获取模块的源代码。
![Source Sinewave](/matlab_simulink/images/source_sinewave.jpg)
突出显示的代码是正弦波的源代码。让我们将其添加到add_block中,如下所示:
add_block('simulink/Sources/Sine Wave','matlabmodel/Sine')
您的计算机上将出现以下屏幕:
![Matlab Pro](/matlab_simulink/images/matlab_pro.jpg)
现在,让我们添加示波器模块,如下所示:
add_block('simulink/Sinks/Scope','matlabmodel/Scope', ‘Position’ , [200 315 135 50])
模型显示示波器模块,如下所示:
![Sine1](/matlab_simulink/images/sine1.jpg)
您可以使用add_block中的位置来正确放置模块。
例如:
add_block(‘simulink/Sinks/Scope’, ‘matlabmodel/Scope’, ‘Position’ , [200 315 135 50]
现在,让我们使用如下所示的命令连接正弦波和示波器之间的线:
add_line('matlabmodel', 'Sine/1', 'Scope/1');
对于add_line,您必须传递模型的名称,后跟模块名称和模块的输入端口。
因此,现在我们要将正弦波的第一个输出端口连接到示波器的第一个输入端口。
![Input Port](/matlab_simulink/images/inputport.jpg)
让我们使用以下命令运行仿真:
result = sim('matlabmodel');
现在要查看仿真结果,请运行另一个命令,如下所示:
open_system('matlabmodel/Scope');
您将在示波器中获得如下所示的输出:
![Samplebased](/matlab_simulink/images/samplebased.jpg)
求解数学方程
在本章中,我们将使用Simulink求解一个简单的数学方程式。
方程式如下所示:
y(t) = 2Sin(t) + 5Sin(2t) - 10
让我们为上述方程创建一个模型。打开一个空白模型,如下所示:
![Equation](/matlab_simulink/images/equation.jpg)
以下是求解方程的步骤:
获取一个正弦波模块。右键单击并选择模块参数。选择“符号类型”为“基于时间”。将幅度更改为2,频率更改为1。这将是2Sin(t)。
获取另一个正弦波模块。现在,将幅度设置为5,频率设置为2以显示5Sin(2t)。选择“符号类型”为“基于时间”。
现在获取一个加法模块并将两个正弦波相加。
获取一个常数。右键单击并选择模块参数。将值从1更改为10。
获取一个减法模块,其中一个输入来自步骤3,另一个来自常数,即步骤4。
获取一个示波器模块并将输入从步骤6连接到它。
这就是该方程的最终Simulink模型的样子:
y(t) = 2Sin(t) + 5Sin(2t) - 10
![Subtract](/matlab_simulink/images/subtract.jpg)
点击运行按钮进行编译。右键单击示波器模块以查看绘制的信号。
![Signalplotted](/matlab_simulink/images/signalplotted.jpg)
一阶微分方程
在这里,我们将学习如何在Simulink中求解一阶微分方程。
我们试图使用Simulink求解的一阶微分方程如下:
dy/dt = 4sin2t - 10y
该方程可以通过将dy/dt积分到以下方程来求解:
y(t)=∫(4sin2t - 10y(t))dt
以下是构建上述方程模型的步骤。
从源库中选择正弦波,并将幅度更改为4,频率更改为2。这将给我们4sin2t。
积分器模块将用于显示dy/dt,它将输出y(t)。
增益模块将表示10y。
步骤1和3的输入将提供给步骤2。
我们需要示波器模块来查看输出y(t)。步骤4将连接到示波器模块。
让我们在模型中查看上述步骤,如下所示:
![Sins](/matlab_simulink/images/sins.jpg)
运行模块以查看以下输出:
![Outline](/matlab_simulink/images/outline.jpg)