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