一種星載時鐘冗餘系統及方法與流程
2023-06-10 02:01:06

本發明涉及太空飛行器控制技術,特別涉及一種星載時鐘冗餘系統,以及實現星載時鐘冗餘的方法。
背景技術:
太空飛行器的控制系統負責導航制導姿態控制計算和任務規劃管理等關鍵功能,這些功能的實現對實時性要求極高,計算周期達到毫秒的量級,因此飛行軟體必須要由高精度的時鐘來驅動運行。
由於太空飛行器的運行環境特別惡劣,強輻射、極端溫度使部件容易老化失效,單粒子翻轉更可能會使狀態瞬間發生不可預期的變化,一旦時鐘發生故障,輕則導致控制系統時序發生漂移或紊亂,重則使得飛行軟體跑飛或停止運行,後果嚴重。為了避免上述後果,一般通過多餘度控制系統來解決。但是,對於微小衛星這類太空飛行器,由於受空間、經費等因素影響,不適於採用多餘度控制系統來避免時鐘故障造成的問題。因此,需要針對無冗餘控制系統的太空飛行器,研究其時鐘失效問題。
在航天控制系統中,飛行控制計算機和慣性測量單元(IMU)是基本配置。其中,慣性測量單元用於測量太空飛行器在慣性空間的加速度、角加速度信息,並發送給飛行控制計算機進行導航計算;為了確保慣性導航精度,一般慣性測量單元的時鐘精度都會比較高。飛行控制計算機內標配有兩個定時器Timer0和Timer1,可作為計時用。由於慣性測量單元和飛行控制計算機的時鐘不同源,且晶振精度不一致,存在相對漂移的現象,如果設計硬體表決電路來實現慣性測量單元時鐘、Timer0和Timer1的「三取二」冗餘,難度大,效果不好,因此現有單餘度控制系統中,均無時鐘冗餘,實現方案概括起來有兩種:
1、飛行控制計算機採用慣性測量單元時鐘作為整個控制系統時鐘;
2、飛行控制計算機採用內部時鐘(Timer0或Timer1)作為控制系統時鐘。
方案1能保證控制系統各單機同步運行,時統性更好,但一旦慣性測量單元時鐘發生故障,將使得整個控制系統癱瘓,「一損俱損」;方案2實現簡單,但會使得飛行控制計算機與慣性測量單元產生時鐘差,影響控制精度;另外,上述兩個方案都有一個共同的缺點:飛行控制計算機所使用的時鐘一旦出現故障,飛行控制系統將崩潰,影響太空飛行器任務的順利完成。
技術實現要素:
本發明需要解決的技術問題是:針對單餘度控制系統的特點,提供了一種星載時鐘冗餘及其實現方法,充分利用太空飛行器現有的資源,實現了飛行控制計算機的時鐘冗餘功能,提高了控制系統的可靠性和安全性,而且具有實現成本低、易於工程實現的特點。
本發明的上述目的通過以下方案實現:
一種星載時鐘冗餘系統,用於為航天控制系統提供系統時鐘,所述航天控制系統包括慣性測量單元和飛行控制計算機,且所述飛行控制計算機的CPU自帶有兩個定時器,分別為第一定時器和第二定時器;
上述星載時鐘冗餘系統包括主時鐘單元、備用時鐘單元、第三方時鐘單元和時鐘冗餘控制單元,其中:主時鐘單元利用慣性測量單元的慣導時鐘為CPU提供外部定時中斷;備用時鐘單元採用第一定時器為CPU提供內部定時中斷,且設置第一定時器的周期Tbackup=T+ΔTth,T為慣導時鐘周期,ΔTth為設定的時鐘誤差門限;第三方時鐘單元利用第二定時器進行計時,且第二定時器的周期Tthird滿足條件:Tthird>T+ΔTth;時鐘冗餘控制單元包括主時鐘誤觸發檢測模塊、主時鐘失效檢測模塊和時鐘切換模塊;
在CPU產生外部定時中斷時,啟用主時鐘誤觸發檢測模塊;所述主時鐘誤觸發檢測模塊利用備用時鐘單元和第三方時鐘單元對外部定時中斷發生時刻進行計時,並對外部定時中斷發生次數進行計數,然後檢測慣導時鐘是否發生故障而誤觸發了外部定時中斷,並將檢測結果發送給時鐘切換模塊;時鐘切換模塊接收主時鐘誤觸發檢測模塊發送的檢測結果,並根據所述檢測結果選擇主時鐘單元或備用時鐘單元輸出系統時鐘;
在CPU產生內部定時中斷時,啟用主時鐘失效檢測模塊;所述主時鐘失效檢測模塊利用第三方時鐘單元對內部定時中斷發生時刻進行計時,並獲取外部定時中斷發生次數,然後檢測第二定時器是否發生故障而誤觸發了內部定時中斷,並將檢測結果發送給時鐘切換模塊;時鐘切換模塊接收主時鐘失效檢測模塊發送的檢測結果,並根據所述檢測結果選擇主時鐘單元或備用時鐘單元輸出系統時鐘。
上述的星載時鐘冗餘系統,在CPU產生外部定時中斷時,啟用主時鐘誤觸發檢測模塊,檢測慣導時鐘是否發生故障而誤觸發了外部定時中斷,並發送檢測結果給時鐘切換模塊,然後由時鐘切換模選擇主時鐘單元或備用時鐘單元輸出系統時鐘,具體實現過程如下:
(aa)、在外部定時中斷產生時,記錄外部定時中斷次數n,以及第一定時器的時間tbackup(n)和第二定時器的時間tthird(n);如果第一次產生外部定時中斷,即n=1,則時鐘切換模塊選擇主時鐘單元輸出慣導時鐘作為航天控制系統的系統時鐘,然後進入步驟(ad);如果n>1,則進入步驟(ab);
(ab)、根據步驟(aa)記錄的第一定時器的時間,計算當前外部定時中斷和前一次外部定時中斷之間的時間間隔ΔTbackup,並進行如下判斷:
如果ΔTbackup≥T-ΔTth,則判斷慣導時鐘正常,時鐘切換模塊選擇主時鐘單元輸出慣導時鐘作為航天控制系統的系統時鐘,然後進入步驟(ad);如果ΔTbackup<T-ΔTth,則進入步驟(ac);
(ac)、根據步驟(aa)記錄的第二定時器的時間,計算當前外部定時中斷和前一次外部定時中斷之間的時間間隔ΔTthird_ex,並進行如下判斷:
如果ΔTthird_ex≥T-ΔTth,則對第二定時器進行初始化且設置周期Tbackup=T+ΔTth,時鐘切換模塊選擇主時鐘單元輸出慣導時鐘作為航天控制系統的系統時鐘,然後進入步驟(ad);
如果ΔTthird_ex1,則進入步驟(bb);
(bb)、將上一次產生內部定時中斷時獲取的外部定時中斷次數,與當前獲取的外部定時中斷次數進行比較,並進行如下判斷:
如果兩次獲取的外部定時中斷次數不相等,則判斷慣導時鐘正常,時鐘切換模塊選擇主時鐘單元輸出慣導時鐘作為航天控制系統的系統時鐘,然後進入步驟(bd);如果兩次獲取的外部定時中斷次數相等,則進入步驟(bc);
(bc)、根據步驟(ba)記錄的第二定時器時間,計算上一次內部定時中斷與當前內部定時中斷之間的時間間隔ΔTthird_in,並進行如下判斷:
如果ΔTthird_in≤T,則對第二定時器進行初始化且設置周期Tbackup=T+ΔTth,然後時鐘切換模塊選擇主時鐘單元輸出慣導時鐘作為航天控制系統的系統時鐘,然後進入步驟(bd);
如果ΔTthird_in>T,則設置第二定時器的周期Tbackup=T;時鐘切換模塊選擇備用時鐘單元為航天控制系統提供系統時鐘,然後進入步驟(bd);
(bd)、結束。
一種星載時鐘冗餘方法,用於為航天控制系統提供系統時鐘,所述航天控制系統包括慣性測量單元和飛行控制計算機,且所述飛行控制計算機的CPU自帶有兩個定時器,分別為第一定時器和第二定時器;
上述星載時鐘冗餘方法包括以下步驟:
(1)、將慣性測量單元的慣導時鐘引入到飛行控制計算機,作為CPU的外部定時中斷時鐘;並採用第一定時器為CPU提供內部定時中斷時鐘,且設置第一定時器周期Tbackup=T+ΔTth,其中,T為慣導時鐘周期,ΔTth為設定的時鐘誤差門限;另外,設置第二定時器的周期Tthird滿足條件:Tthird>T+ΔTth;
(2)、檢測是否產生外部定時中斷或內部定時中斷:如果產生外部定時中斷,則進入步驟(3);如果產生內部定時中斷,則進入步驟(4);
(3)、進行慣導時鐘誤觸發檢測,具體檢測過程如下:
(3a)、在外部定時中斷產生時,記錄第一定時器的時間tbackup(n),以及第二定時器的時間tthird(n),其中,n為產生外部定時中斷的次數;如果第一次產生外部定時中斷,即n=1,則選擇慣導時鐘作為航天控制系統的系統時鐘輸出,並返回步驟(2);如果n>1,則進入步驟(3b);
(3b)、根據步驟(3a)記錄的第一定時器的時間,計算當前外部定時中斷和前一次外部定時中斷之間的時間間隔ΔTbackup,並進行如下判斷:
如果ΔTbackup≥T-ΔTth,則選擇慣導時鐘作為航天控制系統的系統時鐘輸出,並返回步驟(2);如果ΔTbackup<T-ΔTth,則進入步驟(3c);
(3c)、根據步驟(3a)記錄的第二定時器的時間,計算當前外部定時中斷和前一次外部定時中斷之間的時間間隔ΔTthird_ex,並進行如下判斷:
如果ΔTthird_ex≥T-ΔTth,則對第二定時器進行初始化且設置周期Tbackup=T+ΔTth,然後選擇慣導時鐘作為航天控制系統的系統時鐘輸出,並返回步驟(2);
如果ΔTthird_ex1,則進入步驟(4b);
(4b)、將上一次產生內部定時中斷時獲取的外部定時中斷次數,與當前獲取的外部定時中斷次數進行比較,並進行如下判斷:
如果兩次獲取的外部定時中斷次數不相等,則選擇慣導時鐘作為航天控制系統的系統時鐘輸出,並返回步驟(2);如果兩次獲取的外部定時中斷次數相等,則進入步驟(4c);
(4c)、根據步驟(4a)記錄的第二定時器時間,計算上一次內部定時中斷與當前內部定時中斷之間的時間間隔ΔTthird_in,並進行如下判斷:
如果ΔTthird_in≤T,則對第二定時器進行初始化且設置周期Tbackup=T+ΔTth,然後選擇慣導時鐘作為航天控制系統的系統時鐘輸出,並返回步驟(2);
如果ΔTthird_in>T,則設置第二定時器的周期Tbackup=T;然後選擇第二定時器為航天控制系統提供系統時鐘,並返回步驟(2)。
上述的星載時鐘冗餘方法,在步驟(3b)中,根據步驟(3a)記錄的第一定時器的時間,計算當前外部定時中斷和前一次外部定時中斷之間的時間間隔ΔTbackup,具體計算公式如下:
ΔTbackup=[tbackup(n)-tbackup(n-1)+Tbackup]%Tbackup;
其中,%為求餘計算符號。
上述的星載時鐘冗餘方法,在步驟(3c)中,根據步驟(3a)記錄的第二定時器的時間,計算當前外部定時中斷和前一次外部定時中斷之間的時間間隔ΔTthird_ex,具體計算公式如下:
ΔTthird_ex=[tthird(n)-tthird(n-1)+Tthird]%Tthird;
其中,%為求餘計算符號。
上述的星載時鐘冗餘方法,在步驟(4c)中,根據步驟(4a)記錄的第二定時器時間,計算上一次內部定時中斷與當前內部定時中斷之間的時間間隔ΔTthird_in,具體計算公式如下:
ΔTthird_in=[tt′hird(m)-tt′hird(m-1)+Tthird]%Tthird;
其中,%為求餘計算符號。
上述的星載時鐘冗餘方法,設定時鐘誤差門限ΔTth=0.1T。
本發明與現有技術相比,具有以下優點:
(1)、本發明在單餘度控制系統中,利用慣性單元高精度時鐘以及飛行控制計算機內配置的兩個時鐘,實現了控制系統的時鐘冗餘功能,即充分利用了慣性單元的高精度時鐘,又避免了該時鐘故障對控制系統運行的影響,有助於提高控制系統的可靠性和安全性,而且具有實現成本低、易於工程實現的特點;
(2)、本發明把非同源的外部高精度時鐘和兩個內部時鐘分別作為主時鐘、備份時鐘和第三方時鐘,只有當主備時鐘不一致時才採用第三方時鐘仲裁,能容忍時鐘發生單餘度故障,達到了「三冗餘」的目的,實現簡單且代價小;
(3)、本發明把慣性測量單元的高精度時鐘作為正常情況下冗餘輸出時鐘,給飛行控制軟體使用,相比現有技術,可以統一慣性測量單元與飛行控制計算機之間的時標,提高控制系統的計算精度;
(4)、本發明的時鐘冗餘系統中各時鐘間的誤差可控,相比現有技術,既能滿足故障判別的要求,又不會因誤差範圍過於苛刻導致誤判,還使得在非同源時鐘之間實現冗餘成為可能;
(5)、本發明在時鐘故障檢測過程中,只使用到了當前拍和上一拍的時鐘信息,相比現有技術,可以過濾掉不同源時鐘之間頻標緩慢漂移的問題;
(6)、本發明採用主時鐘誤觸發檢測和主時鐘失效檢測方法,解決了慣性測量單元的時鐘產生的外部定時中斷被誤觸發(提前發生)的故障,以及慣性測量單元的時鐘失效(未在規定的時間內產生)的故障。
附圖說明
圖1為飛行器控制系統基本組成框圖;
圖2為本發明的星載時鐘冗餘系統的組成框圖。
具體實施方式
下面結合附圖和具體實例對本發明作進一步詳細的描述:
如圖1所示,航天控制系統一般均會配置慣性測量單元(IMU)和飛行控制計算機。其中,慣性測量單元具有較高精度的慣導時鐘,而飛行控制計算機內含嵌入式CPU,並標配有兩個定時器Timer0和Timer1。
本發明提供的星載時鐘冗餘系統可以為上述的航天控制系統提供系統時鐘。如圖2所示的系統框圖,本發明的星載時鐘冗餘系統主時鐘單元、備用時鐘單元、第三方時鐘單元和時鐘冗餘控制單元。其中,時鐘冗餘控制單元包括主時鐘誤觸發檢測模塊、主時鐘失效檢測模塊和時鐘切換模塊。
在主時鐘模塊中,將慣性測量單元的高精度慣導時鐘引入飛行控制計算機,並將其設為飛行控制計算機CPU的外部定時中斷。
備用時鐘單元在飛行控制計算機的兩個定時器Timer0和Timer1中選擇一個作為第一定時器,並採用該定時器為CPU提供內部定時中斷。為了便於對主時鐘單元和備用時鐘單元的時鐘進行比較,本發明設置第一定時器的周期Tbackup=T+ΔTth,其中,T為慣導時鐘周期,ΔTth為設定的時鐘誤差門限。為了滿足時鐘故障判別的要求,又不會因誤差範圍過於苛刻導致誤判,可以將該時鐘誤差門限ΔTth設為慣導時鐘周期的10%,例如:在慣導周期T=10ms,設定時鐘誤差門限ΔTth=1ms,可以確保主時鐘單元和備用時鐘單元之間的時標誤差在±1ms之間。
第三方時鐘單元採用另一個飛行控制計算機定時器作為第二定時器,在故障判斷中進行計時。為了確保在計時過程中主時鐘單元和備用時鐘單元的時鐘不發生翻轉,應該設置第二定時器的周期Tthird儘量大,必須滿足條件:Tthird>T+ΔTth;在本實施例中,設定Tthird為1s。
時鐘冗餘控制單元用於對主時鐘單元和備用時鐘進行誤差判斷,主要包括主時鐘誤觸發檢測模塊、主時鐘失效檢測模塊和時鐘切換模塊。
在CPU產生外部定時中斷時,時鐘誤差判斷和時鐘切換的流程如下:
(aa)、在外部定時中斷產生時,啟用主時鐘誤觸發檢測模塊,記錄外部定時中斷次數n,以及第一定時器的時間tbackup(n)和第二定時器的時間tthird(n);如果第一次產生外部定時中斷,即n=1,則時鐘切換模塊選擇主時鐘單元輸出慣導時鐘作為航天控制系統的系統時鐘,然後進入步驟(ad);如果n>1,則進入步驟(ab);
(ab)、根據步驟(aa)記錄的第一定時器的時間,計算當前外部定時中斷和前一次外部定時中斷之間的時間間隔ΔTbackup,並進行如下判斷:
如果ΔTbackup≥T-ΔTth,則判斷慣導時鐘正常,時鐘切換模塊選擇主時鐘單元輸出慣導時鐘作為航天控制系統的系統時鐘,然後進入步驟(ad);如果ΔTbackup<T-ΔTth,則表示主時鐘單元和備用時鐘單元之間的時鐘誤差超出了允許誤差範圍(ΔTth),此時需根據第三方時鐘單元作進一步判斷,即則進入步驟(ac);其中,時間間隔ΔTbackup的具體計算公式如下:
ΔTbackup=[tbackup(n)-tbackup(n-1)+Tbackup]%Tbackup;
其中,%為求餘計算符號。
(ac)、根據步驟(aa)記錄的第二定時器的時間,計算當前外部定時中斷和前一次外部定時中斷之間的時間間隔ΔTthird_ex,並進行如下判斷:
如果ΔTthird_ex≥T-ΔTth,則判斷備用時鐘單元出現故障,需要對第二定時器進行初始化,將其周期仍然設置為Tbackup=T+ΔTth,時鐘切換模塊選擇主時鐘單元輸出慣導時鐘作為航天控制系統的系統時鐘,然後進入步驟(ad);
如果ΔTthird_ex1,則進入步驟(bb);
(bb)、將上一次產生內部定時中斷時獲取的外部定時中斷次數,與當前獲取的外部定時中斷次數進行比較,並進行如下判斷:
如果兩次獲取的外部定時中斷次數不相等,則表示在兩次內部定時中斷之間正常產生了外部定時中斷,因此判斷主時鐘單元工作正常,即慣導時鐘正常,因此時鐘切換模塊選擇主時鐘單元輸出慣導時鐘作為航天控制系統的系統時鐘,然後進入步驟(bd);
如果兩次獲取的外部定時中斷次數相等,則表示主時鐘單元和備用時鐘單元的時鐘誤差超出了允許誤差範圍(ΔTth),此時需根據第三方時鐘單元作進一步判斷,因此進入步驟(bc);
(bc)、根據步驟(ba)記錄的第二定時器時間,計算上一次內部定時中斷與當前內部定時中斷之間的時間間隔ΔTthird_in,並進行如下判斷:
如果ΔTthird_in≤T,則判斷備用時鐘單元誤觸發而提前產生中斷,因此對第二定時器進行初始化且設置周期Tbackup=T+ΔTth,然後時鐘切換模塊選擇主時鐘單元輸出慣導時鐘作為航天控制系統的系統時鐘,然後進入步驟(bd);
如果ΔTthird_in>T,則表示外部定時中斷未在規定的時間內產生,判斷是主時鐘單元失效,設置第二定時器的周期Tbackup=T;時鐘切換模塊選擇備用時鐘單元為航天控制系統提供系統時鐘,然後進入步驟(bd);其中,時間間隔ΔTthird_in的計算公式如下:ΔTthird_in=[tt′hird(m)-tt′hird(m-1)+Tthird]%Tthird;
(bd)、結束。
根據上述的星載時鐘冗餘系統的處理流程,本發明提供了一種星載時鐘冗餘方法,具體包括以下步驟:
(1)、將慣性測量單元的慣導時鐘引入到飛行控制計算機,作為CPU的外部定時中斷時鐘;並採用第一定時器為CPU提供內部定時中斷時鐘,且設置第一定時器周期Tbackup=T+ΔTth,其中,T為慣導時鐘周期,ΔTth為設定的時鐘誤差門限;另外,設置第二定時器的周期Tthird滿足如下條件:Tthird>T+ΔTth;
(2)、檢測是否產生外部定時中斷或內部定時中斷:如果產生外部定時中斷,則進入步驟(3);如果產生內部定時中斷,則進入步驟(4);
(3)、進行慣導時鐘誤觸發檢測,具體檢測過程如下:
(3a)、在外部定時中斷產生時,記錄第一定時器的時間tbackup(n),以及第二定時器的時間tthird(n),其中,n為產生外部定時中斷的次數;如果第一次產生外部定時中斷,即n=1,則選擇慣導時鐘作為航天控制系統的系統時鐘輸出,並返回步驟(2);如果n>1,則進入步驟(3b);
(3b)、根據步驟(3a)記錄的第一定時器的時間,計算當前外部定時中斷和前一次外部定時中斷之間的時間間隔ΔTbackup,並進行如下判斷:如果ΔTbackup≥T-ΔTth,則選擇慣導時鐘作為航天控制系統的系統時鐘輸出,並返回步驟(2);如果ΔTbackup<T-ΔTth,則進入步驟(3c)。
其中,時間間隔ΔTbackup的具體計算公式如下:
ΔTbackup=[tbackup(n)-tbackup(n-1)+Tbackup]%Tbackup;
其中,%為求餘計算符號。
(3c)、根據步驟(3a)記錄的第二定時器的時間,計算當前外部定時中斷和前一次外部定時中斷之間的時間間隔ΔTthird_ex,並進行如下判斷:
如果ΔTthird_ex≥T-ΔTth,則對第二定時器進行初始化且設置周期Tbackup=T+ΔTth,然後選擇慣導時鐘作為航天控制系統的系統時鐘輸出,並返回步驟(2);
如果ΔTthird_ex1,則進入步驟(4b);
(4b)、將上一次產生內部定時中斷時獲取的外部定時中斷次數,與當前獲取的外部定時中斷次數進行比較,並進行如下判斷:
如果兩次獲取的外部定時中斷次數不相等,則選擇慣導時鐘作為航天控制系統的系統時鐘輸出,並返回步驟(2);如果兩次獲取的外部定時中斷次數相等,則進入步驟(4c);
(4c)、根據步驟(4a)記錄的第二定時器時間,計算上一次內部定時中斷與當前內部定時中斷之間的時間間隔ΔTthird_in,並進行如下判斷:
如果ΔTthird_in≤T,則對第二定時器進行初始化且設置周期Tbackup=T+ΔTth,然後選擇慣導時鐘作為航天控制系統的系統時鐘輸出,並返回步驟(2);
如果ΔTthird_in>T,則設置第二定時器的周期Tbackup=T;然後選擇第二定時器為航天控制系統提供系統時鐘,並返回步驟(2)。
其中,時間間隔ΔTthird_in的計算公式如下:
ΔTthird_in=[tt′hird(m)-tt′hird(m-1)+Tthird]%Tthird;
以上所述,僅為本發明一個具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護範圍之內。
本發明說明書中未作詳細描述的內容屬於本領域專業技術人員的公知技術。