MATLAB Simulink 快速指南



MATLAB Simulink - 簡介

Simulink 是一個用於動態和嵌入式系統的模擬和基於模型的設計環境,它與 MATLAB 整合在一起。Simulink 由計算機軟體公司 MathWorks 開發。

它是一個數據流圖形程式語言工具,用於建模、模擬和分析多領域動態系統。它基本上是一個圖形化框圖工具,具有可自定義的模組庫集。

此外,它允許您將 MATLAB 演算法整合到模型中,並將模擬結果匯出到 MATLAB 中進行進一步分析。

Simulink 支援以下功能:

  • 系統級設計。

  • 模擬。

  • 自動程式碼生成。

  • 嵌入式系統的測試和驗證。

要開始使用 Simulink,請在命令視窗中輸入 simulink,如下所示:

Simulink Page

它將開啟 Simulink 頁面,如下所示:

Simulink StartPage

您也可以使用 MATLAB 中的 Simulink 圖示來開始使用 Simulink:

Start Stimulink

啟動 Simulink 後,您將導航到如下所示的啟動頁面

Dsp System

在這裡,您可以建立自己的模型,也可以使用現有的模板。

單擊“空白模型”,您將獲得一個 Simulink 庫瀏覽器,可用於建立自己的模型。

空白模型的螢幕如下:

Blankmodel

單擊“庫”,它將顯示 Simulink 庫,如下所示:

Simulink Library

Simulink 庫瀏覽器包含許多庫。它提供常用的模組、連續模組、儀表盤模組、邏輯和位運算模組、數學運算模組等。

除此之外,您還將獲得其他庫列表,例如控制系統工具箱、DSP 系統工具箱等。

Library Browser

這是一個數學運算庫列表的示例:

Math Operations

它具有 Abs、Add、代數約束、賦值等功能,您可以在模型中使用。

以下是邏輯和位運算的示例:

Bit Operations

MATLAB Simulink - 環境設定

MATLAB Simulink 是 MATLAB 的一個產品,要使用它,我們需要下載 MATLAB。

MATLAB 的官方網站是 https://www.mathworks.com/

您的螢幕上將出現以下頁面:

Matlab AI

要下載 MATLAB,請訪問 https://in.mathworks.com/downloads/,如下所示。

Mathworks

MATLAB 不是免費下載的,您需要付費購買許可副本。稍後您可以下載它。

Downloads

提供免費試用版,您需要為此建立相應的帳戶登入。建立帳戶後,他們允許您下載 MATLAB 以及 30 天試用許可證的線上版本。

Trial Version

完成從其網站建立登入後,下載 MATLAB 並安裝到您的系統上。然後,啟動 MATLAB,也可以使用它們的線上版本。

Simulink 內置於 MATLAB 中。安裝 MATLAB 後,您將獲得 Simulink,如下所示:

Workspace

MATLAB Simulink - 啟動 Simulink

在本節中,我們將瞭解如何使用 Simulink 構建模型。

這是一個 MATLAB 顯示:

Matlab

您可以透過在 MATLAB 命令視窗中使用 simulink 命令來啟動 Simulink,如下所示:

Simulink Command

單擊 Enter 鍵開啟 Simulink 啟動頁面,如下所示:

S Page

您也可以直接透過單擊 MATLAB 介面上的 Simulink 圖示來開啟 Simulink,如下所示:

Matlab Drive

單擊 Simulink 圖示後,它將帶您進入 Simulink 啟動頁面,如下所示:

Startup Page

啟動頁面包含空白模型、子系統、庫,可從頭開始建立模型。

還有一些內建模板可以幫助使用者入門。

要建立模型,使用者可以單擊“空白模型”,它將顯示如下頁面:

Untitled

單擊“儲存”以儲存您的模型。構建模型的模組位於 Simulink 庫瀏覽器中。

單擊庫瀏覽器,如下所示:

LB

庫瀏覽器列出了所有型別的庫及其不同的模組,如下所示:

Bus Creator

Simulink 中的庫

讓我們瞭解 Simulink 中一些常用的庫。

連續

連續模組庫提供與導數和積分相關的模組。模組列表如下:

Continuous Blocks

儀表盤

使用儀表盤,您將獲得控制元件和指示器模組,有助於與模擬互動。您的計算機上將顯示以下螢幕:

Dashboard

不連續性

在這裡,您將獲得如下所示的不連續函式模組列表:

Discontinuities

離散

在這裡,您將獲得如下所示的時間關係函式模組:

Discrete

邏輯和位運算

在此類別中,您將獲得如下所示的所有邏輯和關係型模組:

Logicbit Operations

查詢表

您將獲得所有正弦、餘弦函式模組,如下所示:

Lookup Tables

數學運算

所有數學運算,如加、絕對值、除、減都可用。列表如下:

Math Operations

訊息和事件

此模組包含所有與訊息/通訊相關的函式,如下所示:

Messages

模型驗證

此處的模組有助於自驗證模型,例如“檢查輸入解析度”。您的計算機上將顯示以下螢幕:

Model Verification

模型範圍實用程式

這將為您提供“模型資訊”、“模組支援表”等模組。您的計算機上將顯示以下螢幕:

Model Wide

埠和子系統

您將獲得諸如子系統、開關情況、啟用等模組。列表如下所示:

Subsystem

訊號屬性

修改訊號屬性模組,例如資料型別轉換。您的計算機上將顯示以下螢幕:

Signal Attributes

訊號路由

此類別中的模組用於路由訊號模組,例如匯流排建立器、開關等。您的計算機上將顯示以下螢幕:

Signal Routing

接收器

此類別中的模組有助於顯示或匯出訊號資料模組,例如示波器和 To Workspace。您的計算機上將顯示以下螢幕:

Sinks

它有助於生成或匯入資料模組。例如,正弦波。您的計算機上將顯示以下螢幕:

Sources

字串

此類別包含如下所示的字串相關模組:

String

使用者定義函式

自定義函式模組,例如 MATLAB 函式、MATLAB 系統、Simulink 函式和初始化函式。您的計算機上將顯示以下螢幕:

UserDefined Functions

MATLAB Simulink - 模組

在本節中,我們將學習 Simulink 中的基本元素之一。這些被稱為模組。

Simulink 中的模組有助於建立模型。您可以使用 Simulink 庫瀏覽器,其中包含不同型別的模組來建立模型。

首先,開啟一個空白模型。顯示將如下所示:

Property Inspector

您可以透過單擊“儲存”按鈕來儲存您的模型。因此,您的更改將成功儲存。現在,開啟庫瀏覽器以將模組新增到模型畫布中。

選擇模組的兩種方法如下:

  • 使用 Simulink 瀏覽器庫。

  • 在模型畫布內搜尋模組。

Simulink 瀏覽器庫

開啟 Simulink 庫瀏覽器,如下所示:

Simulink Browserlibrary

如果您正在尋找特定模組並且不知道哪個庫中包含,您可以在搜尋模組中搜索它,如下所示:

Sine

在這裡,我們獲得了所有與正弦相關的模組。您也可以進入庫並選擇您的模組。

新增模組、乘積模組等。顯示將如下所示:

Product Block

要將模組新增到模型中,您可以選擇模組並將其拖動到模型中,如下所示:

Assignment

另一種方法是右鍵單擊模組並新增到當前模型中。

下面給出了一個相同的示例:

Current Model

我們尚未儲存模型。因此,它顯示為未命名。現在,您可以新增到未命名模型中。該模組將在您的模型中顯示。

在模型畫布內搜尋模組

向模型新增模組的另一種方法是在模型內單擊並鍵入模組的名稱。它將在庫瀏覽器中搜索並列出所有符合您鍵入內容的模型。

下面給出了一個相同的示例:

Sine Wave

我們鍵入了“正弦”,它顯示了所有與正弦相關的模組。

MATLAB Simulink - 連線

在上一節中,我們學習了 Simulink 庫中提供的不同型別的模組。在本節中,我們將瞭解連線。

連線用於使用箭頭連線模組。每個模組都有其自身的輸入和輸出聯結器。模組之間的通訊將藉助連線進行。

讓我們用一個例子來理解這一點。從 Simulink 頁面選擇一個空白模型,如下所示:

Blank Model

它將開啟一個空白模型工作區,如下所示:

Debug

單擊 Simulink 庫瀏覽器以將一些模組拖動到模型工作區。

Blocks

假設在模型中,我們要新增兩個給定的數字。因此,讓我們選擇“加法”模組、“顯示”模組和“常量”模組。

常量模組有一個輸出聯結器,“加法”模組有兩個輸入聯結器,“顯示”模組分別有一個輸入聯結器。您可以將連結從一個輸出拖動到另一個輸入,如下所示。

這裡,我們有兩個值為 10 和 20 的常量。它們透過連線連線到“加法”模組。“加法”模組透過連線連線到“顯示”模組。

10

連線連線後,顯示如下:

20

現在單擊“執行”以檢視“顯示”模組中的結果。它將新增 10 + 20,在“顯示”模組中給出結果 30。

Run

MATLAB Simulink - 構建和模擬模型

我們已經看到了 Simulink 庫瀏覽器和庫列表中可用的模組。在本節中,我們將使用這些模組來構建一個簡單的正弦波模型。

開啟Simulink並點選空白模型,如下圖所示:

Createmodel

空白模型將開啟一個空白彈出視窗,如下圖所示:

Popup Window

現在,開啟Simulink庫瀏覽器,以便我們可以選擇模組。

Modelling

您的電腦上將出現以下螢幕:

Signal Builder

要將正弦波移動到您的模型中,請選擇該模組並將其拖動到模型工作區內。我們想顯示正弦波,這裡我們在模型工作區中使用了四個正弦波,如下圖所示:

Data Inspector

現在我們想顯示訊號的輸出,所以讓我們從Sink庫中使用一個示波器模組,如下圖所示:

Floating scope

現在選擇並將示波器模組拖動到模型工作區內。

Scope

正弦波有一個輸出,示波器模組有一個輸入。我們顯示了四個正弦波。我們必須更改示波器模組的引數以接收四個輸入。

右鍵單擊示波器模組,然後單擊“模組引數”,將顯示如下圖所示的螢幕:

Stepping Options

轉到設定圖示,並將輸入引數從1更改為4,如下圖所示:

Parameter

單擊“應用”以儲存更改。

現在讓我們用箭頭將正弦波連線到示波器模組,如下圖所示:

Scope Block

我們想將每個正弦波的頻率更改為不同的頻率,以便我們獲得不同頻率的訊號圖。

因此,右鍵單擊正弦波並開啟正弦波模組引數,如下圖所示:

Block Parameters

我們將所有正弦波的幅度保持為1,第一個正弦波的頻率為1,第二個為3,第三個為6,最後一個為10。

單擊如下圖所示的“執行”按鈕以檢視正弦波。

S Wave

開啟示波器模組引數以檢視正弦波,如下圖所示。

BP

MATLAB Simulink - 訊號處理

在本章中,我們將瞭解Simulink中的訊號生成。首先,從Simulink頁面選擇一個空白模型並開啟Simulink瀏覽器庫,如下圖所示:

SP

在Sources庫中,您將獲得一個訊號發生器符號。它將幫助我們建立不同型別的訊號。

Signal Generator

選擇訊號發生器並將其拖動到空白模型中,如下圖所示:

SG

要檢視訊號發生器的輸出,我們需要另一個名為示波器的模組,該模組來自Sink庫,如下圖所示:

Sinks Library

選擇該模組並將其拖動到模型中。

Model

雙擊訊號發生器或右鍵單擊並選擇模組引數,將顯示如下圖所示的螢幕:

Square

訊號發生器可以顯示正弦波、方波、鋸齒波、隨機波等波形。我們將選擇方波波形。讓幅度和頻率都為1。單擊“確定”以更新所做的更改。

現在,連線訊號發生器和示波器模組之間的線,如下圖所示:

Waveform

現在單擊“執行”按鈕以檢視方波波形,如下圖所示:

Square Waveform

現在讓我們嘗試鋸齒波形。右鍵單擊訊號發生器或雙擊並將其波形更改為鋸齒波。

Sawtooth

讓我們將頻率更改為2。單擊“確定”以更新更改。現在執行模型以檢視更改,如下圖所示:

Frequency

現在讓我們向上述模型新增更多訊號。我們將從Sources庫中獲取階躍訊號,如下圖所示:

Step

示波器模組只有一個輸入。讓我們將其輸入數量增加到2。右鍵單擊並開啟模組引數。

Configuration Properties

單擊“確定”按鈕以更新更改。現在,示波器模組有2個輸入,如下圖所示:

Block3

將階躍輸入箭頭與示波器箭頭連線。

Input Arrow

現在單擊“執行”按鈕執行模型。

Runmodel

您可以新增更多訊號並進行相同的測試。

MATLAB Simulink - 向訊號新增延遲

在上一章中,我們學習了不同的訊號模擬。在本章中,我們將學習如何向訊號新增延遲。

讓我們建立一個空白模型,並向其中新增正弦波和示波器模組,如下圖所示:

SW

現在讓我們執行模型以檢視示波器模組中的模擬。正弦波如下圖所示:

Terminator

現在讓我們為正弦波新增延遲。我們將使用Continuous庫中的傳輸延遲模組,如下圖所示:

Pid Controller

選擇該模組並將其拖動到模型畫布中。現在我們的模型中有了傳輸延遲,右鍵單擊它並開啟模組引數,如下圖所示:

Transport delay

讓我們將時間延遲從1更改為3。進行更改並單擊“確定”按鈕。

現在向示波器模組新增另一個輸入埠。右鍵單擊示波器模組並選擇訊號和埠。為輸入埠數量選擇2,如下圖所示:

Explore

現在將傳輸延遲連線到正弦波和示波器,如下圖所示

TD

現在執行模擬以檢視正弦波的3秒延遲。右鍵單擊示波器模組並選擇模組引數以檢視顯示。

3 Seconds

MATLAB Simulink - 數學庫

在本章中,我們將學習如何對兩個給定訊號求和並獲得輸出。

選擇空白模型並開啟Simulink庫瀏覽器,如下圖所示:

Step Simulink

我們將使用Math Operations中的Add模組組合Chirp訊號和正弦波模組,並檢視最終顯示。

讓我們選擇我們想要的模組。從Sources庫中選擇Chirp訊號和正弦波,從Math Operations中選擇Add模組,從Sinks庫中選擇示波器模組。

SinksLibrary

將線條連線到每個模組。

Addscope

雙擊Chirp訊號並將初始頻率從0.1更改為0.05,然後單擊“確定”按鈕。

Chirpsignal

其他模組保持預設值。現在,單擊“執行”以檢視示波器中的輸出,如下圖所示。

Default Value

構建模型並應用 If-else 邏輯

在本章中,我們將建立一個模型並向其應用if-else邏輯。讓我們首先收集建立模型的模組。

現在,開啟MATLAB Simulink(空白模型)和Simulink庫瀏覽器,如下圖所示:

BM

單擊空白模型並開啟Simulink庫瀏覽器,如下圖所示:

Math

我們需要使用以下模組來構建具有if-else邏輯的模型:

常用模組中的常數模組

Constant

訊號路由中的Switch模組

SwitchBlock

Sink中的顯示模組

Displayblock

現在讓我們將所有模組放在一起建立一個模型,如下圖所示:

11

現在讓我們用線連線每個模組。您可以看到常數模組有一個輸出,而Switch模組有三個輸入和一個輸出。我們將它們連線到顯示模組。

連線線後,模型如下圖所示:

111

現在,雙擊Switch模組並新增一個閾值。

閾值將與中間的模組進行比較。根據中間模組的常數值,將顯示第一個模組的值或最後一個常數模組的值。

讓我們向Switch新增一個閾值,如下圖所示:

Threshold Value

給定的閾值為3。單擊“確定”以更新閾值。現在在Switch模組內可以看到閾值,如下圖所示:

Switch Block

中間的常數模組將與Switch閾值進行比較,並據此確定顯示。

現在讓我們用一些值更新中間的常數模組,如下圖所示:

C1

常數模組的值為1。現在讓我們更改第一個常數模組,並將其值設定為0.5,如下圖所示:

CB1

現在讓我們將最後一個常數的值更改為2.5,如下圖所示:

CB2

因此,第一個常數值為0.5,中間常數值為1,最後一個為2.5。中間常數值1將與Switch閾值3進行比較,即(1 > 3)。它將列印值為2.5,即最後一個常數值。

單擊“執行”按鈕以在顯示模組中獲取輸出,如下圖所示:

Middle Constant

現在讓我們將中間常數更改為高於Switch閾值的值,然後檢視輸出:

Bpc1

該值從1更改為3.5。單擊“確定”並執行模型以檢視顯示中的輸出:

Output

現在,由於中間常數值較大,因此第一個常數值將列印在顯示中。如果較小,則將列印最後一個常數值。

MATLAB Simulink - 邏輯閘模型

在本章中,讓我們瞭解如何構建演示邏輯閘的模型。

例如,OR、AND、XOR等門。

開啟Simulink並開啟一個空白模型,如下圖所示:

Template

單擊空白模型並選擇Simulink庫,如下圖所示:

SL

讓我們選擇構建OR門的模組。我們需要兩個常數模組作為輸入,一個邏輯運算子模組和一個顯示模組。

常數和邏輯運算子模組將從常用模組庫中獲取。選擇模組並將其拖動到模型中,或者只需在模型中鍵入模組的名稱並選擇模組,如下圖所示:

Constant Ramp

選擇常數模組,我們需要兩個常數模組、一個邏輯運算子和一個常數。

模組如下所示:

And

右鍵單擊邏輯運算子模組,將顯示模組引數,如下圖所示:

Logic Operator

使用邏輯運算子,您可以使用AND、OR、NAND、NOR、XOR、NXOR和NOT門。現在我們將選擇OR門。

Or Operator

現在連線線條,模型將如下圖所示:

Lines

對於OR門,如果輸入為1,1,則輸出為1。如果輸入為0,0,則輸出為0。現在,常數值為1,1。讓我們執行模型以檢視輸出,如下圖所示:

OR Gate

我們可以在顯示模組中看到顯示的輸出為1。現在讓我們將常數值更改為0。右鍵單擊常數模組並更改值,如下圖所示:

Display Block

將常數值更改為0後,執行模型時輸出將變為0。輸出如下圖所示:

C0

現在讓我們將常數值更改為0,1並檢視輸出:

C01

值為1,0時,顯示如下:

C02

同樣,您可以設計AND和其他門。

MATLAB Simulink - 正弦波

在本章中,我們將使用導數和積分器模組對正弦波進行積分和微分。

開啟空白模型和Simulink庫,如下圖所示:

Integrator Blocks

讓我們從Sources庫中選擇正弦波,從Sinks庫中選擇示波器模組。

SW1

我們想從Continuous庫中新增導數和積分器模組,如下圖所示:

Derivative

我們需要示波器模組的3個輸入埠,因為正弦波、導數和積分器模組將連線到它。

右鍵單擊示波器模組並將輸入從1更改為3,如下圖所示:

Inputs

連線線條,如下圖所示:

Connect Lines

現在,執行模型以檢視顯示。

Integrator

因此,我們有三個訊號:正弦波、導數和積分。

MATLAB Simulink - 函式

本章將講解如何在Simulink中使用MATLAB函式。

開啟Simulink並點選空白模型。

SBM

我們需要一個常數模組、一個MATLAB函式模組和一個用於輸出的顯示模組。

以下是建立的模型:

MATLAB Function

MATLAB函式位於使用者自定義函式庫中。

MATLAB ud

現在,點選MATLAB函式並將其拖到模型畫布中。雙擊MATLAB函式模組並編寫您選擇的函式。

我們將嘗試在給定數字為奇數時顯示1,為偶數時顯示0。您還可以儲存該函式,以便稍後與另一個函式一起使用。

Function

函式編寫完成後,點選MATLAB函式旁邊的向上箭頭,它將帶您返回之前建立的模型。

現在,讓我們使用5作為常數值來測試模型。

FNC

我們可以看到顯示結果為1,這表明值5是奇數。

現在讓我們將常數值更改為10,如下所示,然後執行模擬:輸出為0,表示它是偶數。

FNC Y

MATLAB Simulink - 建立子系統

當模型變得龐大而複雜時,子系統非常有用。您可以將模型的一部分更改為子系統,這有助於保持流程非常清晰易懂。

在本章中,讓我們學習如何在Simulink中建立一個簡單的子系統。首先,建立一個空白模型,如下所示:

Format

現在,我們將建立一個簡單的模型,該模型將兩個數字相加,然後將模型的一部分轉換為子系統。

Simple Model

我們建立了一個簡單的模型,它有兩個輸入。這些輸入將相加,並在顯示器中顯示結果。

我們將常數值更改為10和20。結果10+20 = 30應該在顯示模組中顯示。

DisplayBlock1

讓我們再新增一個名為“一元減”的模組,它將輸出從30更改為-30,如下所示:

Unary Minus

現在,讓我們選擇部分內容,即求和模組和一元減模組,以建立一個子系統,如下所示:

Unary Minus A Unary Minus U

點選“建立子系統”。完成後,求和模組和一元減模組將轉換為子系統,如下所示:

Sumblock

現在,當您執行模擬時,它將顯示與之前相同的結果。

Same Result

雙擊子系統以檢視原始模組,如下所示:

Original Block

點選子系統旁邊的向上箭頭返回模型。

MATLAB Simulink - For 迴圈

在本章中,讓我們瞭解for迭代器模組的工作原理。首先,建立一個空白模型,如下所示:

Iterator

在這個模型中,我們將使用for迭代器來計算1到N的和。

您可以根據自己的選擇使用n的值。此值將採用常數模組並將其值更新為5,如下所示:

Value 5

讓我們新增for迭代器模組,如下所示:

For Iterator

選擇for迭代器子系統模組並新增到您的模型中。接下來,我們需要顯示模組,如下所示:

Subsystem Block

按照以下方式連線模組:

Connect Blocks

for迭代器模組是一個子系統。選擇該模組並按Enter鍵。它將帶您進入新的模型區域,您必須在此處定義for模組。

Model Area

右鍵單擊for迭代器並選擇模組引數,如下所示:

For Iteratorbp

將“啟動時的狀態”更改為“重置”,並將“迭代限制源”更改為“外部”。點選“確定”以更新更改。

現在,您將獲得for迴圈的輸入模組,如下所示:

For N

我們需要一個求和模組和一個延遲模組,如下所示:

Delayblock

延遲模組必須翻轉,以便可以將其新增到輸出中。我們需要將輸出反饋給求和模組,以便將其與當前迭代相加。

右鍵單擊延遲模組,並將延遲長度從2更改為1,如下所示。點選“確定”以更新更改。

Bp Delay

最終的for迴圈子系統模組如下所示:

For Loop

現在,在執行模擬之前,請將停止時間更改為1。我們這樣做是因為我們希望模擬只執行一次。

Stoptime

點選“立即執行”以檢視顯示模組中的結果,如下所示

輸入值為5,因此for迴圈將從1到5迴圈。因此,顯示的值為1+2+3+4+5 = 15。

Inputvalue

MATLAB Simulink - 匯出資料

在本章中,我們將學習如何在MATLAB中使用Simulink輸出結果。讓我們嘗試一個簡單的正弦波模型,如下所示:

MATLABS

當我們執行模型時,示波器會顯示正弦波,如下所示:

Configuration

現在,要獲取正弦波的資料,請轉到配置屬性並選擇“記錄”選項卡。

CP Scope

選中“將資料記錄到工作區”複選框,如下所示:

Logdata

設定您選擇的變數名。在這裡,我們將其命名為swave,儲存格式為陣列。點選“確定”按鈕並再次執行模擬。

您應該在工作區中看到輸出。

Array

雙擊它,它將顯示我們之前儲存的swave變數的詳細資訊。

Swave

在命令提示符中鍵入**swave**,它將給出如下所示的輸出:

Out Swave

您可以使用plot命令繪製正弦波,如下所示:

Command Window

圖形如下所示:

Graph

MATLAB Simulink - MATLAB指令碼

在本章中,我們將使用MATLAB指令碼建立模型。我們有一種直接且簡單的方法來建立模型,只需選擇所需的模組即可。但是,編寫建立模型的程式碼有時可以幫助您自動化任務,因為您的專案會越來越複雜。

因此,讓我們學習如何使用下面討論的應用程式程式設計介面 (API) 來建立模型。

我們將建立一個非常簡單的正弦波模型。為此,我們需要正弦波和示波器模組。

在MATLAB命令視窗中,我們可以使用API建立模型和模組。要建立新模型,API如下所示:

new_system('matlabmodel')

這裡,matlabmodel是模型的名稱。您可以使用open_system()開啟模型,並將模型名稱作為函式的引數。

命令如下所示:

open_system('matlabmodel')

當您點選Enter鍵時,模型將開啟,如下所示:

Matlabmodel

現在,讓我們向其中新增正弦波模組。新增模組的命令是add_block(source, dest)。

您可以從Simulink庫瀏覽器中獲取模組的原始碼。

Source Sinewave

突出顯示的程式碼是正弦波的原始碼。讓我們將其新增到add_block中,如下所示:

add_block('simulink/Sources/Sine Wave','matlabmodel/Sine')

您的計算機上將出現以下螢幕:

Matlab Pro

現在,讓我們新增示波器模組,如下所示:

add_block('simulink/Sinks/Scope','matlabmodel/Scope', ‘Position’ , [200 315 135 50])

模型顯示示波器模組,如下所示:

Sine1

您可以使用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

讓我們使用以下命令執行模擬:

result = sim('matlabmodel');

現在要檢視模擬結果,請執行另一個命令,如下所示:

open_system('matlabmodel/Scope');

您將在示波器中獲得如下所示的輸出:

Samplebased

求解數學方程

在本章中,我們將使用Simulink求解一個簡單的數學方程式。

方程式如下所示:

y(t) = 2Sin(t) + 5Sin(2t) - 10

讓我們為上述方程建立一個模型。開啟一個空白模型,如下所示:

Equation

以下是求解方程的步驟:

  • 獲取一個正弦波模組。右鍵單擊並選擇模組引數。選擇“符號型別”為“基於時間”。將幅度更改為2,頻率更改為1。這將是2Sin(t)。

  • 獲取另一個正弦波模組。現在,將幅度設定為5,頻率設定為2以顯示5Sin(2t)。選擇“符號型別”為“基於時間”。

  • 現在獲取一個加法模組並將兩個正弦波相加。

  • 獲取一個常數。右鍵單擊並選擇模組引數。將值從1更改為10。

  • 獲取一個減法模組,其中一個輸入來自步驟3,另一個來自常數,即步驟4。

  • 獲取一個示波器模組並將輸入從步驟6連線到它。

這就是該方程的最終Simulink模型的樣子:

y(t) = 2Sin(t) + 5Sin(2t) - 10
Subtract

點選執行按鈕進行編譯。右鍵單擊示波器模組以檢視繪製的訊號。

Signalplotted

一階微分方程

在這裡,我們將學習如何在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

執行模組以檢視以下輸出:

Outline
廣告
© . All rights reserved.