蓋文東,裴沙沙,朱天晗,朱小強,張 婧
(1.山東科技大學電氣與自動化工程學院,山東青島 266590;2.中建安裝集團有限公司,天津 300456)
先進控制技術是自動化專業(yè)一門重要專業(yè)拓展課[1]?,F(xiàn)有課程實驗通常利用直接給出的被控對象數(shù)學模型,在Matlab 中仿真實現(xiàn),這不利于學生運用先進控制技術解決實際問題,不利于培養(yǎng)學生綜合素質(zhì)[2]。NI myRIO是一種具有實時操作系統(tǒng)的嵌入式開發(fā)平臺,可快速開發(fā)實際系統(tǒng)。選擇NI myRIO 作為系統(tǒng)實時控制器,利用LabVIEW圖形化編程軟件實現(xiàn)先進控制算法,對于快速開發(fā)實際控制系統(tǒng),具有較強的現(xiàn)實意義。
文獻[3]中實現(xiàn)基于LabVIEW 數(shù)據(jù)采集系統(tǒng);文獻[4-5]中分別構(gòu)建基于LabVIEW軟件倒立擺機理模型、智能電器虛擬仿真系統(tǒng);文獻[6]中設計了基于LabVIEW的風力機葉片振動特性與控制實驗系統(tǒng);文獻[7-9]中分別設計基于LabVIEW 實時功率分割算法、模糊PID控制算法和機械臂軌跡跟蹤控制算法;文獻[10-12]中分別實現(xiàn)基于NI myRIO的動力電池測試平臺、電動車智能控制實驗平臺、智能避障小車設計。
自抗擾控制(Active Disturbance Rejection Control,ADRC)[13]將系統(tǒng)不確定性以及外部擾動視為總擾動,通過特定方法消除其影響?;贛atlab 的ADRC算法較難直接應用于實際控制對象,不利于學生對該先進控制技術的掌握?;贜I myRIO 的ADRC 實驗,可以使學生更好地掌握ADRC 的設計方法和工程實現(xiàn)方法,但尚缺乏類似的實驗設計。
為解決上述問題,本文以LabVIEW 作為上位機,NI myRIO為實時控制器,建立水箱的數(shù)學模型,利用LabVIEW的數(shù)學節(jié)點完成ADRC 算法設計,并通過LabVIEW 控制與仿真回路模塊將該算法部署在NI myRIO硬件中,進行仿真并驗證該算法的有效性。
本實驗使用MCG10 小型過程控制系統(tǒng)實驗平臺為控制對象。如圖1 所示,選擇開啟回路P-1,打開閥JV12,關閉閥JV13、JV14 和JV15,由水箱V2、V3 構(gòu)成雙容水箱實驗對象。
圖1 MCG10小型過程控制系統(tǒng)工藝流程圖
本實驗系統(tǒng)需測量2 個水箱液位、輸入流量及管道壓力,并控制水泵驅(qū)動電壓。NI myRIO 通過USB與上位機相連接,實現(xiàn)數(shù)據(jù)采集和控制,系統(tǒng)硬件配置如圖2 所示。
圖2 系統(tǒng)硬件配置示意圖
本實驗裝置傳感器輸出4~20 mA 電流信號,而NI myRIO只能接收電壓信號,因此需將電流信號轉(zhuǎn)換為電壓信號。NI myRIO 有2 個輸入范圍0~10 V 端口,8 個為0~5 V端口,故選用500 Ω和250 Ω精密電阻將4~20 mA轉(zhuǎn)換為2~10 V和1~5 V。經(jīng)實際測量得,水箱液位達到最高狀態(tài)時(36 cm)壓力傳感器輸出8 mA,此時NI myRIO 的I/O 最大輸入電壓為4 V,滿足輸入要求。壓力和流量輸出值均可達到其最大輸出電流,選用0~10 V 端口。系統(tǒng)I/O 模塊接線如圖3 所示。
圖3 模擬量模塊接線圖
本實驗系統(tǒng)在LabVIEW環(huán)境下開發(fā),對雙容水箱進行試驗法建模,液位傳感器采集數(shù)據(jù),模擬量輸入模塊將水箱V3 采集數(shù)據(jù)進行尺度標定,轉(zhuǎn)化為水箱實際液位并保存?;贚abVIEW 液位數(shù)據(jù)采集程序如圖4 所示。
圖4 數(shù)據(jù)采集系統(tǒng)程序框圖
將數(shù)據(jù)導入Matlab 的System Identification 工具箱,得到水箱的傳遞函數(shù)。
如圖5 所示,在相同輸入下,式(1)所示數(shù)學模型輸出與水箱實際液位近似度為96.37%,因此,所建立數(shù)學模型能夠表征實際對象特性。
圖5 水箱液位實際輸出與模型輸出對比
ADRC對經(jīng)典PID控制作4 個方面改進:安排過渡過程、采用跟蹤微分器對被控對象提取微分信號、由非線性擴張觀測器實現(xiàn)擾動補償、由誤差非線性組合構(gòu)成非線性控制器[14]。本實驗設計ADRC 器由3 部分組成:二階跟蹤微分器(Tracking Differentiator,TD)、三階擴張狀態(tài)觀測器(Extended State Observer,ESO)和非線性狀態(tài)誤差反饋控制律(Nonlinear State Error Feedback Control Law,NLSEF),結(jié)構(gòu)如圖6 所示。
圖6 ADRC結(jié)構(gòu)圖
跟蹤微分器作用是安排過渡過程,給出合理控制信號,輸出x1(k)作為位置跟蹤信號,x2(k)作為速度跟蹤信號,解決響應速度與超調(diào)之間的矛盾。二階TD實現(xiàn)形式為:
式中,函數(shù)fhan(x1,x2,r0,h0)定義為:
ESO是解決模型未知部分和外部未知擾動對系統(tǒng)的綜合影響。該部分設計擴張狀態(tài)量來跟蹤模型未知部分和外部未知擾動,然后給出控制量補償這些擾動。下面給出三階ESO實現(xiàn)形式:
式中,函數(shù)fal(x,α,δ)定義為:
二階ADRC NLSEF實現(xiàn)形式為:
式中,0 <α1<1 <α2。系統(tǒng)擾動補償項為:
LabVIEW圖形化編程語言界面友好,程序模塊化強,與設備交互性強;內(nèi)置數(shù)學節(jié)點(Mathscript Node)具有大量數(shù)學函數(shù),兼容Matlab 腳本語法,能識別調(diào)用m文件,解決了圖形化編程語言不靈活、公式編輯較復雜的不足。LabVIEW 控制與仿真回路模塊(Control &Simulation Loop)可用于仿真動態(tài)系統(tǒng)、設計控制器,并將控制系統(tǒng)部署至實時硬件[15]。本文在此模塊下進行ADRC算法設計與仿真。
在ADRC算法設計中關于最速綜合函數(shù)fhan(x1,x2,r0,h0),以及fal(x,α,δ)函數(shù)的調(diào)用,考慮到函數(shù)式較多,用LabVIEW傳統(tǒng)圖形編程方法十分復雜,因此采用數(shù)學節(jié)點調(diào)用自定義函數(shù)方法編程:在Matlab 中編輯m文件自定義兩個函數(shù),并將文件命名為fhan.m和fal.m,保存在LabVIEW數(shù)學節(jié)點搜索路徑下,在數(shù)學節(jié)點中調(diào)用自定義函數(shù),如fh=fhan(x1,x2,r0,h0)。
為使設計的ADRC 算法更直觀、更模塊化,本文建立TD、ESO、NLESF子程序,在子程序中用數(shù)學節(jié)點編輯算法式(2)~(7),如圖7~9 所示。設置子程序的輸入、輸出端口,封裝為子VI,并分別命名為td.vi、eso.vi、nlsef.vi。在主程序中調(diào)用各模塊子VI,添加參數(shù)設置、數(shù)據(jù)圖像顯示及被控對象模塊,如圖10 所示。這種編程方法可以實現(xiàn)如圖6 所示ADRC 結(jié)構(gòu),在LabVIEW中對每個模塊分別進行調(diào)試。
圖7 TD子程序設計
圖8 ESO子程序設計
圖9 NLESF子程序設計
圖10 ADRC仿真主程序設計
LabVIEW控制與仿真目錄下具有功能齊全的應用模塊,其中Transfer Function模塊可以建立被控對象模型,進行仿真研究。將雙容水箱傳遞函數(shù)零極點式(1)轉(zhuǎn)化為傳遞函數(shù)一般式,得到一般式各項系數(shù),添加Transfer Function 模塊,如圖11 所示。在參數(shù)設置界面輸入一般式各項系數(shù),建立被控對象傳遞函數(shù)模型。
圖11 傳遞函數(shù)模塊參數(shù)設置
本實驗在LabVIEW 控制與仿真回路(Control &Simulation Loop)中編寫仿真程序,將程序下載至NI myRIO硬件平臺上,驗證ADRC 與PID 控制階躍輸入下的跟蹤性能,設置仿真時長為100 s,取ADRC 控制器各參數(shù)見表1。
表1 ADRC控制器的各參數(shù)設置
表中:r0可取100~500;h0取h的整數(shù)倍。需要調(diào)試的參數(shù)有β01、β02、β03、β1、β2、b0,其中b0越小,調(diào)節(jié)時間越快,但會造成抖振現(xiàn)象,需根據(jù)實際對象進行調(diào)試,文獻[16]中給出了較為詳細的參數(shù)調(diào)整方法。將編寫好的ADRC 控制程序下載至NI myRIO 中,在LabVIEW前面板上得到ADRC 控制下系統(tǒng)的階躍響應曲線如圖12 所示。
圖12 ADRC控制下系統(tǒng)的單位階躍響應曲線
設定PID 參數(shù)kp=3.5;ki=0.088;kd=20。將PID控制程序下載至NI myRIO 中,在LabVIEW 前面板得到PID控制下系統(tǒng)脈沖響應曲線如圖13 所示。
圖13 PID控制下系統(tǒng)的單位階躍響應曲線
根據(jù)圖12、13,ADRC調(diào)節(jié)時間t=40 s,并且無超調(diào),穩(wěn)態(tài)值為10.001 1,穩(wěn)態(tài)誤差為0.001 1;PID 控制上升時間t=20 s,調(diào)節(jié)時間t=80 s,超調(diào)量為3.55,穩(wěn)態(tài)值為10.026 2,穩(wěn)態(tài)誤差為0.026 2。ADRC 比PID控制調(diào)節(jié)時間短,響應速度快,穩(wěn)態(tài)誤差小。
設置仿真時長為200 s,驗證兩種算法的抗干擾能力。單位階躍輸入下,當t=80 s 時,加入一個幅值為1 的擾動,ADRC 和PID 控制下系統(tǒng)的響應曲線如圖14、15 所示。
圖14 擾動作用下ADRC響應曲線
圖15 擾動作用下PID控制響應曲線
根據(jù)圖14、15,ADRC 恢復穩(wěn)定的時間t=140 s,且偏離穩(wěn)態(tài)值小于0.05,PID控制恢復穩(wěn)定的時間t=150 s,且偏離穩(wěn)態(tài)值達到0.5??梢?,ADRC 具有更好的抗擾能力。
本文設計了基于NI myRIO的水箱液位ADRC 實驗。利用NI myRIO 獲取水箱數(shù)據(jù)建立其數(shù)學模型,應用LabVIEW 數(shù)學節(jié)點實現(xiàn)ADRC 算法,并通過LabVIEW 控制與仿真回路模塊將該算法部署在NI myRIO硬件中,進行仿真實驗驗證,并與PID 控制進行比較,驗證設計算法的有效性。本實驗設計為先進控制技術課程實驗教學提供了典型案例,學生可在其基礎上進行二次開發(fā),通過實驗更好地掌握理論知識和工程實現(xiàn)方法。