哈爾濱工程大學自動化學院 高淑芬 張 影 丁聰聰
特種船作業時需要操船人員既能觀察目標,又能操船,兩者協調配合達到最佳作業效果;手操盒系統作為一套特殊的船控操作系統,使操縱人員攜帶手操盒,到船旁觀察目標,根據目標離船的距離操縱船舶運動,滿足上述作業要求。手操盒通過網絡接收來自于傳感器系統DGPS、羅經和風傳感器的信號,同時,手操盒與推力器系統有接口,可單獨的對船舶推力器系統進行控制。手操盒系統包括操作終端、主操縱終端等。其系統結構圖如圖1所示。手操盒可根據需要通過接線端子,連接到任何一個操作終端,行使對船的操縱控制。
手操盒系統可實現的操作模式有:手動控制模式、自動艏向控制模式、自動定位模式等,甚至可以將自動舵模式加入其中。手動控制模式即人工模式,在該方式下:操縱人員通過手柄操縱船舶前進、后退、左移、右移、左旋、右旋等運動;考慮到作業區域外部環境非常復雜,極有可能超出手動控制系統的控制范圍,為了保證船舶的工作,需要操縱人員進入手操盒自動艏向控制模式和自動定位模式操作,主要是根據水動力和船舶的運動特性同時考慮風、流等因素的綜合影響制訂控制方法,如定向、定位等控制功能。
系統的控制處理器,接收來自于傳感器系統的信號,經過處理后作為控制器的控制依據,生成控制命令,一方面把信號傳遞給推進器系統,另一方面通過以太網把信息傳遞給主操作終端在主控制室顯示相關信息;如果操作人員按下操作終端請求信號,首先通過CAN網絡向主操縱桿操作終端發出請求信號,主控制室將允許信號返回操作終端,這時候手操盒便可進入工作模式,選擇手動控制模式、自動艏向控制模式、自動定位模式。
手操盒是一個包括界面顯示、按鍵、指示燈、操縱桿和艏向輪的人機交互設備終端,專門為在駕駛艙外實時控制的工作人員而設計的一個控制終端設備。相對于主操縱終端系統,其功能相對簡潔,主要包括操縱桿控制以及自動艏向輪的控制這兩個功能,除了與主操縱桿配合應用,另一方面通過CAN總線與其他的操作終端形成CAN總線網絡,并作為一個單獨的操作終端。
手操盒設備包括:操縱按鍵、按鍵指示燈、控制偏差報警器、船舶運動信息液晶顯示器、船舶運動操縱三軸操縱桿、方位操縱手輪/ID接口、信息通訊CAN總線接口。其硬件框如圖2。
手操盒在操縱桿系統中通過CAN總線與其他設備進行通信,考慮到硬件設計簡便性與穩定性等方面因素,采用ATMEL公司的AT90CAN128系列單片機。由于船用電源為24V,一方面通過整流電源模塊把24V轉化為5V,為操作終端提供電源。同時,系統會時刻接收來自于按鍵、三軸操縱桿的信號,進行及時處理。
面板的按鍵為矩陣鍵盤,通過單片機對鍵值進行定時掃描,從而確定操作員輸入的命令;三軸操縱桿的縱向位移、橫向位移、轉動角度所對應的模擬信號通過單片機集成的10位AD轉化為數字量,得到相應的位置和角度信息。指示燈可由單片機I/O直接驅動,報警器電路則采用三極管驅動蜂鳴器來完成;界面采用TFT液晶進行顯示,顯示內容為船舶的當前艏向和操作員設置的艏向,初始化信息,報警信息,工作模式等相關信息。
手操盒操作終端和主操操作終端通過CAN總線連接在起來。需要采用手操盒控制模式時,操作人員將手操盒連接到操作終端接線盒上,按下手操盒上的請求按鍵,通過CAN總線向主操操作終端主機發送請求信號,得到主操作終端的允許后,進入手操盒控制方式。手操盒操作終端進行處理,最終操作終端把所有信息顯示在手操盒液晶屏上。其控制流程如圖3所示。
本手操盒采用TFT6448BS-5.7液晶顯示器,采用5.7英寸、分辨率為640*480的真彩TFT屏,提供一個簡單的高速8位總線與單片機連接,支持256色,可直接與AVR相連,并且直接輸入X、Y坐標,無須計算地址。
該液晶采用并行總線方式,數據總線D[7:0]、地址總線A[1:0]、片選/CS、讀/RD、寫/WR,顯示屏中每個點影射顯示存儲器中的一個字節,顯示屏上的X、Y坐標與顯示存儲器的地址一一對應。因此,只需輸入X、Y坐標便可直接讀寫相應點數據,不用計算像素點在顯示存儲器中的地址,寫入數據后X坐標自動加1,寫滿一行后自動換行,用戶也可實現Y坐標自動加1。顯示存儲器的一個字節由8位構成,顯示器屏幕上的一個“像素”點由R、G、B三個“點”來組成。一個字節對應一個像素,位分配原則是是R3-G3-B2,也就是紅色占高三位,綠色占中間三位,藍色為低2位。因此,共可顯示8種紅色,8種綠色,4種藍色。通過紅、綠、藍的混合,總共可以得到256種顏色。其基本原理如圖,DC/DC電壓變換器產生液晶顯示所需要的各種驅動電壓,背光驅動電路則產生LED背光燈所需要的供電電源。邏輯控制電路采用CPLD器件,自主研制的優化邏輯,利用獨有的緩沖技術,讓顯示與寫入數據同時進行,完全杜絕雪花現象,實現了畫面的高速更新,且互不干擾。
本系統采用的單片機是AVR系列單片機中功能最強的AT90CAN128。該單片機具有豐富的片內資源如128k的Flash,4kB的內部SRAM,51個I/O端口,可尋址64KB的地址,支持ISP下載和JTAG仿真等。由于液晶的顯示緩沖區里的內容是不能讀出的,為了保存寫入的數據,在外面還外擴了一片AT24C04,由于本單片機的資源有限,須借助外擴存儲器。AT90CAN128采用IIC總線對EEPROM進行讀寫操作,上電后首先發送保存在片內的數據,然后接受PC發送過來的數據并保存起來,再次讀取數據返回給PC,斷電后數據不丟失。IIC總線對EEPROM進行讀寫操作,其過程如下:
1)發送START信號,通過對TWCR寫入特定值,指示TWI硬件發送START信號。
2)START信號被發送之后,TWCR寄存器的TWINT標志位置位,TWCR更新為新的狀態碼,表示START信號成功發送。

圖1 手操盒系統組成

圖2 手操盒設備組成

圖3 控制流程圖
3)應用程序應檢驗TWSR,確定START信號已成功發送,TWINT清零,啟動地址包的傳送。
4)地址包發送后,TWCR寄存器的TWINT標志位置位,TWDR更新為新的狀態碼,表示地址包成功發送。
5)應用程序應檢驗TWSR,確認地址包已成功發送、ACK為期望值。
6)一旦TWINT清零,TWI啟動數據包發送,發送后TWCR的TWINT置位,TWSR更新為新的狀態碼,表示數據包已成功發送。
7)應用程序檢驗TWSR,確認地址包已發送,ACK為期望值。
圖4、圖5為AVR單片機對EEPROM的讀寫流程圖。
TFT的接口方式采用總線方式,外部引線包括數據總線(DB0-DB7)、片選信號(/CS)、讀寫輸入(/RD、/WR),可以直接接到單片機的總線上。

圖4 讀數據流程圖

圖5 寫數據流程圖

圖6 無環境干擾時采用模糊PID控制仿真結果
由于TFT顯示數據讀寫方式是首先必須指定行地址Y,以及列地址X。然后就可以將該行從地址X開始的數據連續進行讀寫操作,無須重新設置X和Y。在顯示數據的每次讀寫操作后,列地址X將自動加1,當地址加到行尾時,地址將跳到下一行的行首。當要讀寫一個新的行時,必須重新設置X、Y。
CMD為液晶控制寄存器,DAT為液晶數據寄存器,顯示數據通過該寄存器寫入和讀出,每次讀寫操作后地址自動沿X方向加一,一次讀寫一個像素。對液晶顯示器進行控制。
TFT的控制寄存器CMD如下:

76543210 Model1Model0EN
EN為使能位,該位為1使能8點寫模式,為0則是的單點寫的基本功能。
Mode=00:數據寄存器DAT是像素數據寫入寄存器。
Mode=01:數據寄存器DAT是前景色顏色寫入寄存器。
Mode=10:數據寄存器DAT是背景色顏色寫入寄存器。

圖7 有環境干擾時采用模糊PID控制仿真結果
Mode=11:數據寄存器DAT是亮度值寫入寄存器。
顯示函數:
TFT屏的顯示是直接把數據賦給數據寄存器,然后就能顯示出來,所有我們要做的就是確定顯示的首尾地址。

在屏幕上顯示16*16點陣漢字的基本步驟是首先取得該漢字的32個字節的點陣數據,再確定屏幕上顯示的位置,利用顯示函數即可顯示該漢字。由于本液晶不帶字庫,而且單片機本身的資源有有限,所以從外擴的EEPROM中讀取數組,然后再液晶上顯示。
其函數如下:

為了驗證所設計的手操盒系統的性能,需要將其應用于船舶控制。由于條件有限無法將控制器應用于實船上驗證,因此需要搭建動力定位控制系統的半實物仿真平臺,并在該平臺上采用模糊PID控制算法對船舶艏向進行控制,以此來驗證控制器效果。
本文驗證方案為在PC機上建立一個三自由度的船舶模型,在手操盒控制板與PC機通過RS232相連,通過操縱手操桿,實現船舶控制量與船舶狀態量之間的關系。
仿真系統流程如下:首先先給系統上電,等待系統產生的船舶當前艏向,然后與原來模型產生的數據進行比較,如果相等,則程序結束。
在仿真試驗中,運行有船舶模型的PC機上時刻記錄著水面船舶的艏向信息,并將該信息保存到記事本中,待仿真結束利用MATLAB繪制出艏向控制曲線,主要驗證了在有環境干擾和無環境干擾下,模糊PID對船舶的艏向控制情況如下:
PID的控制算法為:

其中,u( t)為控制器輸出量,e( t)為誤差信號,ec( t)為誤差變化率,Kp,Ki,Kd分別為比例系數、積分系數、微分系數。這種PID存在參數修改不方便不能進行自整定等特點,如果能實現PID參數在線自整定,那么就能進一步改善PID控制器性能,以適應控制系統參數變化和工作條件的變化。
(1)無環境干擾時的艏向、北向控制仿真
試驗過程中,未加入風、浪和海流環境干擾力,比較了采用模糊PID算法將船舶艏向控制到10°時的變化情況,分別如圖6所示。
(2)有環境干擾時的艏向、北向控制仿真
試驗過程中,風速以17m/s從120°的方向吹向船舶,流速為0.3m/s,方向為90°,比較了采用模糊PID控制艏向角為10°時的控制曲線,如圖7。
手操盒作為一種特殊的船控終端操作系統,在需要人為操作時才進行工作,擁有良好的人機交互界面。液晶顯示界面程序均在ICCAVR編譯器里調試通過,實現了在液晶屏幕上正常顯示各種顏色的漢字、英文、數字及簡單的圖形功能,采用本液晶模塊,達到了顯示穩定,顯示色彩豐富,人機界面友好的較理想的顯示效果。
[1]劉樹中,孫書鷹,王春平.單片機和液晶顯示驅動器串行接口的實現[J].單片機開發和應用,2007,23(1):137-141.
[2]汪川,樊明澤.基于單片機的HT1621液晶顯示系統設計[J].現代電子技術,2010,334(23):165-167.
[3]林孝工,施小成,邊信黔.工作母船綜合操縱系統副控臺控制與顯示方法[J].船電技術,2004,1:278-301.
[4]褚東升,元慶剛,岳成亮.基于AVR單片機的VRAM型彩色液晶顯示模塊設計[J].液晶與顯示,2005,20(5):435-439.
[5]馬成,何培祥,李慶東.圖形點陣式液晶顯示模塊與51單片機接口設計[J].應用天地,2007,26(5):76-79.
[6]沈建良,趙文宏,賈玉坤,王華東,胡克佳.ATmega128單片機入門與提高[M].北京:北京航空航天大學出版社,2009.
[7]劉彬,韓進.基于單片機的液晶顯示觸摸屏控制設計[J].液晶與顯示,2010,25(2):241-244.
[8]陳京培,徐永梅.基于AT89S52單片機的液晶顯示控制電路設計[J].電路設計,2008,285(22):22-25.
[9]許思達.基于51單片機的TFT液晶顯示設計[J].電子元器件應用,2010,12(10):38-44.