張 圣, 李震梅, 李海濤, 路 通, 柳 娜
(山東理工大學 電氣與電子工程學院, 山東 淄博 255049)
在關于電路的課程中,一階電路和二階電路的時域分析和線性電路的復頻域分析是教學的難點之一。因為暫態(tài)過程是在極短的時間內(nèi)完成的,學生通過理論分析較難理解,所以筆者結合科研課題開發(fā)了虛擬實驗仿真實驗平臺,用于實驗教學和學生進行綜合性、創(chuàng)新性實驗。目前對電路拓撲結構進行虛擬仿真的平臺主要有Multisim、Saber、Matlab/Simulink等。采用單一虛擬仿真平臺具有很多局限性,例如Matlab界面開發(fā)能力較弱、數(shù)據(jù)的輸入比較繁瑣、參數(shù)設置不便等[1]。本文利用Matlab/Simulink和LabVIEW進行聯(lián)合仿真[2-5],為復雜電路系統(tǒng)的建模與仿真提供了新平臺。
作為實驗案例,介紹了基于Simulink和LabVIEW的脈沖電源虛擬仿真實驗。利用模型接口工具包(model interface tookit,MIT),在Simulink中搭建硬件電路的數(shù)學模型。LabVIEW通過MIT調用Simulink生成的DLL(動態(tài)鏈接庫)文件,利用LabVIEW豐富的圖形界面作為Simulink模型的輸入、輸出,使整個系統(tǒng)形成一個閉環(huán)結構,從而最大限度地真實反映脈沖電源的動態(tài)模型。
高功率脈沖電源的主要元件是脈沖變壓器,超導脈沖變壓器和電容器混合儲能脈沖電源電路如圖1所示[6-7]。在該電路中,E1為初始充電電源,Rs1為電源內(nèi)阻,K1、K2為IGBT開關,L1為脈沖變壓器原邊超導電感,用于儲存來自E1的能量,L2為脈沖變壓器副邊電感,用于感應來自L1的電流脈沖。
圖1 脈沖電源電路圖
整個電路的工作過程可分為3個階段。
(1) 電感充電階段。閉合開關K1,斷開開關K2,初始充電,電源E1向電感L1充電。因為電感L1為超導材料,所以充電過程很快,能量損失也非常小,能實現(xiàn)長時間的充電和儲能,并且二極管D1的設置使電感L1的充電過程不受副邊的影響。當電感電流達到設定值時,充電過程完成。
(2) 電容充電階段。斷開開關K1,同時閉合開關K2,這時電感L1儲存的能量一部分給電容C1充電,直到電容C1上的電壓達到最大值,另一部分通過超導變壓器耦合至副邊產(chǎn)生感應脈沖電流。
(3) 電容放電階段。當電容C1上的電壓達到最大值時,此時電容C1相當于一個電壓源,會對變壓器原邊電感L1進行反向充電,使L1中的電流反向增大,同時L2中的電流就會在互感的作用下進一步增大,能量通過互感器進一步傳遞到副邊。
在原邊電感充電階段,忽略充電電路中等效電感以及開關K1的導通電阻和電感[8],根據(jù)基爾霍夫定律列出充電回路的電壓方程為:
(1)
得i1的狀態(tài)方程為:
(2)
由于該階段僅是對電感進行充電,對整個電路其他部分并沒有影響,故對其建模意義不大,僅取其結果值即可。
在電容充電和電容放電階段,能量是在幾個固定的電路元件進行轉換,故在建模的過程中可將兩個過程合并為一個,工作原理圖如圖2所示:
圖2 電容充放電過程示意圖
根據(jù)Kirchhoff定律,建立脈沖變壓器原邊和副邊的KVL方程:
(3)
(4)
將電容的電流i1和電壓uC取關聯(lián)參考方向,得電容元件的VCR方程為:
(5)
將式(3)、式(4)和式(5)方程聯(lián)立,得i1、i2和uC的狀態(tài)方程為:
(6)
(7)
(8)
將式(6)、式(7)和式(8)在Simulink中建立數(shù)學模型(見圖3)。
為搭建Matlab和LabVIEW的聯(lián)合仿真環(huán)境,在LabVIEW 2012及以前的版本中,可以用工具包SIT(simulation interface tookit)完成,該工具只支持32位Matlab軟件,可以實現(xiàn)兩者同步運行并通信。
但在LabVIEW 2013及以后的版本中,因硬件更新的需要,NI公司不再提供SIT,而是開發(fā)出一種新的接口工具MIT(model interface tookit)。MIT可以集成來自各種模擬環(huán)境和編程語言的模型,MIT支持C/C++、LabVIEW和其他15種以上的環(huán)境。此外,NI在設計時考慮到可用性的要求,提供更易于使用的API和新功能,例如同時執(zhí)行多個模型的能力。
圖3 電容充放電階段建模仿真模型
MIT需集成并打包在NI VeriStand中,所以首先需要搭建Matlab和NI VeriStand的聯(lián)合仿真環(huán)境。NI VeriStand可同時支持32位和64位的Matlab軟件,但不能像SIT那樣實現(xiàn)同步運行并通信,而是需要將Matlab模型通過VeriStand編譯成DLL文件,然后由LabVIEW調用實現(xiàn)聯(lián)合仿真。
軟件的安裝和配置是聯(lián)合仿真實驗的關鍵步驟,且需要遵循一定的順序。應首先安裝Matlab R2014a和LabVIEW 2017,然后安裝VisualStudio 9.0(即VisualStudio 2008,內(nèi)含Microsoft Visual C++ 2008專業(yè)版)以及用于Windows7的Microsoft Windows SDK和.NETF ramework 3.5 SP1,最后安裝NI VeriStand 2017 Model Framework(內(nèi)含模型接口工具MIT)。
找到Visual Studio 9.0安裝位置,在VisualStudio9.0VC路徑下創(chuàng)建一個Platform SDK目錄文件夾,復制MicrosoftSDKsWindowsv7.0路徑下的Bin、Include和Lib目錄,并將其粘貼到VisualStudio9.0VCPlatformSDK目錄下。
通常安裝完VeriStand后,VeriStand和Matlab會進行自動關聯(lián),這時打開使用的Matlab環(huán)境,會在命令窗口前2行顯示如下信息:
NI VeriStand 2017 Model Framework ### Successfully initialized components
如果沒有看到NI VeriStand Server啟動消息,則需要手動關聯(lián),執(zhí)行如下步驟:前往:
C:ProgramFilesMatlab
在Matlab/Simulink中有一個電路模型,若要編譯成一個兼容NI VeriStand的DLL文件,需按以下步驟配置軟件環(huán)境:
(1) 打開Matlab編程環(huán)境,在Matlab命令窗口中輸入mex-setup,選擇Microsoft Visual C++ 2008 Professional(C)以進行C語言編譯;
(2) 在選擇正確的編譯器后,在Simulink中構建編譯模型。首先啟動Simulink軟件并加載要轉換的模型,然后選擇SimulationConfiguration Parameters對話框,進行以下配置:
① 在Solver選項卡中把Stoptime設置為inf,Type設置為Fixed-step;
② 在Code Generation選項卡內(nèi),Target Selection選區(qū)中,System target file選擇NI VeriStand.tlc目標,點擊Build,使其生成包含DLL文件的文件包。
③ 當在Diagnostic Viewer窗口的最下面顯示“Build process completed successfully”,表明Mathworks, Inc. Simulink中的模型成功生成了NI VeriStand兼容的DLL文件;
④ 在Matlab命令窗口中查看代碼的創(chuàng)建和編譯狀態(tài),包括所編譯的DLL模型的目錄位置。
DLL是基于Windows程序設計的一個重要組成部分,它由一系列封裝好的可執(zhí)行代碼組成,其內(nèi)部函數(shù)能被其他程序所共享[9]。DLL的編制與具體的編程語言及編譯器無關,只要遵守DLL的開發(fā)規(guī)范和編程策略,并安排正確的接口,不管用何種編程語言編制的DLL都具有通用性[10-11]。
因MIT集成并打包在NI VeriStand中,故NI VeriStand就相當于一個連接Simulink和LabVIEW的橋梁。一方面,當Matlab和VeriStand關聯(lián)成功后,在Simulink中會有一個模塊組NI VeriStand Blocks,模塊組中包含NI VeriStand In1和NI VeriStand Out1,這兩個模塊分別對應Simulink中硬件電路的輸入和輸出,無具體數(shù)值,需要在LabVIEW中利用數(shù)組連接到MIT上,進行相關數(shù)值或圖形的輸入和輸出。另一方面,在LabVIEW中,NI VeriStand的MIT為Simulink的硬件電路提供了模型接口,Simulink硬件電路模型生成的DLL文件通過文件I/O選板的路徑常量連接到MIT上,從而形成一個閉環(huán)。
調用過程如圖4、圖5和圖6所示。
圖4 LabVIEW調用DLL文件原理圖
圖5 基于Simulink的脈沖電源仿真系統(tǒng)模型
圖6 基于LabVIEW的脈沖電源仿真系統(tǒng)模型
(1) 能夠通過LabVIEW對Simulink的仿真結果實時動態(tài)顯示,且顯示結果與Simulink單獨運行時相同[12]。
(2) 能夠通過LabVIEW修改Simulink硬件電路中各元件的參數(shù),各個參數(shù)和仿真結果同時在LabVIEW前面板界面顯示,實現(xiàn)對脈沖電源運行狀態(tài)的實時監(jiān)測與顯示。
(3) 能夠通過Simulink和LabVIEW的聯(lián)合仿真實現(xiàn)自動控制,使操作簡單易行。
當在LabVIEW程序框圖中編寫好程序后,對照實驗室脈沖電源基本參數(shù),在LabVIEW前面板的數(shù)值輸入控件中輸入相應的數(shù)值,其中初始充電電流i10為80 A,超導電感取典型值L1=13 mH,L2=10 μH,耦合系數(shù)K=0.9,負載電阻Ra=3.75 mΩ,負載電感La=0.5 μH。必須將Simulink和LabVIEW的仿真周期設置一致,本實驗設為2 ms,得到的超導脈沖變壓器原副邊電流及電容電壓如圖7所示。
圖7 基于LabVIEW的脈沖電源系統(tǒng)操作界面圖
圖7中,波形圖清晰地顯示出電容充放電過程以及超導脈沖變壓器原副邊的電流變化。當初始充電電流為80 A時,相對應的超導變壓器副邊脈沖電流最大值為3 243 A,電容電壓最大值為699 V,副邊電流脈沖前沿持續(xù)時間為1.2 ms,電容電壓脈沖前沿持續(xù)時間為0.8 ms。
與現(xiàn)場實驗相比,虛擬仿真實驗輸出的超導變壓器副邊脈沖電流幅值和電容電壓幅值略高,副邊電流脈沖前沿持續(xù)時間略長。這是由于開關K2的導通電阻以及實際電容的自身缺陷造成的。不過仿真結果與現(xiàn)場試驗結果差別不大,驗證了該脈沖電源模型的正確性。
脈沖電源的應用范圍將越來越廣,脈沖電源的開發(fā)需要良好的仿真環(huán)境。本文利用MIT接口技術建立了Simulink和LabVIEW聯(lián)合仿真的閉環(huán)系統(tǒng)。該系統(tǒng)執(zhí)行效率高、操作簡單易行,仿真過程的可視化程度得到提升,參數(shù)修改更為簡便快捷,非常有利于電路的調試和優(yōu)化。把該虛擬仿真平臺應用于電路課程的教學中,不但能夠準確描述復雜電路的波形特性,而且參數(shù)設置方便靈活、圖形界面直觀形象,有利于教學效果的提高。