圖形化編程語言Labview在各種測試系統和控制儀器領域中,已經得到很廣泛的應用,推動儀器工業的飛速發展。Labview開發環境使用圖形化編程語言G語言編寫程序,產生的是框圖式程序,直觀形象,它通過交互式圖形化儀器面板提供豐富的控件,在后面板的圖形化編程中封裝了豐富的算法,如提供的數理統計、信號處理、仿真、IVI儀器驅動、網絡通信、數據庫管理等模塊,都為軟件開發帶來了極大的方便。同時,Labview還提供了強大的數據采集功能,例如DAQ采集卡可以高速、高精度地采集各種類型的模擬信號,并且還具備高精度的D/A輸出功能,通過計算機可很方便和迅速地對下位機儀器進行快速和高精度的數據采集。Labview封裝的PID工具包集成了全面的PID控制算法,可以適合各個領域的高精度控制。PID控制是工業控制中應用最廣泛的控制策略,它算法簡單、魯棒性好、可靠性高,在很多高精度控制的領域下都能達到非常滿意的效果。本文主要是應用Labview的PID工具包實現PID算法程序編程,對機器人的運動進行控制,主要的被控對象是航向角與深度。
本文中提到的水下機器人是一種比較簡樸的機器人,屬于ROV類型(帶電纜)。主要用于在靜水或緩流環境進行水中探測,包括船底探測、拍照、橋墩探測等。它具有體積小巧、控制靈敏、運動靈活等優點。在組成上主要有螺旋槳,提供機器人的運動動力,包括推進和方向控制;其他組成有圖像掃描聲吶、水深定位掃描聲吶、CCD圖像拍攝等。機器人的所有數據通過RS 232方式轉換成CAN方式進行傳輸,再由CAN轉換成RS 232進入計算機,從而可以方便地在計算機上對機器人進行控制。
PID(Proportional Integral Derivative)控制是從比例、積分和微分三個環節實現對對象的控制,它的控制原理[1]如圖1所示。
PID控制的典型特點是將給定值r(t)與輸出c(t)進行比較得到系統偏差e(t),從而進行比例P、積分I、微分D計算得到輸出控制量u(t),其控制規律具體可以由下面方程描述:
式中,Kp是系統增益系數;e(t)是給定與輸出的偏差;Ti是積分時間;Td是微分時間。
PID的比例P部分按線性規律反映控制系統偏差的變化,因為,在系統工作時給定與輸出的反饋是在不斷地進行比較,一旦出現偏差,該環節可以快速響應,對系統控制量做出補償,但會一直存在殘差。所以在PID控制中,為了達到較好的效果需引入積分環節。該環節是屬于無殘差控制,可以消除系統殘差,提高系統無差度,但是會造成系統響應過沖,Ti積分時間越大,過沖就越大;而微分環節的加入則可以減少由于積分控制所造成的響應振蕩,Td越大,效果就越好。微分環節起到反映系統誤差變化趨勢的作用,也就是可以預示誤差,在誤差即將出現時,就使得積分環節中能超前起作用,這樣就能有效地減少振蕩[2]。
Labview作為一種圖形化的編程語言,可以非常方便用戶對各種算法及其控制方案進行編程。美國NI公司最新推出的Labview8.2開發環境中,附帶有豐富的PID子VI,例如:PID VI、PID Advanced VI等;同時還封裝了對偏差輸入的濾波功能VI,如PID Control Input Filter VI。用戶不需自己通過Labview的框圖程序具體編寫PID算法的每一個細節,只要根據實際情況選擇適合參數的子VI,把控制系統的反饋量和控制給定量兩個關鍵參數連接到PID VI上,簡單地配置好比例、積分、微分等參數,就可以對系統進行有效控制。
小型水下機器人自身帶有電子羅盤(指南針)和壓力傳感器,能夠實時地反饋各自的數據。電子羅盤的數據為大地坐標中指南針的角度,用于指向當前機器人的運動方向,而壓力傳感器則是反映機器人在水中受到壓力的大小,可以根據標定換算成其處于水中的深度。其控制原理[3]可以由圖2表示。

圖2 螺旋槳PID控制
把機器人反饋的電子羅盤數據與控制用戶給定的數據作為PID VI的輸入參數,然后讓PID VI進行PID的算法計算從而得到控制量,再以指令形式傳輸給機器人。機器人中的CPU電路再把控制量指令通過驅動電路驅動螺旋槳,從而完成一個閉環的控制系統。機器人的運動方向和潛水深度分別是由水平方向上兩個螺旋槳的轉向和垂直方向的螺旋槳進行控制。對深度控制量輸出是把壓力傳感器反饋的數值按標定換算成深度(Depth),然后作為PID VI的反饋量輸入,經過PID算法進行比例、積分、微分計算后得到輸出控制量。所以,在本文的控制方案中需要通過兩路獨立的Labview框圖程序對機器人進行全方位控制。其面板控制設計及后臺程序如圖3、圖4所示。

圖3 面板控制設計

圖4 后臺Labview PID程序
本文中主要用到Labview8.2 PID工具包里面的convert PID parameters VI;PID Advanced VI和PID Setpoint Profile VI等。通過convert PID parameters VI把用戶設定的PID控制參數包括系統增益、線性環節比例系數、積分時間、微分時間作為PID Advanced VI的PID gain參數輸入,從而構成完整的PID程序[4,5]。
PID控制算法的控制量是一個直線型變化的輸出,也就說通過PID計算后的控制量u(t)是一個一維方向上的數值,從負數到正數或者從正數到負數的來回變化,理論上可以向數軸兩端無限變化,不出現周期性的規律,如圖5所示。

圖6 航向角變化規律

圖5 PID輸出常規變化規律
但機器人的航向角是周期性變化的,如圖6所示,在0°~359°可以認為符合PID輸出的常規變化規律。在這個范圍內,如果給定的Compass-反饋的Compass> 0,則u(t)輸出負數,偏差越大u(t)輸出越大。如果給定Compass-反饋Compass< 0,則u(t)輸出正值,偏差越大輸出越大。如果僅在這個范圍內Compass不做任何校正就可以得到有效的控制結果。但是,機器人的Compass除了在0°~359°內變化外,還存在從359°~0°或從0°~359°的躍變過程,稱之為越零變化,這是因為航向角是周期性的。在這種情況下,如果Compass不做校正處理,直接作為PID的輸入,就會得到嚴重錯誤的控制量,從而引起被控對象振蕩。
為了解決上述航向角周期性變化引起的PID控制不穩定情況,本文需要先對反饋的Compass數值進行校正后再作為PID反饋參數輸入。如果機器人在PID調整過程中從順時針方向出現越零點躍變,那么,對反饋的Compass進行加360°處理,使得輸入的反饋參數是大于360°的數值;如果機器人的Compass從逆時針方向越零跳變,那就對反饋的Compass進行減360°處理,使輸入反饋參數是一個小于0的數值,這樣從PID的角度看,航向角就不呈現周期性。
另一方面,在深度控制上因為深度Depth的數值是呈直線型變化,所以只需要直接作為反饋參數輸入,就能使用PID控制算法。
對Compass的控制中主要設定的參數包括給定值SetPoint、反饋值 Feedback Point、總增益 Proportional、線性環節系數比 Linearity等。當增大Proportional時(線性系數、積分時間、微分時間也隨之增大),機器人的響應速度隨之增大,但是整個調整過程包括每次擺動范圍也都明顯增大,機器人最終穩定的時間也隨之延長。如果單獨調整參數Linearity時,則每次改變SetPoint時,最初會有比較大的過沖,造成機器人比較大的擺動。但由于PID積分環節的作用,所以經過幾次比較劇烈的擺動后,機器人會很快地穩定下來。通過調整各個PID參數,可以很直觀觀察到各個參數對控制效果的影響。圖8所示是在一個約0.6 m/s人工水流的水池里完成試驗的試驗結果,曲線反映了航向角在某一次調整時的變化過程,是控制機器人從153°調整到180°的過程。在本次試驗中,設定的參數有Proportion=5,linearity=3,integral=0.05,derivative=0.04。

圖8 航向角向180°調整過程
利用Labview進行控制軟件開發具有很大的靈活性,并且易學易懂,其軟件界面形象生動。無論是控制領域軟件開發,或者計算機網絡軟件,甚至數字信號處理上都極具方便,特別是PID工具包的應用,大大縮短了整個控制系統的開發周期。本文通過其PID工具包,尤其是Labview新版中集成的PID子VI的應用,大大簡化了編程的復雜度。總之,利用Labview進行編程可以非常有效地避免了通過文本語言編寫程序和調試系統的繁瑣過程。
[1] 金志強,包啟亮.一種基于LABVIEW的PID控制器設計的方法[J].微計算機信息,2005(6S):1-2,71.
[2] 陳積文.一種基于Labview圖形化編程的PID控制算法及其應用[J].自動化技術與應用,2007(5):42-45.
[3] 朱利輝,鄒軒,徐新華.基于Labview的直流電機速度控制系統[J].儀器登記表用戶,2006(1):14-15.
[4] 陳東,姚成法.基于LABVIEW步進電機PID控制系統的設計[J].工業儀表與自動化裝置,2005(1):48-49.
[5] 唐進元,黃云飛.基于LABVIEW的數字PID控制器的設計研究[J].測控技術,2000(4):35-37.