趙旭東, 周 健, 徐佩佩, 錢榮榮
(1.中國航發商用航空發動機有限責任公司,上海 200241; 2.上海商用飛機發動機工程技術研究中心,上海 200241)
民用航空發動機普遍采用FADEC控制系統,通過采集各種傳感器測量信號和外設通信信號,由其內部的機載嵌入式控制算法軟件進行分析和處理,輸出相應的控制信號驅動伺服作動,以達到期望的控制目標。目前,FADEC控制系統大都為集中式架構,隨著發動機控制和健康管理的功能越來越復雜,集中式的控制系統在性能、體積、質量和可靠性方面遇到了挑戰。未來發動機控制系統的發展趨勢之一是分布式控制[1],它由FADEC和多個智能裝置組成,中央處理器和各智能傳感器、智能執行機構組成了一個發動機區域網(Engine Area Network,EAN)[2],中央處理器與智能傳感器、智能執行機構之間通過數據總線進行通信。
國外對分布式控制方面的研究已有近30年的技術積累,在分布式控制系統架構、高溫電子元器件和通信總線技術方面取得了重要突破[3-4]。2004年,美國NASA實施的推進系統高效航空電子技術(PHIAT)計劃提出采用TTP/C(Timer Trigger Protocol/Critical)總線實現模塊化實時控制系統。在工業界,TTP總線技術已有廣泛的應用,Hamilton Sundstrand公司在Boeing787的動力系統和環控系統中應用了TTP總線技術,該項目包括11個TTP網絡和70個TTP節點[5];Honeywell從2000年開始在MAC平臺上采用TTTech公司提供的TTP通信解決方案,并應用于M-346教練機和F-16發動機控制系統中;空客A380的艙壓控制實時系統的通信總線也采用了TTP通信。除了航空航天領域,TTP總線在鐵路控制系統中也得到了應用,例如Alcatel公司借助TTP總線的時間確定性和高度容錯性,將其應用在電子聯鎖系統中,并保證整個系統符合IEC61508 SIL4安全標準[6]。
在國內,TTP總線在汽車領域應用較多,在航空航天領域的研究大多還處于理論研究或者仿真試驗階段。例如,南京航空航天大學的邢卉麗等[7]開展了多電飛機配電系統的TTP/C總線應用技術的研究;中國運載火箭技術研究院的馮忠偉等[8]分析了TTE/TTP技術在航天器應用需要解決的關鍵技術;南京航空航天大學張天宏教授課題組在TTA架構的基礎上,采用DSP+FPGA的架構自主設計了基于FPGA的TTP/C總線控制器,但在通用性和擴展性等關鍵特性方面還有提升的空間[9-10]。
針對民用航空發動機控制需求,構建了一套基于TTP/C通信總線的分布式控制原型系統,通過系統分析劃分相應的通信節點,完成了節點的硬件設計和應用軟件設計,通過原型仿真驗證,測試了原型系統架構的合理性,能夠滿足分布式控制系統的工程要求。
TTP/C總線是一種先進的基于時間觸發協議的數據總線,最早由維也納科技大學Hermann等提出,其中C是指該協議達到了SAE AS6003標準的C類標準[11]。
TTP總線采用了基于通信簇周期和基于時分多址(Time Division Multiple Access,TDMA)的通信調度策略[12],將每個TDMA周期劃分為多個槽(Slot),每個節點可在TDMA周期中占據一個槽用于數據發送,如圖1所示。在SAE AS6003標準中,每個通信槽Slot又劃分為4個時間片,分別為傳輸前準備、數據傳輸、協議控制器處理階段和空閑階段[13]。

圖1 TTP/C協議TDMA周期示意圖
TTP總線按照框架幀的格式傳輸消息,由幀頭、消息數據和CRC校驗碼3個部分組成。TTP/C協議提供3種幀格式,分別為I-frame、N-frame和X-frame。不同的幀格式有不同的用處,I-frame幀格式傳遞TTP控制器的狀態,通常用于初始化;N-frame幀可用于節點間的數據傳遞;X-frame是將I-frame和N-frame格式進行組合的一種復合幀格式,可以一次傳遞更多的信息,但是也要求網絡有足夠的帶寬。
發動機分布式控制原型將原來由FADEC集中完成的信號調理、數據采集與處理、控制算法、故障診斷等功能任務分解到各個分布式控制節點中完成,節點之間通過數據總線進行通信,原型對系統實時性、可擴展性和通信總線等方面的需求如下:
① 高實時性,分布式原型系統應能實現確定性的周期任務調度,通信總線延時抖動不大于100 μs,具有確定性實時通信能力,可保證控制功能的實時性。
② 可擴展性,分布式原型系統應采用模塊化和標準化設計,支持控制節點擴展,通信總線支持最大節點數不小于32個。
③ 通信帶寬要求,分布式原型系統通信帶寬不低于2 Mbit/s。
根據發動機控制系統功能需求,考慮商用發動機的控制部件安裝位置要求,以線束長度和節點I/O負載均衡為原則,最終將分布式原型系統劃分為1個監控節點(SV)和5個智能節點,這5個智能節點分別為數據管理節點(SM)、燃油控制節點(FCM)、超限保護節點(OSM)、冷端作動控制節點(SCMC)和熱端作動控制節點(SCMT),各節點之間通過TTP總線進行數據通信交互,如圖2所示。

圖2 分布式原型系統結構示意圖
典型的TTP通信節點由節點主機(Host)和TTP協議控制器組成,主機和協議控制器之間通過通信網絡接口(CNI)進行數據交互,其節點結構如圖3所示。

圖3 TTP/C通信節點結構
主機CPU處理器用于運行用戶的節點應用程序;TTP控制器用于實現啟動服務、時鐘同步服務、消息發送接收校驗、主機/控制器狀態監測標記服務等,為主機應用提供安全、可靠的通信;CNI用于傳遞節點主機與TTP/C網絡通信的消息數據,同時包括TTP控制器的異常狀態,其采用雙口RAM的實現方式,為節點主機與TTP/C控制器之間提供一塊共享內存,滿足雙方的讀寫要求。
3.2.1 智能節點硬件設計
智能節點的主機處理器采用Freescale PowerPC架構的MPC5554處理器,其工作主頻132 MHz,配置有64 KB的RAM存儲、2 MB的Flash存儲和1 MB的SRAM存儲。
TTP控制器選用TTTech公司生產的AS8202芯片,AS8202通信控制器是符合SAE AS6003標準的通信接口芯片,可以在不需要主機參與的情況下完成與其他TTP總線設備的通信,以及TTP消息的發送和接收。AS8202是一款非常成熟的產品,并已經通過了DO-254適航標準認證。
3.2.2 監控節點硬件設計
監控節點(SV)主要承擔控制律計算相關工作,為了便于后續開展基于模型的控制算法驗證實踐,主機處理器模塊選用Freescale PowerPC P2040四核處理器,工作主頻1.2 GHz,配置了2 GB的DDR3內存和128 MB的NOR Flash存儲,外設通信包括2個以太網接口(支持 10/100/1000 Mbit/s的傳輸速率)和2個RS232串口。
TTP控制器處理器同樣選用AS8202芯片,設計成標準的PMC子卡,采用32位33 MHz/66 MHz的PCI總線,實現P2040和TTP控制器之間的數據傳遞。
通信協議設計采用兩級架構模式,分別為集群級和節點級,如圖4所示。集群級協議用于定義通信網絡,包括網絡時間觸發周期、所有通信節點、節點子系統及其發送消息定義等參數,并生成集群調度表,作為后續節點級設計的輸入。節點級協議用于定義集群中包含的每個通信節點,包括節點主機處理器參數、節點子系統任務項和任務項輸入輸出消息定義等。

圖4 通信協議兩級架構示意圖
為了保證原型系統的通用性和穩定性,本項目中采用TTTech公司發布的TTP軟件工具鏈:TTP-Plan和TTP-Build。其中,TTP-Plan是TTP/C通信集群級規劃工具,TTP-Build是在集群級協議的基礎上用于具體節點的通信協議設計。
根據發動機分布式控制模型,梳理各個節點的數據接口,使用工具完成通信協議的制定。
總線上的每個節點在通信協議設計環節都需要預先定義消息描述表(MEDL),包括節點發送和接收的消息數據定義、數據的存儲地址和長度、發送和接收對應的時間槽等,這些調度控制數據將存儲在各個節點對應的TTP控制器中。
本項目中已在通信協議設計環節完成了各個節點MEDL定義,為了滿足節點應用軟件編程的需要,采用Python腳本的方式,將MEDL生成C代碼文件,部分程序如下:
Def convert_to_c(APDB,filename):
If not os.path.isfile(APDB):
Sys.stderr.write(“n**ERROR** ”)
Raise RuntimeError
file_pattern=sys.argv[1]
kind=(“protocol”,“medl”) [“MEDL” in filename]
c_filename=“%s.c” %(os.path.splitext(filename)[0],)
Command=(“%s -no_pragma -no_apdb -format=c -%%s_file=%%s -target=%%s” %(APDB,))
os.system(command % (kind,filename,c_filename))
監控節點承擔控制邏輯計算相關任務,包括推力管理、起動控制律、加減速控制律、停車控制律、故障診斷與處理和健康管理等,對任務運行的實時性要求較高,本項目中采用實時操作系統VxWorks完成實時性任務的調度。
VxWorks是由美國風河公司研制的具有高可靠性、高靈活性和高實時性的嵌入式操作系統,其憑借良好的持續發展能力、高性能的內核和友好的用戶開發環境,在嵌入式實時操作系統領域占據一席之地,并廣泛應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中[14]。VxWorks提供Workbench開發環境,可以很方便地進行嵌入式代碼的開發和調試。
根據SV節點的功能要求,將節點任務劃分為5 ms、20 ms和100 ms 3種時間周期任務,并設置各個任務的優先級。VxWorks提供多種方式實現任務間的同步,本項目中采用二進制信號量的方式。通過設置任務優先級和信號量,同步各任務的執行順序,實現SV節點的控制計算功能,SV節點軟件運行流程如圖5所示。

圖5 SV節點軟件運行流程圖
各個智能節點分別承擔部分功能,其中SM節點負責傳感器數據采集和處理,FCM節點實現燃油計量和分配功能,SCMC節點負責壓氣機相關作動部件的控制功能,SCMT節點負責渦輪相關作動部件的控制功能,OSM節點實現發動機限制值的相關控制功能。
智能節點應用軟件采取基于MATLAB/Simulink軟件的MBD設計方法,通過圖形化建模和系統仿真,實現節點功能邏輯關系的模型設計。利用Simulink提供的實時工作站(RTW)和TLC模板,完成節點應用軟件嵌入式C代碼的自動生成,結合TTP通信協議設計階段生成的各個節點MEDL的C代碼,采用GCC編譯器將原代碼編譯鏈接生成目標文件,設計流程如圖6所示。

圖6 智能節點軟件設計流程圖
針對所構建的TTP/C總線分布式控制原型,開展通信功能和性能測試,使用TTP-Load工具將智能節點的MEDL和應用軟件目標文件下載到各個節點TTP控制器中,監控節點采用風河公司Workbench工具將操作系統和應用軟件打包部署。筆者統計了1000個通信周期內通信幀預計到達時間和實際到達時間的差值抖動,如表1所示。

表1 通信幀預計時間和實際時間差值 單位:μs
使用TTP-View工具,配置需要監視的各個通信參數值,如圖7所示,測試結果表明原型系統的通信功能正常,能夠滿足發動機分布式控制系統的通信要求。

圖7 TTP/C通信數據監視
結合發動機控制系統分布式架構的發展趨勢,基于TTP/C通信總線的高可靠性、高容錯能力的特點,建立了分布式原型系統,根據控制需求制定了節點通信協議,采用MBD設計開發了智能節點應用軟件,結合監控節點的拓展需求,基于VxWorks實時操作系統開發了監控節點應用軟件,并完成系統部署。實際測試結果表明,所構建的原型系統能夠滿足分布式控制的通信要求,具有較強的實際應用價值。