張程 陳付龍 劉超 齊學梅



摘 要:信息物理融合系統(CPS)涉及多種計算模型的集成和協同工作,針對CPS設計方法不統一、重塑性差、復雜度高、難以協同建模驗證等問題,提出一種結構化、可描述行為的異元組件模型。首先,用統一組件建模方法進行建模,解決模型不開放問題;然后,用可擴展標記語言(XML)規范描述各類組件,解決不同計算模型描述語言不一致和不可擴展問題;最后,用多級開放組件模型的協同仿真驗證方式進行仿真驗證,解決驗證的不可協同問題。通過通用組件建模方法、XML組件規范描述語言以及驗證工具平臺XModel對醫用恒溫箱進行了建模、描述和仿真。醫用恒溫箱的案例表明,這種模型驅動建立可重塑異元組件并確認其設計正確性的過程,支持信息物理協同設計和邊構建邊糾正,可避免在系統實現過程中發現問題時再進行反復修改。
關鍵詞:信息物理融合系統;組件;可擴展標記語言;XModel;開放模型;協同仿真
中圖分類號: TP391.9計算機仿真
文獻標志碼:A
Abstract: Cyber Physical System (CPS) involves the integration and collaboration of various computing models. Concerning the problems of inconsistent CPS design methods, poor plasticity, high complexity and difficulty in collaborative modeling and verification, a structured and descriptive heterogeneous component model was proposed. Firstly, the model was constructed by a unified component modeling method to solve the problem that the model was not open. Then, eXtensible Markup Language (XML) was used to realize the standard description of all kinds of components to resolve the inconsistency and non-extensibility of different computing model description languages. Finally, the collaborative simulation verification method of multi-level open component model was used to realize the simulation verification to solve the non-collaboration problem of verification. The medical thermostat was modeled, described and simulated by the general component modeling method, the XML component standard description language and the verification tool platform XModel. The case of medical thermostat shows that, the proposed model-driven process of building reconfigurable heterogeneous components and confirming their design correctness supports the collaborative design of cyber physics and the correction while constructing, avoiding repeated modifications when problems are found in the process of system implementation.
Key words: Cyber Physical System (CPS); component; eXtensible Markup Language (XML); XModel; open model; collaborative simulation
0 引言
專用信息處理的嵌入式系統[1]是包含了集成計算、通信與控制的新一代多維智能系統,是信息物理融合系統(Cyber Physical System, CPS)[2]的核心技術之一,廣泛應用于工業、航空、醫藥、交通機器人等領域。自2005年CPS被提出至今,各國科研人員和學者從CPS的理論方法、系統設計及具體實現等不同層面進行探討和研究,各自提出了對CPS概念的理解。本文對CPS的理解是CPS強調用戶空間、信息空間與物理空間的感知、傳輸、處理和控制過程,突出對物理空間的實時、動態的信息控制與信息服務的特點,構成了一個能通過計算進程和物理進程相互影響的反饋循環,實現人、機、物世界的密切互動,如圖1所示。CPS組成復雜、功能多變[3],需要與通信、傳感、控制及物理等組件協同設計,使系統開發變得難以把握,高效的協同設計方法成為迫切的需求和緊要的任務。
一個完整的CPS涉及到人、機、物等異構單元的協同工作,不只是一個單獨運作的裝置,它的異元組件主要是體現在三個方面:一是CPS軟件組件和硬件組件,其分析、設計、編碼、測試方法存在顯著差異;二是CPS組件與傳感、控制、通信、物理等組件的功能特點、計算模型(連續、離散)、描述(文本、圖形)和驗證(形式化驗證、仿真、測試)方法不一致,難以協同設計;三是CPS組件在不同的應用環境中所采用的種類、型號、連接形式迥然不同,規模差異較大,設計時需要較好的可重塑性。
當系統復雜到一定程度,如果直接編程設計,會增加系統出錯甚至失敗的可能性。鑒于CPS異元組件協同設計是一項復雜的工作,為達到系統執行效果好、代價小和可靠性高的要求,設計需在能完成設計周期的描述方式下提高系統的開發質量和效率。因此CPS各類組件協同設計的第一步應該是建立系統的模型,即抽象地描述系統,其內容主要包括三點:1)將需求分析轉化為可重塑、可驗證和可視化的系統實現,便于驗證所設計的系統是否滿足需求分析的要求,也便于理解和修改設計;2)表示系統的結構和行為;3)表示系統的非功能約束條件。CPS的可重塑異元協同設計,包括設計人員之間的合作和不同模型子組件(軟件、硬件、傳感、控制、通信以及物理子組件)之間的協同設計,是一個亟待解決的難題。解決這類復雜問題最有效的方法之一就是分層和協同建模理論[4],緊密結合嵌入式系工作的外部物理環境要素,將復雜問題分為多個子問題逐一解決。分層協同建模就是對多計算模型的復雜系統進行分層,把要設計的系統結構和系統行為聯系起來,并對體系結構進行可視化控制,從而發現需求并更好地解決問題。另外,系統設計還遵循一個規律:越早驗證、越早發現問題,付出的代價越小。有效的系統模型和描述規范有利于分工設計與專業化產生,有利于協同驗證,邊構建邊糾正,從而節省設計和生產成本。
1 相關工作
國內外學者對嵌入式系統、CPS的設計方法也作出了探索性的研究。傳統的嵌入式系統建模方法的分類如下:1)按照是否支持形式化,可分為形式化和非形式化方法。常見的非形式化方法有:語言Petri Nets[5-8]、統一建模語言(Unified Modeling Language, UML)[9-10]、有限狀態機(Finite State Machine, FSM)、前饋神經網絡(Feedforward Neural Network, FNN)[11]等。Petri Nets的局限性在于,系統復雜度的增長會快速導致系統的不可理解性。由于缺乏對并發性和層次性的顯式支持,對于復雜的系統,FSM可能出現“狀態爆炸”和“遷移膨脹”現象。UML和FNN基本上能描述系統的功能屬性,可通過仿真來驗證系統的正確性,但對非功能屬性的描述能力有限,且不利于通過數學方法來嚴格驗證。2)按照建模對象的組成元素分類,可分為基于過程、基于任務、基于組件的方法。基于組件的方法又包括面向對象(如實時UML)、面向中間件(如公共對象請求代理結構(Common Object Request Broker Architecture, COBRA)、EJB(Enterprise Java Beans)、分布式組件對象模型(Distributed Component Object Model, DCOM)、組件對象模型(Component Object Model, COM)等商業規范)、面向角色[12]、面向領域、面向資源等技術。3)按照系統描述的視圖分類,可分為面向狀態(如FSM和Petri Nets)、面向活動(如數據流圖和控制流圖)、面向結構(如構件連接圖)、面向數據(如實體關系圖和Jackson圖)和異構的模型(如控制/數據流圖)。4)按照開發方法分類,有Top-Down(如Simulink、規范與描述語言(Specification and Description Language, SDL)、StateCharts等)、Bottom-Up(如硬件描述語言(Hardware Description Language, HDL)、UML、接口描述語言(Interface Description Language, IDL)、高級分布式語言(Advanced Distributed Language, ADL)、Modelica等)兩種方法。前者適于系統的需求分析和高層體系結構描述以及系統評價,后者適于系統底層體系結構的描述、設計和驗證。
這些方法在以往的傳統系統設計中發揮了重要作用,但在面向CPS協同設計中則面臨新的問題和難以克服的困難。面向CPS,不同于通常純粹的軟件或硬件系統,而是軟件、硬件、傳感、控制、通信、物理系統綜合在一起的[13-15]系統,有些功能既可以用軟件實現,也可以通過硬件實現,還可以用物理設備完成。另外,嵌入式系統設計所面臨的挑戰不僅涉及到計算機軟件和硬件,也會涉及到許多非計算機工程中的問題,諸如機械尺寸、功耗和制造成本問題等。即使是計算機工程方面的問題,大部分系統在實時性、可靠性和多速率等問題方面也都有特別要求。隨著應用需求的日益增長,CPS功能變強大,系統體系結構變復雜,對系統的要求更苛刻。
研究者們逐漸意識到了面向信息物理融合的異元嵌入式系統協同建模與驗證的重要性。離散事件系統規范(Discrete Event System Specification, DEVS)是Zeigler等[16]在研究一般系統論的基礎上創建的一種離散事件系統仿真理論,具有簡潔的操作語義,并且與真實系統存在簡單的對應關系;但DEVS是一種貧語義的系統描述,其優勢在于對系統的組成結構、通信機制、時間概念的支持,其劣勢在于缺少信息機制、時間概念的支持,也缺乏對于系統行為的描述,模型結構的開放性低,且其抽象的數學描述離具體的系統建模尚存在很大的差距。劉晨等[17]將StateCharts嵌入到DEVS,利用StateCharts適于建立系統的行為模型、描述狀態的轉換規律等特點,實現兩者的優勢互補,可以建立起簡潔、直觀的系統模型,該方法可以有效地提高系統的設計效率,完成高層建模到底層代碼實現的自動映射。此外,Modelica在其迅速發展的同時受到工業界的高度關注,眾多相關行業的頂尖企業紛紛推出支持計劃。在Modelica[18]的支持下,Taha等[19]在完成Acumen項目的同時,提出了混合系統的建模和驗證方法,采用連續函數對連續系統建模,并進行離散化仿真,目前Taha團隊正致力于擴展其行為描述能力,但通信功能方面還沒有實現。在具體應用領域方面,Parolini等[20]提出了面向控制的模型,采用計算網絡和熱量網絡構造系統模型,實現了對數據中心能量效率的有效控制;Saber等[21]則將信息物理能量系統分為隨機模型、智能動態負載均衡模型和靈巧網格模型,包含能量、可網格化車輛和熱量單元,實現能量可重用和利用率最大化;Saeedloei等[22]則強調了編程模型的重要性,并用協同誘導、限制因數和協同迂回通信等方法對CPS進行邏輯編程,實現了對反應器溫度控制系統的形式化建模和驗證;趙俊華等[23]則利用微分代數方程組、有窮自動機、隨機過程、排隊論等數學工具,建立電力CPS的靜態與動態模型。此外,馬華東等[24]從體系結構角度研究了模型及互聯機制,為以嵌入式系統為核心的CPS乃至信息物理融合應用系統提供了一定的理論和技術支持。
綜合以上分析,針對目前CPS協同設計所面臨的困難,尤其是CPS設計過程中的模型選擇、模型描述、驗證和設計的自動生成,以及其對計算性能和協同設計的需求,本文從體系結構的角度,構建基于組件(構件)的嵌入式系統模型(組態模型),為嵌入式應用系統的軟件系統和硬件系統提供一個相對統一的實現途徑,為嵌入式應用系統提供抽象的并可用于設計的傳感、控制、通信和物理驗證模型,從而有效解決了CPS組件協同設計中遇到的模型不開放、描述不一致、協同驗證難以自動化等問題,并探索協同設計平臺構建和代碼生成自動化等問題。
2 通用組件建模方法
2.1 通用組件建模方法定義
CPS組成元素可以是物理設備(如感知器、路由器、處理器、控制器等)、人、甚至小部件(如電子元件、小集成電路、軟件模塊等)。CPS的組成元素具有復雜性、多樣性,為有效表示CPS中所有的組成元素,統稱這些元素為CPS組件。在通用建模方法中CPS組件的定義是指構成CPS的具有特定屬性、組成結構和行為方法的對象,且對象之間可進行相互連接、協同完成特定的工作。CPS組件基本結構如圖2所示。CPS組件基本結構的定義如下:
上述已定義了CPS基本結構元素,根據組件端口的不同功能進行分類,輸入端口型I、輸出端口型O以及輸入輸出端口型IO。CPS中元素有兩種角色,組件和子組件。
一個組件可以不是一個簡單客體,它可以由其他組件組成,但是為了區分組件內部包含的組件,賦予組件內部的組件新的定義名稱為子組件。換言之,CPS中元素具有雙重身份,既是組件,又是子組件。
組件既可以是由子組件組成的復雜結構的客體,也可以不含任何子組件。對此,產生新的概念,即復合組件和原子組件。復合組件和原子組件都是CPS組件,區分兩者的依據是組件內部是否存在其他子組件。舉一個簡單例子,如半加器。半加器可看作一個復合組件,它由一個異或門和一個與門組成,即這兩個子組件組成。對CPS組件概念的理解,可認為一個CPS本身就是一個組件,其內部結構就是多個組件構成。考慮在文中用組件建模方法描述一個大型復雜的CPS難以實現,CPS的建模采用通用組件建模方法。對此,給出一個簡潔的CPS組件結構圖表示CPS的建模方式,如圖3所示。同時,對CPS 組件結構圖也進行描述,表達式如下:
2.2 組件建模方法分析
2.1節已定義了CPS組件基本結構和組件建模描述的模式,本節將分析和總結組件建模方法的優劣。
本文提出的組件建模方法具有以下優勢:
1)CPS具有復雜性、多樣性。隨著需求的增大,規模也逐漸變龐大、功能更具復雜性,那么組件方法建模CPS的過程中,忽略冗余的信息,精煉地提取并描述CPS中組件的關鍵信息,有利于降低CPS建模的復雜性。
2)至今已有許多研究人員針對信息物理融合建模提出了很多建模的方法,但都有各自的缺陷,如:層次模型可以直觀地將CPS以層次劃分并表示每層的主要功能;但是沒有很好對每層進行細化。本文的CPS組件,可以靈活地嵌套在層次模型中,且已能夠詳細化每層的結構和功能。又如:形式化模型,通過數學形式驗證;但無法刻畫出CPS結構,造成可讀性差和難理解。組件建模方式不僅通過行為屬性來使用形式化方式,而且通過組件與組件之間的組合,達到驗證的效果。總而言之,組件建模的使用具有靈活性,其功能也更加強大。
3)通過本文的CPS組件定義可看出,將CPS組件化也就是對象化,組件都有各個ID、結構以及行為,這很符合現實情況。無論是人或物,都具有自己的組成結構,會對外界刺激作出特定反應。因此,組件建模方式也更具真實性。
4)本文CPS建模采用二層模式,這樣有利于提高其可讀性。人的思維習慣是從簡單到復雜,如果直接給予一整個CPS結構,這種方式會具有可行性差、可讀性差的問題。
組件建模方法具備上述優點,但也存在以下問題:
1)復雜、龐大的CPS在建模時可采用形式化嵌套在內,但是眾多組件之間應該怎樣有效地組合才真正達到合理的仿真效果?
2)采用兩層模式建模,勢必會產生大量的描述文件。這些文件該如何存儲、如何調用,讓整個系統在運行時達到一個最佳狀態?
3)組件建摸方式并沒有考略到安全性的問題,采用什么樣的方式,將建立安全方式運用在組件建模方法中?
3 XML組件描述規范、解析及仿真
本節具體介紹XML組件描述規范,描述規范的解析器及仿真流程。
3.1 XML組件規范描述語義
根據組件定義,描述方式采用可擴展標記語言(eXtensible Markup Language, XML)描述。XML描述規范具有以下特定特征:
1)每一個CPS組件描述文件(Docment)包含三個部分:描述文件聲明(Declaration)、組件定義(Component)以及文件注釋。
2)注釋的格式以“〈!”開始,以“〉”結束;描述文件聲明包含XML版本聲明(Version)、編碼聲明(Encoding)、外部定義的Schema文件存在性聲明(Standlone)。
3)描述文件中包含一個或若干組件,組件以〈component〉開始、〈/component〉結束的標記對定義。
4)每一組件都有著自己的組件名稱(ID),以便于與其他組件區分。組件包含兩個部分:組件結構(Structure)和組件行為(Behavior),如表1所示。組件行為數據化和信息化,產生若干具有特性的數據元素,經過一系列的數據存儲、數據計算處理和計算優化,再通過一系列專用的軟件將真實物理世界的客體虛擬地顯示于計算機的顯示設備。
XML提供了一種描述結構化方法,主要用于存儲數據、控制數據、顯示數據以及外觀。XML與超文本標記語言(HyperText Markup Language, HTML)不同之處在于,它的標記是用于定義數據本身的結構和數據類型。每個元素封裝可能十分簡單也可能十分復雜的數據,對此可定義一組無限制的XML標記來描繪數據元素。比如定義一些XML標記來描述訂單中的數據,如價格、稅收、發貨地址、賬單地址以及發貨的方式。此外,XML是一種簡單、與平臺無關、并被廣泛采用的標準,使集成來自不同源的數據成為可能。XML具有可擴展性、可兼容性和可讀性的特點,是一種適合描述信息物理融合世界的語言。信息物理融合世界包括三個主體部分:人、物,以及使兩者或者與其自身產生聯系的網絡。三者看似屬于不同范疇,但是它們還是具備一些共同特征,如結構屬性和行為屬性。無論是人,還是物理客體和網絡,都有其自身的組成結構,只是組成的原子不同。同時,它們都能對來自信息物理融合世界中的刺激因子產生反應,從而產生某些特定的行為方式。對此,在XML組件規范描述語言描述組件過程中,將整個組件劃分為結構和行為兩個部分,如表2所示,組件結構規范中定義了端口集、子組件集合、連接器集合和屬性集合。
端口集(Ports)主要作用是傳遞信息,它有一系列的輸入端口集(Inports)、輸出端口集(Outputs)以及輸入輸出端口集(Inoutputs)。輸入端口用來接收來自外界或連接器的輸入信號,輸出端口用來為連接器產生輸出信號,輸入輸出端口則具備兩者的功能。考慮到信息物理融合世界中不同客體有著不同的端口集合,即使在同一客體中也存在不同的端口集合,且相互傳遞的信息數據類型存在多樣性,定義端口ID用于識別不同端口,端口Type決定了此端口所傳遞的數據類型(字節型、字符型、布爾型、整型等)。組件是由其內部具有一定數量的子組件集(Subcomponents)且按照一定的排列結構所組成。同樣采用標記ID的方式區別不同的子組件,其標簽對(label)中的屬性component是為說明此子組件是屬于某一組件。XModel建模仿真驗證平臺采用圖形化和XML文本化編輯方式,對此需要視圖屬性(View)記錄子組件在圖形化界面顯示的位置、尺寸、圖片等。信息物理融合世界特別強調用戶空間、信息空間與物理空間的信息傳輸,根據此特點需要定義連接器集(Connectors)用于連接不同組件及組件的內部各個子組件。組件行為描述規范中,定義了狀態機行為(mealy狀態機和Moore狀態機),狀態機具體的計算行為如表3所示。
3.2 XML組件描述語言解析和仿真
定義XML組件描述語言規范,但計算機本身并不能理解XML文件的內容。類似計算機所使用的高級語言,XML更接近于人類能夠理解的自然語言,但計算機卻不能識別。為解決此問題,產生了高級語言編譯器將高級語言編輯的程序文件轉化為計算機能識別的二進制文件。
為了能識別XML文件的內容,同樣要建立XML編譯器來解析XML文件,編譯過程需要經過詞法分析、語法分析和語義分析。通過編譯后,對整個項目進行仿真,仿真流程如圖4所示。
4 案例分析
對醫用恒溫箱模型化,并在XModel建模仿真平臺上進行驗證。
4.1 模型定義
醫用恒溫箱,主要用于藥品、試劑儲存運輸,疫苗、血液冷藏保溫,透析液加溫和生理鹽水加溫等。實際中醫用恒溫箱的內部結構比較復雜,在模型化時將簡化其內部結構,建立能夠體現醫用恒溫箱工作方式的組件模型,如圖5所示。
由圖5可知,醫用恒溫箱組件的內部結構情況,包括溫度傳感器組件、溫度控制器組件以及顯示組件。醫用恒溫箱組件的溫度傳感器組件的作用是感知恒溫箱內的溫度,起到一定的監視作用。圖5中說明溫度傳感器組件是復合組件,其中包括噪聲組件和累加器組件。溫度控制器組件是原子組件,不具備結構屬性,僅有行為屬性,通過行為狀態機控制恒溫箱中的溫度,使其保持在允許溫度范圍內。顯示組件的作用就是顯示溫度變化的波形圖,可以更加直觀地看到恒溫箱中溫度變化情況。
4.2 分析與驗證
整個仿真過程,從溫度傳感器組件開始產生溫度初始值Tinitial,將產生的數據傳送到溫度控制器中。溫度控制器的行為屬性是狀態機,如圖5所示,可知此狀態機是由加熱狀態(Heating State)、冷卻狀態(Cooling State)以及四個條件轉化(Transition)組成。初始狀態定義為加熱狀態,假設接收的采集數據是5.5℃,明顯超過恒溫箱定義的溫度上限(HeatingOnThershold),根據狀態轉化的條件判斷,當前的加熱狀態將轉化為冷卻狀態,并且在轉移的過程中輸出當前溫度值和冷卻變化率(表示下一步將進行冷卻操作)。從溫度控制器組件中輸出的數據,將傳遞到溫度傳感器組件。噪聲組件和累加器組件是它的重要組成部分,在現實情況中,恒溫箱的中溫度一定受到外界因素的干擾,產生內部溫度的波動。正因為考慮到這種情況,才有噪聲組件的設計。將當前溫度值和逐漸產生的噪聲值傳遞到累加組件中進行累加操作,產生新的溫度值。
在開發的驗證工具平臺Xmodel上對醫用恒溫箱模型進行仿真驗證,結果如圖6所示,一系列溫度值都保持在恒定的溫度范圍內,驗證了本文的CPS協同設計方法的有效性。
5 結語
本文采用CPS的通用組件建模方法建立醫用恒溫箱模型,并在設計的仿真平臺XModel上運行驗證,達到了一定的預期效果。但XModel的組件庫還是處于一個初期階段,軟件平臺的功能不是很完善。對此,在后期工作中,希望不斷進行研究和實驗,擴充組件庫,完善XModel建模仿真驗證平臺。
參考文獻 (References)
[1] MARWEDEL P. Embedded Systems Design: Embedded Systems Foundations of Cyber-Physical Systems [M]. 2nd ed. Berlin: Springer, 2011: 3-10.
[2] 何積豐.信息物理融合系統[J].中國計算機學會通訊,2010,6(1):25-29.(HE J F. Cyber-physical systems [J]. Communications of the China Computer Federation, 2010, 6(1): 25-29.)
[3] SHA L, MESEGUER J. Design of complex cyber physical systems with formalized architectural patterns [M]// WIRSING M, BANATRE J P, HLZL M, et al. Software-Intensive Systems and New Computing Paradigms, LNCS 5380. Berlin: Springer, 2008: 92-100.
[4] YU Z B, JIN H, GOSWAMI N, et al. Hierarchically characterizing CUDA program behavior [C]// Proceedings of the 2011 IEEE International Symposium on Workload Characterization. Washington, DC: IEEE Computer Society, 2011: 76.
[18] 趙建軍,丁建完,周凡利,等.Modelica語言及其多領域統一建模與仿真機理[J].系統仿真學報,2006,18(S2):570-573.(ZHAO J J, DING J W, ZHOU F L, et al. Modelica and its mechanism of multi-domain unified modeling and simulation [J]. Journal of System Simulation, 2006, 18 (S2): 570-573.)
[19] TAHA W, BRAUNER P, ZENG Y F, et al. A core language for executable models of cyber-physical systems [C]// Proceedings of the 2012 32nd International Conference on Distributed Computing Systems Workshops. Washington, DC: IEEE Computer Society, 2012: 303-308.
[20] PAROLINI L, SINOPOLI B, KROGH B H, et al. A cyber-physical systems approach to data center modeling and control for energy efficiency [J]. Proceedings of the IEEE, 2012, 100(1): 254-268.
[21] SABER A Y, VENAYAGAMORTHY G K. Efficient utilization of renewable energy sources by gridable vehicles in cyber-physical energy systems [J]. IEEE Systems Journal, 2010, 4(3) :285-294.
[22] SAEEDLOEI N, GUPTA G. A logic-based modeling and verification of CPS [J]. ACM SIGBED Review — Work-in-Progress (WiP) Session of the 2nd International Conference on Cyber Physical Systems, 2011, 8(2): 31-34.
[23] 趙俊華,文福拴,薛禹勝,等.電力信息物理融合系統的建模分析與控制研究框架[J].電力系統自動化,2011,35(16):1-8.(ZHAO J H, WEN F S, XUE Y S, et al. Modeling analysis and control research framework of cyber physical power systems [J]. Automation of Electric Power Systems, 2011, 35(16): 1-8.)
[24] 馬華東,宋宇寧,于帥洋.物聯網體系結構模型與互連機理[J].中國科學:信息科學,2013,43(10):1183-1197.(MA H D, SONG Y N, YU S Y. The research of IoT architecture model and internetworking mechanism [J]. SCIENTIA SINICA Informationis, 2013, 43(10): 1183-1197.)