第八章-現(xiàn)代仿真技術(shù)_第1頁
第八章-現(xiàn)代仿真技術(shù)_第2頁
第八章-現(xiàn)代仿真技術(shù)_第3頁
第八章-現(xiàn)代仿真技術(shù)_第4頁
第八章-現(xiàn)代仿真技術(shù)_第5頁
已閱讀5頁,還剩126頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第八章現(xiàn)代仿真技術(shù)

在本書的前七章,已向讀者系統(tǒng)地介紹了控制系統(tǒng)計算機仿真的基本原理﹑方法和仿真軟件。在上世紀80年代,由于對復(fù)雜大系統(tǒng)的分析與設(shè)計的需要,以及計算機技術(shù)的突飛猛進和周邊學(xué)科的某些理論與技術(shù)問題的突破,使得計算機仿真這一學(xué)科得以迅速發(fā)展,其應(yīng)用領(lǐng)域也在日益拓寬和加深。為使讀者能更好地了解仿真技術(shù)的一些最新發(fā)展,以及今后能在仿真領(lǐng)域做進一步的研究,或?qū)⒎抡婕夹g(shù)應(yīng)用于一些比較復(fù)雜的系統(tǒng)之中,本書的后兩章將向讀者介紹仿真這一學(xué)科的新思想﹑新概念和新方法。由于篇幅有限,涉及問題均是基本的,有興趣的讀者可以參考有關(guān)文獻。8.1面向?qū)ο蠓抡婕夹g(shù)

面向?qū)ο蟮母拍詈吞攸c面向?qū)ο蟮姆椒ㄊ且环N在分析和設(shè)計階段獨立于程序設(shè)計語言的概念化過程。它不僅僅是一種程序設(shè)計技術(shù),更重要的它是一種新的思維方式。它能夠幫助分析者、設(shè)計者以及用戶清楚地描述抽象的概念,使相互之間容易進行信息交流。在面向?qū)ο蟮脑O(shè)計方法中,對象(Object)和傳遞消息(MessagePassing)分別是表現(xiàn)事物及事物間相互聯(lián)系的概念;類(Class)和繼承(Inheritance)是適應(yīng)人們一般思維方式的描述范式;方法(Method)是允許作用于該類對象上的各種操作,以及對象的封裝性(encapsulation)、實體的多態(tài)性(polymorphism)以及動態(tài)聯(lián)編(dynamicbinding)等特點。下面介紹這些有關(guān)的術(shù)語。

8.1面向?qū)ο蠓抡婕夹g(shù)(1)對象客觀世界中的任何事物在一定的前提下都可以成為認識的對象。一個人可以是一個對象,一個學(xué)校也可以是一個對象。對象不僅僅是物理對象,還可以是某一類概念實體的實例。例如操作系統(tǒng)中的進程、室內(nèi)照明的等級等??梢?,世界上的任何事物都是對象,或是某一個對象類的一個元素。復(fù)雜的對象可由相對比較簡單的對象以某種方法組成,甚至整個客觀世界可認為是一個最復(fù)雜的對象。為了研究對象,必須用某種形式去表示對象。在面向?qū)ο蟮南到y(tǒng)中,對象是基本的運行實體,它有兩個方面的內(nèi)容需要表示,一是對象的種類所屬,即屬性,二是對象的行為活動。屬性和活動是相互影響的,屬性界定了對象的可能活動,而活動又能改變對象自身的屬性狀態(tài),同時對象之間存在相互作用于依存關(guān)系。因此,對象表示包括三個方面,即屬性、活動、關(guān)聯(lián)關(guān)系。在計算機內(nèi)部,對象通??捎萌P(guān)系來表示:對象:=<接口,數(shù)據(jù),操作>其中接口描述對象與其他對象的關(guān)系,數(shù)據(jù)描述對象的屬性,操作描述對象的行為活動。8.1面向?qū)ο蠓抡婕夹g(shù)(2)消息消息是描述對象間的相互作用的一種方法。在面向?qū)ο蠓椒ㄖ?,對象間的相互作用用對象間的通信——收發(fā)消息來實現(xiàn)。當一個消息發(fā)送給某個對象時,該消息包含要求接收對象去執(zhí)行某些活動的信息,接到消息的對象經(jīng)過解釋,然后予以響應(yīng),這種通信機制稱為消息傳遞。程序的執(zhí)行是由對象間傳遞消息來完成的。發(fā)送消息的對象稱為發(fā)送者,接收消息的對象稱為接收者。消息中只包含發(fā)送者的要求,它告訴接收者需要完成哪些處理,但并不指示接收者應(yīng)該怎樣完成這些處理。發(fā)送消息的對象不需要知道接收消息的對象如何對請求予以響應(yīng)。8.1面向?qū)ο蠓抡婕夹g(shù)(3)類類是一組相似對象的集合,它描述了該組的共同行為和屬性。例如,Integer是一個類,它描述了所有整數(shù)的共有性質(zhì)(包括整數(shù)的大小和算術(shù)運算)。3、4、5等具體的整數(shù)都是類的對象,都具備算術(shù)和大小比較能力。類是在對象之上的抽象,有了類以后,對象則是類的具體化,是類的實例。對象在軟件運行過程中由其所屬的類動態(tài)生成。一個類可以生成多個不同的對象,這些對象雖然外部特性和內(nèi)部實現(xiàn)都相同,但它們可以有不同的內(nèi)部狀態(tài)值。8.1面向?qū)ο蠓抡婕夹g(shù)(4)方法方法是指在對象中被定義的過程,即對類的某些屬性進行操作以達到某一目的的過程。它的實現(xiàn)類似于非面向?qū)ο笳Z言中的過程和函數(shù),它是與類的屬性封裝在一起的。如果一個類的公有方法可用在許多領(lǐng)域,這個類就可作為重復(fù)利用的軟件組件。(5)繼承性一個類可以有父類和子類,繼承性描述了它們之間的關(guān)系,是父類和子類之間共享數(shù)據(jù)和方法的機制。一個類能繼承其父類的全部屬性與操作,在定義和實現(xiàn)一個類時,可以在一個已存在的類的基礎(chǔ)上進行,把這個已存在的類所定義的內(nèi)容做為自己的內(nèi)容,并加入若干新的內(nèi)容。一個類如果只從一個父類得到繼承稱為單繼承,如果有兩個或兩個以上的父類,則稱為多繼承。繼承性是面向?qū)ο蟪绦蛟O(shè)計語言不同于其他語言的最主要的特點,是其他語言所沒有的。8.1面向?qū)ο蠓抡婕夹g(shù)(6)封裝性將一個對象的數(shù)據(jù)和操作過程組合起來,然后將其封裝并限定在一嚴格的范圍內(nèi),只能被同類中的操作過程直接訪問,不允許其它類的對象的介入,這稱為封裝。可以理解為一個模塊的內(nèi)部狀態(tài)和實現(xiàn)方法完全隱藏在模塊內(nèi)部,模塊間的依賴性很小,或者說封裝的方法就是把應(yīng)用程序分解為較小的功能組件。(7)多態(tài)性在收到消息后,對象要予以響應(yīng),不同的對象收到同一消息可產(chǎn)生不同的結(jié)果,這一現(xiàn)象稱為多態(tài)性。應(yīng)用多態(tài)性,用戶可以發(fā)送一個通用的消息給多個對象,每個對象按自身的情況決定是否響應(yīng)和如何響應(yīng),這樣,同一消息就可以調(diào)用不同的方法。8.1面向?qū)ο蠓抡婕夹g(shù)(8)動態(tài)聯(lián)編在面向?qū)ο蟪绦蛟O(shè)計語言中,消息的傳遞用過程調(diào)用的方式來實現(xiàn)。聯(lián)編是把過程調(diào)用和響應(yīng)調(diào)用的執(zhí)行碼結(jié)合在一起的過程。在一般的程序設(shè)計語言中,這個過程在編譯時進行,叫做靜態(tài)聯(lián)編,而面向?qū)ο蟪绦蛟O(shè)計語言采用動態(tài)聯(lián)編的方式,即在運行過程中進行聯(lián)編。這是由類的繼承性和多態(tài)性決定的,面向?qū)ο蟪绦螂y以靜態(tài)地確定要執(zhí)行的代碼,而只能在運行過程中動態(tài)找到響應(yīng)方法,并把它和代碼加以結(jié)合。8.1.2UML統(tǒng)一建模語言20世紀80年代末90年代初,在專著、論文或技術(shù)報告等形式提出的OOA/OOD方法或OO建模語言有近50種以上,這些面向?qū)ο蠓椒ǜ髯杂幸惶赘拍睢⒍x、表示法、術(shù)語和使用的開發(fā)過程,它們之間的細微差別使人覺得不知依據(jù)哪個概念更好,特別是對于非專業(yè)的讀者。從1994年開始,美國Rational軟件公司的G.Booch、J.Rumbaugh和L.Jacobson把他們各自提出的方法統(tǒng)一并吸收了許多其他面向?qū)ο蟮姆椒?,?997年9推出了UML1.1并提交到OMG(ObjectManagementGroup),同年11月被OMG采納。統(tǒng)一建模語言(UML:UnifiedModelingLanguage)是一個通用的可視化建模語言,用于對軟件進行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)制品的文檔。它記錄了對必須構(gòu)造的系統(tǒng)的決定和理解,可用于對系統(tǒng)的理解、設(shè)計、瀏覽、配置、維護和信息控制。UML適用于各種軟件開發(fā)方法、軟件生命周期的各個階段、各種應(yīng)用領(lǐng)域以及各種開發(fā)工具,是一種總結(jié)了以往建模技術(shù)的經(jīng)驗并吸收當今優(yōu)秀成果的標準建模方法。8.1.2UML統(tǒng)一建模語言UML的概念模型包括三方面的內(nèi)容:UML的基本構(gòu)造塊、支配這些構(gòu)造塊如何放在一起的規(guī)則和一些運用于整個UML的公共機制。本書簡單介紹UML的基本構(gòu)造塊的內(nèi)容,請感興趣的同學(xué)參考有關(guān)UML的書籍。UML的構(gòu)造塊有3種構(gòu)造塊:事物、關(guān)系和圖。(1)事物事物是對模型中最有代表性的成分的抽象;關(guān)系把事物結(jié)合在一起;圖聚集了相關(guān)的事物。在UML中的事物有4種:結(jié)構(gòu)事物(structuralthing)、行為事物(behavioralthing)、分組事物(groupingthing)和注釋事物(annotationalthing)。結(jié)構(gòu)事物:通常是模型的靜態(tài)部分,描述概念或物理元素。包括類、接口、協(xié)作、用況、主動類、構(gòu)件和節(jié)點這7種元素。8.1.2UML統(tǒng)一建模語言行為事物:是UML模型的動態(tài)部分,描述了跨越時間和空間的行為,共有2類行為事物:交互和狀態(tài)機。前者由在特定語境中共同完成一定任務(wù)的一組對象之間交換的消息組成,后者描述了一個對象或一個交互在生命周期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列。分組事物:是UML模型的組織部分,是一些由模型分解成的“盒子”,最主要的分組事物是包。注釋事物:是UML模型的解釋部分,這些注釋事物用來描述、說明和標注模型的任何元素。(2)關(guān)系UML中有4種關(guān)系:依賴(dependency)、關(guān)聯(lián)(association)、泛化(generalization)和實現(xiàn)(realization)。

8.1.2UML統(tǒng)一建模語言依賴是兩個事物間的語義關(guān)系,其中一個事物(獨立事物)發(fā)生變化會影響另一個事物(依賴事物)的語義;關(guān)聯(lián)是一種結(jié)構(gòu)關(guān)系,描述對象之間的連接;泛化是一種特殊/一般關(guān)系,特殊元素(子元素)的對象可替代一般元素(父元素)的對象;實現(xiàn)是類元之間的語義關(guān)系,其中的一個類元指定了由另一個類元保證執(zhí)行的契約,實現(xiàn)關(guān)系主要用在一是接口和實現(xiàn)它們的類或構(gòu)件之間,二是用況和實現(xiàn)它們的協(xié)作之間。(3)圖UML最常用的9種圖是:①類圖;②對象圖;③用況圖;④順序圖;⑤協(xié)作圖;⑥狀態(tài)圖;⑦活動圖;⑧構(gòu)件圖;⑨實施圖。

8.1.2UML統(tǒng)一建模語言①類圖(classdiagram):類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作)。類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個生命周期都是有效的。圖為自動柜員機(ATM)系統(tǒng)的取錢使用案例的類圖。8.1.2UML統(tǒng)一建模語言

圖8.1.1ATM系統(tǒng)的取錢使用案例的類圖

8.1.2UML統(tǒng)一建模語言②對象圖(objectdiagram):對象圖是類圖的實例,幾乎使用與類圖完全相同的標識。它們的不同點在于對象圖顯示類的多個對象實例,而不是實際的類。一個對象圖是類圖的一個實例。由于對象存在生命周期,因此對象圖只能在系統(tǒng)某一時間段存在。③用況圖(UseCasediagram)它顯示用況與角色及其相互關(guān)系,從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。圖表示了自動柜員機(ATM)系統(tǒng)的用況圖

8.1.2UML統(tǒng)一建模語言

圖8.1.2自動柜員機(ATM)系統(tǒng)的用況圖

8.1.2UML統(tǒng)一建模語言④順序圖(sequencediagram):順序圖顯示對象之間的動態(tài)合作關(guān)系,它強調(diào)對象之間消息發(fā)送的順序,同時顯示對象之間的交互。⑤合作圖(collaborationdiagram):合作圖和順序圖相似,顯示對象間的動態(tài)關(guān)系。除顯示信息交換外,合作圖還顯示對象以及它們之間的關(guān)系。如果強調(diào)時間和順序,則使用順序圖;如果強調(diào)上下級關(guān)系,則選擇合作圖。

8.1.2UML統(tǒng)一建模語言⑥狀態(tài)圖(statechartdiagram):狀態(tài)圖在UML中也稱狀態(tài)機。它表現(xiàn)一個對象或一個交互在整個生存周期內(nèi)接受刺激時的狀態(tài)序列以及它的反應(yīng)與活動,附屬于一個類或一個方法。狀態(tài)圖描述類的對象所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖是對類圖的補充,在實際效用上并不需要為所有的類畫狀態(tài)圖,僅為那些有多個狀態(tài)、其行為受外界環(huán)境的影響并且發(fā)生改變的類畫狀態(tài)圖。圖表示了銀行中帳目的狀態(tài)圖。圖8.1.3銀行中帳目的狀態(tài)圖

8.1.2UML統(tǒng)一建模語言⑦活動圖(activitydiagram):活動圖描述滿足用況要求所要進行的活動以及活動間的約束關(guān)系,有利于識別并行活動。⑧構(gòu)件圖(componentdiagram):構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。一個部件可能是一個資源代碼部件、一個二進制部件或一個可執(zhí)行部件。它包括邏輯類或?qū)崿F(xiàn)類的有關(guān)信息,有助于分析和理解部件之間的相互影響程度。

8.1.2UML統(tǒng)一建模語言⑨實施圖(deploymentdiagram):實施圖定義了系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。它可以顯示實際的計算面和設(shè)備(用節(jié)點表示)以及它們之間的連接關(guān)系,可顯示連接的類型及部件之間的依賴性。在節(jié)點內(nèi)部,放置可執(zhí)行部件和對象以顯示節(jié)點跟可執(zhí)行軟件單元的對應(yīng)關(guān)系。UML是一種建模語言而不是一種方法。它不包含任何過程指導(dǎo)。也就是說,它并不講述如何運用面向?qū)ο蟮母拍钆c原則去進行系統(tǒng)建模,而只是定義了用于建模的各種元素,以及由這些元素所構(gòu)成的各種圖的構(gòu)成規(guī)則。UML的功能(表達能力)無疑是很強的,它吸取了多種面向?qū)ο蠓椒ǖ母拍詈蛨D形表示法,但UML也是復(fù)雜的,這意味著,無論是學(xué)習(xí)它還是在工程中使用它,都要付出比以往高得多的代價。但是如果UML的使用是普遍的,復(fù)雜的問題又會變得簡單,這就是面向?qū)ο蠓椒ǖ膬?yōu)點。

面向?qū)ο蟮慕Ec仿真?zhèn)鹘y(tǒng)仿真軟件主要提供仿真運行的機制和通用的數(shù)據(jù)結(jié)構(gòu)和函數(shù)。建模的任務(wù)就是把實際系統(tǒng)中對象之間的相互作用關(guān)系轉(zhuǎn)換成在數(shù)據(jù)結(jié)構(gòu)內(nèi)部對數(shù)據(jù)的操作。不同的仿真軟件使用不同術(shù)語、概念,采用不同仿真建模策略,具有不同語義和語法。因此使用這些軟件進行研究就必須利用軟件提供的設(shè)施來建立仿真模型。面向?qū)ο蟮姆抡嬖噲D消除這種過程,使用戶能夠以應(yīng)用領(lǐng)域熟悉的直觀的對象概念來建立仿真模型。建模觀念與人們認識現(xiàn)實世界的思維方式一致,因此不需要多少概念上的轉(zhuǎn)換。

面向?qū)ο蟮慕Ec仿真在面向?qū)ο蟮姆抡嫦到y(tǒng)中,系統(tǒng)中的對象往往與現(xiàn)實世界的實際對象一一對應(yīng),建模的主要任務(wù)就是把系統(tǒng)類庫中提供的對象,進行適當?shù)男薷呐c組合形成仿真模型,而且用戶也可以根據(jù)問題的需要自己建立適當?shù)膶ο?,并可以保存在系統(tǒng)類庫中。這種方法既有利于預(yù)定義對象的方便性,也具有用戶建立對象的靈活性。在面向?qū)ο蟮姆抡嬷薪M成系統(tǒng)的對象是仿真的主要成分。Shannon清楚地描述了仿真對象的概念,指出:“仿真模型的目的就是用一組雜亂五章的對象及其相互關(guān)系組織成一個系統(tǒng)的整體,而這個整體將顯示這些關(guān)系相互作用的效果”。Booch研究了面向?qū)ο蟮姆纸馀c功能分解之間的區(qū)別,認為在許多情況下,面向?qū)ο蠓纸馐歉鼮樽匀坏姆纸猓⑻岢隽嗣嫦驅(qū)ο蠼5囊话悴襟E:

面向?qū)ο蟮慕Ec仿真

確定構(gòu)成系統(tǒng)的各個組成部分和它們的屬性;

確定每個對象的操作和功能;

確定每個對象相對于其他對象的可見度;

確定每個對象的接口;

實現(xiàn)每個對象。具體地說就是,第一步把系統(tǒng)分解成在問題空間活動的實體或?qū)ο螅@些對象應(yīng)當是系統(tǒng)中的活動實體,相似的對象可以分組成對象類。第二步,定義對象的操作,用以刻畫對象或?qū)ο箢惖男袨樘卣?。操作的定義確定了對象的靜態(tài)語義,通過定義每個對象必須遵守關(guān)于時間和空間上的約束,可以確定每個對象動態(tài)行為。第三步確定對象或?qū)ο箢愔g的靜態(tài)關(guān)聯(lián)性,即確定每個對象需要與哪些對象進行通信。第四步確定對象的接口。接口是對象與外界進行通信的唯一通道,它確定了對象之間以及與仿真環(huán)境進行通信的形式。最后一步是為每個對象選擇一種適當?shù)谋磉_,并實現(xiàn)上一步確定的接口。

面向?qū)ο蟮慕Ec仿真面向?qū)ο蟮姆抡鏋榉抡嫒藛T提供了開發(fā)模塊化可重用的仿真模型的工具。它把系統(tǒng)看成由相互作用的對象所組成,而對象則往往表示現(xiàn)實系統(tǒng)中的真實實體,從而提高了仿真模型的可理解性、可擴充性和模塊性,并且便于實現(xiàn)仿真與計算機和人工智能的結(jié)合。其優(yōu)點體現(xiàn)在:(1)可理解性面向?qū)ο蠓抡鎸υO(shè)計者、實現(xiàn)者以及最終用戶來說都改進了仿真的可理解性。因為仿真系統(tǒng)中的對象往往直接表示現(xiàn)實系統(tǒng)中的真實實體,這些實體在面向?qū)ο蟮姆抡嫦到y(tǒng)中可以用外觀上類似人們熟悉的實際系統(tǒng)的對象的圖形或圖像來表示。用戶可以通過圖形界面與仿真模型進行交互,利用圖形或圖像來直接建立仿真模型,這對于熟悉實際系統(tǒng)的用戶來說是很容易理解的。

面向?qū)ο蟮慕Ec仿真(2)可重用性和可擴充性在面向?qū)ο蟮姆抡嬷校梢越⑵鹨粋€模型庫,用以保存以前建立的模型。模型庫中的模型可以作為建立新模型的可重用構(gòu)件,通過面向?qū)ο蠹夹g(shù)內(nèi)在的繼承機制可以容易地和系統(tǒng)地修改現(xiàn)有的對象(類)以建立新的對象,并且可以加入現(xiàn)有的類庫中。類庫提供了仿真建模所需要的一般設(shè)施,通過修改現(xiàn)有的類,可以建立各種應(yīng)用中所需要的特殊對象。(3)模塊性面向?qū)ο蟮姆抡媸悄K化的,對象作為模型,已知對象的所有信息都保存在該模塊中,因此不需要特殊的過程來尋找相應(yīng)的信息。這種信息的封裝意味著容易改變一個對象的含義或修改其性能,而且不會影響其他的對象。

面向?qū)ο蟮慕Ec仿真(4)圖形用戶界面面向?qū)ο蠓抡嫦到y(tǒng)中的對象往往表示實際系統(tǒng)中的真實實體,因而在系統(tǒng)中可以用相似的圖形或圖像來表示,因此更便于建立非常直觀的圖形用戶界面。用戶可以直接在屏幕上建立系統(tǒng)的圖形描述,直觀地構(gòu)造仿真模型。在仿真過程中利用動畫顯示仿真模型地運行過程,各種仿真統(tǒng)計數(shù)據(jù)也可以利用圖形來顯示。這種圖形表達能力對于用戶了解仿真過程、理解仿真結(jié)果都有很大幫助。(5)仿真與人工智能的結(jié)合在面向?qū)ο蟮姆抡嬷?,對象封裝了它們的功能,而功能可以包含智能。因而利用人工智能與專家系統(tǒng)的方法可以在功能中嵌入智能,使對象也具有決策與學(xué)習(xí)能力。仿真與人工智能的結(jié)合可以增強仿真的能力。在基于知識的仿真系統(tǒng)和專家仿真系統(tǒng)方面,許多學(xué)者已進行了廣泛的研究,表明了人工智能與專家系統(tǒng)在輔助仿真建模、仿真結(jié)果的解釋和仿真模型靈敏度分析等方面的重要作用。

面向?qū)ο蟮慕Ec仿真(6)并行仿真面向?qū)ο蟮姆抡媸窃诙嗵幚砥魃喜⑿袌?zhí)行的面向?qū)ο蟮姆抡?。對于仿真封裝了所有的信息,因而每個對象都能按分配給自己的處理程序執(zhí)行它的功能。這樣,對象在某種程度上可以相對獨立地運行。正是由于對象之間地這種相對獨立性,產(chǎn)生了并行仿真執(zhí)行的可能性。仿真的并行執(zhí)行可以極大地降低仿真時間,允許仿真更多的對象,能夠?qū)崿F(xiàn)更詳細的仿真。離散事件系統(tǒng)仿真是面向?qū)ο蠓椒ㄗ钸m合的應(yīng)用領(lǐng)域之一,這是因為面向?qū)ο蟮碾x散事件系統(tǒng)仿真和面向?qū)ο蟮某绦蛟O(shè)計一樣都是以對象為基礎(chǔ)建立系統(tǒng)的結(jié)構(gòu),面向?qū)ο笈c仿真的一致性在這里得到很好的體現(xiàn)。目前主要應(yīng)用在制造系統(tǒng),因為制造系統(tǒng)的物理組成部分很容易直觀的用對象來進行描述。

面向?qū)ο蟮慕Ec仿真由于連續(xù)系統(tǒng)的模型通常是用微分方程來描述的,仿真算法主要是數(shù)值積分法及離散相似法,它與離散事件系統(tǒng)的模型及算法有很大的不同,所以在應(yīng)用面向?qū)ο蠓椒ㄉ希灿兴煌?。對連續(xù)系統(tǒng)進行面向?qū)ο蠼#梢园殉S玫哪K化建??醋魇且环N廣義的面向?qū)ο蟮姆椒ā<磳⒁粋€復(fù)雜的系統(tǒng)劃分成許多模型塊,每個模型塊又可劃分成若干個子模型,直到不能再(或不必)分為止,最基本的子模型被稱為模型元素或基本模型。這樣,建模過程就變成對各種基本模型進行定義,然后利用模型拼合技術(shù)將它們組成模型塊(稱為拼合模型);若干個下層模型塊又可拼合成上層模型塊,直到形成整個系統(tǒng)。顯然,這里的模型塊與面向?qū)ο蠓椒ㄖ械膶ο箢愑性S多相似之處,它同樣具有封裝、繼承等性質(zhì)。需要指出的是,拼合模型與基本模型之間的關(guān)系是一種組合關(guān)系,不能生搬硬套地將拼合模型看成父類,而將基本模型看作是子類。

面向?qū)ο蟮慕Ec仿真在建模和仿真的不同階段,如仿真建模、仿真實驗、動畫輸出等,面向?qū)ο蟮姆椒ǘ家勋@得了應(yīng)用,比如面向?qū)ο蟮慕换ナ綀D形技術(shù)、人工智能技術(shù)和數(shù)據(jù)庫技術(shù),特別是利用面向?qū)ο蟮姆椒ń⒏鞣N復(fù)雜系統(tǒng)的模型,如大型軍用系統(tǒng)、柔性制造系統(tǒng)和計算機網(wǎng)絡(luò)系統(tǒng)等,已取得了許多實際成果。例如,美國NASA的軟件工程實驗室(SEL)已將面向?qū)ο蠹夹g(shù)成功地用于11個項目開發(fā)中,面向?qū)ο蠹夹g(shù)的采用使這些項目的代碼重用率從20%增至80%,同類新項目開發(fā)費用降低三分之二,開發(fā)周期減少一半,修改與出錯率僅為原來的十分之一,被它們稱之為到目前為止最有影響的方法;由CAE-Link公司為Johnson太空中心開發(fā)的Freedom空間站驗證與訓(xùn)練設(shè)備(SSVTF)是一項源代碼超過180萬行的大型仿真項目,該項目主要為空間站宇航員和地面飛行控制者提供全面訓(xùn)練,從基本操作、任務(wù)規(guī)劃到?jīng)Q策驗證,計劃將面向?qū)ο蠼7椒ㄅc軟件重用技術(shù)貫穿于需求分析、設(shè)計、編碼全過程;McDonnellDouglasAerospace將面向?qū)ο蠹夹g(shù)用于導(dǎo)彈制導(dǎo)系統(tǒng)的實時仿真及任務(wù)規(guī)劃;Hewlett-Packard采用面向?qū)ο蠓治龊驮O(shè)計方法開發(fā)了16個商業(yè)項目;Rand公司成功開發(fā)了“蘭德面向?qū)ο蠓抡嫦到y(tǒng)(ROSS)”等等。

面向?qū)ο蠓抡媾e例面向?qū)ο蟮姆抡嬉馕吨脩粢沧兂梢环N語言的設(shè)計者。用戶不僅只利用語言中預(yù)定義的對象,而且還可以利用一組工具建立自己新的對象;用戶不僅要知道如何使用對象,而且必須知道如何描述對象與實現(xiàn)它們。一旦建立了對象類庫,建模工作就很簡單,任務(wù)就是創(chuàng)建控制與刪除對象,用以模擬實際系統(tǒng)的活動。在面向?qū)ο笤O(shè)計的階段,要確定組成系統(tǒng)的對象、對象的屬性和功能,以及對象間的關(guān)系。在實現(xiàn)階段,就要用某種程序語言來實現(xiàn)仿真設(shè)計模型。當然,不用面向?qū)ο蟮恼Z言,也能夠?qū)崿F(xiàn)面向?qū)ο蟮姆抡?。但使用面向?qū)ο蟮恼Z言,實現(xiàn)起來較為容易。由于C++語言較好地兼顧了C語言和面向?qū)ο笳Z言地特點,C++語言成為目前使用最廣泛地面向?qū)ο笳Z言。下面以微分方程組的四階龍格-庫塔解法為例,用BorlandC++簡要說明面向?qū)ο笤O(shè)計仿真算法過程。

面向?qū)ο蠓抡媾e例classVector{private:float*v//向量的值intsz//向量的維數(shù)public:Vector();Vector(ints);Vector(ints,float*a);Vector(constVector&.a);//以上皆為構(gòu)造函數(shù)~'Vector();//析構(gòu)函數(shù)Vectoroperator+(constVector&.)//向量與向量相加Vectoroperator+(constfloat&.)//向量與實數(shù)相加Vectoroperator*(constfloat&.)//向量子函數(shù)相乘float&.operator[](constint&.)//向量各分值Vector&.operator=(constVector);//等式重加載};在龍格-庫塔算法中,為了符合人們的思維習(xí)慣和體現(xiàn)人類的習(xí)慣寫法,引入了兩個類:向量類和微分方程組類。向量類具有兩個私有狀態(tài),即向量的值與向量的維數(shù),重載了“+”、“×”等操作,其定義如下:

面向?qū)ο蠓抡媾e例classDiffEqutionsprivate:floatStep,TO,*Inn;//Step:步長,TO:起始時間,Inn:微分方程組初值intStepNum,Dim;//StepNum:仿真時間,Dim:微分方程組維數(shù)virtualVectorEqutions(VectorYY.floata);//虛函數(shù),微分方程組VectorRunge(VectorYin,floatt);//龍格-庫塔算法public:DiffEqutions(floatSl,floatTl,intStepNum1,intDim1,float*In);//構(gòu)造函數(shù)~DiffEqutions();//析構(gòu)函數(shù)voidSlvRg()};

微分方程組類把微分方程組的共性抽象出來,如長、起始時間、方程組初值、方程組維數(shù)等,定義如下:

面向?qū)ο蠓抡媾e例對于微分方程組表達式的操作,定義為虛函數(shù);在具體求解一個微分方程組時,把這個微分方程組類作為父類,具體的微分方程組作為導(dǎo)出類,重新定義微分方程組這個操作,那么這個導(dǎo)出類就繼承了父類型微分方程組類的數(shù)據(jù)操作,這就是繼承性。采用上述方法求解微分方程組,,初值為,初始時間,仿真時間為10秒,仿真步長為0.1。用龍格-庫塔法求解的源程序如下。

面向?qū)ο蠓抡媾e例//DiffEqu.hpp#ifndefDiffEqu_HPP#defineDiffEqu_HPP#endif//ThedefinationofVectorClass向量類的定義classVector{private:float*v;intsz;public:Vector();Vector(ints);Vector(ints,float*a);Vector(constVector&.a);~'Vector();Vectoroperator+(constVector&);Vectoroperator+(constfloat&);Vectoroperator*(constfloat&);float&operator[](constint&);Vector&operator=(constVector&);};//ThedefinationofDiffEqutionsClass微分方程組類的定義

面向?qū)ο蠓抡媾e例classDiffEqutions{private:floatStep,TO,*Inn;intStepNum,Dim;virtualVectorEqutions(VectorYY.floatac){return(YY);}VectorRunge(VectorYin,floatt);public:DiffEqutions(floatSl,floatTl.intStepNum1,intDim1,float*IN);~DiffEqutions();voidSlvRg();};//DiffEqu.cpp#ifndefDiffEqu_HPP#include"DiffEqu.hpp"#endif#include<iostream.h>//ThemembersofVectorClass向量類成員函數(shù)Vector::Vector(){}Vector::Vector(ints,float*a){sz==s;v=newfloat[s];for(inti=0;i<s;i++)v[i]=a[i];}

面向?qū)ο蠓抡媾e例Vector::Vector(ints){sz=s;v=newfloat[s];}Vector::Vector(constVector&a){sz==a.sz;v=newfloat[sz];for(inti=0;i<s;i++)v[i]==a.v[i];}Vector::Vector(){deletev;}VectorVector::operator+(constVector&an){Vectortemp(sz);for(inti=0;i<sz;i++)temp.v[i]=v[i]+an.v[i];returntemp;}VectorVector::operator+(constfloat&an){Vectortemp(sz);for(inti=0;i<sz;i++)temp.v[i]=v[i]+an;return(temp);}VectorVector::operator*(constfloat&an){Vectortemp(sz);for(inti=0;i<sz;i++)temp.v[i]=v[i]*an;return(temp);}float&Vector::operator[](constint&i){returnv[I];};Vector&Vector::operator=(constVector&a){sz=a.sz;v=newfloat[sz];for(inti=0;i<sz;i++)v[I]=a.v[I];return*this;};

//ThemembersofDiffEqutionsClass

面向?qū)ο蠓抡媾e例DiffEqutions::DiffEqutions(floatSl,floatTl,intStepNum1,intDim1,float*IN){Step=S1;T0=t1;Dim=Dim1;StepNum=StepNum1;INN=newfloat[Dim];for(inti=0;i<Dim;i++)INN[i]=IN[i];};DiffEqutions::~DiffEqutions(){deleteINN;}VectorDiffEqutions::Runge(VectorYin,floatt){VectorKl,K2.K3.K4,Yout;Kl=Equtions(Yin,t)*Step;K2=Equtions(Yin+Kl*.5,t+Step*.5)*Step;K3=Equtions(Yin+K2*.5,t+Step*.5)*Step;K4=Equtions(Yin+K3,t+Step)*Step;Yout=Yin+(K1+K2*2.+K3*2.+K4)*(1/6.);return(Yout);};

面向?qū)ο蠓抡媾e例voidDiffEqutions::SlvRg(){floath,t;VectorYIN(Dim,INN);for(inti=0,i<StepNum,i++){t=TO+I*Step;YIN=Runge(YIN,t);for(intj=0,j<Dim,j++){h=YIN[j];cout<<YIN[j];}cout<<endl;}}//tl.cpp#include"tl.hpp"Vectortl::Equtions(VectorYin,floatt){VectorTEMP(2),TEMP[0]=l./Yin[1];TEMP[l]=-l./Yin[0];return(TEMP);}#ifndefTl_HPP#defineTl_HPP#endif//tl.hpp

面向?qū)ο蠓抡媾e例#ifndefDIFFEQU_HPP#include"DIFFEQU.HPP"#endifclasstl:publicDiffEqutions{public:t1(floatSl,floatTl,intStepNum1,intDim1,float*IN):DiffEqutions(Sl,Tl,StepNum1,Dim1,IN){};virtualVectorEqutions(VectorYin,floatt);};//Mainprogram#include"tl.hpp"voidmain(){floata[3]={1.1,0.9};t1CC(0.1,0.1,10,2,a);CC.SlvRg();}8.2分布交互仿真技術(shù)

8.2.1分布交互仿真的發(fā)展歷程分布交互仿真(DistributedInteractiveSimulation,DIS)是“采用協(xié)調(diào)一致的結(jié)構(gòu)、標準、協(xié)議和數(shù)據(jù)庫,通過局域網(wǎng)、廣域網(wǎng)將分布在各地的仿真設(shè)備互聯(lián)并交互作用,同時可由人參與交互作用的一種綜合環(huán)境”。它以計算機網(wǎng)絡(luò)作為支撐,將分散于不同地域的相對獨立的各類仿真器互聯(lián)起來,構(gòu)成一個大規(guī)模、多參與者協(xié)同作用的綜合虛擬環(huán)境,以實現(xiàn)含人平臺、非含人平臺間的交互以及平臺與環(huán)境間的交互。分布交互仿真在軍事方面的應(yīng)用主要有:

在新型武器系統(tǒng)開發(fā)早期對其功能做先期演示驗證;

開發(fā)新的戰(zhàn)術(shù)和作戰(zhàn)概念;

規(guī)劃、推演和重演作戰(zhàn)任務(wù);

在一個虛擬環(huán)境中訓(xùn)練大規(guī)模兵力并進行武器系統(tǒng)效能評估。分布交互仿真技術(shù)的發(fā)展主要經(jīng)歷了三個階段:DIS階段、ALSP階段和目前的HLA階段,可以用圖表示其發(fā)展過程如圖所示

8.2.1分布交互仿真的發(fā)展歷程圖8.2.1分布交互仿真技術(shù)的發(fā)展歷程

8.2.1分布交互仿真的發(fā)展歷程1983年美國國防部高級研究計劃局(DAPAR)正式提出了SIMNET(SimulationNetworking)研究計劃,并得到美國陸軍的支持,該計劃的最初目的是希望將分散于各地的多個地面車輛(坦克、裝甲車等)訓(xùn)練模擬器用計算機網(wǎng)絡(luò)聯(lián)接起來,進行各種復(fù)雜任務(wù)的綜合訓(xùn)練。到80年代末,SIMNET計劃結(jié)束時,已形成了約260個地面車輛仿真器和飛機仿真器以及指揮中心和數(shù)據(jù)處理設(shè)備等的綜合仿真網(wǎng)。SIMNET的成功應(yīng)用使美國軍方充分認識到這一技術(shù)的潛在作用。1989年在美國陸軍、建模與仿真辦公室DMSO和DARPA的共同倡導(dǎo)和支持下,正式提出了分布交互仿真的概念,并制訂了一套面向分布式仿真的標準文件,以使這一技術(shù)向規(guī)范化、標準化、開放化的方向發(fā)展。美國陸軍的CATT計劃、WARSIM2000計劃、NPSNET計劃、STOW計劃等都采用了DIS標準?;贒IS標準的分布

8.2.1分布交互仿真的發(fā)展歷程交互仿真系統(tǒng)的基本思想是通過建立一致的標準通信接口來規(guī)范異構(gòu)的仿真系統(tǒng)間的信息交換,通過計算機網(wǎng)絡(luò)將位于不同地理位置上的仿真系統(tǒng)聯(lián)接起來,構(gòu)成一個異構(gòu)的綜合作戰(zhàn)仿真環(huán)境,滿足武器性能評估、戰(zhàn)術(shù)原則的開發(fā)和演練以及人員訓(xùn)練等的需要。異構(gòu)的仿真系統(tǒng)間的互操作是建立在標準的協(xié)議數(shù)據(jù)單元(PDU)基礎(chǔ)上的。20世紀80年代末,美國國防部開始研究使用聚合級作戰(zhàn)仿真為聯(lián)合演習(xí)提供支持。所謂聚合級仿真是指揮團、營、連等部隊單元級的構(gòu)造仿真,而不是單個作戰(zhàn)人員和實體的仿真。按DIS標準構(gòu)成的仿真系統(tǒng)用于平臺級實時連續(xù)系統(tǒng)的描述,聚合級仿真協(xié)議ALSP(AggregateLevelSimulationProtocol)用于分布的聚合級以離散事件為主的作戰(zhàn)仿真系統(tǒng),它實質(zhì)上

8.2.1分布交互仿真的發(fā)展歷程是“構(gòu)造仿真”。構(gòu)造仿真的時間管理不同于DIS系統(tǒng),它不一定與實際時鐘直接聯(lián)系,而是采用時間步長、事件驅(qū)動等方法,它只要保證聚合級仿真系統(tǒng)中時間對所有仿真應(yīng)用是一致的,而且保證事件的因果關(guān)系正確。1990年1月,美國高級研究計劃署提出了聚合級仿真協(xié)議的概念,主要研究聚合級的分布構(gòu)造仿真系統(tǒng)的體系結(jié)構(gòu)、標準和相應(yīng)的關(guān)鍵技術(shù),并將基于ALSP標準的分布交互仿真系統(tǒng)應(yīng)用于1992年、1994年和1996年的軍事演習(xí),使ALSP標準得到了改進和完善。在DIS和ALSP的基礎(chǔ)上,為消除DIS在體系結(jié)構(gòu)、標準和協(xié)議等方面的局限和不足,又發(fā)展了新的分布交互仿真體系結(jié)構(gòu)HLA,它能提供更大規(guī)模的、將構(gòu)造仿真、虛擬仿真、實況仿真集成在一起的綜合環(huán)境,實現(xiàn)各類仿真系統(tǒng)間的互操作、動態(tài)管理、一點對多點的通訊、系統(tǒng)和部件的重用、以及建立不同層次和不同粒度的對象模型。1995年美國國防部發(fā)布了針對建模與仿真領(lǐng)域的通

8.2.1分布交互仿真的發(fā)展歷程用技術(shù)框架,該框架由任務(wù)空間概念模型(CMMS,ConceptualModelofMissionSpace)、高層體系結(jié)構(gòu)HLA(HighLevelArchitecture)和一系列的數(shù)據(jù)標準三部分組成,其中高層體系結(jié)構(gòu)是通用框架的核心內(nèi)容。美國國防部已宣布不再支持非HLA標準的仿真系統(tǒng),HLA已經(jīng)成為目前分布交互仿真系統(tǒng)普遍采用的標準。

分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)分布交互仿真與以往的仿真技術(shù)不同,具體表現(xiàn)在以下方面:

在體系結(jié)構(gòu)上,由過去的集中式、封閉式發(fā)展到分布式、開放式和交互式,構(gòu)成在互操作、可移植、可伸縮及強交互的協(xié)同仿真體系結(jié)構(gòu)。

在功能上,由原來的單個武器平臺的性能仿真,發(fā)展到復(fù)雜環(huán)境下,以多武器平臺為基礎(chǔ)的體系與體系對抗仿真。

在手段上,從單一的構(gòu)造仿真、實況仿真和虛擬仿真,發(fā)展成集上述多種仿真為一體的綜合仿真系統(tǒng)。

在效果上,由只能從系統(tǒng)外部觀察仿真的結(jié)果或直接參與實際物理系統(tǒng)的測試,發(fā)展到能參與到系統(tǒng)中,與系統(tǒng)進行交互作用,并可得到身臨其境的感受。分布交互仿真是計算機技術(shù)的進步與仿真需求不斷發(fā)展的結(jié)果,其特點主要表現(xiàn)在五個方面,即分布性、交互性、異構(gòu)性、時空一致性和開放性。分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)(1)分布性:分布式交互仿真的分布性表現(xiàn)為地域分布性、任務(wù)分布性和系統(tǒng)的分布性。地域分布性是指組成仿真系統(tǒng)的各個節(jié)點處于不同的地域。它們可以同處于一個局域網(wǎng)中,也可以處于不同的局域網(wǎng)中;可以處于同一個城市,也可以處于不同的城市甚至不同的國家。任務(wù)分布性是指同一個仿真任務(wù)可以由幾臺計算機共同協(xié)同完成。比如一個實時仿真結(jié)點的任務(wù)包括網(wǎng)絡(luò)的通信、大量的模型解算和圖形的繪制等,其中每一項都需要大量的計算。為了保證該結(jié)點的實時性,可以配置多臺計算機來分別其任務(wù)。這種同一任務(wù)由多臺計算機來協(xié)同完成的現(xiàn)象就是任務(wù)分布性。系統(tǒng)的分布性是指同一個仿真系統(tǒng)可以分布在不同的計算機上。這些計算機可以處于同一地域,也可以處于不同的地域。(2)交互性:分布式交互仿真的交互性包括人機交互和作戰(zhàn)時的對抗交互。所謂人機交互是指參與作戰(zhàn)演習(xí)的人員通過計算機將其對仿真系統(tǒng)的命令傳達給仿真系統(tǒng)。比如指揮人員通過計算機下達系統(tǒng)暫停命令等。所謂對抗交互是指參與作戰(zhàn)的對抗雙方相互之間交互作戰(zhàn)信息。比如紅方向藍方進行了一次射擊,則紅方應(yīng)該將射擊PDU發(fā)送給系統(tǒng)中的藍方,以保證作戰(zhàn)環(huán)境的時空一致性。

分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)(3)異構(gòu)性:分布式交互仿真的另一個突出的特點是對已有系統(tǒng)的集成。如何將這些地域上分散、不同的制造廠商開發(fā)、系統(tǒng)的硬件和軟件配置各不相同、實體表示方法與精度各異的仿真結(jié)點聯(lián)結(jié)起來并實現(xiàn)互操作,就成為研究人員待解決的問題,也是DIS技術(shù)中的關(guān)鍵。(4)時空一致性:在分布式交互仿真系統(tǒng)中,人是通過計算機生成的綜合環(huán)境的各種真實的感受來作出響應(yīng)而形成"人在回路”的仿真,所以DIS系統(tǒng)必須保證仿真系統(tǒng)中的時間和空間與現(xiàn)實世界中的時間和空間的一致性。時空一致性是指DIS各節(jié)點或各軟件對象的行為根據(jù)所模擬的時空關(guān)系,按嚴格規(guī)定的時序進行,以使用戶產(chǎn)生逼真的時空感受。為此必須建立統(tǒng)一的時間和空間基準。時空一致性原則要求DIS網(wǎng)上各節(jié)點在交互作用時,其狀態(tài)信息應(yīng)具有統(tǒng)一的幾何和時間表達。(5)開放性:開放性是指體系結(jié)構(gòu)的開放性,其目的是建立一種具有廣泛適用性的系統(tǒng)結(jié)構(gòu)框架,在這一框架下可以實現(xiàn)各類系統(tǒng)或子系統(tǒng)的集成,以構(gòu)建大規(guī)模的和多用途的作戰(zhàn)仿真。主要的集成包括:平臺級作戰(zhàn)仿真器、聚合級作戰(zhàn)仿真模型、評估和預(yù)測類分析模型、C4I系統(tǒng)和實際武器系統(tǒng)等。分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)分布交互仿真系統(tǒng)還有實時性的要求,即要求實體狀態(tài)必須是實時更新的、實體間的信息必須是實時傳播的、圖形顯示必須是實時生成的等。另外,在分布交互仿真系統(tǒng)中沒有中央計算機控制整個仿真演練。以往的仿真系統(tǒng)使用一個中央計算機來維護整個虛擬世界的狀態(tài),并計算每個實體的行為對其他實體和環(huán)境的影響。而DIS系統(tǒng)中,通過分布式仿真方法來實現(xiàn)各實體的互操作,由通過網(wǎng)絡(luò)互聯(lián)的主機上的仿真應(yīng)用軟件來完成每個實體狀態(tài)的計算。當新的主機連接到網(wǎng)絡(luò)上時,它帶來了自己的資源。分布交互仿真的關(guān)鍵技術(shù)主要有:分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)(1)合理的分布式結(jié)構(gòu)合理平衡的計算和網(wǎng)絡(luò)傳輸功能是一切分布式計算系統(tǒng)設(shè)計所需要解決的矛盾之一。從本質(zhì)上講,這意味著在給定可用資源(CPU計算速度、磁盤存儲容量、I/O吞吐率、鏈路帶寬、路由器轉(zhuǎn)發(fā)緩存容量、應(yīng)用程序、敏感信息等)及其代價的情況下,如何在網(wǎng)絡(luò)上合理分配以保證系統(tǒng)性能及設(shè)計約束(如某些信息只能置于某處或必須置于某組織監(jiān)控之下等),解決方案直接體現(xiàn)于系統(tǒng)的體系結(jié)構(gòu)。(2)信息交換標準為了生成時空一致的仿真環(huán)境,并支持仿真實體間的交互作用,必須制定相應(yīng)的信息交換標準。目前,DIS中普遍采用的是IEEE1278標準,主要包括信息交換的內(nèi)容、格式的約定以及通信結(jié)構(gòu)和通信協(xié)議的選取等。對協(xié)議數(shù)據(jù)單元(PDU,rotocolDataUnit)中的數(shù)據(jù)信息的格式和含義都進行了詳細的規(guī)定,這些PDU在仿真應(yīng)用之間、以及仿真應(yīng)用與仿真管理程序之間進行交換。例如,實體狀態(tài)PDU的組成如圖所示:

分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)

圖8.2.2實體狀態(tài)PDU(3)DR技術(shù)DR(DeadReckoning)是DIS中普遍采用的一項技術(shù),它可以在仿真精度和通信帶寬之間進行很好的折衷,即可以在一定的仿真精度要求的前提下,大大減少仿真結(jié)點之間的狀態(tài)信息傳遞次數(shù)。DR算法的基本思想可概括為以下三點:①仿真實體除有一個精確的運動模型外,還在本結(jié)點維護一個簡單的運動模型(DR模型);分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)②在每個仿真結(jié)點中放入可能與之發(fā)生交互作用的其他結(jié)點的DR模型,并以這些模型為依據(jù)推算這些結(jié)點的狀態(tài),供本結(jié)點的有關(guān)功能模塊使用;③當自身的精確模型輸出與DR模型輸出之差大于某一個給定閾值時,向其他結(jié)點發(fā)送自身狀態(tài)的更新信息,同時更新自身DR模型的狀態(tài)。(4)時鐘同步技術(shù)時間一致性和空間一致性是DIS系統(tǒng)中的典型問題,時空一致性是指DIS各仿真結(jié)點或各軟件對象的行為所模擬的時空關(guān)系,按嚴格規(guī)定的時序進行,以給用戶造成逼真的和符合實際的時空感受。作為一個分布式系統(tǒng),導(dǎo)致DIS時空不一致性的因素包括:分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)

各結(jié)點的本地時鐘不同步(未校準于某同一時鐘,即時間一致性問題);

網(wǎng)絡(luò)阻塞導(dǎo)致仿真結(jié)點間的信息傳遞延遲;

消息接收順序與發(fā)送順序不一致。在分布交互仿真系統(tǒng)中,時鐘同步方法分為三類:a.軟件同步算法。完全利用軟件完成分布式系統(tǒng)中各時鐘的同步,但這種軟件發(fā)生同步的工作量很大,且結(jié)點間的同步偏差容易積累,更重要的是,同步信息在廣域網(wǎng)上傳輸時延遲大,且有很大的不確定性,這會使軟件同步的效果不理想。b.硬件同步。硬件同步往往是借助于全球定位系統(tǒng)(GPS)來實現(xiàn)。但由于GPS硬件的價格昂貴,完全依靠GPS進行同步的成本很高,不現(xiàn)實。

分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)c.分層式混合同步。采用硬件和軟件同步一起工作來實現(xiàn)結(jié)點間的時鐘同步。具體描述如下:對于DIS中的每一個局域網(wǎng),選擇某一個結(jié)點作為TIMERMaster,并在TM中引入一個GPS接收機及相應(yīng)的時鐘接口設(shè)備,這樣,在不同的LAN中的TM就可以通過GPS的時間信號實現(xiàn)同步;在每一個LAN內(nèi)部,各結(jié)點通過軟件實現(xiàn)與該LAN的TM同步。(5)接口處理技術(shù)由于分布式交互仿真是對已有系統(tǒng)的集成,這些系統(tǒng)可以是不同的制造廠商生成、系統(tǒng)的硬件和軟件結(jié)構(gòu)配置各不相同、實體表示方法與描述精度各異的且在地域上也是分散的。通常這些仿真結(jié)點具有自己的仿真約定,而這些約定不一定遵從分布交互仿真協(xié)議。因此,要將這些結(jié)點納入分布交互仿真環(huán)境中,就必須對其進行適當?shù)男薷暮蛿U充。如果這些修改和擴充完全通過仿真結(jié)點來實現(xiàn),將會給仿真結(jié)點造成很大的負擔。此外,一旦結(jié)點脫離分布交互仿真環(huán)境獨立運行時,還需將上述改動復(fù)原,這就破壞了仿真結(jié)點各自的獨立性。故這種方法通用性差,效率較低。分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)引入接口處理器(InterfaceProcessor,簡稱IP)的目的正是為了解決由于聯(lián)網(wǎng)而附加給仿真結(jié)點的負擔,從而減少對仿真結(jié)點所做的修改,最大限度地維護結(jié)點的獨立性。換句話說,結(jié)點間的交互作用首先通過接口處理器進行預(yù)處理,從而將各個結(jié)點的差異封裝起來。因此,接口處理器是不同仿真結(jié)點聯(lián)網(wǎng)運行的必要裝置,也是分布交互仿真中的一項關(guān)鍵技術(shù)。

分布交互仿真技術(shù)的特點和關(guān)鍵技術(shù)(6)虛擬環(huán)境技術(shù)為了保證仿真的真實性,需要生成虛擬的天空、陸地海洋等地理環(huán)境及風(fēng)、雨、雷、電等自然現(xiàn)象。虛擬環(huán)境技術(shù)還包括計算機生成兵力CGF(ComputerGeneratedForces)和CCA(ComputerControlledAircraft)的智能技術(shù)。這對于構(gòu)造時空一致的逼真的仿真環(huán)境是極為重要的。

(7)仿真管理技術(shù)DIS中涉及大量的仿真結(jié)點,為了更好地使各結(jié)點在時空一致的仿真環(huán)境中運行,必須對仿真結(jié)點的運行過程(初始化、啟動、暫停、中止)進行管理、協(xié)調(diào)和調(diào)度。8.2.3DIS系統(tǒng)的體系結(jié)構(gòu)和標準仿真實體(SimulationEntity)、仿真結(jié)點(SimulationNode)、仿真應(yīng)用(SimulationApplication)、仿真管理計算機(SimulationManager)、仿真演練(SimulationExercise)和仿真主機(SimulationHost)是DIS系統(tǒng)經(jīng)常遇到的幾個概念。其中,仿真結(jié)點可能是一臺仿真主機,也可能是一個網(wǎng)絡(luò)交換設(shè)備。很多情況下,仿真結(jié)點和仿真主機并不嚴格區(qū)分,均指參與仿真演練的計算機,在一個DIS網(wǎng)絡(luò)中,包含多個仿真結(jié)點;仿真應(yīng)用包括軟件和真實設(shè)備之間的計算機硬件接口,每一臺仿真主機中都駐留有一個仿真應(yīng)用;一個或多個互相交換的仿真應(yīng)用構(gòu)成一個仿真演練,參與同一仿真演練的仿真應(yīng)用共享一個演練標識符;仿真實體是仿真環(huán)境中的一個單位,每一個仿真應(yīng)用負責維護一個或多個仿真實體的狀態(tài);仿真管理計算機中駐留有仿真管理軟件,負責完成局部或全局的仿真管理功能。圖形象地表明了以上各概念的含義及它們之間的關(guān)系。8.2.3DIS系統(tǒng)的體系結(jié)構(gòu)和標準圖8.2.3DIS中的幾個基本概念及其相互關(guān)系8.2.3DIS系統(tǒng)的體系結(jié)構(gòu)和標準DIS在邏輯上采用的是一種網(wǎng)狀結(jié)構(gòu)。如圖所示。其中的每一個仿真結(jié)點都將本結(jié)點的實體數(shù)據(jù)發(fā)往網(wǎng)絡(luò)中其他所有的仿真應(yīng)用,同時又接收其他仿真應(yīng)用的信息。按照DIS的原則,由接收方來決定所收到的信息是否對本結(jié)點有用,如果是無用信息,就將其放棄。圖8.2.4DIS邏輯拓撲結(jié)構(gòu)8.2.3DIS系統(tǒng)的體系結(jié)構(gòu)和標準DIS的體系結(jié)構(gòu)特點可概括為:

自治的仿真應(yīng)用負責維護一個或多個仿真實體的狀態(tài);

用標準PDU來傳送數(shù)據(jù);

仿真應(yīng)用負責發(fā)送仿真實體的狀態(tài)金額交互信息;

由接收仿真應(yīng)用來感知事件或其他實體的存在;

用DR算法來減少網(wǎng)絡(luò)中的通信負荷。DIS的這種網(wǎng)狀邏輯結(jié)構(gòu)從網(wǎng)絡(luò)管理角度來說是比較容易實現(xiàn)的。通過規(guī)范異構(gòu)的仿真結(jié)點間信息交換的格式、內(nèi)容及通信規(guī)則,DIS實現(xiàn)了分布仿真系統(tǒng)間的互操作,構(gòu)成一個仿真環(huán)境。然而,這種建立在數(shù)據(jù)交換標準之上的體系結(jié)構(gòu)畢竟是一種低層次的隨意的體系結(jié)構(gòu),這種體系結(jié)構(gòu)對與處理具有復(fù)雜的邏輯層次關(guān)系的系統(tǒng)是不完備的。由于自治的仿真結(jié)點之間是對等的關(guān)系,所以每個仿真結(jié)點不僅要完成自身的仿真功能,還要完成信息的發(fā)送、接收、理解等處理。不同的仿真結(jié)點間的邏輯和功能

8.2.3DIS系統(tǒng)的體系結(jié)構(gòu)和標準的層次關(guān)系只是通過在PDU中增加某些信息來實現(xiàn)。因此,隨著DIS需求的發(fā)展,人們逐漸發(fā)現(xiàn)DIS結(jié)構(gòu)存在一定的局限性,主要表現(xiàn)是:(1)體系結(jié)構(gòu)方面的缺陷:由于DIS把數(shù)據(jù)定義于結(jié)構(gòu)之中,使得DIS協(xié)議不夠靈活和高效,例如如果某實體要通知其他網(wǎng)絡(luò)實體它的狀態(tài)發(fā)生了變化,這一狀態(tài)改變只需要PDU數(shù)據(jù)的某一位發(fā)生變化,但它必須發(fā)送整個實體狀態(tài)PDU來表示這一改變。(2)對于聚合級仿真不太適合:DIS是定位于實時、平臺級的分布式仿真,對于聚合級仿真等要求不同時間推進機制的仿真應(yīng)用則不太適合。(3)網(wǎng)絡(luò)負荷及處理負擔:DIS使用廣播方式來發(fā)送數(shù)據(jù),這樣不僅加重了網(wǎng)絡(luò)負荷,也加重了各結(jié)點的處理負擔。

高層體系結(jié)構(gòu)(HLA)1992年,美國國防部提出了“國防建模與仿真倡儀”,要求在全新的結(jié)構(gòu)、方法和先進的技術(shù)基礎(chǔ)上,建立一個廣泛的、高性能的、一體化的和分布的國防建模與仿真綜合環(huán)境,并提出了應(yīng)用性、綜合性、可用性、靈活性、真實性和開放性的要求。在經(jīng)過四個原型系統(tǒng)的開發(fā)和實驗后,于1996年8月正式公布了HLA體系結(jié)構(gòu)。HLA是分布交互仿真的高層體系結(jié)構(gòu),它是一個通用的仿真技術(shù)框架,它定義了構(gòu)成仿真各部分的功能及相互間的關(guān)系。HLA涉及以下幾個基本概念:聯(lián)邦(Federation):為實現(xiàn)某種特定的仿真目的而組織到一起,并能夠彼此進行交互作用的仿真系統(tǒng)、支撐軟件和其它相關(guān)的部件就構(gòu)成一個聯(lián)邦,其執(zhí)行過程稱為聯(lián)邦執(zhí)行。聯(lián)邦成員(Federate):組成聯(lián)邦的各仿真應(yīng)用系統(tǒng)稱為聯(lián)邦成員。對象(Object):對象在這里是指對某一應(yīng)用領(lǐng)域內(nèi)所要進行仿真的實體建立的模型。圖是HLA框架下聯(lián)邦組成的邏輯示意圖。

高層體系結(jié)構(gòu)(HLA)

圖8.2.5HLA的邏輯拓撲在HLA框架下,聯(lián)邦成員通過RTI(RuntimeInfrastructure)構(gòu)成一個開放性的分布式仿真系統(tǒng),整個系統(tǒng)具有可擴充性。其中,聯(lián)邦成員可以是真實實體系統(tǒng)、構(gòu)造或虛擬仿真系統(tǒng)以及一些輔助性的仿真應(yīng)用。在聯(lián)邦的運行階段,這些成員之間的數(shù)據(jù)交換必須通過RTI。運行時間支撐框架RTI底層通訊支持系統(tǒng)(網(wǎng)絡(luò)通訊或共享內(nèi)存方式等)聯(lián)邦成員2RTI接口模塊聯(lián)邦成員NRTI接口模塊聯(lián)邦成員1RTI接口模塊

高層體系結(jié)構(gòu)(HLA)HLA的基本思想就是利用面向?qū)ο蟮姆椒ㄔO(shè)計、開發(fā)和實現(xiàn)系統(tǒng)的對象模型來獲得仿真聯(lián)邦的高層次互操作和可重用。HLA主要由三部分組成:(1)(Rules):描述了定義HLA應(yīng)遵循的基本原則,共包括10條基本規(guī)則;相容性規(guī)則給出了使仿真納入HLA中所必須遵守的一些規(guī)則。這些規(guī)則分為聯(lián)邦(Federation)規(guī)則和聯(lián)邦成員(Federate)規(guī)則兩部分。聯(lián)邦規(guī)則主要概括為:1在一個聯(lián)邦中,每個對象的表現(xiàn)應(yīng)限于聯(lián)邦成員內(nèi),不應(yīng)在RTI中;2在一個聯(lián)邦運行過程中,所有聯(lián)邦成員內(nèi)的FOM數(shù)據(jù)交換必須經(jīng)過RTI;3在一個聯(lián)邦運行過程中,所有聯(lián)邦成員與RTI間的接口必須符合接口規(guī)范;4在一個聯(lián)邦運行過程中,每個對象的屬性在任何給定時刻必須從屬于唯一的一個聯(lián)邦成員;5每一個聯(lián)邦必須具有一個FOM來描述對象間的交互;

高層體系結(jié)構(gòu)(HLA)聯(lián)邦成員規(guī)則主要概括為:1每個聯(lián)邦成員必須具有一個SOM來描述對象的屬性;2聯(lián)邦成員應(yīng)能夠在SOM中更新和(或)接收對象屬性,并能夠發(fā)送和(或)接收外部對象的交互信息;3聯(lián)邦成員應(yīng)能夠在執(zhí)行過程中動態(tài)地傳遞和(或)接收屬性所有權(quán);4聯(lián)邦成員應(yīng)能夠變化相應(yīng)的條件值,以保證對象屬性的更新;5聯(lián)邦成員應(yīng)能夠管理局部時間,以協(xié)調(diào)與聯(lián)邦內(nèi)其它成員的數(shù)據(jù)交換;(2)對象模型模板(ObjectModelTemplate:OMT):描述了建立HLA對象模型應(yīng)遵守的書寫規(guī)范;OMT是對仿真中的對象、對象屬性和對象間信息交互的格式和內(nèi)容進行定義的標準化描述。HLA中的聯(lián)邦對象模型FOM(FederationObjectModel)和仿真對象模型SOM(SimulationObjectModel)是通過OMT來描述的,F(xiàn)OM借助于OMT提供的標準

高層體系結(jié)構(gòu)(HLA)化的記錄格式,為一個特定的聯(lián)邦中各聯(lián)邦成員之間需交換的數(shù)據(jù)的特性進行描述,以便各聯(lián)邦成員在聯(lián)邦的運行中正確、充分地利用這些數(shù)據(jù)進行互操作。FOM中的數(shù)據(jù)主要包括:聯(lián)邦中的作為信息交換主體的對象類及其屬性,交互類及其參數(shù),以及對它們本身特性的說明。SOM描述的是各個仿真成員在聯(lián)邦運行過程中可以提供(公布)給聯(lián)邦的信息,以及它需要(定購)從其它仿真成員接收的信息,它反映的是仿真成員具備的向外界“公布”信息的能力及其向外界“定購”信息的需求。與FOM一樣,SOM中包含的數(shù)據(jù)也是作為信息交換主體的對象類及其屬性和交互類及其參數(shù)以及對它們本身特性的說明。FOM/SOM是一種建模的標準化的技術(shù)和方法,它便于模型的建立、修改、生成與管理,便于仿真資源的重用。OMT由對象模型鑒別表、對象類結(jié)構(gòu)表、屬性表、交互類結(jié)構(gòu)表、參數(shù)表、維數(shù)表、時間表示表、用戶定義的標簽表、同步表、傳輸類型表、開關(guān)表、數(shù)據(jù)類型和FOM/SOM詞典組成。

高層體系結(jié)構(gòu)(HLA)(3)接口規(guī)范說明(InterfaceSpecification):描述了聯(lián)邦成員與HLA運行時間框架(RunTimeInfrastructure:RTI)之間的功能接口。RTI是一組應(yīng)用軟件,在每個聯(lián)邦成員的主機中都有駐留程序,可看作是一個分布式的操作系統(tǒng)。它作為分布式仿真的運行支撐系統(tǒng),用于實現(xiàn)各類仿真應(yīng)用之間的交互操作,是聯(lián)接系統(tǒng)各部分的紐帶,是HLA仿真系統(tǒng)的核心。聯(lián)邦成員在開發(fā)過程中遵守相應(yīng)的規(guī)則和與RTI的接口規(guī)范,在運行過程中也只與本機中的RTI駐留程序進行直接交互,其余的交互任務(wù)全部由RTI來完成。可見,HLA系統(tǒng)的通訊任務(wù)實際上是在分布的各個RTI部件之間完成的。RTI為多種類型的仿真間的交互提供了通用服務(wù),這些服務(wù)主要包括如下六個方面:

高層體系結(jié)構(gòu)(HLA)1聯(lián)邦管理(FederationManagement):對聯(lián)邦執(zhí)行的整個生命周期的活動進行協(xié)調(diào);2聲明管理(DeclarationManagement):提供服務(wù)使聯(lián)邦成員聲明它們能夠希望創(chuàng)建和接收的對象狀態(tài)和交互信息,實現(xiàn)基于對象類或交互類的數(shù)據(jù)過濾;3對象管理(ObjectManagement):提供創(chuàng)建、刪除對象,以及傳輸對象數(shù)據(jù)和交互數(shù)據(jù)等服務(wù);4所有權(quán)管理(OwnershipManagement):提供聯(lián)邦成員間轉(zhuǎn)換對象屬性所有權(quán)服務(wù);5時間管理(TimeManagement):控制協(xié)調(diào)不同局部時鐘管理類型的聯(lián)邦成員(如DIS仿真系統(tǒng)、實時仿真系統(tǒng)、時間步長仿真系統(tǒng)和事件驅(qū)動仿真系統(tǒng)等)在聯(lián)邦時間軸上的推進,為各聯(lián)邦成員對數(shù)據(jù)的不同的傳輸要求(如可靠的傳輸和最佳效果傳輸)提供服務(wù);6數(shù)據(jù)分布管理(DataDistributedManagement):通過對路徑空間和區(qū)域的管理,提供數(shù)據(jù)分發(fā)的服務(wù)。允許聯(lián)邦成員規(guī)定它發(fā)送或接收的數(shù)據(jù)的分發(fā)條件,以便更有效地分發(fā)數(shù)據(jù)。

高層體系結(jié)構(gòu)(HLA)HLA采用對稱的體系結(jié)構(gòu)。所謂對稱的體系結(jié)構(gòu)是指在整個仿真系統(tǒng)中,所有的應(yīng)用程序都是通過一個標準的接口形式進行交互作用。共享服務(wù)和資源是實現(xiàn)互操作的基礎(chǔ)。一方面,HLA正是分布仿真的開發(fā)、執(zhí)行同相應(yīng)的支撐環(huán)境分離開,這樣可以使仿真人員將重點放在仿真模型及交互模型的設(shè)計上,在模型中描述對象間所要完成的交互動作和所需交互的數(shù)據(jù),而不必關(guān)心交互動作和數(shù)據(jù)交換是如何完成的;另一方面,RTI為聯(lián)邦中的仿真提供一系列標準的接口(API)服務(wù),用以滿足仿真所要求的數(shù)據(jù)交換和交互動作完成,同時還要負責協(xié)調(diào)各個方面各個層次上的信息流的交互,使聯(lián)邦能夠協(xié)調(diào)執(zhí)行。聯(lián)邦成員在對象模型中聲明的要求傳輸給相應(yīng)的成員,并完成相應(yīng)的網(wǎng)絡(luò)操作,從而實現(xiàn)將變化的信息傳輸?shù)叫枰牡胤?,這樣可以大量減少網(wǎng)絡(luò)負載,而不像DIS那樣采用廣播的方式將所有信息傳輸?shù)剿薪Y(jié)點。

高層體系結(jié)構(gòu)(HLA)在HLA的體系下,由于RTI提供了較為通用的標準軟件支撐服務(wù),具有相對獨立的功能,可以保證在聯(lián)邦內(nèi)部實現(xiàn)成員及部件的即插即用(PlugandPlay),針對不同的用戶需求和不同的目的,可以實現(xiàn)聯(lián)邦快速、靈活的組合和重配合,保證了聯(lián)邦范圍內(nèi)的互操作和重用。此外,防止同其支撐環(huán)境分離,通過提供標準的接口服務(wù),隱蔽了各自的實現(xiàn)細節(jié),可以使這兩部分相對獨立地開發(fā),而且可以最大程度地利用各自領(lǐng)域的最新技術(shù)來實現(xiàn)標準的功能和服務(wù),而不會相互干擾。這就使分布交互仿真的發(fā)展與計算機技術(shù)、網(wǎng)絡(luò)技術(shù)和仿真技術(shù)的發(fā)展保持同步。HLA的體系結(jié)構(gòu)特點可概括為:

仿真應(yīng)用之間不直接通信,所以網(wǎng)絡(luò)通信功能集中由RTI實現(xiàn)。

向RTI發(fā)出某種接口服務(wù)的功能調(diào)用,RTI根據(jù)各個仿真應(yīng)用的需要,調(diào)動系統(tǒng)中的數(shù)據(jù)分布。

判斷服務(wù)請求所要求的通信機制,最后按照所要求的通信機制與相應(yīng)的仿真應(yīng)用通信。

高層體系結(jié)構(gòu)(HLA)作為HLA核心的仿真運行支撐系統(tǒng)RTI的開發(fā)是HLA研究的重點,RTI實際上是一個中間件,它提供HLA接口規(guī)范中定義的標準接口調(diào)用,按照HLA規(guī)則開發(fā)的各類仿真應(yīng)用能夠方便地“插到”RTI之上,并通過RTI提供的服務(wù)完成各類仿真應(yīng)用之間的互操作。目前,有美國國防部推出的DMSORTI、瑞典PITCH公司的pRTI和美國MARK公司推出的MARKRTI,國內(nèi)也有國防科技大學(xué)推出了KDRTI。8.3虛擬現(xiàn)實技術(shù)

虛擬現(xiàn)實技術(shù)的基本概念近十余年來,計算機技術(shù)的發(fā)展進入了虛擬世界的領(lǐng)域,虛擬現(xiàn)實(VirtualReality)技術(shù)又是發(fā)展最快的一項多學(xué)科綜合技術(shù),“虛擬現(xiàn)實是在計算機技術(shù)支持下的一種人工環(huán)境,是人類與計算機和極其復(fù)雜的數(shù)據(jù)進行交互的一種技術(shù)”,它綜合了計算機圖形技術(shù)、計算機仿真技術(shù)、傳感技術(shù)、顯示技術(shù)等多種學(xué)科技術(shù)。虛擬現(xiàn)實系統(tǒng)具有向用戶提供視覺、聽覺和觸覺、味覺和嗅覺等感知功能的能力,人們能夠在這個虛擬環(huán)境中觀察、聆聽、觸摸、漫游、聞賞、并與虛擬環(huán)境中的實體進行交互,從而使用戶親身體驗沉浸虛擬空間中的感受。虛擬現(xiàn)實通常是指頭盔顯示器和傳感手套等一系列新型交互設(shè)備構(gòu)造出的一種計算機軟硬件環(huán)境,人們通過這些設(shè)施以自然的技能、聽覺及觸覺等多種感官的反饋。

虛擬現(xiàn)實技術(shù)的基本概念現(xiàn)階段,虛擬現(xiàn)實技術(shù)已不僅僅是哪些戴著頭盔顯示器和傳感手套的技術(shù),而且還應(yīng)包括一切與之有關(guān)的具有自然模擬、逼真體驗的技術(shù)與方法。它要創(chuàng)建一個酷似客觀環(huán)境又超越客觀時空、能沉浸其中又能駕馭其上的和諧人機環(huán)境,也就是一個由多維信息所構(gòu)成的可操縱的空間。它的最重要的目標就是真實的體驗和方便自然的人機交互,能夠達到或部分達到這樣目標的系統(tǒng)就稱為虛擬現(xiàn)實系統(tǒng)。從概念上講,任何一個虛擬現(xiàn)實系統(tǒng)都可以用三個“I”來描述其特性,這就是沉浸“(Immersion)”“交互(Interaction)”“想象(Imagination)”。如圖所示。

虛擬現(xiàn)實技術(shù)的基本概念這三個“I”反映了虛擬現(xiàn)實系統(tǒng)的關(guān)鍵特性,就是虛擬現(xiàn)實系統(tǒng)中人的主導(dǎo)作用,其表現(xiàn)是:(1)人能夠沉浸到計算機系統(tǒng)所創(chuàng)建的環(huán)境中,而不是僅從計算機系統(tǒng)的外部去觀測計算處理的結(jié)果;(2)人能夠用多種傳感器與多維化信息的環(huán)境發(fā)生交互作用,而不是僅通過鍵盤、鼠標與計算環(huán)境中的單維數(shù)字化信息發(fā)生交互作用;(3)人可從定性和定量綜合集成的環(huán)境中得到感性和理性的認識從而深化概念和萌發(fā)新意,而不僅從以定量計算為主的結(jié)果中得到啟發(fā)和對事物的認識。

圖8.3.1三I圖

虛擬現(xiàn)實技術(shù)的基本概念構(gòu)建一個虛擬現(xiàn)實系統(tǒng)需要軟、硬件的支持,硬件方面主要有:(1)高性能計算機。虛擬現(xiàn)實系統(tǒng)必須有運算速度高、圖形能力強的計算機硬件支持,以實時處理復(fù)雜的圖像并縮短參與者的視覺延遲。例如,SGI公司的InfiniteRealityTM系統(tǒng)的紋理填充可達到每秒20.6G象素,紋理下載速度是336Mbyte/秒,每秒可以處理244M、5×5的RGBA圖像。(2)頭盔顯示器。頭盔顯示器提供一種觀察虛擬世界的手段,通常支持兩個顯示源及一組光學(xué)器件。這組光學(xué)器件將圖像以預(yù)先確定的距離投影到參與者面前,并將圖形放大以加寬視域。(3)跟蹤定位系統(tǒng)。為了與三維虛擬世界交互,必須感知參與者的視線,即跟蹤其頭部的位置和方向,這需要在頭盔上安裝頭部跟蹤傳感器。為了在虛擬世界中移動物體或移動參與者的身體,必須跟蹤觀察者的手位和手勢,甚至于全身的各肢體的位置,此時參與者需要穿戴數(shù)手套和數(shù)據(jù)服裝。另外,也可使用三維或六維鼠標和空間球等裝置與虛擬世界進行交互。

虛擬現(xiàn)實技術(shù)的基本概念(4)立體聲音響和三維空間定位裝置系統(tǒng)。借助立體聲音響可以加強人們對虛擬世界的實際體驗。聲音裝置采集或合成自然聲音信號,并利用特殊處理技術(shù)使這些信號在360°球體中空間化,使參與者即使頭部在運動也能感覺到聲音保持在原處不變。(5)觸覺/力量反饋裝置。觸覺反饋裝置使參與者除了接受虛擬世界物體的視覺和聽覺信號外,同時還能接受其觸覺刺激,如紋理、質(zhì)地感;力量反饋裝置則可以提供虛擬物體對人體的作用力,或虛擬物體之間的吸引力和排斥力的信號。

虛擬現(xiàn)實技術(shù)的基本概念在軟件方面,虛擬現(xiàn)實系統(tǒng)除一般所需的軟件支撐環(huán)境之外,主要是需要提供一個產(chǎn)生虛擬環(huán)境的工具集或產(chǎn)生虛擬環(huán)境的"外殼"。它至少具有以下的功能:

能夠接受各種高性能傳感器的信息,如頭盔的跟蹤信息;

能生成立體的顯示圖形;

能把各種數(shù)據(jù)庫(如地形地貌數(shù)據(jù)庫、物體形象數(shù)據(jù)庫等)、各種CAD軟件進行調(diào)用和互聯(lián)的集成環(huán)境。具有典型代表性的虛擬現(xiàn)實系統(tǒng)軟件有:虛擬世界工具箱WorldToolKit(WTK)、MultiGenCreator、Vega、Maya、IRISPerformer、VTree、OpenGVS等等。

虛擬現(xiàn)實技術(shù)的基本概念典型的虛擬現(xiàn)實系統(tǒng)由效果產(chǎn)生器、實景仿真器、應(yīng)用系統(tǒng)和幾何構(gòu)造系統(tǒng)組成。(1)效果產(chǎn)生器。效果產(chǎn)生器是完成人與虛擬環(huán)境交互的硬件接口裝置,包括能產(chǎn)生沉浸感的各類輸入裝置,例如,頭盔顯示器、立體聲耳機等,以及能測定視線方向和手指動作的輸裝置,例如頭部方向探測器和數(shù)據(jù)手套等。(2)實景仿真器。實景仿真器是虛擬現(xiàn)實系統(tǒng)的核心部分,它由計算機軟硬件系統(tǒng)、軟件開發(fā)具及配套硬件(如圖形和聲效卡)組成,接收或發(fā)送效果產(chǎn)生器產(chǎn)生或接收的信號。(3)應(yīng)用系統(tǒng)。應(yīng)用系統(tǒng)是面向具體問題的軟件部分,描述仿真的具體內(nèi)容,包括仿真的時態(tài)邏輯、結(jié)構(gòu),以及仿真對象之間和仿真對象與用戶之間的交互關(guān)系。應(yīng)用軟件的內(nèi)容直接取決于虛擬現(xiàn)實系統(tǒng)的應(yīng)用目的。(4)幾何構(gòu)造系統(tǒng)。幾何構(gòu)造系統(tǒng)提供了描述仿真對象的物理屬性(外形、顏色、位置等)信息,虛擬現(xiàn)實系統(tǒng)的應(yīng)用系統(tǒng)在生成虛擬世界時需要使用和處理這些信息。

虛擬現(xiàn)實技術(shù)的基本概念實物虛化、虛物實化和高效的計算機信息處理是虛擬現(xiàn)實技術(shù)的三個主要方面。實物虛化是將現(xiàn)實世界的多維信息映射到計算機的數(shù)字空間生成相應(yīng)的虛擬世界。主要包括實體建模、空間跟蹤、聲音定位、視覺跟蹤和視點感應(yīng)等關(guān)鍵技術(shù)。這些技術(shù)將現(xiàn)實世界中的各種事物的多維特性映射到計算機的數(shù)字空間生成虛擬世界中的對應(yīng)事物,并使得虛擬環(huán)境對用戶操作的檢測和操作數(shù)據(jù)的獲取成為可能。虛物實化是使計算機生成的虛擬世界中的事物所產(chǎn)生的對人的感官的各種刺激盡可能逼真地反饋給用戶,從而使人產(chǎn)生沉浸感。主要是視覺、聽覺、力覺和觸覺等感知技術(shù)。高效的計算機信息處理,包括信息獲取、傳輸、識別、轉(zhuǎn)換,涉及理論、方法、交互工具和開發(fā)環(huán)境,是實現(xiàn)實物虛化和虛物實化的手段和途徑。一般來說,虛擬現(xiàn)實中計算機信息處理需要高計算速度、強處理能力、大存儲容量和強實時聯(lián)網(wǎng)特性等特征。主要涉及數(shù)據(jù)管理技術(shù)、圖形圖像生成技術(shù)、聲音合成與空間化技術(shù)、模式識別以及分布式和并行計算等等關(guān)鍵

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論