蔡國偉,安金鑫,楊少龍,3*
(1.中國船級社天津分社,天津 300457;2.華中科技大學(xué)船舶與海洋工程學(xué)院,武漢 430074;3.船舶數(shù)據(jù)技術(shù)與支撐軟件湖北省工程研究中心,武漢 430074)
隨著現(xiàn)代人工智能技術(shù)的發(fā)展,水上交通工具正邁向無人化、智能化時代。水面無人艇(unmanned surface vessels, USVs)具有航速高、機動性強、自動化程度高、無人操縱等優(yōu)點,已成為海洋探測、環(huán)境監(jiān)測、應(yīng)急救援等應(yīng)用的生力軍。面向海洋應(yīng)用,無人艇安全性設(shè)計成為了無人艇研發(fā)階段的重要環(huán)節(jié)。
當前,中外對有人船艇安全性分析主要集中于水上安全預(yù)警以及航行交通安全評估,而對無人艇的安全性分析則主要集中于路徑規(guī)劃與自主避障[1]。對于有人船艇的航行安全,許多學(xué)者采用模糊評價、層次分析、故障樹等方法關(guān)注惡劣海況[2-3]、特殊水域[4]、主要通導(dǎo)設(shè)備[5]等對航行安全的影響評估。除有人船艇之外的其他航行器、航空器也可以使用類似方法,如閆峰等[6]在對航空發(fā)動機安全性進行分析時利用計算機仿真來實現(xiàn)利用蒙特卡羅模擬對系統(tǒng)狀態(tài)之間的轉(zhuǎn)移時間和轉(zhuǎn)移結(jié)果進行抽樣,以此來得到大量具體的系統(tǒng)狀態(tài),通過計算得出的航空發(fā)動機保留故障要求與航空器適航文件一致。田靜靜等[7]運用模糊集-證據(jù)理論-層次分析法計算不同因素對車輛運行風(fēng)險的權(quán)重值,通過加權(quán)計算車輛運行綜合因素發(fā)生不同等級風(fēng)險的概率和綜合風(fēng)險值。盡管這些方法能夠考慮從系統(tǒng)多因素角度出發(fā)量化評估設(shè)備、系統(tǒng)的安全,但卻難以滿足復(fù)雜系統(tǒng)內(nèi)部組件交互失效的安全性影響分析。
與此同時,對于無人船艇,從航行安全角度出發(fā),隨博文等[8]提出了一種改進的平滑A*搜索算法,并應(yīng)用于水面無人艇的安全航路規(guī)劃;文龍貽彬等[9]則提出了一種基于稀疏迭代勢場法的無人艇局部避碰方法,在柵格地圖中規(guī)劃出一條最短安全路徑;陳霄等[10]針對自主式水面無人艇設(shè)計基于“射線法”的無人艇航行安全控制算法,實現(xiàn)了艇上完全自主和“人在回路”的基站被動安全控制兩種安全保障措施,并進行了湖試驗證。從無人艇自主系統(tǒng)基本架構(gòu)出發(fā),許多學(xué)者從規(guī)劃、制導(dǎo)、控制三個模塊進行了控制策略安全性考慮。然而,從閉環(huán)系統(tǒng)角度出發(fā),現(xiàn)有報道卻鮮有關(guān)注系統(tǒng)組件交互失敗、軟硬件失效及性能限制引起的各種無人艇自主系統(tǒng)航行事故。
為此,擬從閉環(huán)控制系統(tǒng)角度出發(fā),針對無人艇自主航行航點跟蹤任務(wù),以系統(tǒng)理論過程分析方法(system theoretic process analysis, STPA)對無人艇航點跟蹤過程的系統(tǒng)不安全控制行為進行分類,分析關(guān)鍵原因及后果,從地面站操作人員、硬件設(shè)計、軟件設(shè)計三個方面對無人艇安全性能提出優(yōu)化建議,以期提高無人艇自主航行安全性與可靠性的設(shè)計能力。
STAMP(system theoretic accident model and processes)事故模型[11]從閉環(huán)系統(tǒng)角度出發(fā),建立的一種基于系統(tǒng)理論和控制理論的事故分析模型。STAMP模型三個最基本概念是安全約束、控制反饋結(jié)構(gòu)和過程模型。當過程模型與被控過程不一致時,就會產(chǎn)生不安全控制行為。因此,在STAMP事故模型分析中,事故的發(fā)生不是簡單的組件失效或人為操作失誤而造成,而是由于安全約束相關(guān)問題而造成的。
在事故危險分析過程中,STAMP模型把系統(tǒng)組件及其之間的聯(lián)系表述為一個相互依賴的控制結(jié)構(gòu),并通過該控制結(jié)構(gòu)對系統(tǒng)的各控制回路行為進行檢查,識別系統(tǒng)內(nèi)部控制回路中各組件的控制缺陷,從系統(tǒng)角度對危險進行分析,尋找危險發(fā)生原因,并從系統(tǒng)開發(fā)、設(shè)計和運行等角度提出改進措施。
STPA安全性分析方法[12]是在STAMP模型基礎(chǔ)上,建立的一種系統(tǒng)性安全評估方法。如圖1所示,從系統(tǒng)工程角度出發(fā),STPA分析對具體對象建立控制和反饋回路。運用STPA進行安全性分析,確定系統(tǒng)級事故和系統(tǒng)級危險,分析特定場景下的不安全控制行為,并進行針對性的關(guān)鍵原因分析。
圖1 通用控制和反饋回路Fig.1 General control and feedback loop
2.1.1 硬件架構(gòu)
Pixhawk[13]是一款在無人機、無人車、無人船等移動機器人平臺上廣泛應(yīng)用的低成本、高性能的高端自駕儀。該硬件系統(tǒng)設(shè)計來源于蘇黎世聯(lián)邦理工大學(xué)的計算機視覺與幾何實驗室、自主系統(tǒng)實驗室和自動控制實驗室的開源項目。這是一款基于ARM(advanced RISC machines)芯片的32位開源自駕儀,集成GPS(global positioning system)、陀螺儀、加速度計、磁力計等多個硬件模塊。如圖2所示,Pixhawk無人艇硬件架構(gòu)中,STM32F427主控制器承擔絕大多數(shù)自駕儀功能需求任務(wù),包括傳感器數(shù)據(jù)讀寫、姿態(tài)解算、運動控制、多任務(wù)實時調(diào)度等。STM32F103作為協(xié)處理器,接收遙控器輸入,實現(xiàn)手操遙控?zé)o人艇的功能。通過姿態(tài)測量系統(tǒng)、高度測量系統(tǒng)以及位置測量系統(tǒng)實現(xiàn)無人艇自身狀態(tài)感知。動力系統(tǒng)配備一個推進電機提供動力,一個舵機提供轉(zhuǎn)向力。電源系統(tǒng)為電機電調(diào)提供動力電源,同時也為控制器和其他模塊提供弱電供應(yīng)。
無人艇自主航行過程,姿態(tài)、高度、位置測量模塊通過實時管理協(xié)調(diào)協(xié)議(real time management coordination, RTMC)、串行外設(shè)接口協(xié)議(serial peripheral interface,SPI)向主控制器發(fā)送無人艇航行狀態(tài)測量信息,主控制器接收感知信息后,經(jīng)自主駕駛算法處理產(chǎn)生控制指令,利用通用異步收發(fā)傳輸器(universal asynchronous receiver transmitter, UART)與協(xié)處理器交互,最后協(xié)處理器發(fā)出脈沖寬度調(diào)制信號(pulse width modulation, PWM)實現(xiàn)舵機和電機執(zhí)行期望控制指令,實現(xiàn)無人艇按照預(yù)期功能自主航行。
圖2 Pixhawk無人艇硬件架構(gòu)Fig.2 Pixhawk USV hardware architecture
2.1.2 PX4軟件架構(gòu)
為實現(xiàn)自主航點跟蹤能力,Pixhawk無人艇運行了一套主流的開源自駕儀固件PX4。無人艇作為一個軟件密集型產(chǎn)品,軟件系統(tǒng)的合理設(shè)計和有效約束是確保無人艇預(yù)期功能安全的重要內(nèi)容。本文所用的PX4開源固件,運行Nuttx嵌入式實時系統(tǒng),確保在占用有限硬件資源的條件下實現(xiàn)多任務(wù)的實時調(diào)度和管理。為了提高軟件系統(tǒng)的通用性,PX4軟件架構(gòu)采用了三層架構(gòu)模式,如圖3所示。
(1)算法應(yīng)用層。該層實現(xiàn)無人艇的航行控制,主要分為導(dǎo)航、制導(dǎo)、控制三個模塊。導(dǎo)航模塊讀取GPS(global positioning system)和傳感器數(shù)據(jù)等解算出無人艇當前位置和姿態(tài),然后結(jié)合L1制導(dǎo)律輸出無人艇控制期望航向和航速,利用雙閉環(huán)串級PID(proportion integral derivative)控制器完成控制指令輸出。通過三個模塊內(nèi)部以及與其他模塊的配合,實現(xiàn)無人艇根據(jù)預(yù)設(shè)期望路徑航行、工作模式切換等多項任務(wù)。
(2)任務(wù)調(diào)度層。該層主要是NuttX實時操作系統(tǒng)層,接收來自算法應(yīng)用層和任務(wù)調(diào)度層的信息輸入和輸出請求,各個模塊的所有輸入輸出均以微對象請求代理(micron object request broker, uORB)的消息機制運行,確保多任務(wù)調(diào)度能夠得到實時響應(yīng),從而滿足無人艇的動態(tài)任務(wù)執(zhí)行需求。
(3)設(shè)備驅(qū)動層。該層主要發(fā)揮隔離作用,將控制算法開發(fā)與底層硬件有效分開,一方面通過各種驅(qū)動模塊與硬件層建立一對一的聯(lián)系,另一方面通過任務(wù)調(diào)度層將上層的算法輸入信息、控制指令與下層各個設(shè)備驅(qū)動模塊建立聯(lián)系。
圖3 PX4軟件架構(gòu)(主要模塊)Fig.3 PX4 software architecture (main module)
圖4 無人艇自主航行STAMP事故模型Fig.4 STAMP accident model for USV navigation
2.1.3 STAMP事故模型
基于Pixhawk無人艇的軟硬件架構(gòu),建立如圖4所示的STAMP事故模型,其中橙色方框組成無人艇自主航行的控制與反饋回路。無人艇執(zhí)行自主航行任務(wù)過程,首先由岸上操作人員通過地面控制站規(guī)劃任務(wù)航路點序列,并通過有線或無線數(shù)據(jù)鏈路下載至自駕儀硬件。然后,通過地面控制站或者遙控器搖桿切換無人艇工作模式,啟動自主跟蹤航路點模式,開始按順序自主執(zhí)行航行任務(wù)。航路點跟蹤任務(wù)執(zhí)行過程中,主控制器先通過各傳感器模塊實時獲取無人艇的姿態(tài)、位置等信息發(fā)送至導(dǎo)航模塊,經(jīng)傳感器數(shù)據(jù)融合計算后輸出無人艇的位姿觀測結(jié)果。根據(jù)無人艇的當前位姿信息,結(jié)合上位機發(fā)送的期望航點位置,制導(dǎo)模塊計算輸出期望航向和期望航速。在控制模塊中,通過位置控制律與姿態(tài)控制律得到執(zhí)行機構(gòu)控制量,再經(jīng)輸出混控計算出外部執(zhí)行機構(gòu)的控制指令。舵機和推進器響應(yīng)控制指令,調(diào)整無人艇姿態(tài)和速度實現(xiàn)預(yù)定的航路點跟蹤任務(wù)。外部風(fēng)浪環(huán)境等與無人艇船體交互,通過傳感器反饋影響自駕儀的自主航行控制性能。此外,岸上操作人員通過肉眼觀察無人艇運行狀態(tài)也能實現(xiàn)遙控器航行干預(yù)與人在回路的控制。
2.2.1 定義系統(tǒng)級事故
STPA分析第一步是確定系統(tǒng)級事故[14]。它是指整個系統(tǒng)中,導(dǎo)致不希望的或意外的事件發(fā)生,例如人員受傷或死亡、財產(chǎn)損失及任務(wù)失效等。在無人艇執(zhí)行航行任務(wù)過程,系統(tǒng)級事故總結(jié)如表1所示,包括四個部分:無人艇受損(A-1):包括無人艇上搭載的設(shè)備受損和艇殼因為外力撞擊受損;無人艇丟失(A-2):指無人艇與地面控制站失去聯(lián)系并消失在操作人員視野中;無人艇沉沒(A-3):指無人艇殼體受損;無人艇碰撞(A-4):指無人艇與水上或岸邊障礙物發(fā)生碰撞導(dǎo)致的殼體破損。
表1 無人艇航行過程系統(tǒng)級事故Table 1 System-level accidents during USV navigation
2.2.2 定義系統(tǒng)級危險
系統(tǒng)級危險是可能導(dǎo)致系統(tǒng)級事故發(fā)生的子集,系統(tǒng)級的危險可能會導(dǎo)致多個系統(tǒng)級事故的發(fā)生,無人艇航行過程的系統(tǒng)級危險如表2所示。
表2 無人艇航行過程系統(tǒng)級危險Table 2 System-level hazards during USV navigation
無人艇設(shè)備失控(H-1)是指無人艇的設(shè)備脫離控制,而無人艇中設(shè)備包括各類傳感器、控制芯片、執(zhí)行機構(gòu)等,這些設(shè)備失控或失效均屬于無人艇設(shè)備失控,進而導(dǎo)致無人艇受損、丟失、沉沒、碰撞等系統(tǒng)級事故。
無人艇偏離預(yù)定航線(H-2)是指無人艇的傳感器或執(zhí)行機構(gòu)的工作偏離設(shè)計工況,導(dǎo)致無人艇實際航路與預(yù)設(shè)路線出現(xiàn)偏差。從閉環(huán)控制系統(tǒng)角度來說,可能由于GPS觀測位置與期望位置偏離過大,導(dǎo)致控制器難以完全糾正無人艇實際航路的偏差,進而導(dǎo)致系統(tǒng)級事故。
無人艇感知錯誤(H-3)是指無人艇傳感器發(fā)生故障,由Pixhawk硬件架構(gòu)可知,各類傳感器信息傳輸?shù)綄?dǎo)航、姿態(tài)控制等模塊中,如果無人艇感知模塊發(fā)生錯誤,將會導(dǎo)致無人艇受損、沉沒、碰撞等系統(tǒng)級事故。
無人艇與地面站通信中斷(H-4)是指無人艇不能與地面控制站進行信息交互。無人艇執(zhí)行任務(wù)過程會將各種航行狀態(tài)和控制指令實時反饋給地面控制站,且任務(wù)完成后無人艇還需要等待地面控制站地面站或遙控器搖桿發(fā)送指令使無人艇返回出發(fā)點。如果通信中斷,地面控制站將不能實時監(jiān)控?zé)o人艇的狀態(tài),無人艇將可能發(fā)生受損、丟失、沉沒、碰撞等系統(tǒng)級事故。
2.2.3 識別不安全控制行為
根據(jù)圖4所示的無人艇航行控制STAMP模型,識別潛在的危險控制。根據(jù)STPA方法定義的四類不安全控制行為,列出控制執(zhí)行對象潛在的不安全控制行為,如表3所示。
表3 無人艇航行過程的潛在的不安全控制行為Table 3 Potential unsafe control behaviors during USV navigation
2.2.4 關(guān)鍵原因分析
將無人艇STAMP模型簡化成圖5所示的無人艇自主航行控制和反饋回路。根據(jù)STPA分析方法可以得知,控制行為導(dǎo)致危險的主要原因包括兩個方面,即不正確、不及時和不恰當?shù)目刂菩袨閷?dǎo)致的危險和不及時、不完整和不合理的信息反饋導(dǎo)致的危險。具體分析原因如下:
圖5 控制和反饋回路Fig.5 Control and feedback loop
1)不正確、不及時和不恰當?shù)目刂菩袨閷?dǎo)致的危險
根據(jù)圖5所示的主動控制部分流程,分析導(dǎo)致不正確、不及時和不恰當?shù)目刂菩袨殛P(guān)鍵原因如下:
(1)地面控制站至Pixhawk自駕儀。①地面控制站操作人員沒有按照正確流程規(guī)劃航點,導(dǎo)致航點信息遺漏、錯誤;②地面控制站操作人員沒有按照正確程序上傳航點,導(dǎo)致航點信息未上傳;③地面控制站操作人員對于航點是否全部成功上傳并沒有明顯的反饋;④地面控制站操作人員沒有按照正確程序解決故障保護問題,導(dǎo)致工作模式切換失敗。
(2)Pixhawk自駕儀至舵機。①Pixhawk程序運行錯誤,導(dǎo)致提供的舵機控制信號錯誤;②Pixhawk程序運行錯誤,導(dǎo)致提供的舵機控制信號提前或延后;③Pixhawk自駕儀至舵機接線中斷,導(dǎo)致信號傳輸不到舵機。
(3)Pixhawk自駕儀至電機。①Pixhawk程序運行錯誤,導(dǎo)致提供的電機控制信號錯誤;②Pixhawk程序運行錯誤,導(dǎo)致提供的電機控制信號提前或延后;③Pixhawk自駕儀至電機接線中斷,導(dǎo)致信號傳輸不到電機。
(4)舵機輸出。①舵機供電故障,導(dǎo)致不能正確執(zhí)行控制信號;②舵機機械結(jié)構(gòu)故障,導(dǎo)致不能正確執(zhí)行控制信號;③舵機與舵葉機械連接出現(xiàn)故障導(dǎo)致轉(zhuǎn)彎效果不能實現(xiàn)。
(5)電機輸出。①電調(diào)供電故障,導(dǎo)致不能正確輸出電機控制信號;②電調(diào)電路故障,導(dǎo)致不能輸出正確的電機控制信號;③接線斷路導(dǎo)致電機不能正常輸出;④電機與螺旋槳機械連接故障導(dǎo)致電機推進效果不能實現(xiàn)。
2)不及時、不完整和不合理的信息反饋導(dǎo)致的危險
根據(jù)圖5所示的反饋回路部分,分析導(dǎo)致不及時、不完整和不合理的信息反饋的關(guān)鍵原因如下:
(1)風(fēng)、浪、流至無人艇的傳感器。①傳感器安裝不穩(wěn)定導(dǎo)致傳感器不能采集到正確的無人艇狀態(tài)信息;②傳感器硬件故障導(dǎo)致傳感器不能采集到正確的無人艇狀態(tài)信息。
(2)GPS傳感器至Pixhawk自駕儀。①無人艇工作區(qū)域周圍障礙物較多導(dǎo)致GPS信號弱,影響GPS定位效果;②GPS傳感器出現(xiàn)硬件故障導(dǎo)致GPS傳感器失效;③GPS傳感器與Pixhawk自駕儀電氣連接斷路導(dǎo)致GPS信息不能正常上傳。
(3)姿態(tài)傳感器至Pixhawk自駕儀。①無人艇工作區(qū)域周圍磁場異常導(dǎo)致傳感器工作異常;②姿態(tài)傳感器故障導(dǎo)致姿態(tài)信息不能正常發(fā)送至 Pixhawk自駕儀;③姿態(tài)傳感器供電故障導(dǎo)致姿態(tài)傳感器不能正常工作;④姿態(tài)傳感器到Pixhawk自駕儀的信號線斷路導(dǎo)致姿態(tài)信息不能正常上傳。
2.2.5 安全性能優(yōu)化
從系統(tǒng)工程和控制原理角度,分析無人艇自主航行安全可知,引發(fā)無人艇航行安全的不安全控制行為關(guān)鍵原因具有一定的相似性,主要包括:人員操作失誤導(dǎo)致控制器輸出錯誤的控制指令;硬件失效問題導(dǎo)致信號丟失或延遲;軟件設(shè)計未充分約束導(dǎo)致輸出錯誤的控制指令。為此,從三個方面提出無人艇航行功能安全設(shè)計的優(yōu)化建議。
1)地面控制站操作人員
操作人員對無人艇進行航行監(jiān)控及操作前,應(yīng)熟悉地面控制站的各類操作與無人艇各功能模塊的狀態(tài)信息。并對可能出現(xiàn)的問題制定可行的應(yīng)急預(yù)案。
在無人艇航行過程中,地面站操作人員應(yīng)該持續(xù)監(jiān)視無人艇運行狀態(tài),保證無人艇在正常航行過程中控制指令不被地面控制站或遙控器惡意干擾,而在無人艇遇到事故或故障時能及時判斷事故類型并做出響應(yīng),避免釀成系統(tǒng)級事故。
2)硬件設(shè)計及運行檢驗
在無人艇執(zhí)行任務(wù)前,應(yīng)該保證各硬件模塊功能的完好性以及安裝和連接的可靠性,保證無人艇在航行過程中能夠保持持續(xù)工作。在無人艇下水之前,應(yīng)對傳感模塊、通信模塊、動力模塊等進行自檢和校準。在無人艇執(zhí)行航行任務(wù)后,應(yīng)對無人艇所有模塊進行檢查、清潔與除潮,防止由于進水導(dǎo)致的電氣短路、斷路。
從Pixhawk硬件設(shè)計層面,現(xiàn)有Pixhawk硬件架構(gòu)(圖2所示)將所有規(guī)劃、制導(dǎo)和控制相關(guān)的核心任務(wù)集中到主控芯片STM32F427,單一芯片工作過程,難免會因為芯片自身或外部輸入異常導(dǎo)致任務(wù)執(zhí)行異常。因此,如圖6所示,在協(xié)處理器STM32F103原有功能基礎(chǔ)上,通過集成電路總線協(xié)議(inter-integrated circuit bus, IIC bus)讀取姿態(tài)傳感器L3G20D和MPU9250的數(shù)據(jù),實現(xiàn)在主控芯片異常情況下,由協(xié)處理器接管控制任務(wù)。
3)軟件設(shè)計及故障處理
在原有主控芯片STM32F427單獨完成自主航行控制任務(wù)基礎(chǔ)上,擴展協(xié)處理器STM32F103的功能實現(xiàn)異常情況的應(yīng)急控制。改進后的Pixhawk框架中,當主控制器正常工作時,協(xié)處理器不處理姿態(tài)傳感器的數(shù)據(jù)。然而,當主控制器發(fā)生故障導(dǎo)致輸出錯誤時,協(xié)處理器將無人艇的工作模式將由自主跟蹤航點模式切換為遙控操縱模式,并通過IIC協(xié)議讀取姿態(tài)傳感器數(shù)據(jù),根據(jù)無人艇航行狀態(tài)對執(zhí)行機構(gòu)控制指令進行干預(yù),確保主控制器失效時無人艇能逐漸減速直至進入待機狀態(tài)。所有狀態(tài)變化和控制指令干預(yù)均通過數(shù)傳模塊傳輸?shù)降孛婵刂普竟┎僮魅藛T分析,以及實施遠程遙控操縱。
圖6 改進后Pixhawk硬件框架Fig.6 Improved Pixhawk hardware framework
從系統(tǒng)工程角度,利用STAMP及STPA安全分析方法對無人艇自主航行控制過程安全性進行了系統(tǒng)分析。基于閉環(huán)控制反饋系統(tǒng)回路分析,更加全面地識別了不安全控制行為及原因,充分分析了無人艇在人員操縱、硬件及軟件中出現(xiàn)的事故致因,對提高無人艇航行安全性具有重要意義。與此同時,也驗證了利用STAMP進行事故建模,再對無人艇航行安全進行STPA分析的可行性和有效性。
對無人艇航行安全設(shè)計,從地面站操作人員、硬件、軟件三個方面提出優(yōu)化建議。但是軟硬件改進方面,僅將姿態(tài)傳感器輸入至協(xié)處理器,在主處理器故障時由協(xié)處理器接管控制指令輸出。后續(xù)研究將進一步完善協(xié)處理器的應(yīng)急控制功能,提高無人艇自主航行的安全性。