本節書摘來自華章出版社《資訊實體融合系統(cps)設計、模組化與仿真——基于 ptolemy ii 平台》一書中的第1章,第1.1節,作者:[美]愛德華·阿什福德·李(edward ashford lee),更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視
本書第一部分主要介紹系統的設計、模組化與仿真。第1章首先概述了異構系統規範化模組化的指導性原則,從較高的角度對将在第二部分中較長的描述的計算模型(model of computation,moc)進行概述。另外,第1章還提供了一個高度簡化的研究案例(一個發電機組),該案例闡明了多種不同計算模型在複雜系統設計中所起的作用。
第2章提供了一個利用圖形使用者界面vergil使用ptolemy ii的操作指南。本書目标之一就是使得讀者能夠在系統設計過程中利用開源的ptolemy ii進行實驗。這章的目的在于提供足夠的資訊,以使讀者成為ptolemy ii的合格使用者。關于如何對ptolemy ii進行擴充,讀者可參考本書第三部分。
目前的許多工程系統通常都結合了異構且複雜的子系統。例如一輛汽車,就可能結合了一個複雜的發動機、很多的電子控制單元(electronic control unit,ecu)、引擎控制系統、車身電子控制系統(用于控制車窗和門鎖)、娛樂系統、空調控制和通風系統,以及各種本機安全性授權(如安全氣囊)。每個子系統可能又由軟體、電子及機械部分聯合組成。實作如此複雜的系統的确是一項挑戰,尤其在于:即使最小的子系統也跨越了多個工程學科領域。
這些複雜系統同樣也對設計工具帶來了挑戰。工程師通過使用設計工具對系統進行規格化、設計、仿真及分析。如今,僅僅是畫出機械結構的草圖,然後列出一些等式描述機械部分之間的互動是不夠的。而且,無論是完全依靠機械部分的3d模組化軟體工具,還是依靠用于軟體系統的基于模型的設計工具,都是不夠的。各個領域(機械、軟體、電子、通信網絡、化學、流體動力學以及人為因素)之間互相聯系的複雜性削弱了隻适用于單個領域工具的有效性。
本書重點針對資訊實體融合系統(cyber-physical system,cps)(lee,2008a,2010a;lee and seshia,2011),這種系統将實體動力學與計算和網絡結合。cps需要通過模型組合的方式将實體過程的連續動态(通常用微分方程描述)與軟體模型內建在一起。有些應用需要結合元件間的計時互動和傳統算法計算來實作,這種情況下混合模型是最有效的。在那些算法元件間有并發互動(concurrent interaction)的傳統軟體系統中,也可以使用混合模型。
補充閱讀:關于術語“cps”
術語“cps”(cyber-physical system)出現于2006年前後,是由美國國家科學基金會的helen gill所提出。對于william gibson的“賽博空間”(cyberspace)一詞,我們都很熟悉。gibson在小說《neuromancer》(神經漫遊者)中用這個詞來表示用于人類之間互相通信的計算機網絡媒介。我們試圖将術語賽搏空間與cps聯系起來,但是術語cps的根源更深遠。或許,把cyberspace和cps視為由同一詞語“控制論”(cybernetics)演變出的同源詞會更準确一些。
術語“控制論”由美國數學家norbert wiener (wiener,1948)提出,他對控制系統理論的發展有巨大影響。在第二次世界大戰期間,wiener發明了高射炮的自動瞄準和射擊技術。雖然他使用的機制并不涉及數字計算機,但涉及的原理與現今很多基于計算機的回報控制系統相似。wiener發明的這個詞起源于希臘語κυβερνητη?(kybernetes),意思是舵手、長官、領航員或船舵。該比喻對控制系統來說是很恰當的。
wiener将他對“控制論”的了解描述為控制和通信的結合。他對控制的概念根植于閉環回報(closed-loop feedback),這裡的控制邏輯由對實體過程的計量結果驅動,然後控制邏輯反過來也驅動實體過程。即使wiener沒有使用數字計算機,但控制邏輯從效果上來講就是一種計算,是以“控制論”就是實體過程、計算和通信三者的結合。
wiener當時沒有料到數字計算和網絡的巨大影響力。“cyber-physical system”可能被模糊地解釋為“賽博空間”和實體過程的結合,這一點削弱了cps可能具有的巨大影響力。cps對資訊技術帶來的顯著影響,甚至超越了wiener時代最瘋狂的想象。
在撰寫本書的過程中,工程工具和技術正處在巨大變化時期。這種變化推動着我們的工作,使我們有能力适應系統日益增加的複雜性和異構性。過去,整個行業都圍繞着為單一的工程領域提供設計工具,比如數字電路、軟體、3d機械設計、采暖及通風領域。如今,我們看到越來越多設計工具的整合群組合;獨立工具常常擴充到工具套件,并提供傳統領域以外的功能。這種變革也帶來了一些問題,即不良好的內建會導緻一些不可預期的行為。工具內建常常導緻怪異內建(frankenware),也就是說,由幾乎不相容的工具組成的不穩定組合很難得到有效維護和使用。
另外,在一個相對狹窄的領域中一貫良好的工具,在更廣泛的領域中卻并非那麼有效。今天複雜的設計工具涉及文法(syntax)(如何表示一個設計)、語義(semantics)(一個設計表示什麼,以及它是如何工作的)、語用(pragmatics)(fuhrmann and von hanxleden,2008)(工程師應該如何使設計可視化,并對其進行編輯和分析)的複雜組合,如圖1-1所示。當一個設計工具被用于它的原始使用領域之外時,或者用于和其他工具的組合之中時,不相容的文法、未充分了解的語義以及不一緻的人機界面都有可能使得其不能有效使用。

會出現文法上的不相容,是因為不同設計結構的本質是不同的(比如,軟體的文法和3d設計幾乎沒有共同之處)。但是出現文法不相容的一個更普遍的原因是,各種工具是在不同的工程領域以不同的技術開發的。以工具的語用為例,對于如何管理設計檔案,如何追蹤改動也會因不同發生時刻而不同。語義的差異也有一定偶然性,不同的了解會加大這種差異。語用在不同領域中可能具有不同意思。比如說,在控制工程師和軟體工程師眼中,同一個框圖可能代表着完全不同的意思。
本書使用ptolemy ii對異構模組化的幾個關鍵概念進行了檢驗。ptolemy ii是一個開源的模組化和仿真工具。與大多數其他設計工具不同,ptolemy ii從開發之始就專注于異構系統。ptolemy項目(uc berkeley正在進行的一項研究)的一個關鍵目标就是将不同領域之間文法、語義和語用之間的差異最小化,并将不同領域設計之間的互操作性最大化。是以,ptolemy ii為 cps系統的設計提供了一個有數的實驗環境。
ptolemy ii內建4種不同類型的文法:框圖、弧線圖(bubble-and-arc)圖、指令式程式和算術表達式。這些文法是互補的,這使得ptolemy ii能夠處理各種設計領域的問題。框圖用來表示互相通信的元件之間的并發關系;圖用來表示狀态或模式的順序;指令式程式用來表示算法;算術表達式用來表示函數的數值計算。
ptolemy ii也內建了一些語義域。尤其是對于框圖來說,它的語義有多種可能,彼此都有明顯的不同。框圖之間的連接配接表示設計中元件之間的互動(interaction)。但是什麼類型的互動呢?是異步通信(如寄信)?是會話形式的通信(如打電話)?還是資料的定時更新(如在同步數字電路中那樣)?在互動中,時間是否起到了作用?互動是離散的還是連續的?為了支援異構模組化,ptolemy ii支援以上提到的所有需求,并且它還可以被擴充以支援更多的需求。