張 力,周美嬌,張鳳登
(上海理工大學(xué)光電信息與計算機工程學(xué)院,上海 200093)
德國BOSCH 公司在2012 年發(fā)布了支持靈活數(shù)據(jù)的控制器局域網(wǎng)絡(luò)(ControllerAreaNetworkwith Flexible Daterate,CAN FD)技術(shù)[1],國際標(biāo)準(zhǔn)化組織將其標(biāo)準(zhǔn)化為《ISO-11898-1 修訂協(xié)議》。目前汽車功能越來越復(fù)雜,車載ECU[2]數(shù)量日益增長,從而對總線帶寬與可靠性要求更高,而經(jīng)典CAN 總線逐漸無法滿足需求,所以進(jìn)行CAN FD 的研究具有實際意義。倒立擺系統(tǒng)[3]作為一個經(jīng)典的控制理論研究平臺,具有成本低廉、結(jié)構(gòu)簡單、便于模擬控制狀態(tài)、形象直觀的特點,常作為算法控制研究對象。整個系統(tǒng)由擺桿、導(dǎo)軌、控制電機等組成,各部分在傳統(tǒng)設(shè)計中功能互相獨立,十分適用于對照實現(xiàn)分布式控制設(shè)計。倒立擺系統(tǒng)特點與機器人、飛行器、起重機穩(wěn)鉤等裝置的控制非常相似,因此相關(guān)研究也有利于進(jìn)一步探究現(xiàn)代控制理論、人工智能控制理論。分布式控制系統(tǒng)常應(yīng)用于航空器與地面交通設(shè)備,該類設(shè)備對安全性、實時性及經(jīng)濟性的要求十分苛刻。文獻(xiàn)[4]提出基于冗余CAN 總線結(jié)構(gòu)的分布式控制系統(tǒng)設(shè)計方案,實現(xiàn)了對主控制機與多個分控制機的協(xié)同控制,但系統(tǒng)仍有“中央式”控制系統(tǒng)的缺點,且沒有進(jìn)行硬件冗余;孫漢旭等[5]基于CANopen 應(yīng)用層協(xié)議,完成改進(jìn)型雙輪移動倒立擺控制系統(tǒng)設(shè)計,闡明了CAN 總線在汽車電子領(lǐng)域外的適用性,驗證了本文應(yīng)用該類總線的合理性;在基于總線的分布式控制系統(tǒng)設(shè)計方面,肖輝等[6]基于PROFIBUS 總線,設(shè)計了雙冗余熱備份主站仲裁機制,并對雙冗余主站在運行時數(shù)據(jù)一致性問題及雙冗余PROFIBUS 總線工作與切換方案進(jìn)行了研究。盡管總線通信技術(shù)在工業(yè)控制領(lǐng)域應(yīng)用廣泛,但如何將其與更多工業(yè)分布式控制場景結(jié)合并保證系統(tǒng)實時性與可靠性仍面臨很多問題。
同時,針對控制系統(tǒng)的可靠性分析,夏正一等[7]利用應(yīng)用在鋼鐵冶煉廠控制系統(tǒng)中的西門子可編程序控制器,發(fā)現(xiàn)在采用軟、硬件冗余備份方式下,相較傳統(tǒng)方式在備份切換時間及可靠性方面有顯著提升;?egvi? 等[8]對于分布式飛行控制系統(tǒng)涉及的技術(shù)進(jìn)行了綜合總結(jié),提供了大量分布式控制系統(tǒng)理論;賈婕等[9]對電動汽車分布式驅(qū)動控制技術(shù)發(fā)展進(jìn)行梳理,介紹了協(xié)調(diào)集成控制、容錯控制等關(guān)鍵技術(shù);彭國文等[10]介紹了CAN FD 技術(shù)在ARM 處理器上的Linux 系統(tǒng)配置特點;羅峰等[11]從網(wǎng)絡(luò)通信安全性角度,提出了基于CAN FD 總線的安全通信協(xié)議;文獻(xiàn)[12]首先實現(xiàn)了基于CAN FD 的磁懸浮球控制系統(tǒng)設(shè)計,探討了CAN FD 與CAN 總線的兼容方案,設(shè)計了一種通用型CAN FD 硬件節(jié)點。作為一種較新的總線通信技術(shù),CAN FD 對CAN 總線有良好的兼容性,廣受汽車生產(chǎn)廠商歡迎,但在其它工業(yè)控制領(lǐng)域應(yīng)用較少。
本文提出一種基于優(yōu)化分布式動態(tài)切換策略(Distrib?uted Dynamic Control-authority Switch,DDCS)的控制算法,并進(jìn)行仿真以驗證控制效果。將倒立擺系統(tǒng)按功能劃分為多個實際的物理節(jié)點,搭建基于CAN FD 的底層總線通信網(wǎng)絡(luò);在參考文獻(xiàn)[4]設(shè)計分布控制系統(tǒng)時考慮了硬件冗余,并基于LPC54618 微控制器,設(shè)計控制系統(tǒng)各個通信節(jié)點的硬件控制板;結(jié)合CANoe 軟件仿真驗證實驗通信網(wǎng)絡(luò)指標(biāo)是否改善,并在硬件系統(tǒng)上實際運行測試,分析系統(tǒng)魯棒性改進(jìn)。
一階直線倒立擺系統(tǒng)可抽象為由小車、擺桿組成的系統(tǒng)、擺桿與小車之間鉸接。假設(shè)擺桿、小車均為剛體;皮帶無伸長,同步帶與皮帶輪間無相對滑動;小車驅(qū)動力與直流放大器輸入成正比;小車運動所受摩擦力正比于小車速度;擺桿為質(zhì)量均勻的細(xì)桿,忽略擺桿轉(zhuǎn)軸、空氣等摩擦。經(jīng)過整理可把系統(tǒng)模型表示為如式(1)所示的狀態(tài)空間方程,系統(tǒng)是可控的,其中
各物理符號含義及參數(shù)真實值如表1 所示。進(jìn)一步可得到系統(tǒng)傳遞函數(shù)為:
Table 1 System parameters and set values表1 系統(tǒng)參數(shù)及設(shè)定值
利用MATLAB 的SimuLink 仿真實驗工具,采用PID方法設(shè)計控制器,仿真實驗設(shè)計及其結(jié)果分別如圖1 與圖2 所示。主要通過實驗系統(tǒng)時域分析指標(biāo)進(jìn)行PID 參數(shù)整定。
Fig.1 Simulink inverted pendulum system simulation design圖1 SimuLink 倒立擺系統(tǒng)仿真設(shè)計
Fig.2 Simulation results of Simulink圖2 SimuLink 仿真實驗結(jié)果
工業(yè)控制系統(tǒng)從直接數(shù)字控制系統(tǒng)(Direct Digital Control,DDC)、監(jiān)管計算機控制系統(tǒng)(Supervisory Computer Control,SCC)再發(fā)展至集散控制系統(tǒng)(Distributed Control System,DCS)及目前現(xiàn)場總線控制系統(tǒng)(Fieldbus Control System,F(xiàn)CS)[13]。在分布式控制中,協(xié)調(diào)設(shè)計實現(xiàn)系統(tǒng)分布式計算[14]是一個復(fù)雜的過程,涉及系統(tǒng)互斥、死鎖檢測、身份驗證和故障恢復(fù)與平衡。對于具體的控制算法,首先有線性控制算法,典型代表有PID 控制、狀態(tài)反饋控制、LQR 控制算法等,較為簡單、速度快捷且可靠性高;其次是狀態(tài)反饋控制,極點配置法是通過設(shè)計狀態(tài)反饋的控制器,將多變量系統(tǒng)的閉環(huán)系統(tǒng)極點配置在期望的位置上,從而使系統(tǒng)滿足瞬態(tài)和穩(wěn)態(tài)性能指標(biāo)要求。
分布式控制[15]發(fā)展主要得益于集成電路的發(fā)展,微控制器不僅價低,而且性能穩(wěn)定優(yōu)良、存儲容量大。首全分布式控制指控制(計算)功能徹底分散于現(xiàn)場儀表,甚至是單個傳感器中。動態(tài)切換策略設(shè)想在一總線型控制網(wǎng)絡(luò)中,需要若干個環(huán)節(jié)進(jìn)行控制算法運算,文獻(xiàn)[16]說明由于總線節(jié)點設(shè)備功能的差異性,導(dǎo)致在不同節(jié)點運行算法的效率不同,比如在遠(yuǎn)離驅(qū)動器、報文收發(fā)量大的節(jié)點中進(jìn)行控制算法運算會造成總線通信負(fù)載率惡化,但若系統(tǒng)具備一定節(jié)點規(guī)模,且有節(jié)點收發(fā)報文量存在較大波動時,若可通過某種切換策略,按照系統(tǒng)動態(tài)響應(yīng)性能最優(yōu)(穩(wěn)態(tài)響應(yīng)調(diào)節(jié)時間最?。┗蚩偩€負(fù)載率最低的要求,動態(tài)切換實現(xiàn)控制算法節(jié)點,則可順利運行算法。每個節(jié)點理論上可實現(xiàn)控制算法部署,但實際上是一種增加硬件冗余的設(shè)計,該控制系統(tǒng)在實時性、可靠性方面具有優(yōu)化潛力。
定義權(quán)限因子A:某個系統(tǒng)節(jié)點權(quán)限因子是在該系統(tǒng)控制運行下,由當(dāng)前系統(tǒng)通信負(fù)載率與系統(tǒng)響應(yīng)時間兩個指標(biāo)加權(quán)計算得到的數(shù)值,即:
其中,αl與αr為加權(quán)因子,Lr與Rt分別指總線負(fù)載率及系統(tǒng)執(zhí)行器響應(yīng)時間。在DDCS 策略中,每個節(jié)點都有自己的權(quán)限因子,同時節(jié)點內(nèi)部保存有一張系統(tǒng)所有物理節(jié)點的權(quán)限因子表(Authority Factor Table,AFT)。初始化時,所有節(jié)點權(quán)限因子設(shè)置成不同的經(jīng)驗數(shù)值,系統(tǒng)自動由權(quán)限因子最小節(jié)點控制。一旦當(dāng)前通信狀況惡化,或到達(dá)時鐘同步時刻,便立即發(fā)動一次同步。同步的具體動作是借用系統(tǒng)時鐘同步幀或某些總線時鐘修正段,將自身權(quán)限因子同步到所有節(jié)點的AFT 中,完成同步后,若節(jié)點發(fā)現(xiàn)自身成權(quán)限因子最小節(jié)點,便自動接替執(zhí)行預(yù)設(shè)的控制程序,從而完成一次控制權(quán)限的動態(tài)切換。即策略實現(xiàn)目標(biāo)為:系統(tǒng)各節(jié)點能夠協(xié)調(diào)找出最優(yōu)的控制節(jié)點,實現(xiàn)系統(tǒng)整體負(fù)載率、響應(yīng)時間最優(yōu),并要求該實現(xiàn)策略在硬件、軟件上具有可實現(xiàn)性,且產(chǎn)生的系統(tǒng)額外開銷可控。DDCS算法流程如圖3 所示。
Fig.3 DDCS strategy execution flow圖3 DDCS 策略執(zhí)行流程
整個CAN FD 總線控制倒立擺系統(tǒng),由擺角傳感器節(jié)點、限位檢測節(jié)點、電機驅(qū)動節(jié)點3 個真實節(jié)點和1 個CA?Noe 上位機虛擬節(jié)點構(gòu)成[17]。結(jié)合控制算法,需考慮各個節(jié)點地位平等。通信網(wǎng)絡(luò)采用總線型拓?fù)湫问?,所有?jié)點共用一條數(shù)據(jù)通道,但注意總線兩端須連接端反射電阻,使信號減少衰變和畸變,且線纜長度不宜過長。
控制系統(tǒng)總體設(shè)計如圖4 所示,包括電機、角位移傳感器、導(dǎo)軌、小車和擺桿等機械部件組成。電位器是測量元件,分別檢測小車相對于軌道中心點的相對位置以及擺桿與鉛垂線的角度偏移和角速度,之后送交具體控制器,實現(xiàn)數(shù)模、模數(shù)轉(zhuǎn)換,在完成控制算法運算后,送出電機控制信號。信號經(jīng)過電壓和功率的放大,隨后控制電機執(zhí)行。電機是系統(tǒng)執(zhí)行元件和速度反饋元件,本文使用的直流電機型號為24V8700-5.15,驅(qū)動電壓最大24V,電機上有電機驅(qū)動正負(fù)線、編碼器AB 線、編碼器電源及地線等6根線。通過皮帶帶動小車使其在導(dǎo)軌上左右平移,最終達(dá)到實現(xiàn)倒立擺在有限長度導(dǎo)軌上保持豎直穩(wěn)定的目的。
Fig.4 Overall structure diagram of CAN FD bus distributed control system圖4 CAN FD 總線分布式控制系統(tǒng)總體結(jié)構(gòu)
在CAN FD 通信節(jié)點接口板硬件設(shè)計中,為了后期便于硬件焊接與調(diào)試,同樣將節(jié)點接口板作通用設(shè)計,即所有功能所需元件布局在同一PCB 文件上,具體操作中節(jié)點根據(jù)需要焊接相應(yīng)部分電路。按照功能要求,節(jié)點接口板主要包含的元件有MCU 控制芯片,負(fù)責(zé)限位檢測以及擺角模擬信號采集與處理;收發(fā)器芯片與總線相連;電機隔離與功放驅(qū)動電路用于驅(qū)動直流電機。4 個節(jié)點微控制器選型相同,性能不存在差異,均具有運行PID 控制算法的功能。硬件結(jié)構(gòu)如圖5 所示。
微控制器芯片選擇NXP 公司的LPC54618,主要用以實現(xiàn)控制算法、處理總線數(shù)據(jù),管理本節(jié)點其它工作。芯片集成了12 位的ADC;內(nèi)置1 路CAN FD 控制器模塊,支持經(jīng)典CAN 與CAN FD 通信。關(guān)于CAN FD 總線收發(fā)電路的形式,采用內(nèi)置CAN FD 控制器與CAN 收發(fā)器組合的方式實現(xiàn)CAN FD 節(jié)點報文收發(fā),收發(fā)器同樣選擇NXP 的TJA1051;總線傳輸介質(zhì)采用雙絞線,CAN_FD_H 端口與CAN_FD_L 端口用DB9 接口與物理總線連接。在使用MCU 控制輸出PWM 信號以控制驅(qū)動電機時,電機驅(qū)動電壓一般大于12V,如果電路板存在設(shè)計問題,可能會連帶燒壞MCU,故選擇采用TI 公司的SN74LS244DW 信號隔離芯片作驅(qū)動隔離,由于本研究使用的直流電機對于工作電流與電壓要求均較高,所以額外需要功率放大電路進(jìn)行電機驅(qū)動,參考使用兩塊BTN7971B 芯片作為直流電機驅(qū)動輸入,一路控制電機正、反轉(zhuǎn),另一路控制轉(zhuǎn)速。
Fig.5 Hardware structure of can FD communication node圖5 CAN FD 通信節(jié)點硬件結(jié)構(gòu)
CAN FD 網(wǎng)絡(luò)下系統(tǒng)測試主要流程有3 個環(huán)節(jié)。第一,需創(chuàng)建整個系統(tǒng)完整的功能模型,并對被控對象的動作時序有透徹的研究;第二,需正確地設(shè)計通信所需的數(shù)據(jù)幀格式,確定所有特定的應(yīng)用信號、數(shù)據(jù)幀規(guī)定發(fā)送的CAN FD 報文[18]及發(fā)送或接受的網(wǎng)絡(luò)節(jié)點,再用敏感的優(yōu)先級標(biāo)識符對已確定的信號進(jìn)行分組,系統(tǒng)運行中所有數(shù)據(jù)幀如表2 所示;第三,總線仿真測試和系統(tǒng)集成。CAN FD 作為一種底層通信協(xié)議,只涉及數(shù)據(jù)鏈路層和物理層,所以借用數(shù)據(jù)幀或遠(yuǎn)程幀實現(xiàn)任務(wù)間信息同步,需注意區(qū)分與數(shù)據(jù)幀中位時序同步段的差別。
Table 2 Data frame content design表2 數(shù)據(jù)幀內(nèi)容計
CANoe(CAN Open Environment)[19]是德國Vector 公司的一款集建模、仿真、測試和分析一體的總線開發(fā)環(huán)境。分布式動態(tài)切換策略仿真實現(xiàn)分為4 步:
(1)CANoe 內(nèi)新建配置模板、CANdb++數(shù)據(jù)庫,在圖形化窗口中新建全部虛擬節(jié)點。
(2)配置添加當(dāng)前測試環(huán)境變量,設(shè)置報文信號與真實報文格式布局一致,如表3 所示,完成后導(dǎo)入該數(shù)據(jù)庫。
Table 3 Canoe message design layout表3 CANoe 報文設(shè)計布局
(3)新建面板,設(shè)置控件,把測試需關(guān)注的信號關(guān)聯(lián)到面板上,如圖6 所示。
Fig.6 Upper computer canoe display panel interface圖6 上位機CANoe 顯示面板界面
(4)根據(jù)策略算法功能,編寫各節(jié)點所需的CAPL 程序。虛擬節(jié)點發(fā)送報文參考零星任務(wù)模型,發(fā)送間隔設(shè)置在5~500ms 內(nèi)隨機發(fā)送;設(shè)置為波特率5Mbps,仿真時間108ms。為了實現(xiàn)周期同步的功能,利用CAPL 語言面向事件的特點,利用CANoe[20]中時間事件和環(huán)境變量事件的概念,分別模擬周期時鐘同步和負(fù)載率惡化事件。最終仿真運行得到的數(shù)據(jù)如表4 所示。
Table 4 Simulation results表4 仿真結(jié)果
由表4 可知,控制算法運行在不同節(jié)點上系統(tǒng)性能具有明顯差異,可以直接看出電機驅(qū)動節(jié)點作為控制節(jié)點時控制效果最好,這是合理的,因為此時系統(tǒng)不需要發(fā)送PWM 電機驅(qū)動報文。
對于真實的倒立擺控制系統(tǒng),通過硬件接口卡CANca?seXL 將物理總線與虛擬CANoe 節(jié)點相連,利用CANoe 集成網(wǎng)絡(luò)分析測試功能,記錄控制系統(tǒng)網(wǎng)絡(luò)運行指標(biāo),得到如表5 所示的參數(shù)。分析可以得到如仿真實驗類似的結(jié)論,而且可以發(fā)現(xiàn)總線負(fù)載率穩(wěn)定性得到改善,該技術(shù)有助于提升系統(tǒng)魯棒性。
Table 5 Actual test results of the system表5 系統(tǒng)實際測試結(jié)果
本文通過將倒立擺中各部分劃成不同節(jié)點,采用CAN FD 總線技術(shù)實現(xiàn)了對倒立擺系統(tǒng)的分布式實時控制,與傳統(tǒng)集中控制系統(tǒng)4.732s 響應(yīng)時間和10.63% 通信負(fù)載率相比,系統(tǒng)響應(yīng)時間縮短33.88%,總線負(fù)載率減少35%。不足之處是DDCS 算法依賴于嚴(yán)格的時鐘同步機制,本文利用軟件或數(shù)據(jù)幀實現(xiàn)該功能,在實際總線運行時會給總線增加額外負(fù)載,而且這種不精確的同步方式可能會使DDCS 在實際切換時十分遲鈍。同時,為避免過度頻繁切換引起系統(tǒng)性能下降,下一步將結(jié)合如FlexRay 或TTCAN 等支持時間觸發(fā)架構(gòu)網(wǎng)絡(luò)協(xié)議進(jìn)行測試,并改進(jìn)算法,優(yōu)化參數(shù)初始化。