simulink創建簡單模型

来源:https://www.cnblogs.com/52geek/archive/2019/03/01/10458482.html
-Advertisement-
Play Games

創建簡單模型 您可以使用 Simulink® 對系統建模,然後模擬該系統的動態行為。Simulink 允許您創建模塊圖,圖中的各個連接模塊代表系統的各個部分,信號代表這些模塊之間的輸入/輸出關係。Simulink 的主要功能是對系統各個組件隨時間流逝的行為變化進行模擬。簡單來講就是:採用一個時鐘,按 ...


創建簡單模型

您可以使用 Simulink® 對系統建模,然後模擬該系統的動態行為。Simulink 允許您創建模塊圖,圖中的各個連接模塊代表系統的各個部分,信號代表這些模塊之間的輸入/輸出關係。Simulink 的主要功能是對系統各個組件隨時間流逝的行為變化進行模擬。簡單來講就是:採用一個時鐘,按時間確定各個模塊的模擬順序,併在模擬過程中依次將在上一個模塊圖中計算得出的輸出傳播到下一個模塊,直至最後一個模塊。假設有一個打開加熱器的開關。在每個時間步中,Simulink 必須計算開關的輸出,將該輸出傳播到加熱器,然後計算熱量輸出。

通常,組件的輸入對其輸出的影響不是瞬時的。例如,打開加熱器不會導致溫度立即發生變化。該動作為微分方程提供輸入,歷史溫度(一個狀態)也是一個輸入因數。當模塊圖的模擬需要求解微分或差分方程時,Simulink 使用記憶體和數值求解器來計算時間步的狀態值。

Simulink 處理三類數據:

  • 信號 - 在模擬期間計算的模塊輸入和輸出

  • 狀態 - 在模擬期間中計算的代表模塊動態的內部值

  • 參數 - 影響模塊行為的值,由用戶控制

 

在每個時間步,Simulink 都計算信號和狀態的新值。相比之下,您可以在編譯模型時指定參數,並且可以在模擬運行時偶爾更改它們。

模型概述

 

本教程中創建簡單模型所使用的基本方法也適用於創建更複雜的模型。此示例模擬的是在踩下加速踏板後簡化的汽車運動。

Simulink 模塊是定義模塊輸入和模塊輸出之間數學關係的模型元素。要創建這個簡單模型,您需要四個 Simulink 模塊。

模塊名稱模塊目的模型目的
Pulse Generator 為模型生成輸入信號 模擬加速踏板
Gain 將輸入信號乘以一個因數 模擬踩下加速踏板對汽車加速所造成的影響
Integrator, Second-Order 對輸入信號執行二次積分 根據加速度計算汽車位置
Outport 將信號指定為模型的輸出 將位置指定為模型的輸出

 

此模型的模擬過程是將一個簡短的脈衝信號積分兩次,形成一個斜坡信號,然後將結果顯示在一個示波器視窗中。輸入脈衝表示踩下汽車的加速踏板,輸出斜坡表示與起點的距離增加。

打開新模型

 

使用 Simulink Editor 構建模型。

  1. 啟動 MATLAB®。從 MATLAB 工具條上,點擊 Simulink 按鈕 

  2. 點擊 Blank Model 模板。

    Simulink Editor 打開。

  3. 從 File 菜單中,選擇 Save as。在 File name 文本框中,輸入您的模型的名稱,例如 simple_model。點擊 Save。模型使用文件擴展名 .slx 進行保存。

打開 Simulink Library Browser

 

Simulink 在 Library Browser 中提供了一系列按功能分類的模塊庫。下麵是大多數工作流常用的一些模塊庫:

  • Continuous - 連續狀態系統的構建模塊

  • Discrete - 離散狀態系統的構建模塊

  • Math Operations - 實現代數和邏輯方程的模塊

  • Sinks - 存儲並顯示所連接信號的模塊

  • Sources - 生成模型的驅動信號值的模塊

 

  1. 從 Simulink Editor 工具欄上,點擊 Library Browser 按鈕 

  2. 將 Library Browser 設置為始終在其他桌面視窗前端。在 Library Browser 工具欄中,選擇 Stay on top 按鈕 

要瀏覽模塊庫,請從左窗格中選擇一個 MathWorks® 產品,然後選擇一個功能區。要搜索所有可用的模塊庫,請輸入搜索詞。

例如,查找 Pulse Generator 模塊。在瀏覽器工具欄的搜索框中輸入 pulse,然後按 Enter 鍵。Simulink 將在模塊庫中搜索名稱或說明中包含 pulse 的模塊,然後顯示這些模塊。

獲取模塊的詳細信息。右鍵點擊某個模塊,然後選擇 Help for the Pulse Generator block。Help 瀏覽器隨即打開並顯示該模塊的參考頁。

模塊通常有幾個參數。您可以通過雙擊該模塊來訪問所有參數。

將模塊添加到模型

 

要開始構建模型,請瀏覽庫並添加模塊。

  1. 從 Sources 庫中,將 Pulse Generator 模塊拖到 Simulink Editor 中。您的模型中將出現 Pulse Generator 模塊的副本,還有一個文本框用於輸入 Amplitude 參數的值。輸入 1

    參數值在整個模擬過程中保持不變。

  2. 使用相同的方法將以下模塊添加到模型中。

     

    模塊參數
    Gain Simulink/Math Operations

    Gain: 2

    Integrator, Second Order Simulink/Continuous

    Initial condition: 0

    Outport Simulink/Sinks

    Port number:1

     

    通過右鍵點擊並拖動一個現有 Outport 模塊,添加第二個 Outport 模塊。

    現在您的模型應該具有所需的全部模塊了。

  3. 通過點擊並拖動每個模塊來按如下方式排列模塊。要調整模塊大小,請點擊並拖動一個角。

 

連接模塊

 

通過在輸出埠和輸入埠之間創建線條來連接模塊。

  1. 點擊 Pulse Generator 模塊右側的輸出埠。

    該輸出埠和所有可供連接的輸入埠都將突出顯示。

     

  2. 點擊 Gain 模塊的輸入埠。

    Simulink 用線條連接模塊,並用箭頭表示信號流的方向。

     

  3. 將 Gain block 的輸出埠連接到 Integrator, Second Order 模塊的輸入埠。

  4. 將 Integrator, Second Order 模塊的兩個輸出連接到兩個 Outport 模塊。

  5. 保存模型。選擇 File > Save 併為模型指定一個文件名。

     

     

您的模型搭建完成。

添加信號查看器

 

要查看結果,請將第一個輸出連接到一個 Signal Viewer。

通過右鍵點擊信號來訪問上下文菜單。選擇 Create & Connect Viewer > Simulink > Scope。這會在信號上創建查看器圖標並打開查看器顯示屏。

您可以隨時通過雙擊該圖標打開查看器。

運行模擬

定義配置參數後,即可進行模型模擬。

  1. 在模型視窗上,通過更改工具欄上的值來設置模擬停止時間。

    預設停止時間 10.0 適合此模型。此時間值沒有單位。Simulink 中的時間單位取決於方程的構造方式。此示例對簡化的汽車運動進行為時 10 秒的模擬。

  2. 要運行模擬,請點擊 Run 模擬按鈕 

 

模擬運行併在查看器上生成輸出。

 

關註公眾號: MATLAB基於模型的設計 (ID:xaxymaker) ,每天推送MATLAB學習最常見的問題,每天進步一點點,業精於勤荒於嬉

 打開微信掃一掃哦!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 private void ShowForm(Form Indexform) 2 { 3 Form1 form1 = new Form1(); 4 form1 .TopLevel = false; 5 form1 .Parent = Indexform; 6 form1 .BringToFront... ...
  • 地址鏈接:https://pan.baidu.com/s/1AW9bLHM1sZ8E_0SFWFD4ww 提取碼:ze9p ...
  • 原文: lesson 1 Excuse me! Excuse me! Yes? Is this your handbag? Pardon? Is this your handbag? Yes it is.Thank you very much! 知識: Pardon? 原句:I beg your p ...
  • 當我們需要結合企業微信和業務系統的時候,我們需要建立一個企業微信應用,然後在微信管理後臺中綁定對應參數,這樣可以利用企業微信的服務端API對接相關的功能,包括提交菜單,以及獲取對應的企業微信組織機構、發送消息等常規操作;而業務系統則可以把對應的業務流程和企業微信進行對接,包括消息的推送,以及利用JS... ...
  • 今天,Visual Studio中沒有內置工具來測試WEB API。使用瀏覽器,只能測試http GET請求。您需要使用Postman,SoapUI,Fiddler或Swagger等第三方工具來執行WEB API的完整測試。在ASP.NET Core 2.2中,引入了一個名為“http-repl”的 ...
  • 我提供的腳本只是案例展示,真實場景需要自行修改。(正好我今天看到一個規範的bat腳本,我放出來,大家一起學習下) 要求:將20G的磁碟1,分出4G為主分區,4G擴展分區(2個2G邏輯分區) 試驗環境: 1.主機與其他多台計算都可以建立$IPC連接,主機上共用Disk目錄,其中放有: 2.在客戶端運行 ...
  • 一、bash 使用(for迴圈、while迴圈) 1.1、批量添加用戶 1.2、查看用戶是否存在 A、cut -d : -f 1 /etc/passwd B、id dream (id 用戶名稱) C、ll /home(查看用戶目錄) 1.3、批量刪除用戶(請謹慎操作) 1.4、批量查詢IP是否線上 ...
  • 我叫王龍龍,來自河南平頂山,初中畢業就去上了技校,當時也是特別迷茫,便隨大流選擇了汽修行業,學了一年就被分配出來在工廠實習上班,後來慢慢長大了,也懂事了,覺得工廠實在無聊,然後就自己辭職找工作,在鄭州漂泊了兩年,結果依然沒有任何的收穫和存款,就決心重新學習一門技術,提升自己的能力,以在社會上更好的生 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...