PLECS中DLL模塊的使用
之前發(fā)布了一篇文章,介紹如何使用PSIM中的DLL模塊。而本篇文章的內(nèi)容與之類似,不過主角換成了PLECS。
PLECS和PSIM類似,也屬于電力電子仿真軟件,使用方便,仿真速度快,和Matlab也有一定的聯(lián)系,有興趣的可以去試試。PLECS可以利用外部動態(tài)鏈接庫(DLL)來調(diào)用外部的代碼參與仿真,方便復雜控制算法的實現(xiàn),也有利于后期直接將代碼移植到硬件控制器上。
本篇文章主要參考B站UP主“_zgj”老師的視頻,算是他視頻的一個文本化,便于自己學習。

?
順帶提一嘴,“_zgj”老師水平真的超高,在他的這期視頻里,竟然是用Windows的命令行處理窗口來進行代碼的編譯等操作,實在是太帥了。本人水平有限,就總結(jié)了一種比較簡單的方法來使用。除此之外,“_zgj”老師還有不少豐富知識和高級操作,歡迎大家前去關注學習。
閑話少敘,進入正題:
本次用到的軟件主要是Visual Studio 2022 (VS 2022)和PLECS 4.68。
一、總體思路
與PSIM中DLL模塊的使用類似,在PLECS中要找到DLL模塊,在VS中編寫需要的代碼并生成“.dll”文件,最后通過某種方式將兩者聯(lián)系起來即可
二、具體實現(xiàn)
1 PLECS的運行界面如下:

包含兩個部分,左邊是庫,右邊是新建的一個Model
要使用DDL,可以在“Library”中搜索DLL,或者直接在新建的model主界面上打“DLL”,便可以找到該模塊

雙擊“DLL”,彈出模塊的參數(shù)設置窗口
(1) Filename:這里需要填入最后生成的“.dll”文件路徑以及文件名,后面會提到;
(2) Sample time:顧名思義就是采樣時間,可以填入實際需要的時間。如果填了“-1”,表明所采用的采樣時間是繼承于上一級模塊的設置;
(3) Output delay 和 Parameters:這個暫且不管。
假設我們現(xiàn)在希望通過DLL將兩個輸入信號分別進行放大10倍和加上10的操作,那么在輸入端可以先簡單這樣給定

2 接下來打開VS,選擇新建項目

選擇Windows桌面向?qū)?/p>
給項目命名并選擇合適的保存路徑

選擇動態(tài)鏈接庫(.dll),空項目

3 接下來是關鍵的部分:要在VS里面編寫相應的接口函數(shù)。
先新建一個“.c”文件。和PSIM那一篇文章類似,要注意把“.c”后綴名寫好。


要準備的內(nèi)容主要可以分成四個部分:頭文件,輸入以及輸出接口,還有要實現(xiàn)的功能部分。這里直接給上代碼,在使用的時候基于此進行修改即可
保存文件后,點擊菜單中的“生成”,再選擇“生成解決方案“。
?
一般來說,這里會報錯,顯示找不到“Dllheader.h”,這時我們需要對左側(cè)欄中的項目進行右擊,選擇屬性,再進行如下操作



具體的路徑為:(每個人的PLECS安裝路徑會各有不同)

雖然這里顯示“沒有與搜索條件匹配的項”,但是沒有關系,因為在VS里看不到相關的文件,直接選擇該文件夾即可。
這時再進行編譯操作就不會有錯了。
?
4 為了將生成的“.dll”文件和PLECS連接起來,我們需要找到文件的路徑和文件名,就在我們建立的項目里

而后將該信息填寫進DLL的 “Filename”一欄中

5 最后,設置好相關的仿真參數(shù),見證結(jié)果吧!
?

很顯然,仿真和我們期望的一致!
?
寫在后面:
DLL模塊的“help”文檔中其實介紹了很多東西,包括輸入輸出,一些接口函數(shù)的寫法等等,有興趣的可以去看看。比如
?

