Simscape物理建模步驟

為了介紹構建和仿真物理模型的步驟,這里以simulink自帶示例模型Mass-Spring-Damper with Controller為例,下圖為建立好的模型。

詳細物理建模和仿真分析步驟如下:

步驟 1:使用?ssc_new?創建新模型

使用?ssc_new?是開始構建 Simscape? 模型的最佳方式。使用該函數有助于確保為模型使用推薦的默認設置。當您使用?ssc_new?時,它會自動:

  • 創建一個新的 Simscape 模型,模型畫布上已有必需和常用的模塊
  • 選擇推薦的求解器和容差設置
  • 為整個模型啟用數據記錄

在 MATLAB??命令行窗口中,鍵入:

ssc_new

新創建的無名稱模型的默認求解器設置為?VariableStepAuto,該模型包含一個?Solver Configuration?模塊、一個?Simulink-PS Converter?模塊以及一個連接到?Scope?模塊的?PS-Simulink Converter?模塊。

模型窗口底部的資源部分提供了指向相關模塊庫和文檔主題的鏈接。

步驟 2:組裝物理網絡

要對您的系統進行建模,需要從 Simscape 庫向模型中添加模塊,然后將這些模塊連接到物理網絡。在您創建的原理圖中,連接模塊的線條表示您正在建模的實際系統中組件之間存在的物理連接。換言之,Simscape 圖模擬的是物理系統布局。

構造網絡時,添加域特定的參考模塊非常重要,例如?Electrical Reference、Mechanical Translational Reference?等。

  1. 打開 Simscape > Foundation Library > Mechanical > Translational Elements 庫。
  2. 將?Mass、Translational Spring、Translational Damper?和?Mechanical Translational Reference?模塊拖動到模型窗口中。
  3. 將?Translational Spring、Translational Damper?和?Mass?模塊連接到?Mechanical Translational Reference?模塊,如下圖所示。要旋轉某個模塊,請選擇該模塊,然后按?Ctrl+R

要調整模型的視覺呈現,請簡化 Spring 和 Damper 模塊的名稱,如圖所示。要使?Mass?模塊的名稱與?Spring?和?Damper?同時顯示,請右鍵點擊?Mass?模塊,然后從上下文菜單中選擇格式?>?顯示模塊名稱?>?打開

步驟 3:調整模塊參數和變量目標

Simscape 模塊表示具有模塊參數和變量默認初始值的通用組件。您可以根據您的應用程序調整這些值或與制造商數據表相匹配。

要查看和修改模塊變量的模塊參數值和初始目標,請雙擊模塊以打開其對話框。使用?Settings?選項卡。

對于大多數 Simscape 模塊,模塊對話框包含與模塊屬性檢查器相同的信息和布局。默認情況下,在屬性檢查器中更改值會立即應用新值。為了更好地進行控制,建議您清除模塊對話框右上角的自動應用復選框,以啟用重置應用按鈕。這在處理復雜模塊時特別有用,因為您可以一次更改多個參數。更改參數值以匹配制造商數據表,查看整個集,然后點擊應用。清除自動應用復選框后,該復選框將在 MATLAB 會話期間保持清除狀態。

要查看模塊的描述,請點擊模塊對話框中的?Description?選項卡。該選項卡還包含?Source code?鏈接。點擊該鏈接可在 MATLAB 編輯器中打開此模塊的 Simscape 源文件。

如果模塊沒有可以設置的參數或變量目標,則模塊對話框沒有?Settings?選項卡,只有?Description?選項卡。

要查看模塊的文檔,請點擊模塊對話框右上角的問號??按鈕。

在此模型中,您將調整用于控制質量、彈簧剛度和阻尼系數的參數。您還將通過調整相應的變量目標來指定質量的初始速度。

  1. 雙擊?Spring?模塊。清除自動應用復選框。將?Spring rate?設置為?400 N/m,然后點擊應用

  1. 雙擊?Damper?模塊。將?Damping coefficient?設置為?100 N/(m/s)

  1. 雙擊?Mass?模塊。將?Mass?設置為?3.6 kg

  1. 要指定所需的質量速度初始值,請在?Initial Targets?部分中展開?Velocity。該變量的?Priority?已指定為 “High”,這意味著求解器在計算初始條件以確定仿真起點時將嘗試完全滿足該初始值。選中?Velocity?復選框。在?Value?字段中,鍵入?10,然后點擊應用

步驟 4:添加信源

您可以使用輸入信號驅動 Simscape 模型。使用這種方法,您可以表示作用于系統的物理效應,例如力、電壓或壓力。您還可以指定流經系統的其他量,例如電流、質量流量和熱通量。您可以通過使用 Simscape 信源模塊向物理網絡添加信號輸入連接。

要添加作用于質量的力的表示,請使用?Ideal Force Source?模塊。

  1. 打開 Simscape > Foundation Library > Mechanical > Mechanical Sources 庫。
  2. 將?Ideal Force Source?模塊添加到示意圖中。簡化模塊名稱,如圖所示。
  3. 為了反映原始原理圖中顯示的力的正確方向,請翻轉模塊方向。選擇?Force Source?模塊后,在 Simulink??工具條的格式選項卡上,在排列下,點擊上下翻轉
  4. 復制?Mechanical Translational Reference?模塊,方法是右鍵點擊該模塊并將其拖動到新位置。然后使用與?Force Source?模塊相同的方法翻轉新模塊的方向。
  5. 將?Force Source?模塊的端口 C 連接到這第二個?Mechanical Translational Reference?模塊,將端口 R 連接到?Mass?模塊,如下圖所示。

將物理網絡連接到 Simulink 源后,代表作用力曲線的輸入信號將通過端口 S 提供(請參閱步驟 6:使用接口模塊連接到 Simulink)。端口 S 處的正信號將指定從端口 C 作用到端口 R 的力。

步驟 5:添加傳感器

您可以測量物理網絡中的量,并在模型中的其他位置使用它們。這些量的一些常見用途包括控制算法的反饋、對其行為依賴于其他物理量的物理組件(如溫度相關電阻)進行建模,或者只是在仿真過程中查看結果。

您可以使用傳感器模塊測量這些量,根據測量值對傳感器進行串聯或并聯。要測量由 Through 變量定義的量(如電流、流量、力),請串聯傳感器。要測量由 Across 變量定義的量(如電壓、壓力、速度),請并聯傳感器。

要測量彈簧形變,請將?Ideal Translational Motion Sensor?模塊與彈簧并聯。

  1. 打開 Simscape > Foundation Library > Mechanical > Mechanical Sensors 庫。
  2. 將?Ideal Translational Motion Sensor?模塊添加到示意圖中。
  3. 要旋轉該模塊,請選擇該模塊,然后按?Ctrl+R
  4. 如下圖所示連接該模塊。簡化模塊名稱,如圖所示。

步驟 6:使用接口模塊連接到?Simulink

Simscape 網絡中的方程是同時求解的,而 Simulink 模塊是按順序求值的。接口模塊(如?Simulink-PS Converter?和?PS-Simulink Converter)用于處理這兩種建模約定之間的邊界。當 Simulink 信號在 Simscape 網絡中指定量時,或者在將 Simscape 量傳遞給 Simulink 以進行控制設計或實現其他目的時,您需要使用接口模塊。每次將 Simulink 模塊連接到 Simscape 物理網絡時,都必須使用適當的轉換器模塊。

下面您要將物理網絡連接到由常規 Simulink 模塊構建的控制器。首先,準備要連接到 Simulink 信號的物理網絡:

  1. 刪除?Scope?模塊。

雖然您可以使用示波器查看仿真結果,但這些示波器會使模塊圖變得更加混亂。查看和分析仿真結果的一種更有效方法是使用 Simscape 結果資源管理器,如步驟 8:查看仿真結果中所述。

  1. 將?Simulink-PS Converter?模塊的物理信號輸出端口連接到?Force Source?模塊的端口 S。
  2. 將?Motion Sensor?模塊的輸出端口 P 連接到?PS-Simulink Converter?模塊的物理信號輸入端口。
  3. 將?Solver Configuration?模塊連接到電路并隱藏轉換器模塊名稱。示意圖現在如下所示。

然后,構建并連接控制器:

  1. 打開 Simulink > Sources 庫,然后將?Pulse Generator?模塊拖到模型中。將模塊名稱更改為?Position Command。設置模塊參數,如圖所示。

  1. 打開 Simulink > Math Operations 庫,然后將?Sum?模塊拖到模型中。在符號列表中,將第二個加號替換為減號,如圖所示。

  1. 打開 Simulink > Continuous 庫,然后將?PID Controller?模塊拖到模型中。設置比例(P)積分(I)?和微分(D)?參數值,如圖所示。

  1. 連接模塊,如下面的示意圖所示。

控制 Simulink 信號進入?Simulink-PS Converter?模塊的輸入端口,在那里轉換為驅動?Ideal Force Source?模塊的力分布的物理信號。

用于測量彈簧形變的?Ideal Translational Motion Sensor?模塊的輸出端口 P 連接到?PS-Simulink Converter?模塊。該模塊用于將物理信號轉換為控制器的反饋 Simulink 信號。

要比較輸入和反饋信號,請將它們連接到信號查看器:

  1. 右鍵點擊從?Pulse Generator?模塊傳遞到?Sum?模塊的 Simulink 信號。從上下文菜單中,選擇?Create & Connect Viewer?>?Simulink?>?Scope
  2. 然后,右鍵點擊從?PS-Simulink Converter?模塊傳遞到?Sum?模塊的 Simulink 信號。從上下文菜單中,選擇?Connect To Viewer?>?Scope

步驟 7:仿真模型

您可以通過點擊 Simulink 工具條(位于模型窗口頂部)或波形查看器工具欄中的“運行”按鈕??來運行仿真。Simscape 求解器會對模型進行求值,計算初始條件,然后運行仿真。

要運行仿真,請點擊 Simulink 工具條中的?

波形查看器會顯示輸入信號和反饋信號的疊加圖。

步驟 8:查看仿真結果

通過 Simscape 結果資源管理器,您可以使用數據記錄功能查看和分析仿真數據。例如,您可以比較兩個仿真運行,以分析質量變化如何影響彈簧形變。

  1. 右鍵點擊?Spring?模塊。
  2. 從上下文菜單中,選擇?Simscape?>?View simulation data?>?simlog

注意:simlog?是記錄變量的默認名稱。如果使用工作區變量名稱模型配置參數更改變量名稱,則上下文菜單會將該名稱列為與模塊關聯的記錄變量。

此時將打開 Simscape 結果資源管理器窗口,左窗格中突出顯示與?Spring?模塊對應的節點。右窗格顯示與該模塊關聯的三個變量的仿真數據圖。

  1. 在?Spring?節點下,選擇節點?x。右窗格顯示隨時間繪制的彈簧形變數據。

  1. 雙擊?Mass?模塊。將質量設置為?7.2 kg
  2. 運行仿真。
  3. 要重新加載記錄的數據,請點擊位于 Simscape 結果資源管理器窗口工具欄中的導入數據按鈕。在顯示記錄變量名稱的彈出窗口中,點擊確定

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44153.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44153.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44153.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

李彥宏所說的卷應用到底是什么?

李彥宏在2024世界人工智能大會上的發言強調了一個重要的觀點,那就是在AI時代,技術的應用比技術本身更為關鍵。他所提出的“卷應用”而非“卷模型”,實際上是在呼吁業界關注AI技術的實際落地和價值創造,而不是單純地在模型精度或規…

【 RESTful API 】

RESTful API 是一種用于構建 web 應用程序的設計風格和架構模式。它提供了通過 HTTP 協議訪問和操作資源的規范方式。 REST(Representational State Transfer)是一種軟件架構風格,它強調在網絡中以資源的形式進行數據傳輸和狀態管理。RESTfu…

Memcached與Redis:緩存解決方案的較量與選擇

標題:Memcached與Redis:緩存解決方案的較量與選擇 在現代應用架構中,緩存是提升性能的關鍵技術之一。Memcached和Redis作為兩款流行的開源緩存解決方案,它們各自有著獨特的特點和使用場景。本文將深入比較Memcached和Redis的特性…

案例|LabVIEW連接S7-1200PLC

附帶: 寫了好的參考文章: 通訊測試工具和博圖仿真機的連接教程【內含圖文完整過程軟件使用】 解決博圖V15 V16 V17 V18等高版本和低版本在同款PLC上不兼容的問題 目錄 前言一、準備條件二、步驟1. HslCommunicationDemo問題1:連接失敗?問題…

Lingo學習(二)——線性規劃基礎、矩陣工廠

一、線性規劃基礎 (一)方法 ① 一個線性規劃中只含一個目標函數。(兩個以上是多目標線性規劃,Lingo無法直接解) ② 求目標函數的最大值或最小值分別用max …或min …來表示。 ③ 以!開頭,以;結束的語句是注釋語句; ④ 線性規劃和非線性規劃的本質…

Android11 MTK 狀態欄添加無Sim卡圖標

1、近日,查看測試提出的bug時,發現了一個問題,設備在未安裝sim卡時,狀態欄中不顯示無sim卡的圖標。 2、解決 路徑:****\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\StatusBarSign…

01、Kerberos安全認證之原理及搭建命令使用學習筆記

文章目錄 前言一、Kerberos原理1.1、數據安全防護(kerberos所屬的層次)1.2、Kerberos介紹1.3、Kerberos名詞介紹1.4、Kerberos術語1.5、Kerberos認證流程1.5.1、Kerberos流程圖1.5.2、第一次通信:客戶端與AS1.5.3、第二次通信:客戶…

cpp使用第三方庫

使用第三方庫在C中進行編程是一種常見的做法,因為它可以讓利用現成的代碼來實現更復雜的功能,而不必從頭開始編寫。下面是一個示例,演示如何在C項目中引入并使用一個第三方庫。這個例子將使用Boost庫,它是C中廣泛使用的一個庫&…

60、基于淺層神經網絡的數據擬合(matlab)

1、基于淺層神經網絡的數據擬合的簡介、原理以及matlab實現 1)內容說明 基于淺層神經網絡的數據擬合是一種常見的機器學習方法,用于通過輸入數據來擬合一個非線性函數。這種方法通常包括一個輸入層、一個或多個隱藏層和一個輸出層。神經網絡通過學習權…

廣電日志分析系統

需求 廣電集團中有若干個系統都產生日志信息,目前大約分布與70到80臺服務器中,分別是windows與Linux操作系統。需要將服務器上產生的日志文件利用我們的技術進行解析 設計 每個日志工作站負責30-50個服務器的日志解析工作。可以根據實際需求進行設置&…

ENSP實現防火墻區域策略與用戶管理

目錄 實驗拓撲與要求?編輯 交換機與防火墻接口的配置 交換機: 創建vlan 接口配置 防火墻配置及接口配置 防火墻IP地址配置 云配置?編輯?編輯?編輯 在瀏覽器上使用https協議登陸防火墻,并操作 訪問網址:https://192.168.100.1:844…

51單片機嵌入式開發:9、 STC89C52RC 操作LCD1602技巧

STC89C52RC 操作LCD1602技巧 1 代碼工程2 LCD1602使用2.1 LCD1602字庫2.2 巧妙使用sprintf2.3 光標顯示2.4 寫固定長度的字符2.5 所以引入固定長度寫入方式: 3 LCD1602操作總結 1 代碼工程 承接上文,在原有工程基礎上,新建關于lcd1602的c和h…

linux中如何設置多個redis進程并且設置獨立密碼?

在Linux中設置多個Redis進程(實例)并為每個實例設置獨立密碼,你需要為每個Redis實例配置不同的配置文件,并在這些配置文件中指定不同的端口、數據目錄、密碼等。Redis本身并不直接支持在配置文件中設置“密碼”來阻止未授權訪問&a…

ArduPilot開源飛控之AP_Mount_Backend_Serial

ArduPilot開源飛控之AP_Mount_Backend_Serial 1. 源由2. 框架設計2.1 類定義2.2 構造函數2.3 init 方法2.4 受保護成員 3. 重要方法4. 總結5. 參考資料 1. 源由 AP_Mount_Backend_Serial是AP_Mount_Backend基于串口的通信的一個擴展模版。 2. 框架設計 繼承自 AP_Mount_Back…

Sentieon應用教程:本地使用-Quick_start

1、準備工作: License下載鏈接:http://www.sentieon.com/eula/b703e839c8c7c5b8fa73238277fd5da23a0276be54712edb46ee8f4d4f3d873fbf 軟件下載地址: https://insvast-download.oss-cn-shanghai.aliyuncs.com/Sentieon/release/sentieon-gen…

11-《風信子》

風信子 風信子(學名:Hyacinthus orientalis L.):是多年草本球根類植物,鱗莖卵形,有膜質外皮,皮膜顏色與花色成正相關,未開花時形如大蒜,原產地中海沿岸及小亞細亞一帶&am…

【Vue】vue-element-admin組件化功能

1. 組件的封裝 在vue-element-admin中,每個功能區域或UI元素都被封裝成一個或多個Vue組件。這些組件可以是簡單的按鈕、輸入框,也可以是復雜的表格、表單或頁面布局。每個組件都包含了其模板(HTML結構)、邏輯(JavaScr…

【論文精讀】Exploring the Causality of End-to-End Autonomous Driving

背景信息 團隊:百度 代碼:https://github.com/bdvisl/DriveInsight 論文思想簡述:這篇論文并不是提出SOTA模型,而是提出了一些評估模型的方法。 目前已有的分析方法 大語言模型。VAQ來提供解釋性,比如DriveVLM&…

C++基礎(二)

目錄 1.類和對象 1.1類的定義 1.2訪問限定符 1.3類域 2.實例化 2.1實例化概念 2.2對象大小 3.this指針 4.類的默認成員函數 4.1構造函數 4.2析構函數 4.5運算符重載 1.類和對象 1.1類的定義 類的定義格式 class為定義類的關鍵字,Stack為類的名字&…

7月11日學習打卡,數據結構棧

大家好呀,本博客目的在于記錄暑假學習打卡,后續會整理成一個專欄,主要打算在暑假學習完數據結構,因此會發一些相關的數據結構實現的博客和一些刷的題,個人學習使用,也希望大家多多支持,有不足之…