本發(fā)明涉及飛行器控制領域,特別涉及一種飛行器的冗余控制方法。
背景技術:
無人機現(xiàn)被廣泛用于消費級市場的航拍,以及專業(yè)級市場的救災支援、電力巡檢、科學測繪及植保等等應用。目前,大多數(shù)無人機系統(tǒng)在各組成子系統(tǒng)之間主要采用傳統(tǒng)的串口通信的方式,即以飛控系統(tǒng)為中心,通過串口連接云臺系統(tǒng)、電調(diào)動力系統(tǒng)(Electronic Speed Control,ESC)等;但串口通信的方式在全系統(tǒng)抗干擾、多冗余、可擴展的可靠安全需求上存在缺陷,具有嚴重安全隱患。
隨著時間的推移,也出現(xiàn)了基于控制器局域網(wǎng)絡(Controller Area Network,CAN)總線的無人機系統(tǒng)解決方案,但這類CAN總線的無人機方案基本都是重點考慮無人機的飛控系統(tǒng)與傳感器、ESC之間采用CAN總線連接,并沒有考慮無人機多飛控系統(tǒng)的冗余需求以及對云臺等必不可少的無人機子系統(tǒng)的全包含,即無人機中的云臺等系統(tǒng)并不是通過CAN總線連接的。
技術實現(xiàn)要素:
鑒于上述描述,本發(fā)明提供了一種飛行器的冗余控制方法,以解決現(xiàn)有CAN總線方案無法實現(xiàn)無人機多飛控系統(tǒng)間的冗余控制的問題。
為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的:
本發(fā)明提供了一種飛行器的冗余控制方法,該飛行器包括兩條CAN總線,其中一條CAN總線構成多個飛控處理器的冗余通訊回路,另一條CAN總線構成多個飛控處理器與掛載器件之間的控制通訊回路,所述方法包括:
從飛行器的多個飛控處理器中確定一個主飛控處理器,其他飛控處理器確定為備用飛控處理器,并確定備用飛控處理器的控制優(yōu)先權;
主飛控處理器通過控制通訊回路對飛行器的掛載器件進行控制,并通過冗余通訊回路與備用飛控處理器進行數(shù)據(jù)交互,實時判斷本身是否發(fā)生故障,在發(fā)生故障時,通過冗余通訊回路向每個備用飛控處理器廣播其控制失效信息,控制優(yōu)先權級別最高的備用飛控處理器作為新的主飛控處理器繼續(xù)控制飛行器。
本發(fā)明實施例的有益效果是:
1、本發(fā)明基于飛行器的兩條CAN總線構成的冗余通訊回路和控制通訊回路,通過冗余通訊回路主飛控處理器與各備用飛控處理器進行數(shù)據(jù)交換,實現(xiàn)各個飛控處理器之間的內(nèi)部冗余;控制通訊回路完成主飛控處理器和掛載器件之間的控制冗余;通過這兩種冗余控制實現(xiàn)了整個飛行控制過程的冗余控制,提高飛行器的安全保障。
2、由于在當前主飛控處理器發(fā)生故障時,每個備用飛控處理器都有機會接管飛行器,作為新的主飛控處理器繼續(xù)控制,因此每個飛控處理器都能夠獨立對飛行器進行控制,保證了飛行器的全數(shù)據(jù)冗余,進一步提高了飛行器的安全性。
3、主飛控處理器與掛載器件通過一條CAN總線進行數(shù)據(jù)通訊,飛控處理器之間通過另一條CAN總線進行數(shù)據(jù)通訊,有效地提高了數(shù)據(jù)的通訊效率。
附圖說明
圖1為本發(fā)明實施例提供的飛行器的冗余控制方法流程圖;
圖2為本發(fā)明實施例提供的飛行器的通訊線路框圖;
圖3為本發(fā)明實施例提供的飛行器冗余控制過程示意圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
目前,飛行器領域中的余度技術,從物理層面講,主要包括硬件冗余和軟件冗余;其中,硬件冗余主要實現(xiàn)方式為核心部件(例如通訊模塊,中央控制器模塊以及電機控制模塊等)的多備份,這些備份以串聯(lián)或者并聯(lián)形式介入到系統(tǒng)工作當中,串聯(lián)形式表示多個備份模塊不會同時工作,當前運行的模塊出問題時才會切換到下一個模塊實現(xiàn)相同功能,并聯(lián)形式表示所有備份模塊都會同時工作,以同樣功能形式介入到系統(tǒng)工作當中;而軟件冗余主要實現(xiàn)方式為軟件模塊的管理,管理算法處理的效率直接影響系統(tǒng)查詢故障部分的時間以及系統(tǒng)恢復的時間。
本發(fā)明的設計構思是:基于飛行器的兩條CAN總線構成的冗余通訊回路和控制通訊回路,利用控制通訊回路完成主飛控處理器和掛載器件之間的控制冗余;以及利用冗余通訊回路完成各個飛控處理器之間的內(nèi)部冗余;通過這兩種冗余控制保證整個飛行控制過程的冗余,提高飛行器的安全保障。
實施例一
本實施例提供了一種飛行器的冗余控制方法,該方法適用于具有兩條CAN總線的飛行器,其中一條CAN總線構成多個飛控處理器的冗余通訊回路,另一條CAN總線構成多個飛控處理器與掛載器件之間的控制通訊回路。
圖1為本發(fā)明實施例提供的飛行器的冗余控制方法流程圖,為圖1所示,該方法包括:
S100,在飛行器的初始化過程中,從飛行器的多個飛控處理器中確定一個主飛控處理器,其他飛控處理器確定為備用飛控處理器,并確定備用飛控處理器的控制優(yōu)先權。
在飛行器的初始化過程中,可以根據(jù)飛行器的上電順序從飛行器的多個飛控處理器中確定一個主飛控處理器,其他飛控處理器確定為備用飛控處理器;如第一個完成上電的飛控處理器為主飛控處理器,后完成上電的其他飛控處理器為備用飛控處理器。還可以隨機從飛行器的多個飛控處理器中確定一個主飛控處理器,其他飛控處理器確定為備用飛控處理器;也可以根據(jù)用戶指令從飛行器的多個飛控處理器中確定一個主飛控處理器,其他飛控處理器確定為備用飛控處理器。
在確定好主飛控處理器和備用飛控處理器后,可以通過下述任一種方式確定費用飛控處理器的控制優(yōu)先權:
根據(jù)備用飛控處理器的上電順序確定每個備用飛控處理器的控制優(yōu)先權;或者,根據(jù)用戶指令確定每個備用飛控處理器的控制優(yōu)先權;或者,主飛控處理器為每個備用飛控處理器分配控制優(yōu)先權。
其中,當主飛控處理器為每個備用飛控處理器的控制優(yōu)先權時,主飛控處理器可以通過冗余通訊回路獲取每個備用飛控處理器反饋的初始化狀態(tài)信息,該初始化狀態(tài)信息一般包括飛控處理器的標識ID,各自傳感器模組的原始狀態(tài)信息(如信噪比、誤差漂移、錯誤計數(shù)等),根據(jù)各備用飛控處理器的傳感器模組的原始狀態(tài)信息為相應的備用飛控處理器分配控制優(yōu)先權。
需要說明的是,為便于實現(xiàn),優(yōu)選地,在根據(jù)飛行器的上電順序確定主飛控處理器和備用飛控處理器時,同時根據(jù)該上電順序確定各備用飛控處理器的控制優(yōu)先權,使備用飛控處理器對應的控制優(yōu)先權與其上電次序相同;在根據(jù)用戶指令確定主飛控處理器和備用飛控處理器時,同時可以根據(jù)用戶指令指定每個備用飛控處理器的控制優(yōu)先權。
進一步需要說明的是,本實施例中每個備用飛控處理器的控制優(yōu)先權有級別之分,即每個備用飛控處理器都有機會作為新的主飛控處理器接管飛行器,但在當前主飛控處理器出現(xiàn)故障時,優(yōu)選地優(yōu)先權級別最高的備用飛控處理器作為新的主飛控處理器接管飛行器,當新的主飛控處理器發(fā)生故障時,剩余的備用飛控處理器中控制優(yōu)先權級別最高的備用飛控處理器繼續(xù)作為新的主飛控處理器繼續(xù)對飛行器進行冗余控制。
在步驟S100中,飛行器初始化后,主飛控處理器對每個備用飛控處理器進行時間同步控制,保證飛行器的同步數(shù)據(jù)處理。
S200,主飛控處理器通過控制通訊回路對飛行器的掛載器件進行控制,并通過冗余通訊回路與備用飛控處理器進行數(shù)據(jù)交互,實時判斷本身是否發(fā)生故障,在發(fā)生故障時,通過冗余通訊回路向每個備用飛控處理器廣播其控制失效信息,控制優(yōu)先權級別最高的備用飛控處理器作為新的主飛控處理器繼續(xù)控制飛行器,而之前的主飛控處理器喪失在控制通訊回路上發(fā)布數(shù)據(jù)的權限,由新的主飛控處理器通過控制通訊回路控制掛載器件。
本實施例基于飛行器的兩條CAN總線構成的冗余通訊回路和控制通訊回路,通過利用控制通訊回路完成主飛控處理器和掛載器件之間的控制冗余;以及利用冗余通訊回路完成各個飛控處理器之間的內(nèi)部冗余;通過這兩種冗余控制保證整個飛行控制過程的冗余,提高飛行器的安全保障。
本實施例中,每個飛控處理器都集成有傳感器模組和濾波器,則可以通過下述方式中的任一種判斷本身是否發(fā)生故障:
方式一,主飛控處理器利用來自其傳感器模組的傳感器數(shù)據(jù)計算飛行器當前的飛行狀態(tài)數(shù)據(jù),并利用濾波器對飛行狀態(tài)數(shù)據(jù)進行濾波處理,得到飛行狀態(tài)優(yōu)化數(shù)據(jù),根據(jù)飛行狀態(tài)優(yōu)化數(shù)據(jù)判斷本身是否發(fā)生故障,例如判斷本身是否發(fā)生傳感器故障或濾波發(fā)散等故障。
在方式一的故障判斷處理過程中,主飛控處理器可以采集集成在主飛控處理器上的傳感器模組數(shù)據(jù),利用采集到的傳感器模組數(shù)據(jù)計算飛行器當前的飛行狀態(tài)數(shù)據(jù),飛行狀態(tài)數(shù)據(jù)可以為俯仰數(shù)據(jù)、滾轉(zhuǎn)數(shù)據(jù)、偏航數(shù)據(jù)、速度數(shù)據(jù)和位置數(shù)據(jù)等,利用濾波器,優(yōu)選為卡爾曼濾波器對飛行器當前的飛行狀態(tài)數(shù)據(jù)進行卡爾曼濾波處理,得到接近飛行器真實飛行狀態(tài)的飛行狀態(tài)優(yōu)化數(shù)據(jù),將飛行狀態(tài)優(yōu)化數(shù)據(jù)與設定的狀態(tài)參考值進行比較,判斷是否發(fā)生傳感器故障或濾波發(fā)散等故障,狀態(tài)參考值一般根據(jù)經(jīng)驗設定。
方式二:主飛控處理器通過冗余通訊回路獲取每個備用飛控處理器反饋的飛行狀態(tài)優(yōu)化數(shù)據(jù),根據(jù)每個備用飛控處理器反饋的飛行狀態(tài)優(yōu)化數(shù)據(jù)判斷本身是否發(fā)生故障,例如判斷本身是否發(fā)生傳感器故障、濾波發(fā)散、或系統(tǒng)進程死鎖等故障。
在方式二的故障判斷處理過程中,每個飛控處理器(包括主飛控處理器和備用飛控處理器)采集各自的傳感器模組數(shù)據(jù),并計算飛行器當前的飛行狀態(tài)數(shù)據(jù),飛行狀態(tài)數(shù)據(jù)可以為俯仰數(shù)據(jù)、滾轉(zhuǎn)數(shù)據(jù)、偏航數(shù)據(jù)、速度數(shù)據(jù)和位置數(shù)據(jù)等,利用濾波器,優(yōu)選為卡爾曼濾波器對飛行器當前的飛行狀態(tài)數(shù)據(jù)進行融合濾波處理,得到接近飛行器真實飛行狀態(tài)的飛行狀態(tài)優(yōu)化數(shù)據(jù),每個飛控處理器將各自的飛行狀態(tài)優(yōu)化數(shù)據(jù)發(fā)布到冗余通訊回路上,主飛控處理器從冗余通訊回路上獲取各個備用飛控處理器的飛行狀態(tài)優(yōu)化數(shù)據(jù),比較其飛行狀態(tài)優(yōu)化數(shù)據(jù)與備用飛控處理器的飛行狀態(tài)優(yōu)化數(shù)據(jù),如果差異較大,則判斷主飛控處理器發(fā)生故障。
其中,方式二的故障判斷處理過程可以由主飛控處理器上的裁決模塊執(zhí)行。
方式三:在主飛控處理器通過控制通訊回路對飛行器的掛載器件進行控制時,備用飛控處理器實時通過冗余通訊回路獲取主飛控處理器反饋的飛行狀態(tài)數(shù)據(jù),當備用飛控處理器在設定時間間隔內(nèi)未獲取到主飛控處理器反饋的飛行狀態(tài)數(shù)據(jù)時,備用飛控處理器判斷當前主飛控處理器失效,取消當前主飛控處理器對飛行器的控制權限,實現(xiàn)時,可通過關閉當前主飛控處理器或斷開主飛控處理器與控制通訊回路和冗余通訊回路的連接即可,控制優(yōu)先權級別最高的備用飛控處理器作為新的主飛控處理器繼續(xù)控制飛行器。
由上,本實施例的主飛控處理器可以通過上述的方式一或方式二判斷其本身是否發(fā)生故障,或者結合方式一和方式二進行故障判斷;而在某些情況下,主飛控處理器可能無法判斷本身是否發(fā)生故障,即無法向過冗余通訊回路上傳信息,此時可以采用方式三的故障判斷方法,利用備用飛控處理器判斷當前主飛控處理器是否發(fā)生故障(或失效)。
在本實施例中,主飛控處理器還可以根據(jù)每個備用飛控處理器反饋的飛行狀態(tài)優(yōu)化數(shù)據(jù)判斷備用飛控處理器是否發(fā)生故障,在某個備用飛控處理器發(fā)生故障時,取消該備用飛控處理器的控制優(yōu)先權,被取消控制優(yōu)先權的備用飛控處理器沒有權限接管飛行器,保證在當前主飛控處理器發(fā)生故障時,由可以正常工作的備用飛控處理器掌控飛行器,控制飛行器正常飛行。
為了在當前主飛控處理器發(fā)生故障時,保證由控制效果良好的備用飛控處理器接管飛行器,圖1所示的方法還包括:
主飛控處理器通過冗余通訊回路獲取每個備用飛控處理器反饋的飛行器狀態(tài)信息、傳感器狀態(tài)信息和濾波器狀態(tài)信息,并根據(jù)每個備用飛控處理器反饋的飛行器狀態(tài)信息、傳感器狀態(tài)信息和濾波器狀態(tài)信息為相應的備用飛控處理器重新分配控制優(yōu)先權。本實施例的冗余控制方法至少具有以下優(yōu)點:
1、通過控制通訊回路完成主飛控處理器和掛載器件之間的控制冗余,以及通過冗余通訊回路完成各個飛控處理器之間的內(nèi)部冗余,保證整個飛行控制過程的冗余,提高飛行器的安全保障。
2、通過設置每個飛控處理器具有相同的硬件結構,使每個飛控處理器都能夠獨立對飛行器進行控制,實現(xiàn)了全數(shù)據(jù)冗余,進一步提高了飛行器的安全性。
3、主飛控處理器與掛載器件通過一條CAN總線進行數(shù)據(jù)通訊,飛控處理器之間通過另一條CAN總線進行數(shù)據(jù)通訊,有效地提高了數(shù)據(jù)的通訊效率。
實施例二
為了更詳細的說明本發(fā)明對飛行器的冗余控制過程,本發(fā)明通過實施例二進行詳細說明。
圖2為本發(fā)明實施例提供的飛行器的通訊線路框圖,如圖2所示,該飛行器包括兩條CAN總線,其中一條CAN總線構成多個飛控處理器的冗余通訊回路,另一條CAN總線構成多個飛控處理器與掛載器件之間的控制通訊回路。
本實施例中每個飛控處理器的結構相同,在實際應用中,可以利用ARM嵌入式平臺的飛行控制芯片(如型號為STM32F756的控制芯片)以及傳感器模組共同構成飛控處理器,飛控處理器的數(shù)量為兩個以上,優(yōu)選為三個,在實際應用中,可以合理設置飛控處理器的數(shù)量,利用多個結構相同的飛控處理器組成飛行器控制系統(tǒng)的核心。傳感器模組可以包括三軸地磁羅盤、六軸IMU模塊,以通過每個飛控處理器的傳感器模組輔助飛行器的冗余控制。
如圖2所示,每個飛控處理器還可以包括其他的功能模塊,如與地面站通訊的數(shù)傳2.4Ghz接收模塊,作為上傳通道接收遙控設備對飛行器的控制信息;或獲取全球衛(wèi)星定位系統(tǒng)信息的GPS模塊,基于全球衛(wèi)星定位系統(tǒng)信息計算飛行器的位置、速度以及航向角等信息;為了與CAN總線進行數(shù)據(jù)交互,每個飛控處理器還包括一個標準的高速CAN收發(fā)器芯片。
每個飛控處理器通過集成上述模塊形成了一個具有獨立飛行控制、飛行數(shù)據(jù)采集、姿態(tài)位置導航等功能為一體的獨立飛控系統(tǒng)。
圖3為本實施例提供的飛行器冗余控制過程示意圖,如圖3所示,該控制過程如下:
S301,啟動飛行器。
開機上電啟動飛行器,飛行器的電源模塊為多個飛控處理器以及相關的掛載器件供電。
S302,初始化飛行器。
多飛控處理器對各自的功能模塊,如三軸地磁羅盤、六軸IMU模塊、GPS模塊等進行初始化,檢測各功能模塊是否正常工作、時鐘頻率是否正常、傳感器是否正常啟動、傳感器的噪聲是否符合標準等。
S303,各飛控處理器通過冗余通訊回路反饋各自的初始化狀態(tài)信息。
例如,每個飛控處理器向冗余通訊回路發(fā)布本身的標識ID、濾波器狀態(tài)以及傳感器的原始狀態(tài)信息,如信噪比、誤差漂移、錯誤計數(shù)等。
需要說明的是,在步驟S301~S303的任意過程,可以通過相應的方式確定一主飛控處理器,如在步驟S301的開機上電啟動飛行器的過程中,可以根據(jù)上電順序從飛行器的多個飛控處理器中確定一個主飛控處理器,其他飛控處理器確定為備用飛控處理器;或在步驟S302的初始化過程中,隨機從飛行器的多個飛控處理器中確定一個主飛控處理器,其他飛控處理器確定為備用飛控處理器;或者,根據(jù)用戶指令從飛行器的多個飛控處理器中確定一個主飛控處理器,其他飛控處理器確定為備用飛控處理器。
S304,進行時間同步,確定各備用飛控處理器的控制優(yōu)先權。
主飛控處理器對每個備用飛控處理器進行時間同步控制,保證各飛控處理器之間的通訊可以由時間戳進行驗證,進而保證各飛控處理器之間的數(shù)據(jù)處理的時間一致性。
本實施例優(yōu)選地,由主飛控處理器為每個備用飛控處理器的控制優(yōu)先權,可以根據(jù)各備用飛控處理器的傳感器信噪比、GPS水平精度、濾波器收斂因子為備用飛控處理器分配控制優(yōu)先權。
S305,主飛控處理器進行控制冗余。
主飛控處理器通過控制通訊回路對飛行器的掛載器件進行控制,其中,只有主飛控處理器有權限通過控制通訊回路對掛載器件進行控制,即只有主飛控能夠向控制通訊回路發(fā)布控制掛載器件的控制命令,備用飛控處理器沒有權限向控制通訊回路發(fā)布控制命令,但備用飛控處理器可以通過控制通訊回路獲取掛載器件反饋的信息。
示例性地,如圖2示出掛載器件包括電機驅(qū)動板、云臺及相機以及黑匣子數(shù)據(jù)記錄儀等器件,以主飛控處理器控制電機驅(qū)動板為例進行說明:
主飛控處理器利用來自其傳感器模組的傳感器數(shù)據(jù)計算飛行器當前的飛行狀態(tài)數(shù)據(jù),如利用來自其本身的三軸地磁羅盤、六軸IMU模塊、GPS模塊的傳感數(shù)據(jù)計算飛行器當前的俯仰數(shù)據(jù)、滾轉(zhuǎn)數(shù)據(jù)、偏航數(shù)據(jù)、速度數(shù)據(jù)和位置數(shù)據(jù)等,主飛控處理器通過控制通訊回路獲取電機驅(qū)動板反饋的信息,例如反饋當前電機驅(qū)動板的驅(qū)動力等,主飛控處理器根據(jù)飛行器當前的飛行狀態(tài)數(shù)據(jù)、電機驅(qū)動板反饋的信息和用戶指令生成控制命令,將該控制命令通過控制通訊回路發(fā)送給相應的電子調(diào)速器,使電子調(diào)速器根據(jù)該控制命令控制相應的電機驅(qū)動板。
在主飛控處理器通過控制通訊回路對飛行器的掛載器件進行控制的過程中,實時判斷主飛控處理器是否發(fā)生故障(判斷方式在此不再贅述,可參見實施例一),在發(fā)生故障時,通過冗余通訊回路向每個備用飛控處理器廣播其控制失效信息,控制優(yōu)先權級別最高的備用飛控處理器作為新的主飛控處理器繼續(xù)控制飛行器。
參考圖2,圖2中示例性示出了飛控處理器A、B、C、D四個飛控處理器,假設飛控處理器A為當前的主飛控處理器,則飛控處理器B、C、D為備用飛控處理器,假設備用飛控處理器B、C、D的控制優(yōu)先權從高到低為備用飛控處理器B、備用飛控處理器C和備用飛控處理器D,則當前的主飛控處理器A發(fā)生故障并向冗余通訊回路廣播其控制失效信息,備用飛控處理器B、C、D分別通過冗余通訊回路接收主飛控處理器A廣播的其控制失效信息,由于備用飛控處理器B的控制優(yōu)先權級別最高,則備用飛控處理器B作為新的主飛控處理器進行控制飛行器,此時,只有新的主飛控處理器B有權限向通過控制通訊回路對掛載器件進行控制。
需要說明的是,由于飛行器的特殊性,在當前的主飛控處理器發(fā)生故障時,應立刻由備用飛控處理器接管控制,切換時間應控制在50ms內(nèi),保證飛行器飛行的穩(wěn)定性。
S306,各飛控處理器之間進行內(nèi)部冗余。
各個飛控處理器的結構相同,都集成有相應的傳感器模組、濾波器和其他的功能模塊,每個飛控處理器內(nèi)設置有同步算法,可以通過冗余通訊回路進行多個飛控處理器的同步控制,實現(xiàn)了各飛控處理器之間進行內(nèi)部冗余。
其中,步驟S305和步驟S306不區(qū)分執(zhí)行先后,一般步驟S305和步驟S306同步進行。
由上,本實施例通過上述步驟S301~S306實現(xiàn)了飛行器的冗余控制,保證整個飛行控制過程的冗余,提高飛行器的安全保障。
為了便于清楚描述本發(fā)明實施例的技術方案,在發(fā)明的實施例中,采用了“第一”、“第二”等字樣對功能和作用基本相同的相同項或相似項進行區(qū)分,本領域技術人員可以理解“第一”、“第二”等字樣并不對數(shù)量和執(zhí)行次序進行限定。
以上所述,僅為本發(fā)明的具體實施方式,在本發(fā)明的上述教導下,本領域技術人員可以在上述實施例的基礎上進行其他的改進或變形。本領域技術人員應該明白,上述的具體描述只是更好的解釋本發(fā)明的目的,本發(fā)明的保護范圍應以權利要求的保護范圍為準。