,
(北京控制工程研究所,北京 100190)
近些年來,在許多關(guān)鍵領(lǐng)域比如航天航空、工業(yè)控制等對實(shí)時(shí)性提出了更高的要求。廣泛應(yīng)用于航空領(lǐng)域的航空電子全雙工交換式以太網(wǎng)(avionics full duplex switched ethernet, AFDX)[1]采取了一些措施提高了在一些關(guān)鍵領(lǐng)域的時(shí)間確定性[2],但由于其還是事件觸發(fā)的機(jī)制,并不能保證完全的時(shí)間確定性。時(shí)間觸發(fā)以太網(wǎng)(time-triggered ethernet, TTE)作為新型的分布式交換網(wǎng)絡(luò),在普通以太網(wǎng)的基礎(chǔ)上增加時(shí)間觸發(fā)機(jī)制,解決了普通以太網(wǎng)中時(shí)間不確定性問題,具有強(qiáng)實(shí)時(shí)、高帶寬、高安全性的特點(diǎn),是下一代航天航空數(shù)據(jù)網(wǎng)絡(luò)的重要發(fā)展方向。
TTE網(wǎng)絡(luò)要想實(shí)現(xiàn)時(shí)間觸發(fā)以及實(shí)時(shí)調(diào)度的功能,關(guān)鍵在于建立一個(gè)全局統(tǒng)一同步的時(shí)鐘。只有在保證一定精度范圍內(nèi)的時(shí)鐘同步的前提下,才能使各個(gè)節(jié)點(diǎn)在規(guī)定的時(shí)刻正確收發(fā)數(shù)據(jù)消息。因此研究TTE時(shí)鐘同步算法成為實(shí)現(xiàn)TTE網(wǎng)絡(luò)的關(guān)鍵之一,然而,目前國內(nèi)外對于TTE時(shí)間補(bǔ)償算法研究較少,AS6802 協(xié)議[4]雖然對TTE 的時(shí)鐘同步模式進(jìn)行了描述,并對協(xié)議中關(guān)鍵的流程比如時(shí)間同步過程、固化以及壓縮算法等進(jìn)行了詳細(xì)介紹,但卻沒有為時(shí)鐘同步提供具體的補(bǔ)償方法。
本文的工作在于首先分析了TTE時(shí)間同步過程,以及時(shí)間同步過程中存在的不確定性,這些不確定性會直接影響時(shí)間同步精度,并建立了時(shí)鐘模型以及不確定性帶來的抖動(dòng)噪聲數(shù)學(xué)模型,根據(jù)噪聲的統(tǒng)計(jì)特性采用了kalman濾波等三種濾波算法,得到了較好的效果。最后在濾除噪聲的影響之后,采用了兩種漸進(jìn)時(shí)鐘補(bǔ)償方法對時(shí)鐘進(jìn)行了補(bǔ)償,并通過仿真分析驗(yàn)證了算法的可行性。
TTE網(wǎng)絡(luò)時(shí)鐘同步節(jié)點(diǎn)主要分為三種:CM節(jié)點(diǎn)、SM節(jié)點(diǎn)以及SC節(jié)點(diǎn),時(shí)鐘同步過程如圖1所示。
1)SM在sm_dispatch_pit時(shí)刻提交PCF幀,并在sm_send_pit時(shí)刻發(fā)送PCF幀。
2)CM 在cm_receive_pit時(shí)刻接收到來自SM的PCF幀,并且使用時(shí)鐘固化算法,使得PCF的接收順序和其發(fā)送順序一致,得到時(shí)鐘固化點(diǎn)cm_permanence_pit。
3)CM 使用時(shí)間壓縮算法計(jì)算時(shí)間偏差的均衡值cm_cr。
4)CM 根據(jù)PCF的預(yù)計(jì)接收時(shí)間cm_scheduled_pit 以及均衡值cm_cr計(jì)算得到時(shí)鐘偏差并進(jìn)行修正,然后在cm_dispatch_pit時(shí)刻提交PCF幀,在cm_send_pit發(fā)送新的整合的PCF幀。
5)SM/SC 在smc_receive_pit 接收到新的CM發(fā)送來PCF幀之后,采用時(shí)間固化算法保證 PCF的接收順序和其發(fā)送順序一致,得到固化時(shí)間smc_permanence_pit。
6)SMC根據(jù)預(yù)計(jì)接收時(shí)間smc_scheduled_pit以及實(shí)際固化時(shí)間smc_permanence_pit得到時(shí)鐘偏差,進(jìn)行時(shí)間補(bǔ)償。
圖1 TTE時(shí)鐘同步過程
在深入分析TTE時(shí)鐘同步的過程后,本文研究總結(jié)出影響TTE時(shí)間同步精度的3種主要因素,如圖2所示。
圖2 同步精度影響示意圖
主要包括以下方面:
1)TTE時(shí)鐘節(jié)點(diǎn)的棧內(nèi)滯留時(shí)延抖動(dòng)。操作系統(tǒng)及協(xié)議棧的滯留時(shí)延抖動(dòng)影響TTE報(bào)文的收發(fā)時(shí)間戳標(biāo)記的精確性,從而直接降低時(shí)鐘同步精度。
2)透明時(shí)鐘精確度。TTE時(shí)鐘同步算法是基于透明時(shí)鐘進(jìn)行固化計(jì)算的,透明時(shí)鐘的精確度是影響TTE時(shí)鐘同步精度的關(guān)鍵之一,如果透明時(shí)鐘記錄的網(wǎng)絡(luò)延遲與實(shí)際網(wǎng)絡(luò)延遲越精確,那么透明時(shí)鐘就越精確,同步算法計(jì)算出的時(shí)鐘偏差就越準(zhǔn)確,必然就會得到更高的時(shí)鐘同步精度。
3)晶振穩(wěn)定性。TTE時(shí)鐘節(jié)點(diǎn)晶振的不穩(wěn)定性因素也會降低同步精度。
1.2.1 TTE協(xié)議棧的滯留時(shí)延抖動(dòng)
操作系統(tǒng)以及協(xié)議棧會帶來時(shí)延抖動(dòng),TTE報(bào)文在經(jīng)過協(xié)議棧時(shí)會進(jìn)行封裝和拆封報(bào)文的工作,這些過程帶來的時(shí)延抖動(dòng)也是不確定的,這樣就會造成TTE報(bào)文時(shí)間戳標(biāo)記不準(zhǔn)確,進(jìn)而降低時(shí)間同步精度。
通過分析,TTE時(shí)間戳標(biāo)記的位置一般有以下幾種:
1)應(yīng)用層:采用在應(yīng)用層socket接口處打時(shí)間戳的方式。傳統(tǒng)的時(shí)間同步協(xié)議如NTP協(xié)議就采用軟件方式在應(yīng)用層加蓋時(shí)間戳,受協(xié)議棧內(nèi)滯留時(shí)延對時(shí)間戳的精確性影響較大,時(shí)間同步精度只能達(dá)到ms量級。
2)網(wǎng)卡驅(qū)動(dòng)層: 采用在網(wǎng)卡驅(qū)動(dòng)層打時(shí)間戳的方式是軟件方式獲得時(shí)間戳較好的位置。利用網(wǎng)絡(luò)接口中斷服務(wù)程序的入口處進(jìn)行時(shí)間戳標(biāo)記,操作系統(tǒng)的計(jì)時(shí)特性和負(fù)載決定了該方法的時(shí)間戳準(zhǔn)確性。
3)MII接口處: MAC層和物理層之間的MII接口也稱為媒體獨(dú)立接口,在 MII接口處偵聽捕獲時(shí)間戳可獲得較好的時(shí)間戳準(zhǔn)確性。
4)物理層內(nèi),將硬件時(shí)間戳功能集成到PHY芯片中。
其中前兩種為純軟件時(shí)間戳方式,成本較低,但精度不高。采用硬件方式打時(shí)間戳精度較高,能有效提高TTE時(shí)鐘同步精度。
1.2.2 透明時(shí)鐘精確度
透明時(shí)鐘主要通過測量數(shù)據(jù)幀在設(shè)備以及鏈路上的駐留時(shí)間,并將其累加到對應(yīng)的消息本身或跟隨消息的修正域內(nèi)。在時(shí)間觸發(fā)以太網(wǎng)中,各節(jié)點(diǎn)將透明時(shí)鐘的值累加、存儲在PCF 的透明時(shí)鐘域中,用來存儲PCF 從源節(jié)點(diǎn)到目的節(jié)點(diǎn)經(jīng)過的總時(shí)延。
透明時(shí)鐘精確度主要包括三類延遲:節(jié)點(diǎn)發(fā)送延遲、中繼延遲以及接收延遲。
其中三類延遲都與MAC層和PHY層對PCF幀的封裝解析有關(guān),具有較高的不確定性,此外還與本地時(shí)鐘晶振穩(wěn)定性、MAC和PHY芯片的性能和工作模式有關(guān)。而網(wǎng)絡(luò)鏈路延遲是由物理介質(zhì)屬性決定的,延遲和不確定性都很小。
因此采用精確計(jì)算透明時(shí)鐘的方法以及選用性能好且穩(wěn)定的MAC和PHY芯片都能提高透明時(shí)鐘的精確度。
1.2.3 晶振的不穩(wěn)定性
晶振由于制造工藝的不同,本身就存在一定的頻率偏差,加上環(huán)境因素的影響,頻率偏差進(jìn)一步加大。如果TTE時(shí)間節(jié)點(diǎn)選用這種頻率偏差較大晶振那么在一段時(shí)間后相位偏差會變得很大,可能會影響網(wǎng)絡(luò)正常工作,也是TTE不能容忍的。因此晶振的不穩(wěn)定性也是影響時(shí)間同步精度的一個(gè)重要因素。
1.3.1 固化函數(shù)
時(shí)間觸發(fā)以太網(wǎng)通過時(shí)間固化實(shí)現(xiàn)了“延遲固化”功能。該算法的作用就是通過PCF 幀的到達(dá)時(shí)間確定該幀的發(fā)送時(shí)間。由于各個(gè)節(jié)點(diǎn)的時(shí)鐘抖動(dòng)以及網(wǎng)絡(luò)參數(shù)等原因,使得PCF 幀之間的實(shí)際延遲存在不確定偏差,故采用時(shí)間固化函數(shù)來消除不確定偏差。
固化函數(shù)作用于CM、SM、SC所有節(jié)點(diǎn),具體流程如下:
1)接收節(jié)點(diǎn)(CM/SM/SC)接收到PCF,讀取本地時(shí)鐘值記為1) 接收節(jié)點(diǎn)(CM/SC/SM)接收到PCF,讀取本地時(shí)鐘值記為receive_pit,并啟動(dòng)時(shí)間固化算法;
2)讀取PCF的透明時(shí)鐘域得到透明時(shí)鐘值pcf_transparent_clock,即為PCF 在網(wǎng)絡(luò)中傳輸?shù)膶?shí)際總延遲。
3)計(jì)算固化補(bǔ)償延遲permanence_delay:
permanence_delay=max_transmission_delay- pcf_transparent_clock
(1)
4)計(jì)算固化時(shí)間點(diǎn)permanence_pit:
permanence_pit=receive_pit+permanence_delay
(2)
如上面算法,在接收端時(shí)間固化算法:
1)考慮了所有PCF 的時(shí)延得到整個(gè)通信網(wǎng)絡(luò)的最大網(wǎng)絡(luò)時(shí)延max_transmission_delay;
2)計(jì)算了時(shí)序保持時(shí)延permanence_delay??蓪⒕W(wǎng)絡(luò)抖動(dòng)造成的時(shí)延偏差轉(zhuǎn)換到網(wǎng)絡(luò)時(shí)延中。
在時(shí)序保持功能下:透明時(shí)鐘機(jī)制可以提取網(wǎng)絡(luò)抖動(dòng)產(chǎn)生的時(shí)延;因?yàn)樗械腜CF 幀到達(dá)目的節(jié)點(diǎn)后都是在permanence_pit時(shí)間點(diǎn)節(jié)點(diǎn)才認(rèn)為該P(yáng)CF 是有效可用的幀,故可以將所有PCF 的網(wǎng)絡(luò)時(shí)延看作恒值max_transmission_delay。
1.3.2 壓縮算法
TTE采用壓縮算法實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)間時(shí)間偏差均衡值的計(jì)算,用以時(shí)間同步。該算法通過CM整合同一個(gè)周期內(nèi)SMs發(fā)來的IN幀固化時(shí)間點(diǎn)(permanence_pit),通過調(diào)用壓縮算法得到這些IN幀的均衡值(compression_pit),并在等待一段時(shí)間后形成一個(gè)新的PCF幀廣播到網(wǎng)絡(luò)中其他SM和SC節(jié)點(diǎn)進(jìn)行時(shí)間同步。
壓縮函數(shù)由3個(gè)階段組成:收集階段、計(jì)算階段和延遲階段。
1)收集階段。
當(dāng)一個(gè)PCF幀固化之后并且當(dāng)前沒有相應(yīng)集成周期處于激活狀態(tài)的壓縮函數(shù)正在收集PCF幀時(shí),則從該時(shí)刻起開始壓縮函數(shù)。壓縮函數(shù)開始之后,開啟第一個(gè)觀察窗口(observation_window,OW)開始接受PCF幀。收集階段遵循以下規(guī)則。(n代表當(dāng)前OW,OWmax代表最大觀察窗口)
(1)當(dāng)n=1時(shí),如果當(dāng)前OW內(nèi)收集到固化PCF幀小于2,那么停止收集,否則開啟下一個(gè)OW。
(2)當(dāng)n≥2,n≤OWmax時(shí),如果當(dāng)前OW沒有收集到固化的PCF幀,那么停止收集,否則開啟下一個(gè)OW。
(3)當(dāng)n=OWmax,則該OW結(jié)束之后停止收集。
2)計(jì)算階段。
該階段根據(jù)收集階段收集到的PCF固化時(shí)間點(diǎn)計(jì)算出壓縮校驗(yàn)值(compression_correcion)input 表示在收集階段的第i個(gè)PCF時(shí)間固化點(diǎn)和第一個(gè)PCF時(shí)間固化點(diǎn)的差值。
compression_correcion計(jì)算方法如下:(k表示所收集的PCF固化點(diǎn)數(shù)目,th+是順次第f個(gè),th-是倒次第f個(gè)):
k=1:compression_correcion=input1;
k=2:compression_correcion=(input1+input2)/2;
k=3:compression_correcion=input2;
k=4:compression_correcion=(input2+input3)/2;
k=5:compression_correcion=(input2+input4)/2;
k>5:compression_correcion=(inputth++inputth-)/2;
(3)
3)延遲階段。
該階段在計(jì)算階段之后延遲compression_correcion的時(shí)間得到壓縮時(shí)間點(diǎn)(cm_compressed_pit)。在壓縮時(shí)間點(diǎn)到來的時(shí)刻,新的PCF幀需準(zhǔn)備好。
TTE時(shí)鐘同步過程由于采用了PCF幀交換的方式,這樣將無法避免的帶來時(shí)延抖動(dòng),其中主要存在協(xié)議棧時(shí)延抖動(dòng)、物理層、硬MAC層等時(shí)延抖動(dòng)。采用在鏈路層打時(shí)間戳的方式可以減少協(xié)議棧帶的時(shí)延抖動(dòng),但是仍存在驅(qū)動(dòng)中斷、物理層以及硬MAC層等時(shí)延抖動(dòng)[10],并且各種延遲帶來的抖動(dòng)均為隨機(jī)不確定的。本文中假設(shè)這些延遲抖動(dòng)滿足高斯正態(tài)分布,主要原因有:
1)文獻(xiàn)[3]在Mica2Dot平臺上,采用中斷的方式在發(fā)送與接收首幀數(shù)據(jù)時(shí)記錄時(shí)間戳。通過實(shí)驗(yàn)證明了時(shí)鐘的頻率偏移和時(shí)鐘同步過程中的噪聲均滿足高斯分布。
2)存在于硬件電路中的隨機(jī)噪聲主要為熱噪聲,滿足高斯分布。
3)相互獨(dú)立的隨機(jī)抖動(dòng)根據(jù)中心極限定律疊加之后趨近于高斯分布。
時(shí)鐘的狀態(tài)行為通??梢杂脙煞N模型來表述, 一種是確定性模型, 另一種是隨機(jī)模型。其中,確定性時(shí)間模型一般利用實(shí)際觀測到的時(shí)間數(shù)據(jù)采用多項(xiàng)式擬合得到[8]。而隨機(jī)模型則通常采用隨機(jī)差分方程表示,其主要受頻率偏移、過程噪聲等的影響。
(4)
相應(yīng)的兩狀態(tài)時(shí)鐘模型用下面兩個(gè)差分等式表示:
α(t+τ)=α(t)+β(t)·τ+ωα(t)
(5)
β(t+τ)=β(t)+ωβ(t)
(6)
其中:α(t)是相位偏差,β(t)是頻率偏差,ωα(t)是調(diào)頻白噪聲,ωβ(t)是調(diào)頻隨機(jī)游走噪聲。
時(shí)間同步節(jié)點(diǎn)的本地時(shí)鐘依靠其內(nèi)部晶振實(shí)現(xiàn),節(jié)點(diǎn)內(nèi)部的計(jì)數(shù)器通過捕獲晶振脈沖進(jìn)行累加,完成對時(shí)間的計(jì)數(shù)。由于晶振本身的頻率誤差,啟動(dòng)時(shí)間不可能完全同步以及節(jié)點(diǎn)工作環(huán)境的影響,隨著時(shí)間的流逝,不同節(jié)點(diǎn)間會出現(xiàn)一定的時(shí)間偏差。
節(jié)點(diǎn)時(shí)鐘模型[11]是對時(shí)間同步協(xié)議性能進(jìn)行有效分析的數(shù)學(xué)理論基礎(chǔ)。由于節(jié)點(diǎn)晶振頻率的不穩(wěn)定性,通常節(jié)點(diǎn)i在某個(gè)t時(shí)刻的本地時(shí)間可以表示為公式(7)[12]:
(7)
其中:f0為節(jié)點(diǎn)晶振的標(biāo)準(zhǔn)頻率,它是表征晶體物理特性的常量,fi(t)表示節(jié)點(diǎn)在時(shí)刻t的頻率。通常由于制造工藝不同,fi(t)和f0存在微小差別。t0表示節(jié)點(diǎn)的初始時(shí)間,Ci(t0)表示節(jié)點(diǎn)在t0時(shí)刻的本地時(shí)間。
如果不考慮節(jié)點(diǎn)晶振頻率變化以及外界環(huán)境影響,即認(rèn)為在一定時(shí)間內(nèi)節(jié)點(diǎn)晶振頻率是保持不變的,那么節(jié)點(diǎn)的時(shí)鐘可以表示為公式(8) :
(8)
其中:k=fi/f0為相對頻率,Ci(t0)為節(jié)點(diǎn)在t0時(shí)刻的本地時(shí)間,在理想情況下,時(shí)間變化速率r(t)=dc(t)/dt=1,然而,在實(shí)際應(yīng)用中,外界環(huán)境影響和晶振本身的頻率變化導(dǎo)致公式(8)不能滿足實(shí)際應(yīng)用環(huán)境。但是晶振頻率波動(dòng)幅度也是有限度的,公式(9)可以描述這個(gè)變化幅度:
1-σ≤k≤1+σ
(9)
其中:σ為絕對頻差上界,由制造廠商提供,取值范圍通常在1~100 ppm,即節(jié)點(diǎn)在1 s內(nèi)會有1~100 μs的時(shí)間偏移[9]。
根據(jù)文獻(xiàn)[6],同步主節(jié)點(diǎn)SMk的時(shí)鐘模型為:
C(t)_SMk=φk+αk(t)×t+nk(t)
(10)
其中:φk為相位偏差,αk(t)為時(shí)鐘頻率,nk(t)為隨機(jī)噪聲。
圖3給出了參考時(shí)鐘與本地時(shí)鐘的關(guān)系,其中c1(t)表示本地時(shí)鐘,它與參考時(shí)鐘存在一個(gè)初始的相位偏差α(0)以及頻率偏移β。c2(t)是只進(jìn)行周期性相位偏移補(bǔ)償后的同步時(shí)鐘,由于不進(jìn)行頻率補(bǔ)償,c2(t)與參考時(shí)鐘一直存在β的頻率偏移,在進(jìn)行相位偏移補(bǔ)償后,同步誤差變小,但隨著時(shí)間增大,同步誤差會逐漸變大,最后呈現(xiàn)出鋸齒狀的特性。而c3(t)是只進(jìn)行頻率偏移補(bǔ)償,它與參考時(shí)鐘的頻率接近,從c3(t)我們可以知道,如果本地時(shí)鐘與參考時(shí)鐘初始存在較小的相位偏移,并且保證本地時(shí)鐘與參考時(shí)鐘頻率相近,那么就會得到較高的同步精度。
圖3 時(shí)鐘同步示意圖
線性漸進(jìn)補(bǔ)償算法如圖4所示:圖中c1(t)與參考時(shí)鐘的斜率偏移為β,斜率為1+β。假設(shè)K時(shí)刻c1(t)與參考時(shí)鐘的相位偏移為α(k),如果采用直接補(bǔ)償算法,那么補(bǔ)償后的結(jié)果為c2(t),該時(shí)鐘在K時(shí)刻出現(xiàn)了α(k)的跳變,此后仍保持原有的斜率。而c3(t)是采用線性漸進(jìn)補(bǔ)償算法之后的補(bǔ)償結(jié)果,在調(diào)整期間,c3(t)將按指定頻率進(jìn)行調(diào)節(jié),在剩下的同步間隔里,仍按原有的1+β斜率繼續(xù)運(yùn)行。
圖4 線性漸進(jìn)補(bǔ)償算法
采用上文描述的線性漸進(jìn)補(bǔ)償算法調(diào)節(jié)相位偏差,雖然算法比較簡單,但是實(shí)現(xiàn)精度不是很高,接下來介紹一種PI控制補(bǔ)償算法分別對相位偏移以及頻率偏移進(jìn)行時(shí)鐘補(bǔ)償。
PI調(diào)節(jié)器是一種線性控制器,它根據(jù)給定值與實(shí)際輸出值構(gòu)成控制偏差,將偏差的比例和積分通過線性組合構(gòu)成控制量,對被控對象進(jìn)行控制。其控制方程為式(12):
(11)
其中:u(t)為PI控制器的輸出,。e(t)為調(diào)節(jié)器的輸入,Kp為比例系數(shù),TI為積分時(shí)間常數(shù)。通常采用的PI控制器的離散形式如下:
(12)
其中:k=0,1,2……表示采樣序列,Ts表示采樣周期,Ki為積分系數(shù)。
控制器由比例和積分兩個(gè)校正環(huán)節(jié)組成,各環(huán)節(jié)的作用如下:
比例調(diào)節(jié)作用:按比例反應(yīng)系統(tǒng)的偏差,系統(tǒng)一旦出現(xiàn)了偏差,比例調(diào)節(jié)立即產(chǎn)生調(diào)節(jié)作用用以減少偏差。比例作用大,可以加快調(diào)節(jié),減少誤差,但是過大的比例,使系統(tǒng)的穩(wěn)定性下降,甚至造成系統(tǒng)的不穩(wěn)定。
積分調(diào)節(jié)作用:使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無誤差度。因?yàn)橛姓`差,積分調(diào)節(jié)就進(jìn)行直至無差,積分調(diào)節(jié)停止,積分調(diào)節(jié)輸出一常值。積分作用的強(qiáng)弱取決于積分時(shí)間常數(shù)TI,TI越小,積分作用就越強(qiáng)。反之TI大則積分作用弱,加入積分調(diào)節(jié)可使系統(tǒng)穩(wěn)定性下降,動(dòng)態(tài)響應(yīng)變慢。
PI數(shù)字調(diào)節(jié)器通常可以分為位置式控制器和增量式控制器。式(12)所示的就是位置式控制算法,控制器的輸出直接調(diào)節(jié)被控對象。這種算法的優(yōu)點(diǎn)是計(jì)算精度比較高,缺點(diǎn)是每次都要對e(k)進(jìn)行累加,很容易出現(xiàn)積分飽和的情況,造成控制對象的不穩(wěn)定,因此通常采用改進(jìn)的抑制積分飽和的位置式控制算法,改進(jìn)算法如下:
U(n)=Kp·e(n)+In(n-1)
In(n)=In(n-1)+Ki·e(n)+Ksat·epi
epi=Us-U(n)
(13)
其中:
當(dāng)U(n)≥Umax時(shí)Us=Umax;
當(dāng)U(n)≤Umax時(shí)Us=Umin
(14)
式中,Us表示抑制積分飽和算法的輸出,U(n)表示本次PI調(diào)節(jié)器的計(jì)算結(jié)果,Ki表示積分系數(shù),Kp表示積分系數(shù),Ksat表示抗飽和系數(shù),In(n)為本次積分累加和,Umax和Umin分別表示調(diào)節(jié)器輸出的最大值和最小值,一般根據(jù)實(shí)際應(yīng)用場景確定,本文中Umax和Umin可分別時(shí)間偏差offset的最大估計(jì)值和最小估計(jì)值。使用這種算法,可以將調(diào)節(jié)器的輸出限定在需要的范圍內(nèi),保證控制量不出現(xiàn)異常值。圖5為抑制飽和位置式算法的流程圖。
圖5 抑制積分飽和的PI算法
圖6為PI控制器相位偏移調(diào)整原理框圖, 經(jīng)過濾波算法的TTE時(shí)鐘節(jié)點(diǎn)的相位偏移offset作為控制器的輸入,利用PI控制器對本地時(shí)鐘進(jìn)行補(bǔ)償。
圖6 PI控制器的相位偏移調(diào)整原理圖
由前面分析可知,如果只進(jìn)行相位偏移補(bǔ)償,那么時(shí)鐘同步精度將與同步周期密切相關(guān),如果能同時(shí)對相位偏移以及頻率偏移進(jìn)行補(bǔ)償則能達(dá)到更好的效果。圖7為時(shí)鐘頻率偏移補(bǔ)償調(diào)整原理圖,與相位偏移調(diào)整系統(tǒng)相比,增加了頻率偏移估計(jì)器來計(jì)算頻偏估計(jì)值。
圖7 PI控制器的頻率偏移調(diào)整原理圖
根據(jù)前面分析建立的時(shí)鐘模型以及噪聲模型,設(shè)初始相位偏差為100 ns,頻率偏差為50 ppm,即節(jié)點(diǎn)1 s會出現(xiàn)50 μs的時(shí)間偏移[9]。由物理層抖動(dòng)、鏈路抖動(dòng)等帶來的時(shí)間戳不確定性高斯噪聲設(shè)為10-7。采樣時(shí)間間隔為5 m,采樣2 000個(gè)點(diǎn)即10 s,同步周期設(shè)為10 ms,時(shí)鐘固有頻率均為100 MHz,利用Matlab進(jìn)行仿真。
如圖8所示,相位偏移和頻率偏移均疊加了高斯噪聲,此外,相位偏移還受到頻漂的影響。
圖8 具有高斯噪聲的相位偏移和頻率偏移
采用kalman濾波、自適應(yīng)kalman濾波[7]以及均值濾波三種常見的濾波方法進(jìn)行濾波得到的結(jié)果如圖9所示:
圖9 濾波后的相位偏移和頻率偏移
均值濾波方法算法簡單容易實(shí)現(xiàn),但相較于卡爾曼濾波以及LMS濾波方法效果更差,從圖9可以看出kalman濾波方法具備更好的追蹤性能。
線性漸進(jìn)補(bǔ)償算法的補(bǔ)償結(jié)果如圖10所示。
利用線性漸進(jìn)補(bǔ)償算法進(jìn)行線性補(bǔ)償后,相位偏移能達(dá)到亞微秒量級,但由于沒進(jìn)行頻率偏移補(bǔ)償,頻率偏移仍然較大。
PI控制的補(bǔ)償算法補(bǔ)償結(jié)果如圖11所示。
使用PI控制的補(bǔ)償算法補(bǔ)償之后,相位偏移達(dá)到了亞微妙量級,頻率偏移也達(dá)到了良好的效果。
圖10 線性漸進(jìn)補(bǔ)償結(jié)果
圖11 PI控制器的補(bǔ)償結(jié)果
本文在深入分析TTE 時(shí)鐘同步協(xié)議的基礎(chǔ)上,總結(jié)了影響時(shí)間同步的因素,分析了時(shí)鐘同步過程中存在的時(shí)間不確定性,建立了時(shí)鐘噪聲模型,根據(jù)噪聲的統(tǒng)計(jì)特性采用了kalman濾波等三種濾波算法,得到了較好的效果。最后在濾除噪聲的影響之后,采用了兩種漸進(jìn)時(shí)鐘補(bǔ)償方法對于時(shí)鐘進(jìn)行補(bǔ)償,并通過仿真分析驗(yàn)證了算法的可行性。