Simulink子系統、變體子系統及封裝知識

1.引言

文章三相新能源并網系統序阻抗模型——序阻抗分析器IMAnalyzer介紹了一種用于分析和掃描序阻抗的軟件。其中,在序阻抗掃頻操作過程中,用到了一個擾動注入、測量和運算工具【IMtool】,它外表長這樣:

內部長這樣:

交互起來是這樣的:

它具備以下一些特點:

1.外表是一個交互界面,包括文本顯示、參數輸入、下拉選擇等功能;

2.內部有三個子系統,但每次只激活其中一個子系統;

3.交互界面可選擇內部系統,設置系統參數、顯示不同封面等等。

那么類似于上述的功能是如何實現的呢?

2.子系統

【子系統】是把一堆散件進行打包的過程,同時可以留有輸入和輸出接口同外界交互,比如:

【IMtool】的 電流擾動注入、測量和運算功能大致實現如下:

就可以打包成這樣:

需要注意的是:輸入輸出接口分為【物理接口】和信號接口

同樣地,【電壓擾動注入、測量和運算】和【直連】功能也能分別進行打包:

注意:【直連】打包時保留了信號端口是為了與【電流xxx】和【電壓xxx】外觀保持一致,如下:

這樣我們就得到了三個外觀一樣,內部功能不同的三個子系統。

3.變體子系統

上面三個子系統的功能是并列的,實際運行時,只需要執行其中一個系統的功能。當然,這可以通過只連接一個子系統來實現。但如果這樣,切換功能 就需要反復重連其它系統,十分不便

有沒有什么方法可以便捷地切換系統?這就是【變體子系統】,它可以包含多個【子系統】,并將它們作為變體選擇項。

首先將其中一個子系統轉化為變體子系統:

然后將其它子系統復制到該變體子系統的內部:

可以擺得整齊一點:

設置子系統激活條件:

變體子系統具體執行其中哪個子系統的功能,是根據【變體控制表達式】為真來確定的,當條件表達式的計算結果為 true 時,對應的變體選擇項將被激活

例如,在下圖中,變量disType的值如果為"擾動電壓注入法",則表達式disType=="擾動電壓注入法"為真,將激活【擾動電壓注入法】子系統;為"擾動電流注入法",則激活【擾動電流注入法】子系統;……。

而變量disType可以通過【命令行窗口】、Simulink中的【模型屬性】等方式賦值,如:

4.封裝

【封裝】其實就是做交互界面的過程,把需要交互的功能做成易操作的界面,而隱去底層模型的聯系。

【封裝】操作如下:

然后會彈出【封裝編輯器】:

目標交互界面包括【功能描述】、【擾動注入方法】選擇和【參數】輸入三個部分。

4.1【功能描述】設計

添加【組框】控件實現內容分區

注:在編輯過程中可以隨時點擊【預覽對話框】來查看對應的封裝界面,也是探索各個控件功能的好辦法。

添加【文本】控件,在【提示】欄輸入需要展示的文字。

如果想對文字進行分段,可以添加多個【文本】控件:

4.2【擾動注入方法】設計

添加【彈出框】控件,編輯【提示】、【名稱】和【類選選項】。

注:【名稱】為該控件的 輸出變量名,可以存儲操作后返回的值;【類型選項】用于設置彈出框的可選項,選擇的值將存儲在【名稱】對應的變量中。

特別注意:一定要取消勾選【計算,否則關聯的變量會保存為所選項的索引,而不是實際值。

封裝中的變量能夠被包含其中的所有模塊識別,因此變體子系統會因為變量disType值的改變而切換激活的子系統,如下:

4.3【參數】輸入設計

添加【組框】控件進行分區;

添加【編輯】控件,編輯【提示】、【名稱】和【值】等。

類似地,根據需求添加其它【編輯】控件,不再贅述。

假如現在需要通過外界(例如appdesigner軟件)來指定封裝中的參數值,而不是直接通過封面指定,該如何實現?

此時,可以將參數輸入欄的值指定為變量名,比如:

這樣就可以在matlab、simulink等工作區對這些變量進行賦值,從而間接指定參數

4.4【模型圖標】設計

封裝編輯器的【圖標】區允許用戶使用一些繪圖命令來設計模型圖標。這樣就可以通過條件判斷,讓封裝模塊在激活不同子系統時顯示不同的圖標,如下:

另外,將【圖標透明度】設置為 不透明帶端口,既展示圖標,又顯示端口號;將【圖片旋轉】設置為 旋轉,實現圖標跟隨模型旋轉。

5.最終效果

以上就是全部內容啦,覺得有用還請多多支持,您的支持是我創作最大的動力。

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

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

相關文章

高階組件介紹

高階組件約定俗成以with開頭 import React, { useEffect } from react; import { TouchableOpacity, Image, StyleSheet } from react-native;type IReactComponent React.ClassicComponentClass| React.ComponentClass| React.FunctionComponent| React.ForwardRefExoticComp…

C++ STL系列-02.泛型入門

C STL系列-02.泛型入門C中的泛型編程主要通過模板(template)實現。模板允許我們編寫與類型無關的代碼,是一種將類型作為參數進行編程的方式。在C中,模板分為函數模板和類模板。 1. 函數模板函數模板允許我們定義一個函數&#xff…

高效管理網絡段和端口集合的工具之ipset

目錄 1. 核心命令速查 2. 集合類型 3. 實戰案例:使用 ipset 封禁 IP 案例 1:基礎黑名單封禁(手動添加) 案例 2:自動過期和解封 案例 3:封禁 IP 和端口組合 案例 4:白名單模式 案例 5&am…

實例和對象的區別

對象(Object)是一個概念,它表示“某個類的一個成員”,是“邏輯上的個體”。實例(Instance)是一個現實,指的是在內存中真正分配了空間的對象。實例一定是對象,但對象不一定是實例。例…

Win10 Chrome認不出新Emoji?兩個擴展搞定顯示與輸入

前言 用Win10電腦在Chrome里發消息、刷網頁時,你是否遇到過這樣的尷尬:別人發的、或者頁面顯示的 Emoji,在你屏幕上變成了空白方框,像“文字里缺了一塊拼圖”?其實這不是Chrome的錯,也不用換電腦&#xff0…

Golang中逃逸現象, 變量“何時棧?何時堆?”

目錄 什么是棧 什么是堆 棧 vs 堆(核心區別) GO編譯器的逃逸分析 什么是逃逸分析? 怎么看逃逸分析結果? 典型“會逃逸”的場景 閉包捕獲局部變量 返回或保存帶有“底層存儲”的容器 經由接口/反射/fmt 等導致裝箱或被長…

MySQL入門指南:從安裝到工作原理

什么是MySQL MySQL是一個開源的關系型數據庫管理系統,由瑞典MySQL AB公司開發(目前屬于Oracle公司),被廣泛地應用在大中小型網站中 MySQL是一個小型的開源的關系型數據庫管理系統,與其他大型數據庫管理系統例如&…

dask.dataframe.shuffle.set_index中獲取 divisions 的步驟分析

dask.dataframe.shuffle.set_index 中獲取 divisions 的步驟分析 主要流程概述 在 set_index 函數中,當 divisionsNone 時,系統需要通過分析數據來動態計算分區邊界。這個過程分為以下幾個關鍵步驟: 1. 初始檢查和準備 if divisions is None:…

ai生成ppt工具有哪些?10款主流AI生成PPT工具盤點

隨著人工智能技術的飛速發展,AI生成PPT工具逐漸成為職場人士、學生和創作者提升效率的得力助手。這類工具通過智能算法,能夠快速將文本、數據或創意轉化為結構化、視覺化的演示文稿,大幅節省設計時間。1、AiPPT星級評分:★★★★★…

Qt多線程編程學習

Qt多線程編程學習 1. 項目概述 本項目展示了Qt中多線程編程的基本用法,通過繼承QThread類創建自定義線程,并演示了線程的啟動、執行和銷毀過程。項目包含一個簡單的用戶界面,用戶可以通過按鈕控制線程的啟動和結束。 1.1 項目結構 項目包含以…

加密貨幣武器化:惡意npm包利用以太坊智能合約實現隱蔽通信

ReversingLabs研究人員發現兩個惡意npm包利用以太坊(Ethereum)智能合約隱藏并傳播惡意軟件。這兩個名為colortoolsv2和mimelib2的軟件包于2025年7月被識別,展現了開源安全攻防戰中的新戰術。惡意軟件包偽裝成實用工具攻擊活動始于7月7日發布的…

Spring Boot 全局字段處理最佳實踐

在日常開發中,我們總會遇到一些瑣碎但又無處不在的字段處理需求:? 請求處理: 用戶提交的表單,字符串前后帶了多余的空格,需要手動 trim()。? 響應處理: 返回給前端的 BigDecimal 金額,因為精度問題導致JS處理出錯&am…

三坐標測量機在汽車制造行業中的應用

在汽車制造業中,零部件精度決定著整車性能。從發動機活塞的微米級公差,到車身焊接的毫米級間隙,汽車制造“差之毫厘,謬以千里” ,任何細微偏差都可能引發連鎖反應:發動機抖動、異響、油耗飆升,車…

機床夾具設計 +選型

機床夾具設計—第2組(鉆床夾具)仿真組裝視頻_嗶哩嗶哩_bilibili 夾具-商品搜索-怡合達一站式采購平臺 米思米FA標準品電子目錄new 可能要吧這些定位塊單獨用yolo訓練一邊才能搞識別分析 3長條一短銷定位,黃色的用來夾緊 一個面加一短軸一棱…

表格識別技術:通過計算機視覺和OCR,實現非結構化表格向結構化數據的轉換,推動數字化轉型。

在日常工作和生活中,我們無處不在與表格打交道。從財務報表、發票收據,到科研論文中的數據表、醫療報告,表格以其清晰、結構化的方式,承載著大量關鍵信息。然而,當這些表格以紙質或圖片等非結構化形式存在時&#xff0…

Go基礎(②Viper)

Viper 讀取配置創建一個配置文件 config.yamlserver:port: 8080timeout: 30 # 超時時間(秒) database:host: "localhost"user: "root"password: "123456"name: "mydb"然后用 Viper 讀取這個配置,代…

kafka Partition(分區)詳解

一、什么是 PartitionPartition(分區) 是 Kafka Topic(主題) 的最小并行單位。一個 Topic 可以包含多個 Partition,每個 Partition 底層對應一個有序、不可變的消息隊列,消息只會順序追加。Partition 內部消…

中創中間件適配HGDB

文章目錄環境文檔用途詳細信息環境 系統平臺:Microsoft Windows (64-bit) 10 版本:5.6.5 文檔用途 本文章主要介紹中創中間件簡單適配HGDB。 詳細信息 一、數據源配置 1.數據庫準備 (1)安裝HGDB并創建一個名為myhgdb的數據…

服務器內存和普通計算機內存在技術方面有什么區別?

服務器內存和普通計算機內存在技術上的區別,主要體現在為滿足不同工作場景和要求而采用的設計和特性上。下面這個表格匯總了它們的主要技術差異,方便你快速了解: ?技術特性??服務器內存??普通計算機內存??錯誤校驗 (ECC)??支持ECC(…

哪款AI生成PPT工具對職場新人最友好?操作門檻最低的是哪個?

一句話生成專業PPT,職場新人也能輕松做出高質量演示文稿現代職場節奏快,PPT制作已成為必備技能。然而,職場新人常面臨兩大挑戰:缺乏設計經驗,以及需要在有限時間內完成高質量演示。傳統PPT制作耗時費力,需梳…