鄭 宇,張 健,施衛(wèi)科,安 東,孫京陽
(北京臨近空間飛行器系統工程研究所,北京 100076)
CAN總線作為一種總線技術,目前已經在工程機械、汽車等工業(yè)領域中得到了廣泛的運用。CAN總線在通信過程中會出現隨機延時,在運行過程中,可能會因為線纜老化、受到電磁干擾以及接觸不良等原因造成通信出現故障,并且此時通信延時更加嚴重,甚至造成通信丟幀。因為很多工業(yè)設備都是采用CAN總線進行控制,一旦出現了通信延時及通信丟幀,控制系統性能會大幅度下降,甚至很可能會使設備損壞。針對CAN總線系統的上述缺陷實施補償,使其不利影響得以消除,就能使控制系統的性能大幅度提升,增加工業(yè)設備的通信系統的可靠性。
相比于其他總線技術,CAN總線的通信機制最大的特點是對通信負載非常敏感。一旦通信負載增加,通信性能會大幅度下降,現有的補償方法基本無法實現在通信負載不增加的前提下補償通信的延時以及丟幀,所以研究更為有效的補償方法是非常必要的。只有確保CAN總線通信過程中出現的通信丟幀及延時得到有效的補償,才能確保CAN總線控制系統達到最佳控制性能。
根據以上分析,本文提出了一種分布式CAN總線通信補償方案;以SISO系統為例,對輸出反饋控制系統的補償方案進行了詳細的介紹。該方案能夠在確保CAN總線通信性能的基礎上,讓控制系統更高效率、高安全性地運行。
圖1 CAN總線節(jié)點示意圖
CAN總線系統本質上是一個分布式結構并采用串行通信實現的網絡系統,拓撲結構示意圖如圖1所示。CAN總線系統的主體是一條CAN總線,總線上存在若干節(jié)點,任意節(jié)點均可在任意時刻主動向網絡上其它節(jié)點發(fā)送信息[1],這些節(jié)點根據報文標識符確定總線訪問優(yōu)先權,因此各節(jié)點之間可以實現自由通信。當CAN總線出現嚴重通信錯誤,在當前的消息周期里,一些消息無法實現正常傳輸,這是通信丟幀。通過上述分析能夠得知,對于CAN總線系統而言,其通信延時是固有特性,是具體的傳輸情況決定的,通信丟幀數量主要取決于具體的故障程度。
按照CAN總線通信機制進行分類,消息m的通信延時能夠分為兩個部分,一是通信過程延時,二是通信錯誤恢復時間,通過下式表示:
τm=Rm+Em
(1)
Rm代表消息m通信過程延時,表示當沒有出現通信錯誤的時候,消息傳輸的每一個環(huán)節(jié)所對應的執(zhí)行時間以及等待時間長短;Em代表消息m在通信過程中通信錯誤恢復時間大小,表示消息發(fā)送失敗所占用的時間長短;τm代表消息m總的通信延時大?。?/p>
其中,常規(guī)狀態(tài)下的通信錯誤恢復時間具體表示為:
τm=Ce+te+φe
(2)
在上式中,Ce代表發(fā)生通信錯誤出現以前,消息位流已經傳輸的時間長短;te代表整個通信錯誤持續(xù)的時間長短;φe代表發(fā)生通信錯誤時,其他所有消息的總傳輸時間長短。
但實際上,通信錯誤發(fā)生的時機和恢復時間是不同的[2],因此消息傳輸一般受到的影響主要有以下3種:
1) Error1:CAN總線消息傳輸過程中發(fā)生通信錯誤,同時錯誤持續(xù)時間較短,就會造成通信延時變大。
2) Error2:CAN總線處于空閑狀態(tài)下發(fā)生通信錯誤,此錯誤不會對通信延時長短造成影響。
3) Error3:CAN總線消息傳輸過程中發(fā)生通信錯誤,同時錯誤持續(xù)時間較長,就會造成出現通信丟幀。
通過上述分析,錯誤恢復時間可表示如下:
對通信丟幀及延時所具有的特點進行了歸納如下。
1)隨機性:
①處于不同消息周期時,相同ID的消息所對應的延時不同;
②通信延時具有一定的隨機性,很難預知其大??;
③通信延時所具有的統計特性無法進行有效確定;
④通信丟幀的出現具有一定的隨機性,丟幀數量也具有一定隨機性。
所以無法利用理論模型對通信丟幀及延時進行計算以及預測,只有對實際情況具體問題具體分析。
2)測量局限性:
因為每一個節(jié)點都是異步時鐘,因此無法實現直接測量通信延時;
(3) 有限性:
由于CAN總線的覆蓋發(fā)送方式,所以通信延時Rm一定會小于消息m的一個周期Tm,也是:
Rm (4) 在出現通信丟幀的時候,一旦錯誤計數器的數值到達256,節(jié)點就會和總線脫離,相應的補償就沒有任何意義,所以對連續(xù)丟幀的數量N進行下列約定: N≤[255/8]=31 (5) 一旦CAN總線在通信過程中出現了延時以及丟幀,系統所對應的目標控制量以及輸出都會發(fā)生變化。對于控制量而言,所有控制周期里面對應的實際控制動作都會受到延時以及丟幀的影響,最終使得控制系統的輸出發(fā)生改變。 一般控制作用所產生的變化是由這兩個因素所造成的:一是控制指令受到延時以及丟幀的影響并不準確;二是在實際情況下,系統與當前控制量并不是匹配的。所以如果可以減少上述兩種影響,那么控制性能就能夠顯著提高。 實際情況下,控制系統反饋信號所發(fā)生的通信丟幀及延時會減少其作用時間,造成控制器通過之前的系統輸出決定現階段控制量,就會產生一定的偏差[3]。 綜上分析,為了避免補償方案增加總線負載,影響通信效果,本文提出通過一種分布式結構對補償方案進行設計,增加控制補償器及反饋補償器進行實時補償[4],如圖2所示。 圖2 補償方案示意圖 1) 控制補償方案原理: 針對只有通信延時的情況,控制補償的主要目的是在將控制指令接收到以后,修正其值從而符合以下條件: (6) (7) 2)反饋補償方案原理: 令補償之后的反饋信號基本等于現階段真實信號,也就是: (8) 如果補償之后控制信號和反饋信號與期望值相差較小,那么補償之后的控制系統所具有的控制性能基本可以達到期望的控制性能。 在實際的CAN總線實時控制系統中,補償器的設計方案會視具體情況具體決定[6],本文選擇比較常見的輸出反饋控制系統進行研究。 按照輸出反饋控制系統工作原理,系統輸出由以下三點決定:1)過去時刻的實際輸出;2)過去時刻的實際控制量;3)被控對象的模型[7]。在控制器端明確以上3個要素的話,則能夠補償反饋信號。 同樣按照輸出反饋控制系統工作原理,系統控制量也能夠通過以下三要素計算出來:1)當前時刻的實際輸出;2)目標輸入信號;3)控制率[8]。在被控對象端得到以上這3個要素,就能夠補償控制信號。 其中,當前時刻的實際輸出以及被控對象模型是已知的,而過去時刻的實際控制量、過去時刻的實際輸出、目標輸入信號以及控制率是未知的。針對上述問題的處理方案如下: 1)過去時刻實際控制量: 由控制器過去時刻控制量計算值進行替代[9]。誤差為控制補償的精度帶來的誤差。 2)過去時刻的輸出: 由過去時刻完成補償之后的反饋信號進行替代。誤差為反饋補償的精度所決定的。 3)目標輸入信號: 一般在實際CAN總線控制系統中,為了能夠有效的確保控制系統具有較好的性能,控制頻率會比目標輸入信號的頻率大很多[10]。所以在若干個相鄰的空置周期里面,目標輸入的變化通常并不大。所以可以通過最新接收的控制指令對目標輸入信號采用逆求的方式求出。 4)控制率: 在這里控制率利用編程嵌入。 本章以圖3所示模型作為研究對象,在此模型中,e(k)表示系統輸出誤差,Kf表示狀態(tài)反饋增益矩陣,Gc(z)表示離散控制器,G(s)表示線性被控對象。 圖3 輸出反饋控制的線性SISO系統模型結構示意圖 為了便于分析,忽略系統的不確定性以及噪聲,假設控制器是確定的線性控制器,下式表示其等效離散模型: (9) 根據圖3可見, CAN總線的通信丟幀及延時改變了系統反饋信號值y′(k)以及目標控制量u′(k),所以補償的目的是對實際作用的目標控制量以及反饋信號值進行有效的修正。 因為在控制系統里,反饋信號值是系統輸出,所以根據式(9),通過過去時刻的反饋信號控制量修正補償反饋信號;控制補償可以消除不同控制作用的差異,因此補償反饋信號值時可假設控制作用不變,用u(k)進行相應的反饋補償[11]。 圖4所示是分布式補償方法的示意圖。在該方法中,控制補償器與反饋補償器兩者若想要達到較好的補償效果,就需要被控對象模型具有較小的誤差[12]。另外因為本分布式補償方法無需在電控單元與控制器間進行額外的信息傳輸,因此CAN總線通信負載并不會由于補償方法而增大。 圖4 分布式補償方法示意圖 線性時不變系統的輸出信號為: y(k)=A(z-1)·u*(k)+B(z-1)·y(k) (10) 在上式中,A(z-1)·u*(k)代表過去時刻對應的實際控制量,B(z-1)·y(k)代表過去時刻對應的系統輸出。 在反饋通道發(fā)生通信丟幀時,能夠通過式(10)對丟失的反饋信號進行估計。在控制器端能獲得的是過去時刻所對應的計算控制量A(z-1)·u(k)以及過去時刻對應的反饋信號B(z-1)·y*(k)和A(z-1)·u*(k),而B(z-1)·y(k)無法得知。在這個時候能夠通過下面的式子補償反饋信號: (11) (12) 同時反饋補償誤差大小是: ≈Gc(z)[r(k)-Kfy(k+τca(k))] (13) ε(k)是由反饋補償誤差以及控制補償誤差共同決定的。在單步補償誤差的很小的時候,式(11)引起的累計誤差并不明顯。為了使得反饋補償效果更好,首先系統模型參數A(z-1)以及B(z-1)要盡可能準確,其次控制補償器補償效果要要盡可能好。 理論上控制器的目標控制量如式(14)所示: (14) 控制量增量如式(15)所示,其中r(k)是目標輸入信號,其在現階段控制周期是未知的。 u(k)=u(k-1)+ (15) (16) 針對控制量通信延時的情況,根據控制量的變化情況具體分量兩種。 1)當系統輸出靠近參考輸入的時候,控制量逐漸減小,這個時候u(k)u(k-1)。在第k個周期里面,通過一個適當大于u(k)的控制量作用在時段[(k+τca(k))Tc,(k+1)Tc],那么就能夠讓實際的控制作用和期望更為接近。 通過上面的這些原理分析,得出如下式所示的通信延時近似補償方式: (17) 其中: Gc(z)[r(k)-Kfy(k+τca(k))] (18) 1)試驗設置: 如圖5所示是仿真模型示意圖,在這個模型當中,控制器使用PI控制算法,控制周期是10 ms。CAN總線通信丟幀及延時都是通過一階保持環(huán)節(jié)以及隨機信號發(fā)生器進行模擬的。 圖5 仿真模型示意圖 模型當中的被控對象,也就是“ESS model”所使用的是在某一個固定姿態(tài)下的混合動力挖掘機電動回轉系統傳遞函數模型,對應表1中參數一。參數二主要的作用是仿真分析模型誤差所產生的影響。為了便于進行描述,在表2中,歸納了這次仿真試驗的每一種設置情況。 表1 模型參數 表2 模型設置 這里為了控制試驗變量,使用了幾組固定的通信丟幀及延時。其中通信延時分別是3 ms、6 ms以及9 ms,連續(xù)丟幀數一共設置了31種情況,分別是1~31個。輸入信號選擇500 rpm的階躍信號。在進行試驗仿真補償之前以及完成補償試驗之后,分別使用的分別是表2里面A組以及B組的設置。 2) 試驗仿真結果: 如圖6所示是一組沒有進行補償的系統輸出曲線,主要的作用是對通信丟幀及延時如何影響系統進行觀察。圖中可見,通信丟幀及延時會在一定程度上增大系統的超調量,并減少系統的響應時間。并不會影響系統的穩(wěn)態(tài)輸出誤差大小。所以,本章主要對響應時間以及超調量這兩個指標進行研究。 圖6 未補償的系統輸出試驗結果 回轉系統平臺具有較大的慣性,不論是超調量增大,還是響應變快,都會影響到回轉電機的電機軸。 如圖7所示是試驗仿真結果。因為連續(xù)丟幀數在比10幀大的時候,系統就會出現失穩(wěn)的情況,因為這里所給出的數據都是小于10幀的情況。 圖7 未補償的超調量和響應時間試驗結果 通過圖 7(a)能夠看出,在連續(xù)丟幀數不斷增加的情況下,系統階躍響應超調量的大小也在不斷增加。延時越大,相應的系統就會有越大的超調量,造成這一現象的主要原因就是由于處于加速階段的時候,相比于后一個控制周期而言,前一個周期所對應的目標轉矩更大。在發(fā)生通信丟幀后,加長了前一個控制量的作用時間,因此也就會加大整體的控制作用,最終造成系統出現了較大的超調量。 通過圖 7(b)能夠看出,連續(xù)丟幀數越大,系統階躍響應時間越大;延時時間越大,系統階躍響應時間越小。在連續(xù)丟幀數大于某一個值的時候,系統階躍響應時間的影響就會慢慢降低。圖中可見,在連續(xù)丟幀數小于9幀時,相比于正常情況響應時間要??;但是大于9幀的時候,相比于正常情況階躍響應要慢一些。造成這種現象的原因是丟幀數量太多造成總體的控制作用偏向于不足的方向,因此就會造成加速緩慢。 圖8所示為不同的通信延時及丟幀狀況下,加入補償后的仿真結果。對比圖7結果可以看出對通信延時與丟幀的補償效果均十分顯著,可明顯控制超調量,并增大系統響應時間。但在大于8幀的情況下,出現了補償過度的情況,此時系統所具有的控制性能變差。 圖8 補償后的超調量和響應時間試驗結果 通過試驗結果可以看出,本文所提出的補償方法可以在一定范圍的丟幀數以內抑制通信延時及丟幀造成的系統響應超調,改善系統響應時間,使控制效果更接近理想狀態(tài)。 本文詳細研究了基于有限帶寬前提下的CAN總線通信丟幀及延時補償問題。根據通信延時及丟幀的機理,提出了一種分布式補償方案,針對補償器設計所存在的一些共性問題進行了詳細的探討。將該補償方法應用到了線性SISO系統中,針對性的提出了一種基于被控對象模型的反饋補償器以及一種基于系統控制率的控制補償器。后續(xù)的建模仿真結果顯示,本文所提出來的補償方法能夠在一定丟幀數減小通信丟幀及延時所造成的不利。 本文所給出的方法能夠在不對CAN總線通信性能造成任何影響的前提下,有效的確??刂葡到y以較高的效率以及安全性運行。該方法也對其它類似的網絡控制系統提供了通信補償的參考思路,有著一定的借鑒意義。1.3 通信延時及丟幀的影響
2 總體補償方案設計
2.1 補償方案原理
2.2 補償方案的關鍵要素
3 輸出反饋控制系統的分布式補償方法
3.1 研究對象的系統模型
3.2 分布式補償方法
3.3 反饋補償器
3.4 控制補償器
4 試驗仿真
5 結束語