基于雙NIOSII軟核處理器的脫丁烷塔控制系統
摘 要:介紹了基于A(yíng)LTERA公司FPGA的雙NIOSII軟核處理器在化工設備——脫丁烷塔控制系統中的應用。由于雙CPU處在同一塊FPGA芯片中,并且分擔了不同的控制環(huán)節,使得整個(gè)控制系統與同功能類(lèi)型產(chǎn)品相比,在成本顯著(zhù)降低的同時(shí),安全性和抗擾動(dòng)能力大幅提升。
關(guān)鍵字:雙核NIOSII處理器;FPGA;mutex互斥單元;IIR無(wú)限長(cháng)單位脈沖相應;DMC動(dòng)態(tài)矩陣控制算法
引言
在脫丁烷塔和其他工業(yè)設備控制系統中,控制系統處理能力和安全穩定性是最重要的設計環(huán)節。除去DCS/PLC等極其昂貴的控制器外,目前中型企業(yè)的控制方案主要有兩類(lèi),即傳統8位單片機系統和32位DSP/ARM 組成的數字信號處理器系統。前者雖然有成熟的設計應用案例,但由于芯片本身的局限,其較低的運算速度和有限的外設擴展能力在面對結構復雜且需要大量數據計算的設備控制時(shí)力不從心;而后者雖然擁有高速的運算性能,但由于所有工作(數據處理,人機交互等)都落在一個(gè)芯片中,很容易造成擾動(dòng)。若使用雙芯片(如DSP+FPGA),數據傳輸的延遲也成為很難解決的瓶頸。本設計正是充分考慮到了以上問(wèn)題,應用ALTERA公司最先進(jìn)的SOPC(片上可編程系統)軟核CPU技術(shù),提出了一種運算處理能力和工業(yè)安全性兼得的解決方案。最后通過(guò)高性能DMC(動(dòng)態(tài)矩陣控制)算法的控制測試,證明該方案具有非常穩定的實(shí)時(shí)控制效能。
1 脫丁烷塔結構分析與NIOSII軟核處理器簡(jiǎn)介。
在由中國石化北京設計院設計的煉油廠(chǎng)1萬(wàn)m3/h制氫裝置中,脫丁烷塔系統是一個(gè)非常重要的環(huán)節。其設備組成與控制模型如圖1所示。該設備對控制器有3個(gè)控制輸入,4個(gè)輸出和3個(gè)可測擾動(dòng)。
圖1 脫丁烷塔——系統辯識用建模圖
NIOSII是由硬件描述語(yǔ)言編寫(xiě)的基于FPGA的軟核CPU,是ALTERA公司SOPC戰略的重要組成部分[1]。NIOSII嵌入式處理器不僅提供更高的性能、更低的成本,還提供了齊全的軟件開(kāi)發(fā)工具以及同類(lèi)產(chǎn)品不具備的的系統靈活性。它擁有32位指令集,32位數據線(xiàn)寬度,32個(gè)通用寄存器,32個(gè)外部中斷源和2GB尋址空間;基于邊界掃描測試的調試邏輯,支持硬件斷點(diǎn),數據觸發(fā),以及片外和片內的調試跟蹤等高級特性。其結構圖見(jiàn)圖2。
圖2 NIOSII 軟核CPU 結構圖
2 系統總體設計方案
本脫丁烷塔控制系統采用雙NIOSII軟核處理器來(lái)對設備進(jìn)行控制。由于兩個(gè)CPU都是基于同一片FPGA的,因此其信號傳輸不存在任何的延遲,即可以實(shí)現無(wú)縫連接。雙CPU擔當的任務(wù)分別是人機交互和算法實(shí)現環(huán)節。負責算法的CPU(P1)不承擔其他的附加任務(wù),不設置操作系統;另一個(gè)CPU(P2),采用了高實(shí)時(shí)性的UC/OSII操作系統。它承擔算法以外的部分,如紅外遙控啟動(dòng),數字鍵盤(pán)和對主機服務(wù)器的485傳輸等[2]。當因操作不當或通過(guò)RS485傳輸信息不當等原因,系統出現嚴重異常時(shí),P1可以在時(shí)鐘節拍的上升沿到來(lái)時(shí)跳轉到緊急狀態(tài),按照編制好的程序將危險因素盡可能地消除或延遲。這樣就使得控制系統具備了隔離擾動(dòng)源的能力。電路板布局圖見(jiàn)圖3
圖3 FPGA外部板面連接圖
3 硬件電路設計
3.1 FPGA 內部模塊設計及傳感器收發(fā)單元設置
算法以及工作代碼存儲在EPCS4串行配置器件中,在上電時(shí)被讀入到RAM中執行??刂葡到y和主機服務(wù)器之間采用高速RS-485傳輸方式,溫度傳感器采用DOLLAS公司的1線(xiàn)式溫度傳感器。485傳輸協(xié)議采用集成在FPGA內部的IP核,進(jìn)一步減少了版面布線(xiàn)的擾動(dòng)。內部模塊配置圖見(jiàn)圖4。
雙處理器分工明確,所有外設都通過(guò)Avalon總線(xiàn)與CPU進(jìn)行交互。傳感器和A/D轉換器,以及D/A轉換器由右側CPU(P1)管理,這樣當CPU(P2)出現故障時(shí),可以斷開(kāi)兩個(gè)CPU之間的聯(lián)絡(luò )通道,處理器CPU1獨立運行,在一定時(shí)間內保證設備的安全。
在A(yíng)/D傳輸環(huán)節,加入了緩沖校驗模塊(即緩沖池)。這樣做是因為脫丁烷塔在運行時(shí),由于物料含有雜質(zhì)等原因,傳感器常常會(huì )在瞬時(shí)出現偏差較大的測量值,這是應該予以屏蔽的。非正常值校驗緩沖模塊是由Verilog編寫(xiě)的IP核,每當有檢測變量輸入或控制變量輸出時(shí),檢測該數據是否和前/后較短時(shí)間內的波動(dòng)相差過(guò)大;如果是,則應用無(wú)限長(cháng)單位脈沖相應(IIR)算法進(jìn)行線(xiàn)性濾波(見(jiàn)4.1節詳述) 。
圖4 雙NIOSII 處理器 的FPGA 內部模塊配置圖
3.2 雙NIOSII處理器數據/地址指令的交互模塊
處于穩定性的考慮,本設計只使用了一片8M SRAM。雙CPU均運行在此SRAM上。處理器間的信息交互采用非常穩定的共用交換區內存(Shared Memory)的方式(見(jiàn)圖5)。RAM被劃分成4片可用區間,即兩個(gè)處理器由地址偏移開(kāi)始的空間,應用程序被EPCS4載入時(shí)的存儲區和共享內存區。由于CPU1專(zhuān)門(mén)負責算法,本設計將其在內存中的起始位置放在了0偏移處,以保證最簡(jiǎn)便的尋址路徑。
圖5 雙處理器對內存空間的使用
互斥信號量(mutex)是解決雙處理器爭用存儲器的關(guān)鍵。它的位寬為2x32bit(見(jiàn)表1)。首先將VALUE值置0x0000,RESET位賦‘1’,使能mutex。CPU(P1)在時(shí)鐘節拍的激勵下,發(fā)出對共享內存的讀寫(xiě)需求,這時(shí)如果mutex標識為可用,并且其OWNER值等于CPU(P1)的ID,便獲得其使用權;所有操作要在一個(gè)時(shí)鐘節拍內完成,然后交出mutex的使用權,將OWNER變成CPU(P2)的ID,再向VALUE寫(xiě)入0x0000清零。下一個(gè)時(shí)鐘節拍來(lái)到時(shí)CPU(P2)檢查OWNER值,將自己的ID與OWNER值相比較,相同則獲得使用權,然后依據地址偏移從共享內存讀出或寫(xiě)入數據。這是最為安全的交換數據方式,因為中間需要確認的只是一個(gè)標識CPU許可與否的32bit位,數據本身在內存上并沒(méi)有移動(dòng),所以不存在大規模的數據拷貝或尋址。雙處理器在SOPCBuilder中的連接圖見(jiàn)圖6。
偏移量 |
寄存器 名稱(chēng) |
讀/寫(xiě) |
位描述符 | ||
31 … 16 |
15 … 1 |
0 | |||
0 |
mutex |
RW |
OWNER |
VALUE | |
1 |
reset |
RW |
N/A |
N/A |
RESET |
表1 mutex 互斥單元結構
圖6 雙處理器及片上外設在SOPCBuilder中的連接圖
4 軟件設計
4.1 無(wú)限長(cháng)單位脈沖相應(Infinite-Duration Impulse Response,IIR)算法[3]
IIR算法是應用較廣泛的濾波算法,常常用于數字系統設計中,對輸入信號進(jìn)行線(xiàn)性化調整。這里應用IIR算法對接收的測量值進(jìn)行調整,以避免瞬時(shí)采樣的劇烈變化使監控單元發(fā)生誤報[4]。IIR 濾波器由前饋濾波器和反饋濾波器兩部分組成,公式為: 。Verilog核心實(shí)現代碼如表2:
表2 IIR算法實(shí)現輸入信號過(guò)濾的核心代碼
4.2 控制程序流程圖
圖7 脫丁烷塔控制系統軟件程序流程圖
控制程序主要分為三部分,即控制器初始化,控制器運行和故障工況處理(見(jiàn)圖7)。
初始化部分:進(jìn)行一系列的系統上電啟動(dòng)工作。當控制器被工控主機或紅外遙控啟動(dòng)后,主機首先檢測控制器是否有響應;確認后控制器初始化EPCS4;建立各個(gè)CPU的On Chip Memory,配置SRAM和mutex單元。最后檢查初始化是否成功并報告結果。失敗則返回并報警。程序運行部分:初始化完成后,控制器開(kāi)始接收由傳感器測量并經(jīng)A/D轉換的數據,檢測沒(méi)有超界后,輸出到D/A對脫丁烷塔進(jìn)行控制操作。對主機的顯示操作放在D/A輸出之后,以保證控制的實(shí)時(shí)性。主機設置指令的獲得,要優(yōu)先于發(fā)送工況數據到主機顯示的操作,這樣可以在第一時(shí)間按照主機指令配置控制器參數。
故障處理部分:如果發(fā)生異常,則轉入故障處理狀態(tài)。這時(shí)要盡量去除有可能帶來(lái)干擾的模塊,而且要撤消mutex信號量;不允許CPU1再與另一個(gè)處理器交互,因為此時(shí)由主機或數字鍵盤(pán)傳來(lái)的數據已不可靠。負責算法的CPU1盡量使用緊急狀態(tài)的處理算法,一旦失敗,則直接關(guān)閉控制器,轉成人工操作。
4.3 DMC動(dòng)態(tài)矩陣控制算法[5]
DMC 算法是一種基于對象階躍響應的預測控制算法,它適用于漸進(jìn)穩定的線(xiàn)性對象。對于脫丁烷塔控制系統,DMC控制包括三個(gè)部分:即預測模型、滾動(dòng)優(yōu)化和反饋校正。
預測模型:系統有m=3個(gè)控制輸入、n=3個(gè)可測擾動(dòng)和p=4個(gè)輸出,在采樣點(diǎn)上每一個(gè)輸出yi對每一個(gè)輸入uj的階躍響應為aij(t),對每一個(gè)可測擾動(dòng)ds單位階躍響應為dik(t),其中i=1,…,4; j=1,…,3;s=1,…,3?,F在我們假設在k時(shí)刻uj均變化M次,根據線(xiàn)性系統疊加原理可得到多變量系統預測模型:A稱(chēng)為動(dòng)態(tài)矩陣,其元素為描述系統動(dòng)態(tài)特性的階躍響應系數。系統在優(yōu)化時(shí)域P內:
滾動(dòng)優(yōu)化:DMC算法不是采用一個(gè)不變的全局最優(yōu)化目標,而是采用滾動(dòng)式的有限時(shí)域優(yōu)化策略。在多變量DMC的滾動(dòng)優(yōu)化中,要求每一輸出Yi在未來(lái)P個(gè)時(shí)刻緊密跟蹤相應的期望值W,性能指標可以表示為: 通過(guò)極值必要條件求得:其中Q, R是權系數矩陣,表示對跟蹤誤差和控制變化的抑制。
反饋校正:每一步優(yōu)化進(jìn)行前,都要檢測實(shí)際輸出并與預測輸出進(jìn)行比較,得到誤差信息后對預測模型進(jìn)行校正,在一定程度上補償由于物料含有雜質(zhì)或回流受到擾動(dòng)等不確定因素對系統的影響。
誤差信息表示為e(k+1)=y(k+1)-yPM(k+1),e(k+1)為下一步優(yōu)化的預測誤差矩陣,其中e(k+1)=[e1(k+1)…e4(k+1)]T; y(k+1)=[y1(k+1)…y4(k+1)]T; yp(k+1)=[y1,p(k+1)…y4,p(k+1)]T
5 測試結果與總結
應用DMC動(dòng)態(tài)矩陣控制算法,為了檢驗本控制器對控制性能改進(jìn)程度,特別使用了脫丁烷塔系統半實(shí)物仿真控制模型與Matlab理論模型進(jìn)行了對比測試。實(shí)際控制器輸出與理論仿真程序輸出比較結果見(jiàn)圖8。取控制參數P=23, M=1, q=0.12, r=0.00005, N=150。
圖8 兩種控制系統同工段內按時(shí)間壓縮后的擬合比較圖
由圖中可以看出,在3個(gè)控制輸入的作用下,基于雙NIOSII 控制器的控制性能非常穩定,4個(gè)輸出曲線(xiàn)鋸齒幅度(即跑偏程度)非常小。這是因為本控制器負責算法的CPU1不必分出時(shí)鐘周期來(lái)被動(dòng)地響應中斷,以接受和發(fā)送來(lái)自主機或其他模塊的信號,所以屏蔽了各種外部干擾,可以全速執行算法;同時(shí)又由于在FPGA內編寫(xiě)了瞬時(shí)異常態(tài)高速緩沖模塊,用于消除物料或管道內雜質(zhì)在傳感器附近發(fā)生化學(xué)/物理變化而產(chǎn)生的影響,因此在最大程度上減少了控制器誤動(dòng)作的發(fā)生。另外,將RS485通訊模塊和其它FIFO單元內置成FPGA的IP核,既節約了PCB板面積,又屏蔽了走線(xiàn)時(shí)產(chǎn)生的干擾。
基于SOPC的多處理器技術(shù),以其高速并行處理能力和更為合理的工作分配方法,基本上代表了高速并行數據運算的發(fā)展趨勢,因此一定會(huì )成為未來(lái)重要研究和應用方向之一。
參考文獻
1 NIOSII Processor Reference Handbook. Altera 公司,2005
2 Jean J. Labrosse. MicroC/OS-II The Real-Time Kernel.第2版. 北京:北京航空航天大學(xué)出版社,2003
3 Samir Palnitkar. Verilog HDL 數字設計與綜合.電子工業(yè)出版社,2006年2月,P133
4 Mary McCarthy. Peak-to-Peak Resolution Versus Effective Resolution. Application Note AN-615.Analog Device
Inc,2003
5 Richalet J. et al. Model predictive control: application to industrial process. Automatica, 1978,
14(4): 400-435
附錄:原創(chuàng )性聲明、英文標題、關(guān)鍵字及摘要
原創(chuàng )性聲明:本論文第一作者牛思文及導師夏濤鄭重聲明,該論文為原創(chuàng )性作品,屬自主研究的實(shí)驗成果,沒(méi)有對其他論文的文字或專(zhuān)利性技術(shù)存在任何剽竊行為。
The control system of Debutanizer with the Dual-NiosII CPU
Abstract:We described the application of Altera’s NiosII (Dual) Soft-Core CPU (Based on FPGA) on the chemical industrial equipment—Debutanizers. Since multi-NiosII CPUs lie in one chip of FPGA, and they have implemented different parts of control flow, the whole system can consume lower budget while gaining more safety and stability.
Key Word:Dual-Core NIOSII; FPGA; Mutual Exclusion Unit; Infinite-Duration Impulse Response (IIR) Algorithm;
Dynamic Matrix Control (DMC) Algorithm
作者簡(jiǎn)介與通訊地址
牛思文,男,1982年1月出生,北京化工大學(xué)自動(dòng)化系碩士研究生,本科畢業(yè)于北京化工大學(xué)自動(dòng)化系,現從事系統工程與化工仿真技術(shù)研究。
夏濤,男,北京化工大學(xué)系統工程系副教授,導師,從事系統仿真程序及工業(yè)控制電路研究
通訊地址:北京市朝陽(yáng)區櫻花東街9號樓6門(mén)504,牛思文。
郵 編:100029
電 話(huà):01064436589/13661042850
email :mage1982@vip.sina.com
評論