李 靖,汪光森 ,劉振田 ,侯承璽 ,覃 剛
LI Jing1,2,WANG Guangsen1,LIU Zhentian1,HOU Chengxi1,2,QIN Gang2
1.海軍工程大學 艦船綜合電力技術國防科技重點實驗室,武漢 430033
2.武漢船用機械有限責任公司,武漢 430084
1.School of National Key Laboratory for Vessel Integrated Power System Technology,Naval University of Engineering,Wuhan 430033,China
2.Wuhan Marine Machinery Co.,Ltd.,Wuhan 430084,China
現代復雜機電系統,如電磁發射裝置、高速電氣列車、高速軋機和機器人等無不是集機、電、液和控制于一體的復雜耦合系統,涉及到機械系統、電路電磁系統、液壓系統、熱力系統等多個學科領域交融,屬于多能域耦合系統[1-3]。為了充分研究各種因素對復雜機電系統的性能影響和降低研制成本,有必要利用仿真技術對復雜機電系統的整個運行過程進行模型建立及仿真分析[4-6]。利用硬件在回路實時仿真技術,采用實際控制器和虛擬對象,以實時處理器運行仿真模型來模擬受控對象的運行狀態,通過I/O接口與被測系統控制器連接,進行整個機電系統的實時仿真測試[7-9]。

圖1 實時仿真系統結構框圖
復雜機電系統控制器接口信號數量眾多,由于受經濟成本、硬件資源等因素制約,實時仿真系統中仿真通道遠遠小于控制器接口信號數量,不能滿足復雜機電系統接口信號同步仿真的需求。
本文擬通過在外接設備中擴展I/O板卡,配合采用信號復用/解復用算法,解決實時仿真系統中仿真通道不夠用的技術難題。
實時仿真系統主要包括上位機、下位機及實際系統的外接設備[10-12]。上位機,也稱主機,運行于Windows操作系統,主要完成仿真模型的設計實現,仿真參數的配置、仿真運行的管理以及仿真結果的顯示;下位機,也稱目標機,運行Redhat實時操作系統的高性能仿真器,負責快速分布式協調計算,并連接FPGA處理I/O數據,從而實現整個模型的實時運行;外接設備包括擴展I/O接口板卡和實際控制器。上位機與下位機之間通過TCP/IP連接,下位機之間通過PCI-E協議進行連接,實時仿真系統結構如圖1所示。
復用/解復用算法實現包含三個步驟:
(1)一個仿真周期T內,將N路仿真信號在CPU模型中分類打包處理,并發送給目標機的共享內存。
(2)在目標機FPGA中調用復用算法。從共享內存中讀取數據包,將N路信號分成M組,對FPGA時鐘信號計數并生成同步Sync時鐘信號[13],將Sync時鐘信號、復用算法的尋址信號和分組后的仿真信號重組,并在一個仿真周期T內分成M段,通過仿真輸出通道分批發送到外接設備。
(3)解復用算法在外接設備擴展I/O的接口板卡CPLD中實現。根據重組信號中的Sync時鐘信號和尋址信號,將分段接收的M段信號解復用,還原成N路仿真信號,并發送給被測系統控制器。
復用/解復用算法信息流傳輸過程示意如圖2所示。

圖2 信息流傳輸過程示意
某實時仿真系統中,仿真機內嵌輸出板卡每塊包含16個仿真輸出通道,常規模式下在一個仿真步長里,每塊只能發送16路仿真信號。擬通過該復用/解復用算法,實現使用其中N1(N1<16)個仿真通道,在一個仿真周期T內發送N路(N>16)仿真信號,從而驗證算法功能的可行性。
定義CPU模型仿真周期T=25μs,仿真信號個數N=40,將仿真信號每20路移位相加,打包成2個Uint32類型數據發送給共享內存,CPU模型處理過程如圖3所示。

圖3 CPU模型信號處理過程
FPGA時鐘周期T1=10ns,采用計數模塊對時鐘信號計數,模型中設置在CPU仿真周期T=25μs內,時鐘信號計數K不超過T/T1=2 500個。
每塊仿真機內嵌輸出板卡含16個仿真輸出通道CH0~CH15,擬使用N1=14個通道,預留2個作為專用信號通道。仿真通道資源分配如表1所示,“Sync時鐘信號”占1位,實現復用和解復用數據同步;“仿真信號”占10位,即每組可發送10路不同信號;“Adr尋址信號”占3位,則M≤23=8,一個仿真周期最多可發送8組。此資源配置最多可供10×23=80路仿真信號使用,由于仿真信號數N=40,可取M=4。

表1 仿真通道資源分配
每組仿真時間劃分需適宜,若一個步長內FPGA總耗用時間超過T=25μs,會引起CPU模型仿真超時;若FPGA每組仿真時間段太短,會增加CPLD解復用難度,引起仿真信號丟失。復用算法時序如圖4所示,在第n個T=25 μs,第一組0~6 μs,第二組6~12 μs,第三組12~18 μs,第四組18~25 μs,每組復用信號由10位仿真信號和3位Adr尋址信號組成;在第n+1個仿真步長T=25μs,循環使用該復用算法。

圖4 復用算法時序
FPGA復用算法模型如圖5所示,在XSG組件下建立圖形化仿真模型,內含復用算法中時序選擇的Sel信號功能封裝模塊和解復用算法中數據同步的Sync信號功能封裝模塊,并最終生成VHDL硬件代碼運行于FPGA中[14-15]。
外接設備的接口板卡接收仿真通道CH0~CH13發送的重組信號。CPLD解復用算法每檢測到引自通道CH0的Sync時鐘信號上升沿,根據通道CH1~CH3接收的尋址信號,解復用通道CH4~CH13的10路仿真信號,并發送給被測系統控制器。
解復用算法時序如圖6所示,在第n個T=25μs,Sync時鐘信號在第2 μs產生上升沿,該時刻調用解復用算法,在0~6 μs內尋址信號為第一組,故解碼出第一組的10路仿真信號;同理,另外三組解復用算法分別在8 μs、14 μs和 20 μs時刻調用;在第n+1 個仿真步長T=25μs,循環使用該解復用算法。

圖6 解復用算法時序
將通道CH1~CH3接收的尋址信號進行邏輯處理,生成尋址片選信號,作為解復用程序的信號輸入,如表2真值表所示。

表2 尋址信號真值表

圖5 FPGA復用算法模型
仿真信號解復用程序如圖7所示,解復用功能模塊由Verilog代碼封裝而成。該功能模塊包含3類信號輸入:同步時鐘Sync、尋址片選Adr和仿真信號din[9..0],其中,從第一組到第四組,尋址片選Adr分別取表2中Adr0~Adr3對應值。信號輸出為每組解復用后的仿真信號dout[9..0],解復用后的40路仿真信號經dout_a[9..0]、dout_b[9..0]、dout_c[9..0]和dout_d[9..0]發送給被測系統控制器。

圖7 CPLD解復用程序原理圖
將CPU模型和FPGA復用算法模型編譯下載到仿真器中,在線修改CPU模型中仿真信號Signal1~40,通過表3所示40路仿真信號對復用算法進行仿真驗證。

表3 仿真信號
復用算法仿真波形如圖8所示,圖(a)是實現復用和解復用數據同步的Sync時鐘信號輸出波形,通過仿真通道CH0發送,仿真結果與圖6表述的解復用算法時序一致;圖(b)是重組后的Adr尋址信號,通過仿真通道CH1~CH3發送,仿真結果與圖4表述的復用算法時序一致;選擇輸出仿真信號通道的仿真波形,圖(c)~(f)分別為仿真通道CH4、CH7、CH10和CH13的復用信號輸出波形,在每個仿真周期里,仿真通道輸出4次信號,通道CH4輸出信號“0011”,通道CH7輸出信號“0101”,通道CH10輸出信號“1010”,通道CH13輸出信號“1100”,復用仿真結果與表3預設仿真信號內容一致。

圖8 復用算法仿真波形
圖8仿真波形結果表明,在FPGA運行該復用算法,能夠在一個仿真周期內正確完成對40路仿真信號的復用重組。
解復用算法仿真波形如圖9所示,在第2 μs,Sync時鐘信號上升沿,調用解復用算法程序,此時Adr尋址信號為“001”,仿真通道CH4~CH13解復用輸出第一組仿真信號Sigal1~10,圖中顯示Sigal1、Sigal4、Sigal7和Sigal10與對應仿真通道CH4、CH7、CH10和CH13此時刻輸出信號一致;在第8 μs,Adr尋址信號為“010”,解復用輸出第二組仿真信號Sigal11~20,圖中顯示Sigal11、Sigal14、Sigal17和Sigal20與對應仿真通道CH4、CH7、CH10和CH13此時刻輸出信號一致;在第14 μs和第20 μs,發送第三組Sigal21~30和第四組Sigal31~40,解復用仿真結果與表3預設仿真信號內容一致。

圖9 解復用算法仿真波形
圖9仿真波形結果表明,該解復用算法能夠在一個仿真周期內完成對復用信號的正確解碼,并將還原后的仿真信號發送給被測系統控制器。
針對實時仿真系統中仿真通道不夠用的技術難題,本文提出了一套信號復用/解復用算法,并通過實例應用對算法進行了功能仿真驗證。仿真結果表明,該套算法實現了在一個仿真步長里,通過少量仿真輸出通道與被測控制器同步交互大量仿真信號的功能。然而,本文提出的信號復用/解復用算法存在一定的局限性,算法僅適用于離散型信號交互,而對需要數據帶寬較大的模擬量信號并不適用。如何通過算法實現模擬量信號仿真通道擴展,有待進一步研究。
將本套復用/解復用算法應用于某復雜機電系統中,在優化復雜機電系統的設計、可行性研究、決定系統的運行工況、故障分析等方面起到了重要作用。
[1]郭建英,孫永全,于春雨,等.復雜機電系統可靠性預測的若干理論與方法[J].機械工程學報,2014,50(14):1-13.
[2]王成龍.復雜機電系統統一建模與仿真技術研究[D].濟南:山東科技大學,2009.
[3]Wang Rongxi,Gao Jianmin,Gao Zhiyong.Complex network theory-based condition recognition of electromechanical system in process industry[J].Technological Sciences,2016,59(4):604-617.
[4]宋立新,何宇平.駕駛員在環的SUV防側翻控制器實時仿真設計[J].計算機工程與應用,2016,52(9):223-227.
[5]郭希錚,游小杰,徐從謙,等.大功率電力牽引控制系統硬件在回路實時仿真[J].電工技術學報,2012,27(4):65-70.
[6]張洪昌,丁建完.基于Modleica的操縱穩定性實時仿真方法研究[J].計算機工程與應用,2015,51(3):31-34.
[7]宋煒.基于MATLAB的無人機硬件在回路仿真技術研究[D].南京:南京航空航天大學,2008.
[8]劉陳.CRH5型高速動車組半實物仿真系統[D].北京:北京交通大學,2014.
[9]郝琦.電力牽引交流傳動系統FPGA建模及硬件在環仿真[D].成都:西南交通大學,2015.
[10]劉輝鵬,汪光森,陳維.RT_LAB中的脈沖信號輸入輸出處理模塊特性[J].計算機應用,2015,35(S1):239-242.
[11]周治國,楊亮,劉志文.基于FPGA的實時半實物仿真平臺的實現[C]//全國信號和智能信息處理與應用學術會議論文集,2012:115-118.
[12]常曉飛,符文星,閆杰.基于RT_LAB的某型導彈半實物仿真系統設計[J].系統仿真學報,2009,21(18):5720-5723.
[13]廖艷,王廣君,高楊.FPGA異步時鐘設計中的同步策略[J].自動化技術與應用,2006,25(1):67-69.
[14]劉純武,黃芝平.一種多通道信號處理復用結構及其FPGA實現方法[J].電子測量與儀器學報,2008,22(1):72-75.
[15]李欣.基于FPGA的片上多處理器建模方法[D].合肥:中國科學技術大學,2012.