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