蘇 燁,李 闊,丁 寧,,董 澤,孫堅(jiān)棟
(1.國(guó)網(wǎng)浙江省電力有限公司電力科學(xué)研究院,杭州 310014;2.華北電力大學(xué) 河北省發(fā)電過程仿真與優(yōu)化控制技術(shù)創(chuàng)新中心,河北 保定 071003;3.杭州意能電力技術(shù)有限公司,杭州 310012)
隨著經(jīng)濟(jì)高速發(fā)展,我國(guó)在發(fā)電技術(shù)領(lǐng)域取得了長(zhǎng)足進(jìn)步,大容量、高參數(shù)超(超)臨界機(jī)組逐漸成為主力發(fā)電機(jī)組[1]。但該類機(jī)組的許多被控對(duì)象具有多變量、非線性、強(qiáng)耦合、大滯后的動(dòng)態(tài)特性,采用傳統(tǒng)PID(比例-積分-微分)控制無(wú)法取得理想的控制效果[2]。另一方面,燃煤發(fā)電帶來(lái)了能源短缺和環(huán)境污染等問題[3],為此,政府極力推進(jìn)“節(jié)能減排”政策,促使火電企業(yè)提高機(jī)組運(yùn)行效率、降低污染物排放。
基于上述原因,在發(fā)電自動(dòng)化方面,火電企業(yè)應(yīng)該積極采用先進(jìn)控制技術(shù),以提高機(jī)組控制性能,促進(jìn)“節(jié)能減排”目標(biāo)的實(shí)現(xiàn)?;痣姍C(jī)組一般采用DCS(分散控制系統(tǒng)),控制策略以PID 算法為主。由于DCS 系統(tǒng)不含建模、尋優(yōu)等高級(jí)算法模塊,其固有的控制模塊和控制算法功能簡(jiǎn)單,無(wú)法利用基本控制模塊組態(tài)生成先進(jìn)控制算法邏輯,因此,該系統(tǒng)已不能滿足發(fā)電廠對(duì)控制性能與時(shí)俱進(jìn)的要求。
現(xiàn)階段,一些發(fā)電廠在重要控制回路中利用外掛系統(tǒng)實(shí)現(xiàn)先進(jìn)控制功能[4-6]。該類外掛系統(tǒng)一般以串口方式與DCS 系統(tǒng)進(jìn)行數(shù)據(jù)通信,服務(wù)器(控制器)獲得DCS 數(shù)據(jù)后,調(diào)用先進(jìn)控制模塊計(jì)算控制量,并將結(jié)果傳輸至DCS 系統(tǒng)。外掛先進(jìn)控制系統(tǒng)存在以下缺點(diǎn): 串口通信傳輸速度慢,當(dāng)數(shù)據(jù)量較大時(shí),控制周期較長(zhǎng),影響控制性能;可能因通信異常導(dǎo)致系統(tǒng)無(wú)法投運(yùn);外掛系統(tǒng)不具備靈活的組態(tài)功能,一些簡(jiǎn)單的中間環(huán)節(jié)也需要使用腳本語(yǔ)言編程實(shí)現(xiàn)。此外,外掛系統(tǒng)的先進(jìn)控制算法由供應(yīng)商封裝在軟件中,用戶不能對(duì)其進(jìn)行算法調(diào)整,更不可能用其開發(fā)和應(yīng)用自定義先進(jìn)控制算法。
由于DCS 和外掛先進(jìn)控制系統(tǒng)具有封閉性,當(dāng)用戶需要添加新功能模塊時(shí),必須將算法說明文檔提交至系統(tǒng)供應(yīng)商,由其開發(fā)人員編程實(shí)現(xiàn)。但供應(yīng)商很少愿意提供這類技術(shù)支持,而且將算法文檔公開不利于保護(hù)用戶的知識(shí)產(chǎn)權(quán)。具有二次開發(fā)功能的軟件系統(tǒng),如PI 實(shí)時(shí)數(shù)據(jù)庫(kù)、百度地圖、微信等[7-9],通過API(應(yīng)用程序接口)函數(shù),為第三方開發(fā)提供支持??刂葡到y(tǒng)應(yīng)該借鑒這類軟件系統(tǒng)的做法,通過開放式算法容器,使用戶可以基于標(biāo)準(zhǔn)的統(tǒng)一接口,開發(fā)第三方算法功能模塊,用于控制邏輯組態(tài)和執(zhí)行。
目前,在控制系統(tǒng)開放式算法容器方面的研究成果較少。文獻(xiàn)[10]基于簡(jiǎn)化的CORBA 協(xié)議設(shè)計(jì)了一種開放式算法仿真平臺(tái),該平臺(tái)由環(huán)境模塊、算法模塊和設(shè)備模塊組成,對(duì)于控制算法開發(fā)、調(diào)試、運(yùn)行和維護(hù)非常有益。文獻(xiàn)[11]設(shè)計(jì)了一種先進(jìn)控制接口平臺(tái),通過公開的訪問接口,使各種語(yǔ)言編寫的先進(jìn)控制算法模塊能夠與該平臺(tái)實(shí)現(xiàn)數(shù)據(jù)交互。文獻(xiàn)[12]采用ABB Symphony DCS 提供的semAPI 協(xié)議及INICI12 通信組件,開發(fā)了第三方接口,但該接口軟件僅用于DCS數(shù)據(jù)采集和轉(zhuǎn)發(fā)。
本文介紹了一種基于TOP(電站熱工優(yōu)化控制平臺(tái))的開放式算法容器的實(shí)現(xiàn)和仿真應(yīng)用,用戶可以將自定義先進(jìn)控制算法模塊嵌入至算法容器,并通過TOP 平臺(tái)組態(tài)軟件,將該算法應(yīng)用于過程控制。
TOP 是自主研發(fā)的發(fā)電廠先進(jìn)控制優(yōu)化系統(tǒng)。該平臺(tái)集成了DCS 系統(tǒng)的實(shí)時(shí)控制技術(shù)和優(yōu)化系統(tǒng)的先進(jìn)控制技術(shù),不僅可以實(shí)現(xiàn)常規(guī)DCS系統(tǒng)的組態(tài)、控制、畫面操作、曲線查詢等功能,同時(shí)還具備模型辨識(shí)、預(yù)測(cè)控制、魯棒控制等先進(jìn)控制功能[13-14]。
目前,TOP 平臺(tái)已經(jīng)在浙江省內(nèi)10 多臺(tái)300 MW 以上機(jī)組的協(xié)調(diào)控制、汽溫控制、SCR(選擇性催化還原技術(shù))脫硝控制等系統(tǒng)中得到應(yīng)用,在一定程度上提升了這些機(jī)組的經(jīng)濟(jì)性和安全性。除了用于大型火電機(jī)組重要回路的先進(jìn)控制,TOP 平臺(tái)也在向綜合能源服務(wù)領(lǐng)域拓展應(yīng)用,在發(fā)揮常規(guī)DCS 系統(tǒng)作用的同時(shí),還可用于實(shí)現(xiàn)能量管理系統(tǒng)這一綜合能源核心模塊的功能。
由于發(fā)電廠對(duì)控制性能要求越來(lái)越高,控制算法迭代較快,但老版TOP 平臺(tái)不支持算法容器功能,導(dǎo)致軟件維護(hù)工作量極大。為了滿足用戶對(duì)各種先進(jìn)控制算法的需求,同時(shí)節(jié)省軟件維護(hù)費(fèi)用和時(shí)間,新開發(fā)的升級(jí)版TOP 平臺(tái)支持算法容器功能,用戶可以將自己編寫的高級(jí)控制算法模塊放置于算法容器中,依托TOP 平臺(tái)執(zhí)行。
基于TOP 平臺(tái)的開放式算法容器是一種可裝載自定義算法的容器,使用戶可以在TOP 環(huán)境中執(zhí)行第三方開發(fā)的控制算法。與其他內(nèi)置模塊一樣,用戶可以在組態(tài)軟件調(diào)用自定義算法容器,生成控制邏輯,編譯后在下位軟件運(yùn)行。如圖1 所示,開放式高級(jí)算法容器實(shí)現(xiàn)繼承自與TOP 內(nèi)置模塊相同的基類,具有與固有模塊相同的強(qiáng)制、保持等功能,因此可以帶給用戶良好的使用體驗(yàn)。
圖1 高級(jí)算法容器在類層次中的位置
TOP 算法容器具有以下特征: 首先是易操作性,用戶不需要對(duì)高級(jí)算法原理有深入了解,只需要利用組態(tài)軟件里設(shè)置中間參數(shù)便可調(diào)用;其次是實(shí)時(shí)性,高級(jí)算法容器與其他內(nèi)置算法模塊相同,支持上、下位實(shí)時(shí)數(shù)據(jù)交互功能,包括下位運(yùn)行高級(jí)算法并將運(yùn)算結(jié)果實(shí)時(shí)廣播、上位在線命令下發(fā)等操作。
TOP 平臺(tái)開放式算法容器支持2 種編程語(yǔ)言編寫的自定義高級(jí)算法,分別為C/C++和Python。其中,C/C++語(yǔ)言編程生成的代碼具有執(zhí)行速度快的優(yōu)點(diǎn),如果算法中含有大量循環(huán)計(jì)算或數(shù)據(jù)訪問操作,利用C/C++語(yǔ)言編程實(shí)現(xiàn)并行計(jì)算,可以充分發(fā)揮CPU(中央處理器)多級(jí)流水線優(yōu)勢(shì),提高執(zhí)行速度。此外,C/C++語(yǔ)言可以直接調(diào)用寄存器和高速緩存,減少內(nèi)存訪問次數(shù),使高級(jí)算法代碼的時(shí)間局部性和空間局部性提高。Python 語(yǔ)言可以利用強(qiáng)大的第三方庫(kù)編寫高級(jí)算法,具有開發(fā)速度快、效率高等優(yōu)點(diǎn),但生成的代碼執(zhí)行速度相對(duì)較慢。用戶可根據(jù)實(shí)際情況,選擇合適的自定義算法編程語(yǔ)言。
為了實(shí)現(xiàn)算法容器功能,TOP 平臺(tái)開發(fā)采用多線程編程模式,為控制邏輯中各模塊的實(shí)時(shí)運(yùn)算創(chuàng)建專門的計(jì)算線程。該線程從上位工程師站下發(fā)的組態(tài)文件中讀取控制邏輯包含的所有模塊的類型、參數(shù),并根據(jù)模塊間的輸入/輸出連接關(guān)系,實(shí)時(shí)計(jì)算得到各模塊的運(yùn)算結(jié)果。
下位軟件通過2 個(gè)通信線程與上位軟件進(jìn)行數(shù)據(jù)交互。廣播SAMA 線程用于將運(yùn)算線程的計(jì)算結(jié)果廣播至控制網(wǎng)絡(luò),該線程使用UDP 協(xié)議進(jìn)行數(shù)據(jù)交互。上位命令線程用于接收上位控制命令,包括上位軟件發(fā)送的控制命令字,控制模塊可調(diào)參數(shù),設(shè)置強(qiáng)制、保持操作指令等,該線程使用TCP 協(xié)議進(jìn)行數(shù)據(jù)交互。同樣,為了接收下位軟件的廣播數(shù)據(jù),上位軟件需要開啟接收下位廣播線程,并在控制策略軟件中啟動(dòng)2 個(gè)與下位通信的線程,分別用于接收模塊輸出參數(shù)和模塊中間參數(shù)。
利用定時(shí)器、互斥鎖等方式實(shí)現(xiàn)線程喚醒與掛起,解決多個(gè)線程同時(shí)訪問同一個(gè)資源時(shí)出現(xiàn)的競(jìng)爭(zhēng),確保運(yùn)算實(shí)時(shí)性。TOP 平臺(tái)下位軟件運(yùn)行于Linux 嵌入式操作系統(tǒng)上,該系統(tǒng)提供了比Windows 系統(tǒng)強(qiáng)大、精確的POSIX 時(shí)鐘,精度達(dá)到納秒級(jí)。定時(shí)器配合互斥鎖共同使用,使不同線程可以有序訪問同一個(gè)資源,有效地解決了線程同步與線程異步問題。在完成每個(gè)控制周期運(yùn)算后,線程被掛起,不再占用CPU 時(shí)間,可以降低系統(tǒng)負(fù)荷。
自定義算法由上位機(jī)導(dǎo)入,算法信息存儲(chǔ)于STL 標(biāo)準(zhǔn)庫(kù)容器中。控制策略組態(tài)程序啟動(dòng)后,依次讀取存放在TOP 系統(tǒng)全局變量路徑中的文件,根據(jù)文件中存儲(chǔ)的信息,將自定義算法初始化裝載至高級(jí)算法向量中。在編譯時(shí),控制策略組態(tài)程序根據(jù)各模塊之間的連接關(guān)系,以及各模塊的優(yōu)先級(jí),對(duì)控制邏輯中所有模塊進(jìn)行排序。嵌入于算法容器的自定義算法與內(nèi)置算法模塊執(zhí)行統(tǒng)一的排序,最后將編譯過的包括排序信息在內(nèi)組態(tài)文件保存至下裝文件目錄。
與自定義算法相關(guān)的二進(jìn)制代碼以FTP 或文件復(fù)制方式發(fā)送到下位機(jī)。下位程序?qū)⒆远x算法代碼映射至共享庫(kù)內(nèi)存映射區(qū)域,通過執(zhí)行相應(yīng)的二進(jìn)制代碼,進(jìn)行自定義算法模塊的實(shí)時(shí)運(yùn)算??刂七壿嬒卵b后,TOP 平臺(tái)下位程序根據(jù)組態(tài)邏輯包含的模塊運(yùn)算順序、模塊間連接關(guān)系信息,以及算法容器中包含的自定義算法代碼,執(zhí)行控制邏輯計(jì)算。
用戶在編寫自定義算法模塊時(shí),需要設(shè)定統(tǒng)一的接口參數(shù),包括模塊名稱,輸入/輸出模擬量個(gè)數(shù)、輸入/輸出數(shù)字量個(gè)數(shù)、可調(diào)模擬量參數(shù)、可調(diào)數(shù)字量參數(shù)、中間參數(shù)等模塊屬性,圖2 顯示了DMC(動(dòng)態(tài)矩陣控制)控制算法容器的屬性對(duì)話框。
圖2 高級(jí)算法容器屬性框
用戶按上述接口屬性,封裝生成自定義算法后,將與該算法關(guān)聯(lián)的代碼文件拷貝至TOP 平臺(tái)上位軟件全局變量路徑下的自定義算法目錄,并通過控制邏輯組態(tài)軟件載入,加載至該軟件主界面左側(cè)的模塊樹。算法模塊加載后,用戶便可在控制邏輯組態(tài)時(shí)調(diào)用。
由于TOP 平臺(tái)高級(jí)算法容器支持C/C++和Python 語(yǔ)言編程,理論上可以封裝任意算法,例如對(duì)于各種改進(jìn)PID 算法、預(yù)測(cè)控制算法等,可利用C/C++或Python 語(yǔ)言編寫代碼,經(jīng)過編譯封裝后,根據(jù)圖2 所示的對(duì)話框操作,將其加載至控制邏輯組態(tài)軟件使用。下文以動(dòng)態(tài)矩陣算法為例,講述算法封裝以及仿真測(cè)試結(jié)果。
DMC 是一種應(yīng)用廣泛的模型預(yù)測(cè)控制算法,由Culter 等于1980 年提出[15]。其由預(yù)測(cè)模型、滾動(dòng)優(yōu)化和反饋校正等組成,可用于解決有約束、多輸入/多輸出的控制問題。它采用工程上易于測(cè)取的被控對(duì)象的單位階躍響應(yīng)來(lái)描述系統(tǒng)的動(dòng)態(tài)特性,算法簡(jiǎn)單,魯棒性強(qiáng),適用于有純遲延、開環(huán)漸進(jìn)穩(wěn)定的線性系統(tǒng)。
由于發(fā)電廠被控對(duì)象大多具有時(shí)變性,近年來(lái),多模型動(dòng)態(tài)矩陣控制逐漸受到關(guān)注,與單模型動(dòng)態(tài)矩陣控制一樣,包括預(yù)測(cè)模型、滾動(dòng)優(yōu)化、反饋校正3 個(gè)要素。多模型動(dòng)態(tài)矩陣控制可以分為加權(quán)多模型動(dòng)態(tài)矩陣控制(包括控制器加權(quán)和模型加權(quán))和切換多模型動(dòng)態(tài)矩陣控制(包括控制器切換和模型切換)。
根據(jù)圖2 所示的對(duì)話框設(shè)置DMC 控制算法容器屬性,并編寫DMC 算法,將其封裝到高級(jí)算法容器中。在控制策略組態(tài)軟件中該DMC 算法容器如圖3 所示,各輸入/輸出引腳信息如表1所示。
圖3 DMC 算法容器
表1 DMC 算法容器引腳信息
該DMC 算法容器的可調(diào)參數(shù)包括過程變量PV、設(shè)定值SP、量程上下限、跟蹤方式、控制器參數(shù)和采樣周期等。用戶在控制邏輯組態(tài)軟件中雙擊DMC 算法模塊后,便可進(jìn)行參數(shù)設(shè)置。
在復(fù)雜生產(chǎn)系統(tǒng)中,如電力、化工、煉油等,被控對(duì)象大多具有大遲延、大慣性、非線性的動(dòng)態(tài)特性,其數(shù)學(xué)模型可用一階或“多階慣性+純遲延傳遞函數(shù)”表示。例如,某600 MW 火電機(jī)組在500 MW 負(fù)荷工況時(shí),燃燒器擺角開度與再熱蒸汽溫度的關(guān)系模型,其傳遞函數(shù)如表2 所示[16]。
對(duì)于上述被控對(duì)象,文獻(xiàn)[17]利用經(jīng)驗(yàn)PID整定公式,計(jì)算得到PID 控制的比例帶為16.67,積分時(shí)間為499.6。如圖4 所示,在TOP 平臺(tái)控制策略組態(tài)軟件中,分別搭建DMC 控制器和PID控制器,與再熱蒸汽溫度對(duì)象模型組成閉環(huán)控制回路。在仿真測(cè)試時(shí),在溫度設(shè)定值上輸入單位階躍信號(hào),得到仿真曲線如圖5 和圖6 所示。圖中實(shí)線為DMC 控制曲線,虛線為PID 控制曲線,點(diǎn)線為設(shè)定值曲線。
表2 被控對(duì)象傳遞函數(shù)
圖4 DMC 算法仿真測(cè)試控制回路結(jié)構(gòu)
圖5 DMC 控制和PID 控制的輸出曲線
圖6 DMC 控制和PID 控制的控制量曲線
由圖5 可知,與PID 控制相比,DMC 控制具有響應(yīng)速度快、上升時(shí)間短、超調(diào)量小等優(yōu)點(diǎn)。由圖6 控制量對(duì)比曲線可知,DMC 控制調(diào)節(jié)非常迅速,如果模型比較準(zhǔn)確,可以獲得較好的控制品質(zhì)。
隨著我國(guó)“節(jié)能減排”政策深入落實(shí),對(duì)自動(dòng)控制性能的要求不斷提高,在電力、化工、煉油等復(fù)雜生產(chǎn)過程中,一些重要回路必須采用包括預(yù)測(cè)控制、模糊控制、魯棒控制、自適應(yīng)控制等先進(jìn)控制算法。利用開放式高級(jí)算法容器,用戶可根據(jù)需要,封裝各種自定義高級(jí)算法,既使用戶有機(jī)會(huì)直接參與高級(jí)算法的開發(fā)和應(yīng)用,又降低了控制系統(tǒng)維護(hù)工作量。
基于TOP 平臺(tái)的開放式高級(jí)算法容器是一種可擴(kuò)展的算法接口,用戶使用C/C++和Python語(yǔ)言編寫的符合接口標(biāo)準(zhǔn)的自定義高級(jí)算法均可嵌入至該算法容器,并在TOP 平臺(tái)組態(tài)軟件中直接使用,生成控制邏輯。鑒于TOP 平臺(tái)開放式高級(jí)算法容器克服了常規(guī)DCS 和外掛先進(jìn)控制系統(tǒng)不支持用戶自定義算法的問題,因此具有很高的工程實(shí)用和推廣價(jià)值,也加強(qiáng)了TOP 平臺(tái)在發(fā)電廠自動(dòng)控制和綜合能源服務(wù)領(lǐng)域的競(jìng)爭(zhēng)力。