MATLAB-Simulink并行仿真示例

?一、概述

?????????在進行simulink仿真的過程中常常遇到CPU利用率較低,仿真緩慢的情況,可以借助并行仿真改善這些問題,其核心思想是將參數掃描蒙特卡洛分析多工況驗證等任務拆分成多個子任務,利用多核CPU或計算集群的并行計算能力,顯著縮短整體仿真時間。
主要使用的函數包括:

1.parpool(numCore)函數,目的是開啟并行池(具體數量取決于計算機物理內核數)

2.Simulink.SimulationInput函數,用于封裝模型參數、變量修改、回調函數等配置,簡單來說就是建立一個數組,存放并行仿真時模型的參數

3.parsim函數,用于SimulationInput數組分發到各工作進程執行

二、流程

大體使用過程如下

1.開啟并行工作池

clear; clc;

% start parpool by codes.

delete(gcp('nocreate')); % 關閉之前的并行池

numCore = 2; % 設定并行工作池的數量(受限于CPU真實內核數)

p = parpool(numCore); % start parpool.

2.打開simulink文件

%打開模型

modl = 'u_of_ideal_full_bridge_LLC_double_vol_blue';

open_system(modl);

load_system(modl);

3.設置參數

Lm = 20e-6;

k = [1 10 100 1000];

Lr = zeros(size(k));

for i = 1:length(Lr)

Lr(i) = Lm/k(i);

end

4.建立輸入函數

In(length(k)) = Simulink.SimulationInput(modl); %內存預分配

for i = 1 : length(k)

In(i) = Simulink.SimulationInput(modl);

In(i) = In(i).setVariable('Lr',Lr(i));

In(i) = In(i).setPostSimFcn(@(x) u_PostSimFunction(x));%這行代碼用于設置后處理函數,具體作用在后面解釋

end

5.運行仿真

Out = parsim(In,'ShowSimulationManager','on');%運行結果會存儲在OUT中

三、后處理函數作用

simulink仿真的數據會通過to workscape模塊傳遞到基礎工作區,但是在并行仿真時,數據都會保存在計算機內存里,這樣子很容易導致計算機內存爆滿,所以可以設置一個后處理函數,在每次仿真結束后直接對仿真數據進行處理,把處理結果保存,其余數據清空。

示例中的后處理函數如下:
?

function newout = PostSimFunction(simOut, fm)

%計算阻抗

newout.Ro = sum(simOut.get('Vout') .* exp(-1j * 2 * pi * fm * simOut.get('to')))...

/sum(simOut.get('Iout') .* exp(-1j * 2 * pi * fm * simOut.get('to')));

%計算效率

newout.u = (mean(simOut.get('Vout'))*mean(simOut.get('Iout')))/(mean(simOut.get('Vi'))*mean(simOut.get('Ii')));

%清空simOut

simOut.Vout = 0;

simOut.Iout = 0;

simOut.to = 0;

simOut.fm = 0;

end

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

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

相關文章

Workbench 中的熱源仿真

探索使用自定義工具對移動熱源進行建模及其在不同行業中的應用。 了解熱源動力學 對移動熱源進行建模為各種工業過程和應用提供了有價值的見解。激光加熱和材料加工使用許多激光束來加熱、焊接或切割材料。盡管在某些情況下,熱源 (q) 不是通…

I2C基礎知識

引言 這里祝大家新年快樂!前面我們介紹了串口通訊協議,現在我們繼續來介紹另一種常見的簡單的串行通訊方式——I2C通訊協議。 一、什么是I2C I2C 通訊協議(Inter-Integrated Circuit)是由Phiilps公司在上個世紀80年代開發的&#…

深度學習 DAY3:NLP發展史

NLP發展史 NLP發展脈絡簡要梳理如下: (遠古模型,上圖沒有但也可以算NLP) 1940 - BOW(無序統計模型) 1950 - n-gram(基于詞序的模型) (近代模型) 2001 - Neural language models&am…

CSS 背景與邊框:從基礎到高級應用

CSS 背景與邊框:從基礎到高級應用 1. CSS 背景樣式1.1 背景顏色示例代碼:設置背景顏色 1.2 背景圖像示例代碼:設置背景圖像 1.3 控制背景平鋪行為示例代碼:控制背景平鋪 1.4 調整背景圖像大小示例代碼:調整背景圖像大小…

HarmonyOS簡介:應用開發的機遇、挑戰和趨勢

問題 更多的智能設備并沒有帶來更好的全場景體驗 連接步驟復雜數據難以互通生態無法共享能力難以協同 主要挑戰 針對不同設備上的不同操作系統,重復開發,維護多套版本 多種語言棧,對人員技能要求高 多種開發框架,不同的編程…

【Linux】列出所有連接的 WiFi 網絡的密碼

【Linux】列出所有連接的 WiFi 網絡的密碼 終端輸入 sudo grep psk /etc/NetworkManager/system-connections/*會列出所有連接過 Wifi 的信息,格式類似 /etc/NetworkManager/system-connections/AAAAA.nmconnection:pskBBBBBAAAAA 是 SSID,BBBBB 是對…

如何使用tushare pro獲取股票數據——附爬蟲代碼以及tushare積分獲取方式

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、pandas是什么?二、使用步驟 1.引入庫2.讀入數據 總結 一、Tushare 介紹 Tushare 是一個提供中國股市數據的API接口服務,它允許用戶…

觀察者模式和訂閱發布模式的關系

有人把觀察者模式等同于發布訂閱模式,也有人認為這兩種模式存在差異,本質上就是調度的方法不同。 發布訂閱模式: 觀察者模式: 相比較,發布訂閱將發布者和觀察者之間解耦。(發布訂閱有調度中心處理)

linux 環境安裝 dlib 的 gpu 版本

默認使用 pip 安裝的 dlib 是不使用 gpu 的 在國內社區用百度查如何安裝 gpu 版本的 dlib 感覺信息都不太對,都是說要源碼編譯還有點復雜 還需要自己安裝 cuda 相關的包啥的,看著就頭大 于是想到這個因該 conda 自己就支持了吧,然后查了一下…

【HarmonyOS之旅】基于ArkTS開發(三) -> 兼容JS的類Web開發(二)

目錄 1 -> HML語法 1.1 -> 頁面結構 1.2 -> 數據綁定 1.3 -> 普通事件綁定 1.4 -> 冒泡事件綁定5 1.5 -> 捕獲事件綁定5 1.6 -> 列表渲染 1.7 -> 條件渲染 1.8 -> 邏輯控制塊 1.9 -> 模板引用 2 -> CSS語法 2.1 -> 尺寸單位 …

三路排序算法

三路排序算法 引言 排序算法是計算機科學中基礎且重要的算法之一。在數據分析和處理中,排序算法的效率直接影響著程序的執行速度和系統的穩定性。本文將深入探討三路排序算法,包括其原理、實現和應用場景。 一、三路排序算法的原理 三路排序算法是一…

Python的那些事第五篇:數據結構的藝術與應用

新月人物傳記:人物傳記之新月篇-CSDN博客 目錄 一、列表(List):動態的容器 二、元組(Tuple):不可變的序列 三、字典(Dict):鍵值對的集合 四、集合&#xf…

【AI】DeepSeek 概念/影響/使用/部署

在大年三十那天,不知道你是否留意到,“deepseek”這個詞出現在了各大熱搜榜單上。這引起了我的關注,出于學習的興趣,我深入研究了一番,才有了這篇文章的誕生。 概念 那么,什么是DeepSeek?首先百…

MapReduce簡單應用(一)——WordCount

目錄 1. 執行過程1.1 分割1.2 Map1.3 Combine1.4 Reduce 2. 代碼和結果2.1 pom.xml中依賴配置2.2 工具類util2.3 WordCount2.4 結果 參考 1. 執行過程 假設WordCount的兩個輸入文本text1.txt和text2.txt如下。 Hello World Bye WorldHello Hadoop Bye Hadoop1.1 分割 將每個文…

Dest1ny漏洞庫:用友 U8 Cloud ReleaseRepMngAction SQL 注入漏洞(CNVD-2024-33023)

大家好,今天是Dest1ny漏洞庫的專題!! 會時不時發送新的漏洞資訊!! 大家多多關注,多多點贊!!! 0x01 產品簡介 用友U8 Cloud是用友推出的新一代云ERP,主要聚…

使用where子句篩選記錄

默認情況下,SearchCursor將返回一個表或要素類的所有行.然而在很多情況下,常常需要某些條件來限制返回行數. 操作方法: 1.打開IDLE,加載先前編寫的SearchCursor.py腳本 2.添加where子句,更新SearchCursor()函數,查找記錄中有<>文本的<>字段 with arcpy.da.Searc…

使用國內鏡像加速器解決 Docker Hub 拉取鏡像慢或被屏蔽的問題

一、問題背景 Docker Hub 是 Docker 默認的鏡像倉庫&#xff0c;但由于網絡限制&#xff0c;國內用戶直接拉取鏡像可能面臨以下問題&#xff1a; 下載速度極慢&#xff08;尤其是大鏡像&#xff09;。連接超時或完全被屏蔽&#xff08;部分網絡環境&#xff09;。依賴國外源的…

AI大模型開發原理篇-4:神經概率語言模型NPLM

神經概率語言模型&#xff08;NPLM&#xff09;概述 神經概率語言模型&#xff08;Neural Probabilistic Language Model, NPLM&#xff09; 是一種基于神經網絡的語言建模方法&#xff0c;它將傳統的語言模型和神經網絡結合在一起&#xff0c;能夠更好地捕捉語言中的復雜規律…

2.1.2 Bayer陣列與去馬賽克

文章目錄 Bayer陣列去馬賽克方法 Bayer陣列 由于傳感器只能感受到光的強度&#xff0c;而無法感知顏色&#xff0c;所以需要用紅、綠、藍顏色的濾光片將光中的R、G、B亮度濾出&#xff0c;再通過R、G、B的組合得到各種色彩。Bayer陣列是使用一個傳感器獲得彩色圖像的方法&#…

紅黑樹的學習

紅黑樹的概念 紅黑樹&#xff0c;是一種二叉搜索樹&#xff0c;但在每個結點上增加一個存儲位表示結點的顏色&#xff0c;可以是Red或 Black。 通過對任何一條從根到葉子的路徑上各個結點著色方式的限制&#xff0c;紅黑樹確保沒有一條路徑會比其他路徑長出倆倍&#xff0c;因…