郝建平,蘇炎召,鐘志華,黃 晉
(清華大學(xué)車輛與運(yùn)載學(xué)院,北京 100086)
在軟件定義汽車中,面向服務(wù)的架構(gòu)(serviceoriented architecture, SOA)是搭建軟件體系的總體設(shè)計(jì)理念,其與傳統(tǒng)軟件體系相比,最明顯的特征是能夠減少系統(tǒng)軟件和信號(hào)資源的浪費(fèi)、提高開發(fā)軟件的可重用性[1]。SOA 賦予了軟件定義汽車豐富的軟件開發(fā)能力,用SOA 思想設(shè)計(jì)的SOA 軟件架構(gòu)是軟件定義汽車發(fā)展的必然趨勢(shì)之一[2]。
現(xiàn)階段汽車SOA 主要依附于Adaptive AUTOSAR 標(biāo)準(zhǔn)(即AUTOSAR AP)實(shí)現(xiàn),但由于AUTOSAR AP不能部署傳統(tǒng)AUTOSAR CP中邏輯執(zhí)行時(shí)間(logical execution time,LET)等確定性和實(shí)時(shí)性機(jī)制,其不能保證程序運(yùn)行的確定性和實(shí)時(shí)性,給安全關(guān)鍵性系統(tǒng)帶來相當(dāng)大的隱患[3]。因此,目前汽車SOA 應(yīng)用的軟件運(yùn)行集中在智能座艙域內(nèi),將車燈、車窗、車輛狀態(tài)(如溫度、車速)傳感器等基礎(chǔ)硬件的功能作為原子服務(wù),再進(jìn)行該領(lǐng)域內(nèi)組合服務(wù)的設(shè)計(jì),聚焦于提升用戶駕駛的舒適性,而不參與安全關(guān)鍵性系統(tǒng),如制動(dòng)輔助、運(yùn)動(dòng)控制等,一方面由于這樣對(duì)智能汽車直接駕駛過程的影響較小,另一方面也是因?yàn)槠噺S商在SOA 應(yīng)用初期為了降低測(cè)試成本和潛在危險(xiǎn)做出的妥協(xié)。但這樣也難以利用SOA 的優(yōu)勢(shì)對(duì)直接駕駛過程進(jìn)行優(yōu)化。因此,本文希望SOA 的實(shí)時(shí)性和確定性能滿足的前提下,將SOA 在汽車上的應(yīng)用范圍從智能座艙域擴(kuò)展到其他系統(tǒng)域,在原子服務(wù)目錄中加入了與自動(dòng)駕駛等系統(tǒng)級(jí)功能關(guān)聯(lián)的軟件和算法。
實(shí)現(xiàn)一類功能時(shí),可以存在多種可選的子服務(wù),這樣的子服務(wù)可被分類為一個(gè)服務(wù)層級(jí)。顯然服務(wù)層級(jí)相較于單一的服務(wù)而言,存在選擇空間多的優(yōu)勢(shì),在不同的環(huán)境條件下,能通過選擇更合適的子服務(wù)來達(dá)到更好的運(yùn)行效果?,F(xiàn)有智能汽車通常在自動(dòng)駕駛的各個(gè)環(huán)節(jié)中采用固定的算法和硬件,雖然保持了運(yùn)行的穩(wěn)定性,但同時(shí)在某些場(chǎng)景下可能會(huì)顯著降低效率。如視覺傳感器在低光下、超聲波雷達(dá)在高速下運(yùn)行效果不佳,因此汽車廠商須采用傳感器融合,同時(shí)啟用多種傳感器來保證傳感數(shù)據(jù)的精確性;不同類型的軌跡規(guī)劃、障礙物檢測(cè)等算法也會(huì)在不同環(huán)境下存在更優(yōu)的選擇,但一般只會(huì)固定采用一種類型。由此可見,在多個(gè)服務(wù)層級(jí)中選擇當(dāng)前環(huán)境下各服務(wù)層級(jí)中適合的子服務(wù),即服務(wù)調(diào)度,可以帶來汽車SOA系統(tǒng)總體性能和效率的提升。
在計(jì)算機(jī)領(lǐng)域,服務(wù)網(wǎng)格(service grid)[4]作為大規(guī)模網(wǎng)絡(luò)計(jì)算系統(tǒng)的一種類型,也采用服務(wù)的方式來包裝系統(tǒng)機(jī)構(gòu)中的資源,同樣也具有調(diào)度的需求,并采用服務(wù)質(zhì)量(quality of service, QoS)的評(píng)價(jià)指標(biāo)進(jìn)行調(diào)度算法的設(shè)計(jì)[5],這與汽車SOA 的調(diào)度需求有諸多相似之處,因此可以分析網(wǎng)格計(jì)算的服務(wù)機(jī)制設(shè)計(jì)思路,進(jìn)行汽車SOA的設(shè)計(jì)。
綜上所述,為了盡可能發(fā)揮SOA 在軟件定義汽車上的應(yīng)用價(jià)值,可以在目前的汽車SOA 架構(gòu)中拓展SOA 的服務(wù)層級(jí)范圍,并引入服務(wù)調(diào)度算法,進(jìn)而提升駕駛性能和效率。在不同的服務(wù)層級(jí)中,服務(wù)調(diào)度算法可以實(shí)時(shí)地選取當(dāng)前環(huán)境下更適合的子服務(wù),從而提升汽車在各種復(fù)雜環(huán)境條件下的自適應(yīng)性,這也是軟件定義汽車應(yīng)具備的重要特征。
汽車SOA 架構(gòu)一般為多層架構(gòu),從下至上分別為硬件層、服務(wù)層、應(yīng)用和算法層[6],遵循粒度逐漸增大的規(guī)律,將需要大量重復(fù)使用的服務(wù)劃分為小粒度,即原子服務(wù);原子服務(wù)組合后可以成為粒度更大的組合服務(wù),實(shí)現(xiàn)一套稍復(fù)雜的完整功能邏輯;而應(yīng)用和算法層實(shí)現(xiàn)了若干完整的用戶級(jí)功能,可以調(diào)用各種原子服務(wù)和組合服務(wù),是最完善和復(fù)雜的層級(jí),如圖1所示。
圖1 通用SOA架構(gòu)圖
符合服務(wù)調(diào)度要求的SOA 服務(wù)層級(jí)須滿足兩個(gè)條件:其硬件或軟件的功能可以被抽象為SOA 中的服務(wù),即符合SOA 應(yīng)用的硬性條件;其最終實(shí)現(xiàn)的功能存在被調(diào)度的必要性,即在環(huán)境影響下能發(fā)生顯著性能變化,或能提升用戶體驗(yàn)。
SOA 服務(wù)層級(jí)可以由硬件或軟件組成。對(duì)于硬件而言,SOA 應(yīng)用條件的主要限制為通信協(xié)議。汽車SOA 的通信協(xié)議通常使用SOME/IP,是一種適用SOA 大數(shù)據(jù)和標(biāo)準(zhǔn)化傳輸?shù)南冗M(jìn)協(xié)議[7],屬于車載以太網(wǎng)的范疇,而與傳統(tǒng)汽車大量使用的CAN 通信協(xié)議存在很大的不同[8]。主要區(qū)別可以概括為:CAN協(xié)議的實(shí)時(shí)性高,為微秒級(jí)的硬實(shí)時(shí)協(xié)議,數(shù)據(jù)量小,在須保證可靠和實(shí)時(shí)性的汽車硬件上仍無法取代;SOME/IP 一類的以太網(wǎng)協(xié)議傳輸帶寬大、但實(shí)時(shí)性沒有CAN 協(xié)議高,能實(shí)現(xiàn)毫秒級(jí)的軟實(shí)時(shí)要求,適合用于傳輸多媒體數(shù)據(jù),以及實(shí)時(shí)性要求相對(duì)較低硬件。
因此,對(duì)于仍須使用CAN 協(xié)議的動(dòng)力與控制功能域的執(zhí)行器硬件,如電動(dòng)機(jī)、轉(zhuǎn)向控制等硬件,屬于具有硬實(shí)時(shí)要求的硬件服務(wù)[9],由于無法接入SOA 服務(wù),也無法用于服務(wù)調(diào)度。根據(jù)不同的功能區(qū)間,可以將可調(diào)度的硬件層級(jí)分為如表1 所示的幾種類型,并分別對(duì)每種類別進(jìn)行了若干舉例。
自動(dòng)駕駛域的硬件以激光雷達(dá)等感知傳感器為代表,其性能會(huì)受到環(huán)境變化的顯著影響,具有服務(wù)調(diào)度的必要性;車身與座艙域、動(dòng)力與控制域的傳感器可以為智能軟件算法提供汽車運(yùn)動(dòng)或環(huán)境的信息,車身與座艙域的執(zhí)行器作為軟件的輸出,都與后者具有直接相關(guān)性,因此也可以隨軟件一起進(jìn)行服務(wù)調(diào)度。而動(dòng)力控制功能域的執(zhí)行器一般采用CAN協(xié)議,現(xiàn)階段一般無法被直接抽象為SOA 服務(wù),但可以采用“服務(wù)代理”的方式,將整個(gè)舊的軟件模塊包裝為軟件黑盒,成為一個(gè)類似軟件服務(wù)的整體功能,保留在舊架構(gòu)下的既有成熟代碼[10]。但這種方式作為額外的轉(zhuǎn)接層,會(huì)降低效率和可被用戶察覺的性能,影響實(shí)時(shí)性,因此對(duì)于實(shí)時(shí)性要求高的模塊,只應(yīng)該在服務(wù)代理的黑盒預(yù)留出實(shí)時(shí)性要求不高的狀態(tài)發(fā)布類信息接口,也就被歸類到動(dòng)力與控制域的傳感器范疇,因此執(zhí)行器由于硬實(shí)時(shí)的需求,在嚴(yán)格意義上仍然暫時(shí)不能接入SOA。
對(duì)于軟件服務(wù)層級(jí)而言,理論上現(xiàn)階段智能網(wǎng)聯(lián)汽車的各類軟件都可以被抽象為SOA 服務(wù),如表2 所示,但應(yīng)用最廣泛、最多討論的功能域?yàn)橹悄茏撓嚓P(guān)的對(duì)人智能類型軟件。此類軟件投入成本相對(duì)較小,對(duì)汽車運(yùn)行的影響小,試錯(cuò)成本較低,適合作為SOA 車用探索階段的軟件類別。其他可被調(diào)度的類型還有自動(dòng)駕駛相關(guān)軟件算法、對(duì)車和路智能的智能座艙軟件,及控制通信的車聯(lián)網(wǎng)軟件等,這些功能對(duì)汽車的行駛性能有直接影響,測(cè)試成本較大,適宜在SOA 應(yīng)用更成熟廣泛后再納入體系;或因車路云系統(tǒng)本身不夠成熟,相關(guān)基礎(chǔ)設(shè)施也沒有普及應(yīng)用,不適宜在現(xiàn)階段就考慮SOA 的部署。但這些技術(shù)的相關(guān)成本和成熟應(yīng)用問題得到改善后,將其納入SOA 的可調(diào)度層級(jí)中,能將汽車SOA 的服務(wù)范圍拓展到更通用的范圍。
表2 可調(diào)度SOA軟件服務(wù)層級(jí)分類
對(duì)于不同的SOA 服務(wù)層級(jí),不同環(huán)境因素的影響也不相同。對(duì)其性能或功能有顯著影響的環(huán)境變化,稱之為關(guān)鍵環(huán)境因素,否則為非關(guān)鍵因素。能對(duì)服務(wù)造成影響的環(huán)境因素,可以大致按表3分為4種類型:天氣條件、路面條件、交通條件和車輛狀況。一般天氣條件中的關(guān)鍵環(huán)境因素為負(fù)面影響,對(duì)汽車的硬件造成功能阻礙,如雨雪或能見度降低的天氣;路面條件即為影響汽車動(dòng)力經(jīng)濟(jì)性、操穩(wěn)性、平順性等性能的路面因素,與汽車駕駛息息相關(guān);交通條件主要影響自動(dòng)駕駛相關(guān)軟硬件,對(duì)其算法的運(yùn)行效率有影響;車輛狀況可能影響座艙內(nèi)的環(huán)境舒適程度,以及與駕駛性能的參數(shù)相關(guān)。
表3 影響調(diào)度的關(guān)鍵環(huán)境因素分類及示例
一組功能目標(biāo)相近,且服務(wù)粒度大小相近的子服務(wù)可以構(gòu)成一個(gè)服務(wù)層級(jí)。其中,硬件服務(wù)層級(jí)與硬件直接關(guān)聯(lián),提供最基礎(chǔ)的功能,位于SOA 架構(gòu)底層;而軟件服務(wù)層級(jí)中的子服務(wù)一般為實(shí)現(xiàn)一類功能的算法或其他軟件,不與硬件直接關(guān)聯(lián)。為了實(shí)現(xiàn)一個(gè)系統(tǒng)功能,需要對(duì)SOA 架構(gòu)發(fā)起相應(yīng)的服務(wù)請(qǐng)求。
應(yīng)用和算法層的一個(gè)功能往往需要多個(gè)存在上下調(diào)用關(guān)系的服務(wù)層級(jí)共同實(shí)現(xiàn),在縱向上可以分類為不同的服務(wù)層級(jí)束。
為了體現(xiàn)這種橫縱向服務(wù)層級(jí)關(guān)系,表現(xiàn)功能域拓展后的SOA 架構(gòu),文中給出了如圖2 所示的問題模型:某汽車SOA架構(gòu)中包含m個(gè)硬件服務(wù)層級(jí),n個(gè)軟件服務(wù)層級(jí),其中硬件子服務(wù)由Lij表示,軟件子服務(wù)由Mij表示。 其中,i為服務(wù)層級(jí)序號(hào),j為每個(gè)服務(wù)層級(jí)中的子服務(wù)序號(hào)。
圖2 功能域擴(kuò)展的汽車SOA模型
在每個(gè)服務(wù)層級(jí)中,子服務(wù)都具有可選性,可啟用其中若干個(gè)以滿足系統(tǒng)的功能需求;同時(shí),滿足上下調(diào)用關(guān)系的不同服務(wù)層級(jí)中,也可能存在關(guān)聯(lián)的子服務(wù),即上層子服務(wù)需要固定啟用下層的子服務(wù),存在依賴性。
2.2.1 硬件服務(wù)層級(jí)
定 義 2 維 向 量Lij∈R3,i= 1,2, …,m,j=1, 2, …,k來描述第i個(gè)硬件的參數(shù):
式中:Cost為服務(wù)資源負(fù)載;S為服務(wù)能力。服務(wù)資源負(fù)載包括計(jì)算資源和能耗兩個(gè)部分。
計(jì)算資源負(fù)載又可包括CPU、內(nèi)存、存儲(chǔ)容量、網(wǎng)絡(luò)以及GPU 等關(guān)鍵元器件的資源消耗情況,根據(jù)計(jì)算資源負(fù)載的各組成部分及能耗在車輛上的影響程度大小,可以采用不同的影響系數(shù),并添加或減少關(guān)鍵元器件的種類。例如,對(duì)于CPU、內(nèi)存、網(wǎng)絡(luò)和能耗4 種因素影響最大的車輛而言,服務(wù)資源負(fù)載可以用式(2)表示:
式中:P為實(shí)際消耗的資源數(shù)量,單位為相應(yīng)資源的單位,MB、kJ 等;C為對(duì)應(yīng)的資源系數(shù),用于進(jìn)行去單位化和設(shè)定每種資源的加權(quán)量,單位為MB-1、kJ-1等。
服務(wù)能力表示該服務(wù)硬件在當(dāng)前環(huán)境下的運(yùn)行效果,對(duì)于不同的硬件種類,選取最關(guān)鍵的幾種評(píng)價(jià)指標(biāo)。對(duì)于可調(diào)度SOA 硬件,最典型的即為環(huán)境感知傳感器,其服務(wù)能力可用分辨率表示,單位為PPI(pixels per inch,PPI)。
2.2.2 軟件服務(wù)層級(jí)
定 義 2 維 向 量Mij∈R3,i= 1,2, …,n,j=1,2, …,k來描述第i個(gè)傳感器的參數(shù):
式中:Te為服務(wù)預(yù)計(jì)完成時(shí)間。服務(wù)資源負(fù)載的計(jì)算與硬件服務(wù)層級(jí)相同,而服務(wù)預(yù)計(jì)完成時(shí)間可根據(jù)車機(jī)操作系統(tǒng)給出預(yù)估時(shí)間,用于評(píng)價(jià)同類功能軟件服務(wù)在執(zhí)行某個(gè)任務(wù)時(shí)的難易程度。
2.2.3 調(diào)度方案變量
對(duì)于一個(gè)服務(wù)層級(jí)Li或Mi,定義調(diào)度方案變量Xi∈Rk,維度與該層級(jí)子服務(wù)的數(shù)量相同;Xi第j個(gè)元素的值,Xi[j]= 0 or 1,代表服務(wù)層級(jí)自上而下總計(jì)第j個(gè)備選子服務(wù)是否啟用,0 表示不被調(diào)用,1 表示被調(diào)用。例如,對(duì)于具有4 個(gè)子服務(wù)的M3服務(wù)層級(jí),調(diào)度方案X3∈R4。對(duì)所有服務(wù)層級(jí)的調(diào)度方案進(jìn)行總和,可得系統(tǒng)的整體調(diào)度方案。
2.2.4 約束條件
服務(wù)調(diào)度的約束條件較為寬泛,主要目的是避免極端情況下出現(xiàn)系統(tǒng)宕機(jī),(C1~C6)以及保證系統(tǒng)能對(duì)需要調(diào)用的服務(wù)具有優(yōu)先操控權(quán),因此還需引入系統(tǒng)需求功能覆蓋約束(C7)。
服務(wù)最大完成時(shí)間約束(C1):
式中:n表示該層級(jí)具有的子服務(wù)數(shù)量;Tmax則為設(shè)定的最大服務(wù)完成時(shí)間。
系統(tǒng)服務(wù)資源約束(C2~C5):
式中Costmax表示對(duì)應(yīng)資源的設(shè)定最大值上限。
硬件服務(wù)能力下限約束(C6):
式中Smin表示對(duì)應(yīng)硬件服務(wù)能力的設(shè)定最小值下限。
系統(tǒng)需求功能覆蓋約束(C7):
式中Psyst表示系統(tǒng)功能需求開啟的子服務(wù)集合,需要優(yōu)先確保系統(tǒng)開啟需求的子服務(wù)。
每個(gè)服務(wù)層級(jí)中,在當(dāng)前環(huán)境條件下每個(gè)子服務(wù)的運(yùn)行可靠性和響應(yīng)效果的綜合效果為服務(wù)置信度。在網(wǎng)格計(jì)算的服務(wù)調(diào)度機(jī)制中,通常會(huì)采用基于信任的QoS[11-12]和性能的QoS[13],以分別提升服務(wù)提供者和接受者的可信程度,并進(jìn)一步采用基于如啟發(fā)式的方法實(shí)現(xiàn)機(jī)制,如經(jīng)典的Min-Min 算法[14]。在網(wǎng)格計(jì)算中,性能QoS 包括最終服務(wù)期限等與時(shí)間相關(guān)的參數(shù)和精度等與準(zhǔn)確性相關(guān)的參數(shù),而信任QoS 是用來評(píng)價(jià)服務(wù)信息的真正可信程度。服務(wù)置信度結(jié)合了類似于網(wǎng)格計(jì)算中QoS 的信任和性能兩個(gè)維度的理念,用于綜合表征汽車SOA 上的服務(wù)運(yùn)行效果。其中信任的理念體現(xiàn)在加入的運(yùn)行穩(wěn)定性的評(píng)價(jià)指標(biāo),數(shù)據(jù)越穩(wěn)定,表明其服務(wù)失效的可能性相對(duì)而言更低,也就具備更高的可信度;性能的理念體現(xiàn)在服務(wù)參數(shù)中的負(fù)載、服務(wù)能力和預(yù)計(jì)完成時(shí)間,更優(yōu)秀的指標(biāo)也就表征了更強(qiáng)的性能。
服務(wù)置信度Conf由服務(wù)參數(shù)L和M估計(jì)得出。LiT和MiT為短時(shí)間段T內(nèi)由每隔T/n時(shí)間采集的一系列服務(wù)參數(shù)Li和Mi構(gòu)成的二維離散數(shù)列,為其標(biāo)準(zhǔn)差的模。
運(yùn)行效果參數(shù)α1、α2,運(yùn)行穩(wěn)定性參數(shù)β1、β2,滿足:
對(duì)于硬件服務(wù)層級(jí):
對(duì)于軟件服務(wù)層級(jí):
該算法的目的是更新某個(gè)具體層級(jí)的服務(wù)調(diào)度方案,需要在整體算法中被多次復(fù)用。為了便于表述,后文將該算法稱為算法1。該算法的具體流程如下,流程圖如圖3所示。
圖3 算法1流程圖
(1)輸入需要更新子服務(wù)調(diào)度方案的服務(wù)層級(jí),根據(jù)服務(wù)層級(jí)為硬件層級(jí)或軟件層級(jí),獲取所有子服 務(wù) 的Cost、S或Cost、Te,得 到 所 有 子 服 務(wù) 的Li或Mi。
(2)考慮系統(tǒng)功能覆蓋約束C7,選擇系統(tǒng)功能需求開啟的子服務(wù)集合Psyst中包含的子服務(wù)。由于約束條件C1~C6主要為了避免極端情況下的宕機(jī),在這里認(rèn)為系統(tǒng)提出需求的服務(wù)本身滿足約束條件C1~C6。
(3)考慮最大完成時(shí)間約束條件C1,系統(tǒng)服務(wù)資源約束C2~C5,硬件服務(wù)能力下限約束C6,當(dāng)其中的子服務(wù)不滿足約束條件時(shí),不選擇這些子服務(wù)。
(4)其他沒有被約束條件限制的子服務(wù),計(jì)算所有的服務(wù)置信度Confi,構(gòu)成集合{Conf},其中步驟(2)中指定開啟的系統(tǒng)需求子服務(wù)單獨(dú)列出,構(gòu)成的服務(wù)置信度集合為{Confsyst},此時(shí),{Conf}不包含{Confsyst}的元素。
(5)比較{Conf}中所有元素和{Confsyst}的平均將其從{Conf}去除。
(6)若{Conf}中仍有剩余元素,選擇{Conf}中最大的元素對(duì)應(yīng)的子服務(wù),并加上步驟(2)中優(yōu)先級(jí)更高的{Confsyst}構(gòu)成輸出的調(diào)度方案。
通過步驟(4)~步驟(6),能在滿足系統(tǒng)功能需求的條件下,通過其他可能服務(wù)置信度更高的子服務(wù)進(jìn)一步提升最終調(diào)度方案的平均服務(wù)置信度。
該算法為整體算法,控制汽車整體的調(diào)度過程運(yùn)行。為了減少計(jì)算資源的消耗,在某一服務(wù)層級(jí)的服務(wù)置信度下降不超過10%時(shí),不對(duì)該服務(wù)的選擇方案更新;同時(shí),為了避免出現(xiàn)服務(wù)置信度穩(wěn)步下滑,影響整體運(yùn)行效率,系統(tǒng)每隔一個(gè)初始化周期后會(huì)進(jìn)行重置,重新選擇各服務(wù)層級(jí)的調(diào)度方案。后文將該算法稱為算法2,具體流程如下所示,流程圖如圖4所示。
圖4 算法2流程圖
(1)對(duì)所有服務(wù)層級(jí)運(yùn)行算法1,獲得初始的子服務(wù)調(diào)度方案X。
(2)每隔時(shí)間δt,獲取每個(gè)層級(jí)正運(yùn)行的服務(wù)參數(shù)Li或Mi,計(jì)算服務(wù)置信度,并計(jì)算服務(wù)置信度相較Nδt內(nèi)最大值的變化幅度p,其中N為記錄當(dāng)前檢測(cè)點(diǎn)之前的時(shí)間間隔數(shù)目, 該服務(wù)層級(jí)的變化幅度p記為
(3)當(dāng)p≤-10%時(shí),對(duì)該服務(wù)層級(jí)重新運(yùn)行算法1,更新子服務(wù)的選擇,轉(zhuǎn)步驟(2)。
(4)當(dāng)p>-10%時(shí),不改變?cè)摲?wù)層級(jí)的調(diào)度情況,轉(zhuǎn)步驟(2)。
(5)每隔一個(gè)初始化周期Tinit后,轉(zhuǎn)步驟(1)。
為了更具體地展示服務(wù)調(diào)度機(jī)制的運(yùn)行過程,以及驗(yàn)證服務(wù)調(diào)度的優(yōu)勢(shì),文中設(shè)計(jì)了簡化的軟件和硬件雙層模型,在參數(shù)模擬下進(jìn)行服務(wù)調(diào)度過程的仿真,并設(shè)計(jì)幾種典型的環(huán)境場(chǎng)景,將其與不進(jìn)行服務(wù)調(diào)度的效果進(jìn)行對(duì)比,驗(yàn)證其在能耗和服務(wù)能力上的優(yōu)勢(shì)。
如圖5 所示,SOA 模型選為雙層架構(gòu),每個(gè)服務(wù)層級(jí)分別由3 個(gè)子服務(wù)組成。汽車上布置3 組自動(dòng)駕駛汽車常用的傳感器類型:攝像頭組、激光雷達(dá)組和超聲波雷達(dá)組[15-16]。每個(gè)傳感器組的布置方案都能覆蓋車身周圍的足夠范圍,使自動(dòng)駕駛功能正常工作。3 種傳感器類型不僅應(yīng)用廣泛,并且在不同環(huán)境中的工作特性差異明顯,能夠更典型地表現(xiàn)出應(yīng)對(duì)不同環(huán)境的服務(wù)運(yùn)行差異性;而常用的毫米波雷達(dá)的工作特性與激光雷達(dá)相似,故而僅選取了其中的一種。
圖5 簡化SOA雙層模型
汽車SOA 除傳感器服務(wù)層級(jí)外,擁有一層具有3 個(gè)子服務(wù)的上層算法層級(jí),代表運(yùn)動(dòng)物體追蹤(moving object tracking, MOT)層級(jí),分別為:立體視覺MOT、傳感器融合MOT、深度學(xué)習(xí)MOT[15],同樣,假定這3 種的軟件層級(jí)在不同環(huán)境下工作特性同樣差異較大,更為典型。
在簡化模型中,設(shè)置運(yùn)行效果參數(shù)α1= 0.8,α2= 0.9,運(yùn)行穩(wěn)定性參數(shù)β1= 0.2 ,β2= 0.1。由于信任QoS 的理念不是直接對(duì)應(yīng)在運(yùn)行穩(wěn)定性一個(gè)因素上,因此根據(jù)性能QoS 理念的運(yùn)行效果應(yīng)該作為更加重要的因素;硬件層級(jí)的運(yùn)行穩(wěn)定性受環(huán)境影響和安裝位置等影響更大,因此提高了硬件層級(jí)相較于軟件層級(jí)的運(yùn)行穩(wěn)定性參數(shù)。
4.2.1 高速路場(chǎng)景
Case1 設(shè)置為高速路場(chǎng)景。硬件傳感服務(wù)層級(jí)L1、L2、L3分別為:攝像頭組、激光雷達(dá)組、超聲波雷達(dá)組。此場(chǎng)景只影響硬件傳感服務(wù)層級(jí)。在高速路場(chǎng)景下,速度會(huì)對(duì)超聲波雷達(dá)的感知能力產(chǎn)生不利影響[17],因此設(shè)定歸一化后的服務(wù)能力平均值=0.4;對(duì)于服務(wù)資源負(fù)載,以各傳感器靜止且工況條件最適宜時(shí)的負(fù)載作為標(biāo)定。在傳感器的運(yùn)行工況變差時(shí),更難獲取傳感數(shù)據(jù),且運(yùn)算模塊進(jìn)行處理時(shí)會(huì)消耗更多的資源,因此選取服務(wù)資源負(fù)載,如表4 所示。同時(shí),運(yùn)行工況變差時(shí),服務(wù)能力和資源負(fù)載的數(shù)據(jù)浮動(dòng)值會(huì)提高,由此如表4 可以設(shè)定標(biāo)準(zhǔn)差的數(shù)值。
由設(shè)定的參數(shù)計(jì)算當(dāng)前場(chǎng)景下的Conf(Li),并應(yīng)用算法1 和算法2 進(jìn)行排序。對(duì)于某些自動(dòng)駕駛汽車而言,不需要處理激光雷達(dá)的數(shù)據(jù)就可以實(shí)現(xiàn)滿足自動(dòng)駕駛功能。此時(shí),攝像頭的服務(wù)置信度最高,考慮約束條件后可以得出調(diào)度方案變量為
對(duì)于其他自動(dòng)駕駛車輛,需要進(jìn)行傳感器融合算法[17],如補(bǔ)充激光雷達(dá)數(shù)據(jù)進(jìn)行融合等才能獲取足夠感知數(shù)據(jù),此時(shí)系統(tǒng)需求開啟的服務(wù)集合Psyst=[0,1,0]。又因?yàn)閿z像頭的服務(wù)置信度大于激光雷達(dá),根據(jù)算法1,攝像頭服務(wù)也需要開啟,考慮約束條件后調(diào)度方案變量為
則此時(shí)求解結(jié)果:同時(shí)啟用攝像頭組和激光雷達(dá)組。
4.2.2 交通參與者較多場(chǎng)景
軟件服務(wù)層級(jí)M1、M2、M3在Case 2 中代表運(yùn)動(dòng)物體追蹤(MOT)層級(jí),分別為:立體視覺MOT、傳感器融合MOT、深度學(xué)習(xí)MOT。此場(chǎng)景只影響軟件算法服務(wù)層級(jí)。立體視覺算法相對(duì)來說計(jì)算資源消耗較低,但依賴于環(huán)境中存在足夠的紋理和深度信息;傳感器融合算法對(duì)計(jì)算資源要求較高,但適合跟蹤各種類型的物體,包括沒有明顯紋理的物體;深度學(xué)習(xí)的方法便于處理復(fù)雜場(chǎng)景和多目標(biāo)跟蹤,但需要更多的訓(xùn)練數(shù)據(jù)和計(jì)算資源[18]。根據(jù)這些特征,對(duì)于服務(wù)響應(yīng)時(shí)間,深度學(xué)習(xí)方法具有最高的效率,處理速度更快,用時(shí)應(yīng)最短,其次是傳感器融合和立體視覺方法。對(duì)于服務(wù)資源負(fù)載,標(biāo)定值1 時(shí)取為適中處理數(shù)據(jù)下的負(fù)載情況,在環(huán)境場(chǎng)景變化時(shí),既需要考慮各子服務(wù)本身的負(fù)載變化幅度,也需要考慮不同子服務(wù)間本身的負(fù)載差距,可以按一定的參數(shù)選取。由于立體視覺方法計(jì)算復(fù)雜度最小,其次為傳感器融合方法和深度學(xué)習(xí)方法。三者的數(shù)據(jù)波動(dòng)性一般都不大,傳感器融合分析數(shù)據(jù)量較大,相對(duì)而言穩(wěn)定性稍高。由以上分析,進(jìn)行歸一化后得到表5的設(shè)定數(shù)據(jù)。
表5 擁堵道路場(chǎng)景軟件層級(jí)服務(wù)置信度
計(jì)算當(dāng)前場(chǎng)景下的Conf(Mi),可得此場(chǎng)景下深度學(xué)習(xí)的服務(wù)置信度最高,為0.61,并應(yīng)用算法1和算法2,考慮約束條件后得出該軟件服務(wù)層級(jí)的服務(wù)方案變量:
則此時(shí)求解結(jié)果:啟用深度學(xué)習(xí)MOT。需要注意的是,不同復(fù)雜程度的交通參與者復(fù)雜程度、不同的算法在響應(yīng)時(shí)可能有不同的調(diào)度結(jié)果。
4.2.3 隧道低光照?qǐng)鼍?/p>
此場(chǎng)景同時(shí)影響軟件算法服務(wù)層級(jí)和硬件傳感服務(wù)層級(jí)。低光下攝像頭組的傳感能力受到影響,一并影響立體視覺MOT 的運(yùn)行效果;同時(shí)隧道無行人和非機(jī)動(dòng)車,交通參與者復(fù)雜性和數(shù)量相比適中處理數(shù)據(jù)的標(biāo)定場(chǎng)景降低??梢栽O(shè)定攝像頭和立體視覺MOT 的各項(xiàng)參數(shù)受到影響,傳感器融合由于也具有攝像頭數(shù)據(jù),也受到較小的影響。對(duì)于超聲波雷達(dá),隧道中行車速度較低,但距離其最適宜的低速行駛工況仍有部分降低;深度學(xué)習(xí)方法受到的影響較小,且其負(fù)載更高,但受環(huán)境影響的變化幅度較低。綜合以上分析,進(jìn)行歸一化后可以得到表6 和表7的設(shè)定數(shù)據(jù)。
表6 隧道低光照?qǐng)鼍坝布蛹?jí)服務(wù)置信度
表7 隧道低光照?qǐng)鼍败浖蛹?jí)服務(wù)置信度
計(jì)算當(dāng)前場(chǎng)景下的Conf(Mi)和Conf(Li) ,并應(yīng)用算法1 和算法2,可得兩個(gè)層級(jí)中,分別為激光雷達(dá)和傳感器融合子服務(wù)的服務(wù)置信度最高,考慮約束條件后,可得出該雙層服務(wù)層級(jí)的服務(wù)變量方案為
則此時(shí)求解結(jié)果:在硬件服務(wù)層級(jí)啟用激光雷達(dá),在軟件服務(wù)層級(jí)啟用傳感器融合MOT。
不進(jìn)行服務(wù)調(diào)度時(shí),在本文的簡化雙層SOA 服務(wù)層級(jí)中,硬件服務(wù)層級(jí)的全部子服務(wù)開啟,在所有場(chǎng)景中都始終采集數(shù)據(jù)進(jìn)行處理;軟件服務(wù)層級(jí)在所有場(chǎng)景下只選擇一種固定的子服務(wù)運(yùn)行。而進(jìn)行服務(wù)調(diào)度時(shí),按照上面設(shè)計(jì)的3 種服務(wù)場(chǎng)景通過系統(tǒng)進(jìn)行多次場(chǎng)景服務(wù)的切換,進(jìn)行服務(wù)能耗的對(duì)比分析,并同時(shí)比對(duì)整體服務(wù)能力的變化,進(jìn)而可以分析服務(wù)調(diào)度的優(yōu)勢(shì)。開啟更多的子服務(wù)會(huì)產(chǎn)生更多的能耗,而整體的服務(wù)能力可以近似認(rèn)為和服務(wù)能力最高的子服務(wù)相近。在場(chǎng)景的環(huán)境沒有影響到該服務(wù)層級(jí)時(shí),負(fù)載設(shè)置為1。
由于實(shí)際場(chǎng)景的數(shù)據(jù)采集和定量難度較大,在本文的初步研究中將采用虛擬的隨機(jī)數(shù)組作為服務(wù)參數(shù)指標(biāo)中的負(fù)載、服務(wù)能力及服務(wù)預(yù)計(jì)完成時(shí)間數(shù)據(jù)輸入。為了在簡化條件下更好地模擬實(shí)際駕駛場(chǎng)景中數(shù)據(jù)的自然波動(dòng),這些服務(wù)參數(shù)的隨機(jī)數(shù)組服 從 正 態(tài) 分 布X~N(μ,σ2),式 中,μ= 1,σ=即本節(jié)中設(shè)定的各場(chǎng)景下標(biāo)準(zhǔn)差,見表4~表7。
自動(dòng)駕駛汽車運(yùn)行時(shí),由于不斷計(jì)算消耗的能源相比傳統(tǒng)汽車而言更不可忽視。因此,采用考慮了系統(tǒng)計(jì)算資源消耗等計(jì)算機(jī)負(fù)載的服務(wù)資源負(fù)載Cost來表示汽車整體能耗情況是可行的。
如圖6 設(shè)置一組場(chǎng)景循環(huán),每隔一個(gè)時(shí)間間隔切換一組場(chǎng)景。時(shí)間間隔為單位時(shí)間的虛擬量,表示一次更換場(chǎng)景的單位時(shí)間,包含一組正態(tài)分布隨機(jī)數(shù)組的所有數(shù)據(jù)。隨后,將上述生成的各場(chǎng)景下正態(tài)分布隨機(jī)數(shù)組經(jīng)過調(diào)度與否的疊加計(jì)算后,按場(chǎng)景的輪換,在MATLAB 中繪制為圖7~圖9,分別展示調(diào)度與否的能耗、軟件層級(jí)服務(wù)預(yù)計(jì)完成時(shí)間和硬件層級(jí)服務(wù)能力3個(gè)維度的模擬情況對(duì)比。
圖6 調(diào)度場(chǎng)景對(duì)比設(shè)置
圖7 調(diào)度與否的能耗對(duì)比分析
由圖7 可見,進(jìn)行服務(wù)調(diào)度的組別在能耗負(fù)載上明顯更低。通過計(jì)算,在模擬場(chǎng)景下,進(jìn)行調(diào)度與不調(diào)度的能耗平均比值為64.33%,在本文所列場(chǎng)景循環(huán)中可能降低能耗3至4成。
根據(jù)圖8,對(duì)于軟件層級(jí)的預(yù)計(jì)服務(wù)時(shí)間,在某些場(chǎng)景下,如Case2 中,由于軟件服務(wù)層級(jí)中不同子服務(wù)性能差距較大,進(jìn)行調(diào)度能夠顯著降低服務(wù)預(yù)期完成時(shí)間。整體而言,進(jìn)行調(diào)度也能維持小于等于不進(jìn)行調(diào)度的Te。對(duì)于本文的場(chǎng)景循環(huán),Te的平均比值約為70.19%,進(jìn)行服務(wù)調(diào)度可降低3 成左右的服務(wù)預(yù)計(jì)完成時(shí)間。
圖8 調(diào)度與否的預(yù)計(jì)服務(wù)時(shí)間對(duì)比分析
對(duì)于硬件層級(jí)的服務(wù)能力,由圖9 可得,進(jìn)行服務(wù)調(diào)度的平均服務(wù)能力與不進(jìn)行調(diào)度的比值約96.61%,與不進(jìn)行調(diào)度的子服務(wù)全部開啟情況相近。這說明服務(wù)調(diào)度在該場(chǎng)景循環(huán)下可以保持絕大部分的服務(wù)能力,維持性能。
圖9 調(diào)度與否的服務(wù)能力對(duì)比分析
綜合以上分析可以得出,開啟服務(wù)調(diào)度后,能在一定的環(huán)境場(chǎng)景下顯著降低由于計(jì)算資源等消耗產(chǎn)生的能耗,一定程度上降低軟件服務(wù)的預(yù)計(jì)完成時(shí)間,并能和不進(jìn)行調(diào)度的服務(wù)能力表現(xiàn)相近。
在通用SOA 架構(gòu)的基礎(chǔ)上,本文歸類并分析了可被調(diào)度的SOA 服務(wù)層級(jí),以及會(huì)影響服務(wù)調(diào)度的環(huán)境因素。在此基礎(chǔ)上,提出了面向智能汽車功能域可拓展的SOA 架構(gòu),可以適配更廣泛的SOA 服務(wù)層級(jí),便于跨域服務(wù)調(diào)度?;诖耍疚脑O(shè)計(jì)了一個(gè)相對(duì)完整的SOA 服務(wù)調(diào)度機(jī)制,以服務(wù)置信度為調(diào)度核心,實(shí)現(xiàn)子服務(wù)調(diào)度方案的最優(yōu)選擇。綜合考慮服務(wù)能力、負(fù)載和數(shù)據(jù)穩(wěn)定性等因素,通過測(cè)定服務(wù)響應(yīng)參數(shù)計(jì)算獲得服務(wù)置信度,并通過基于服務(wù)置信度的子服務(wù)更新算法和服務(wù)調(diào)度選擇算法實(shí)現(xiàn)服務(wù)調(diào)度流程,提高智能汽車應(yīng)對(duì)環(huán)境變化的自適應(yīng)能力。
在簡化的SOA 雙層模型中,本文設(shè)計(jì)了3 種典型場(chǎng)景以演示服務(wù)調(diào)度的過程,模擬實(shí)驗(yàn)結(jié)果表明:所提方法顯著降低了計(jì)算資源負(fù)載等原因引起的服務(wù)能耗與預(yù)計(jì)服務(wù)時(shí)間,分別為36%和30%;且該方法能保持服務(wù)能力與不調(diào)度的情況相近,為原有的96.61%。由此可見,調(diào)度算法能夠在維持服務(wù)能力的同時(shí),降低汽車在環(huán)境場(chǎng)景切換時(shí)的能耗,在一定程度上提升自適應(yīng)性。
為了使數(shù)據(jù)的設(shè)定更符合實(shí)際情況,未來還需要在實(shí)車上進(jìn)行數(shù)據(jù)測(cè)定和驗(yàn)證,以對(duì)調(diào)度算法進(jìn)行優(yōu)化和改進(jìn)。同時(shí),還可以采用更先進(jìn)的數(shù)據(jù)通信方式,來將汽車動(dòng)力系統(tǒng)容納到可被調(diào)度的SOA服務(wù)層級(jí)中,以更大程度地拓展SOA的優(yōu)勢(shì)。