無線傳感器網(wǎng)絡(luò) 第2章_第1頁
無線傳感器網(wǎng)絡(luò) 第2章_第2頁
無線傳感器網(wǎng)絡(luò) 第2章_第3頁
無線傳感器網(wǎng)絡(luò) 第2章_第4頁
無線傳感器網(wǎng)絡(luò) 第2章_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章OPNETModuler

體系結(jié)構(gòu)

2.1建立模型規(guī)范2.2建模通信機制2.3數(shù)據(jù)收集和仿真2.4數(shù)據(jù)分析知識點:

模型簡介

建模通信機制

數(shù)據(jù)采集和仿真

數(shù)據(jù)分析本章導(dǎo)讀:

OPNETModeler為通信網(wǎng)絡(luò)和分布式系統(tǒng)的建模及性能評估提供了一個綜合的開發(fā)環(huán)境和分析平臺。OPNET軟件包由許多工具組成,每一個具體工具關(guān)注建模任務(wù)的一個具體方面。對應(yīng)于項目建模和仿真流程的三個階段(規(guī)范說明階段、數(shù)據(jù)收集階段、仿真分析階段),這些工具也可劃分為三個主要類別:規(guī)范說明工具、數(shù)據(jù)收集工具和仿真分析工具。項目建模和仿真流程的三個階段按序執(zhí)行,通常形成一個環(huán)。注意,在這個環(huán)中,規(guī)范說明實際上被分為兩部分:初始化定義和重定義。初始化定義執(zhí)行后進入環(huán)中循環(huán),經(jīng)過數(shù)據(jù)收集和仿真及分析,最后回到規(guī)范說明的重定義部分繼續(xù)循環(huán),如圖2-1所示。

項目建模和仿真流程構(gòu)成了OPNETModeler軟件仿真的體系結(jié)構(gòu)。本章將圍繞這一流程的三個階段進行深入探討。通過本章的學(xué)習(xí),讀者應(yīng)從整體上把握OPNETModeler軟件的體系結(jié)構(gòu)。圖2-1項目仿真的流程

2.1建立模型規(guī)范

建立模型規(guī)范是對模型進行一系列預(yù)定義和重定義的過程。OPNET支持模型重用,因此大多數(shù)模型的開發(fā)都可以基于預(yù)先定義的底層模型,并將開發(fā)后的新模型存儲在模型庫中。對于一種具體的模型,不論它的模型復(fù)雜程度如何,其模型規(guī)范的基本概念都是相同的,并且都來源于OPNET仿真環(huán)境提供的原始構(gòu)造模塊。2.1.1模型規(guī)范編輯器

OPNET支持用多種工具進行模型規(guī)范的編輯,這些工具統(tǒng)稱為模型規(guī)范編輯器。模型規(guī)范編輯器捕獲被模擬系統(tǒng)的行為特性,不同編輯器描述一個模型的不同方面。為了給模型開發(fā)提供一個直觀統(tǒng)一的接口,編輯器之間必須用與實際網(wǎng)絡(luò)系統(tǒng)類似的分層方式來組織。因此,模型規(guī)范編輯器是分層結(jié)構(gòu)的,上層編輯器依賴下層編輯器提供的實體進行編輯。例如,位于所有編輯器最上層的項目編輯器,其對象的執(zhí)行必須依賴于節(jié)點編輯器中定義的實體;同樣,開發(fā)者使用進程編輯器和外部系統(tǒng)編輯器中定義的模型來完成節(jié)點編輯器中對象的工作。有的編輯器用于定義不同的數(shù)據(jù)模型或典型的圖標,這些模型、圖標將被進程或節(jié)點級模型所使用。下面概要介紹OPNET常用的各種模型規(guī)范編輯器。

1.項目編輯器

項目編輯器用于開發(fā)網(wǎng)絡(luò)模型(包括子網(wǎng)模型和節(jié)點模型),它是OPNET模型規(guī)范編輯器中最上層的編輯器。項目編輯器具有基本的仿真和分析能力。在該編輯器中,用戶可以使用標準庫中的模型或自定義模型構(gòu)建一個通信網(wǎng)絡(luò),選擇相關(guān)的統(tǒng)計量,運行仿真并查看仿真結(jié)果;可以使用一些方法從項目編輯器中直接訪問其他下層相關(guān)編輯器。OPNET用戶通過從項目編輯器的對象面板上拖拉,單擊節(jié)點和鏈路或者使用導(dǎo)入拓撲結(jié)構(gòu)和快速對象配置來建立網(wǎng)絡(luò)。

圖2-2所示是利用項目編輯器編輯網(wǎng)絡(luò)模型的一個例子。圖2-2在項目編輯器中編輯網(wǎng)絡(luò)模型

2.節(jié)點編輯器

節(jié)點是網(wǎng)絡(luò)模型中的對象,節(jié)點編輯器定義網(wǎng)絡(luò)中的節(jié)點模型。節(jié)點編輯器使用不同的模塊來描述節(jié)點對象的不同行為,展示網(wǎng)絡(luò)設(shè)備和系統(tǒng)的體系結(jié)構(gòu)。模塊一般代表應(yīng)用業(yè)務(wù)、協(xié)議層和物理資源,如緩沖區(qū)、端口和總線。每個模塊都擁有相應(yīng)的進程模型,因此也稱為進程模塊。每個進程模塊模擬節(jié)點行為的一個或幾個方面,如節(jié)點的數(shù)據(jù)創(chuàng)建、數(shù)據(jù)采集、數(shù)據(jù)存儲等。進程模塊之間通過數(shù)據(jù)包流線或統(tǒng)計線進行連接。一個網(wǎng)絡(luò)節(jié)點模型由多個進程模塊組成。

圖2-3所示是節(jié)點編輯器中編輯一個節(jié)點模型的典型例子,這個節(jié)點模型由12個進程模塊、20條數(shù)據(jù)包流線和2條統(tǒng)計線組成。圖2-3在節(jié)點編輯器中編輯節(jié)點模型

3.進程編輯器

通常,一個節(jié)點模型中包含許多進程模塊,進程模塊由進程模型描述。進程編輯器用于創(chuàng)建進程模型。進程模型由有限狀態(tài)機(FSM)表示,它使用強大的有限狀態(tài)機來支持規(guī)范、協(xié)議、應(yīng)用、算法以及排隊的策略??梢杂脠D形化的狀態(tài)和狀態(tài)轉(zhuǎn)移條件定義一個事件的邏輯。每個狀態(tài)包括C/C++代碼以及專門為協(xié)議編程設(shè)計提供的豐富庫函數(shù)。每個有限狀態(tài)機均可以定義私有狀態(tài)變量,訪問用戶自定義庫。有限狀態(tài)機是動態(tài)的,并且可以在仿真中對其他有限狀態(tài)機引起的特定事件進行響應(yīng)。動態(tài)的有限狀態(tài)機極大地簡化了管理可變數(shù)量資源或會話的協(xié)議標準,例如TCP和ATM。可以使用進程編輯器開發(fā)全新的進程模型,也可以使用OPNET模型庫中現(xiàn)有的進程模型。OPNET的進程模型支持真正的多線程和并行計算架構(gòu)。

圖2-4所示是利用進程編輯器編輯進程模型的一個例子。圖2-4在進程編輯器中編輯進程模型

4.外部系統(tǒng)編輯器

外部系統(tǒng)編輯器(如圖2-5所示)用于定義和開發(fā)外部系統(tǒng)。外部系統(tǒng)的定義和開發(fā)對于協(xié)同仿真是很有必要的。

5.需求編輯器

需求編輯器(如圖2-6所示)用于定義或修改需求模型。每個需求對象的底層模型決定了需求對象的屬性接口、表示和行為。圖2-5外部系統(tǒng)編輯器圖2-6需求編輯器

6.路徑編輯器

路徑用來定義業(yè)務(wù)流量和數(shù)據(jù)路由,用戶使用路徑編輯器(如圖2-7所示)可創(chuàng)建新的路徑對象。任何使用邏輯連接或虛電路連接的協(xié)議,如MPLS、ATM、幀中繼等,都可以使用路徑對象來定義路由和業(yè)務(wù)流流量。

7.鏈路模型編輯器

鏈路模型編輯器(如圖2-8所示)用于創(chuàng)建、編輯和查看鏈路模型。用戶創(chuàng)建的每種新鏈路都可以具有不同的屬性和接口。同時,用戶還可以向新創(chuàng)建的鏈路模型添加注解和關(guān)鍵字,以使其更容易識別和使用。圖2-7路徑編輯器圖2-8鏈路模型編輯器

8.包格式編輯器

包格式編輯器用于開發(fā)包格式模型。包格式指示了數(shù)據(jù)包中存儲信息的結(jié)構(gòu)和順序。一個完整的包格式中包含一個或多個字段,每個字段在編輯器中用不同顏色的矩形框表示。矩形框的長度與其所表示字段包含的比特數(shù)成正比。圖2-9顯示了使用包格式編輯器編輯具有preamble(前導(dǎo))、data(數(shù)據(jù))、fields(域)、tag(標簽)四個字段的數(shù)據(jù)包格式模型。圖2-9包格式編輯器

9.天線模式編輯器

在針對無線應(yīng)用的建模中,用戶使用天線模式編輯器(如圖2-10所示)來模擬天線的方向性增益。給定使用這些天線的節(jié)點在網(wǎng)絡(luò)中的相對位置后,OPNET建模器可以通過分析天線的增益模式來決定增益的具體值。

10.接口控制信息編輯器

在OPNET中,接口控制信息編輯器(如圖2-11所示)用于創(chuàng)建、編輯和查看接口控制信息的格式。OPNET中的接口控制信息用于各種網(wǎng)絡(luò)體系結(jié)構(gòu)中進程間的相互控制和進程間通信。圖2-10天線模式編輯器圖2-11接口控制信息編輯器

11.調(diào)制曲線編輯器

在針對無線應(yīng)用的建模中,調(diào)制曲線編輯器(如圖2-12所示)將用來創(chuàng)建調(diào)制函數(shù),生成噪音調(diào)制方案,或用于表現(xiàn)某種信息編碼的特點。用戶可通過調(diào)制曲線編輯器繪制出調(diào)制函數(shù),直觀地表達出調(diào)制信號的誤比特率隨著有效信噪比變化的函數(shù)。

圖2-12調(diào)制曲線編輯器

12.?PDF編輯器

PDF(ProbabilityDensityFunction,概率密度函數(shù))編輯器(如圖2-13所示)用于創(chuàng)建、編輯和查看各種仿真隨機事件的概率密度函數(shù)。用戶使用概率密度函數(shù)編輯器可有效控制仿真中各種隨機過程的概率密度和概率分布,如信息源模塊的數(shù)據(jù)包發(fā)包概率等。圖2-13PDF編輯器

13.探針編輯器

探針編輯器(如圖2-14所示)用于指定仿真過程中需要采集的統(tǒng)計量。雖然可以在項目編輯器中完成這些操作,但是在探針編輯器中可以對每個探針設(shè)置附加的特性。用戶可使用不同的探針采集多種不同類型的統(tǒng)計量,包括全局統(tǒng)計量、鏈路統(tǒng)計量、節(jié)點統(tǒng)計量、屬性統(tǒng)計量和多種類型的動畫統(tǒng)計量。圖2-14探針編輯器

14.仿真序列編輯器

雖然可以直接從項目編輯器中運行仿真,但是使用仿真序列編輯器(如圖2-15所示)可以指定一些附加的仿真約束。仿真序列由仿真圖標表示,它包含一系列用于控制仿真運行特性的屬性。圖2-15仿真序列編輯器

15.仿真結(jié)果分析工具

除了可以在項目編輯器中查看仿真結(jié)果,OPNET還提供了專門的仿真結(jié)果分析工具(如圖2-16所示)來對仿真結(jié)果進行分析。仿真結(jié)果分析工具具有許多有用的附加特性。例如,可以為參量的研究創(chuàng)建標量圖形,自定義應(yīng)用統(tǒng)計的數(shù)據(jù)模板,創(chuàng)建可供保存和查看的分析配置和統(tǒng)計圖形顯示等。

16.過濾器編輯器

雖然建模器有內(nèi)建的數(shù)據(jù)過濾器,但用戶仍可使用過濾器編輯器(如圖2-17所示)創(chuàng)建附加的過濾器,也可以通過合并已有過濾器模型來構(gòu)建新的過濾器模型。圖2-16仿真結(jié)果分析工具及其統(tǒng)計圖形顯示圖2-17過濾器編輯器

OPNET允許用戶在任何合適的地方使用可視化的模型圖標。因此,大多數(shù)模型規(guī)范編輯器都提供圖形化界面,用戶可以在圖形化界面中操作表示模型組件和結(jié)構(gòu)的各種對象。每一種編輯器都擁有特定的對象和操作集合,該集合的對象和操作又適用于其所在層次的各種建模任務(wù),且具有不同的表現(xiàn)形式。例如,項目編輯器使用可視化節(jié)點和鏈路對象;節(jié)點編輯器提供處理機、隊列、發(fā)信機和收信機;進程編輯器提供可視化的狀態(tài)和狀態(tài)轉(zhuǎn)移對象。2.1.2建模域

在OPNET中,網(wǎng)絡(luò)、節(jié)點、進程和外部系統(tǒng)建模環(huán)境橫跨了一個模型的所有層次,有時統(tǒng)稱為建模域。主要的模型規(guī)范編輯器有其對應(yīng)的建模域,一個建模域擁有它的建模焦點,即建模的主要任務(wù)。表2-1中列舉了OPNET軟件中的四種建模域以及對應(yīng)的模型規(guī)范編輯器。表2-1OPNET的建模域

2.1.3模型、對象和屬性

在熟悉了模型規(guī)范編輯器和建模域的概念后,本節(jié)來繼續(xù)學(xué)習(xí)OPNET軟件的模型類型、對象和屬性。

1.對象

對象是OPNET系統(tǒng)中用戶最感興趣的部分。通常來講,對象是一個部件或一個模型的構(gòu)建模塊,部件或模型由一個或多個對象組成。例如,節(jié)點模型中的一個處理機模塊是一個對象,該對象是節(jié)點模型的一部分。對象在模型中通常扮演一個或多個角色。模型中對象的典型角色有:●規(guī)范行為;

●創(chuàng)建信息;

●存儲和管理信息;

●處理、修改或中繼信息;

●響應(yīng)事件;

●包含其他對象。

OPNET中靜態(tài)對象的創(chuàng)建有多種機制。用戶可以通過拖動對象圖標到工作區(qū)的方式來創(chuàng)建對象,也可以通過編程方式由外部說明來生成對象,還可以利用OPNET軟件自動創(chuàng)建對象。例如,一個鏈路對象可通過用戶從項目編輯器的對象模板中拖放圖標到網(wǎng)絡(luò)模型的工作區(qū)中被創(chuàng)建;而隊列對象則可自動生成子隊列對象。需要注意的是,當一個節(jié)點對象被創(chuàng)建時,該節(jié)點內(nèi)的子對象也同時被創(chuàng)建。在仿真過程中,有時一些對象需要由OPNET系統(tǒng)或模型編碼來動態(tài)創(chuàng)建,稱這些動態(tài)創(chuàng)建的對象為動態(tài)對象。例如,單個進程可以看作一個對象,而單個進程可以在其他進程的工作過程中被動態(tài)創(chuàng)建。在OPNET中,動態(tài)生成的對象在很多方面都與靜態(tài)對象有所不同。特別是它們大都提供了更專門化的接口,運行的方式也更加有效。

2.屬性

當創(chuàng)建一個多對象系統(tǒng)時,為了使多對象系統(tǒng)的行為具有可預(yù)計性和易處理性,通常需要為每個對象提供一組定義良好的接口。接口避免了用戶了解對象實現(xiàn)的底層細節(jié)。一個OPNET對象的接口由其可用屬性和支持屬性訪問的程序所組成。許多通用的對象屬性由OPNET軟件默認提供,用戶也可通過編程來自定義滿足具體仿真需要的用戶屬性。支持屬性訪問的程序根據(jù)其所屬對象類型的不同而不同。屬性還為分配給它的信息提供一個存儲區(qū)域,這個區(qū)域包括屬性名稱、屬性值和屬性的性質(zhì)。每個屬性都有一個在特定對象范圍內(nèi)惟一標識該屬性的名稱。屬性值是一個數(shù)據(jù)項,用于對象配置和用戶控制。屬性還有一個性質(zhì)的集合,以指定它的使用規(guī)則和其他附加的功能。表2-2中列舉了幾種主要的屬性性質(zhì)。表2-2中提到了一種具有特殊數(shù)據(jù)類型的屬性——復(fù)合(Compound)數(shù)據(jù)類型屬性。復(fù)合數(shù)據(jù)類型使用簡單而有效的方式支持在一個對象里嵌套儲存其他對象的復(fù)雜數(shù)據(jù)。一個對象可以有若干一般屬性,也可以附加復(fù)合屬性。一些OPNET內(nèi)建對象就具有復(fù)合屬性。例如,隊列將其包含的子隊列表現(xiàn)為復(fù)合屬性;收信機和發(fā)信機將它們所包含的信道表現(xiàn)為復(fù)合屬性;用戶自定義模型同樣可以為特定的應(yīng)用創(chuàng)建復(fù)合屬性。表2-2屬?性?的?性?質(zhì)

3.模型

許多OPNET模型(網(wǎng)絡(luò)、節(jié)點和進程)都由大量的對象組成,而大多數(shù)對象都可以由其涉及的模型來描述它的一部分或全部特點。對象是模型的實例,一個模型可以通過實例化產(chǎn)生多個相關(guān)對象。模型定義了所有相關(guān)對象所屬的一個對象類。

某些OPNET對象是基礎(chǔ)對象,它們從一些用戶不能改變的內(nèi)在模型實例化而來。例如,進程模型中的狀態(tài)對象是簡單的基礎(chǔ)對象,只能通過對象屬性對其進行外部控制。由于這些簡單對象的特點和行為已經(jīng)在其涉及的模型中被定義,它們的基礎(chǔ)行為和結(jié)構(gòu)就始終是相似而不能改變的,因此,它們不提供任何模型屬性。與基礎(chǔ)對象不同,OPNET中的另一些關(guān)鍵對象提供了模型屬性,允許用戶通過修改模型屬性對它們的基礎(chǔ)行為和結(jié)構(gòu)進行外部控制。事實上,改變對象所涉及的模型甚至?xí)箤ο螽a(chǎn)生一個全新的接口。當然,這些關(guān)鍵對象基本上是通用對象,它們的大多數(shù)特點都來自它們所涉及的模型。表2-3中列出了OPNET支持模型屬性的對象。表2-3支持模型屬性的對象

在OPNET中,表2-3中的每個模型類型都指定了相應(yīng)的模型接口。OPNET模型的特點從對象所涉及的模型中轉(zhuǎn)移到具體的對象中,構(gòu)成了對象的屬性集合。模型決定了對象將獲得哪些新屬性,同時指定了它們的名稱和取值。類似地,模型可以指定對象的固有屬性值,并可以對用戶隱藏這些固有屬性值。不難理解,OPNET模型能夠完全控制對象的屬性接口。

4.模型屬性和屬性提升

前面已經(jīng)分別介紹了模型和屬性的概念,下面引入模型屬性的概念。屬性除了用來描述對象外,也可以與模型相關(guān)聯(lián),作為模型屬性來表征模型的參數(shù)。通過給模型參數(shù)賦值,用戶可以輕松改變模型的行為,而不需要對模型本身進行任何修改。這種方式與將屬性值固化到模型本身的方式相比有了很大改觀。將屬性值固化到模型本身的方式不能向用戶提供任何模型的控制,用戶對模型任意小的改動都需要重建一個新的模型,這將產(chǎn)生大量的相似模型而使OPNET的模型庫變得難以維護。模型屬性克服了固化屬性值的弱點,為模型提供屬性參數(shù)能夠增加模型的通用性和重用性。事實上,模型屬性雖然是模型的一部分,但它們也出現(xiàn)在模型生成的對象上。在對象從模型實例化時,對象獲得模型的屬性。除此之外,對象還能夠同時擁有自己的內(nèi)在屬性,即所謂的對象屬性。圖2-18演示了模型屬性和對象屬性的關(guān)系。在圖2-18中,對象O從模型M實例化后,獲得了模型M的A、B、C和D屬性,同時增加了內(nèi)在屬性X、Y、Z。注意,屬性X、Y、Z并不存在于模型M中。圖2-18模型屬性和對象屬性的關(guān)系在OPNET的分層體系結(jié)構(gòu)中,上層模型由下層模型實例化后的若干對象組成。提供模型屬性的另一種機制允許下層對象的屬性向上傳遞給上層模型,該機制稱為屬性提升。屬性提升使得對象屬性不再具有具體的值,而是出現(xiàn)在其上層模型中作為一個模型的參數(shù)變量。例如,對于節(jié)點模型中的進程模塊屬性,利用屬性提升將進程對象的屬性轉(zhuǎn)移到節(jié)點模型的屬性接口上,成為節(jié)點模型的屬性,這意味著它隨后將被網(wǎng)絡(luò)中任何實例化自該節(jié)點模型的節(jié)點對象所繼承,成為節(jié)點對象的屬性。這時,節(jié)點對象不僅擁有本身的對象屬性,還擁有通過下層(進程模型)提升而來的提升屬性。屬性可以不斷提升,把沿著模型層次一直提升到模型頂層的屬性稱為全局系統(tǒng)屬性(或稱為仿真屬性)。全局系統(tǒng)屬性可以在仿真時才指定其值,因此將全局相關(guān)的參數(shù)提升為全局屬性,有助于研究該參數(shù)對全局性能的影響。

5.派生模型

在許多情況下,模型開發(fā)者需要在不改變模型內(nèi)部結(jié)構(gòu)和內(nèi)部行為的情況下定制模型的接口。在OPNET中,節(jié)點和鏈路模型的屬性接口可以使用模型派生機制進行修改。模型派生操作已有模型,生成一個與已有模型具有不同屬性接口的新模型,稱這個新模型為派生模型,而已有模型為派生模型的父模型。不存在父模型的模型叫做基礎(chǔ)模型。所有派生模型最終都來自某個惟一的基礎(chǔ)模型。提供模型派生機制的目的在于允許在不復(fù)制或重建原有模型核心功能的情況下進行新模型的專門化接口開發(fā)。父模型和其派生模型具有大體相同的結(jié)構(gòu)和行為,它們能復(fù)用模型信息和代碼。派生模型的引入使得OPNET中的模型機制更加健全,維護變得更加經(jīng)濟。

2.2建模通信機制

大多數(shù)OPNET模型都可歸為由多個相互作用的子系統(tǒng)組成的分布式系統(tǒng)。子系統(tǒng)的交互依賴于通信資源,以支持命令、質(zhì)詢和一般信息的交換。子系統(tǒng)間可能由于物理上的截然不同且基于功能的不同而邏輯上彼此獨立,因而彼此間需要進行通信。本節(jié)介紹了OPNET所提供的多個通信機制,以及它們在建模中的應(yīng)用場景。2.2.1基于包的通信

OPNET模型中最普遍的通信形式是基于消息的。?消息可攜帶信息并可在子系統(tǒng)間發(fā)送。在OPNET建模環(huán)境中,消息被稱作“包”。“包”的概念來自通信網(wǎng)絡(luò),可用于多種不同的應(yīng)用類型以表示普通的消息或信息的傳遞。

1.包的基本屬性

包是OPNET為支持面向消息的通信而定義的數(shù)據(jù)結(jié)構(gòu)。每個包作為一個獨立的結(jié)構(gòu)而存在,并用于在不同的實體間傳遞信息。將包看作對象,可對其進行多種操作,如修改、檢查、復(fù)制、發(fā)送、接收和銷毀。

1)包的結(jié)構(gòu)

包的結(jié)構(gòu)包含了一些信息存儲區(qū),其中第一個存儲區(qū)由存儲用戶自定義信息的字段(Field)所組成。包可以是格式化的(Formatted)、非格式化的(Unformatted)或數(shù)值矢量(ValueVector)。對于格式化包,可通過引用名稱來對其字段進行設(shè)置或獲取,而非格式化包需要對其字段指定索引。數(shù)值矢量包沒有用戶自定義字段,而包含一個比特類型的數(shù)值矢量。格式化包和非格式化包的字段可以用來存儲多種類型的信息,例如整型和Double型字段存儲一般數(shù)字數(shù)據(jù);包字段可對包進行嵌套封裝;結(jié)構(gòu)字段可將用戶自定義的數(shù)據(jù)結(jié)構(gòu)嵌入包中。除了字段,所有的包都包含預(yù)定義的信息,如優(yōu)先級分配、創(chuàng)建的時間和位置。

2)包的大小

包的大小以比特為單位。包中所有字段的大小加上包的“bulk”數(shù)據(jù)大小(“bulk”數(shù)據(jù)傳輸與網(wǎng)絡(luò)擁塞控制有關(guān))就是包的總大小。但這并不是實際存儲在主機內(nèi)存中的包的大小,而只是模擬的大小,用于計算傳輸時間或錯誤概率等。

3)包的所有權(quán)

從本質(zhì)上來說,包是一個物理對象,也就是說,一個包在給定時間內(nèi)只能存在于一個地方。因此,當包發(fā)送后,其發(fā)送實體就喪失了對包的訪問權(quán)。擁有對包的控制權(quán)的實體就是包的所有者。通常模塊或包流都是包的所有者。

模塊可通過以下四種途徑來獲取包的所有權(quán):

●通過核心函數(shù)op_pk_create()、op_pk_create_fmt()或op_pk_create_vvec()創(chuàng)建的包;

●通過核心函數(shù)op_pk_copy()復(fù)制現(xiàn)有的包;●通過核心函數(shù)op_pk_nfd_get()或op_pk_fd_get()從一個包中解封裝出另一個包;

●通過核心函數(shù)op_pk_get()從輸入流中獲取包。

當源模塊采用核心函數(shù)op_pk_send()、op_pk_send_delayed()、op_pk_send_quiet()或op_pk_send_forced()將包發(fā)送到目的模塊時,包流就獲取了包的所有權(quán),直到目的模塊獲取了包或流被清空。

2.包的傳輸機制

包很少用作一個靜態(tài)存儲實體保留在一個物理或邏輯上下文中,而大多都是動態(tài)創(chuàng)建的,以在上下文間傳遞信息。OPNET仿真內(nèi)核提供了一些基于包的通信機制,根據(jù)發(fā)送包和接收包的上下文間的關(guān)系,可以采用一個或多個這種通信機制。

1)包流

包流在源模塊的輸出端口和目的模塊的輸入端口間定義,用于在同一節(jié)點的不同模塊間傳遞包的物理連接。這些端口通常分別指代源模塊的輸出流和目的模塊的輸入流。每個模塊都可擁有無限多個輸入流和輸出流。每個輸入流只能接收一個包流對象,而每個輸出流只能是一個包流對象的源,因此不允許“扇入”和“扇出”,但任何輸入流和輸出流都可不連接。

2)包傳遞

包流只支持同一節(jié)點中不同模塊間的通信,如果模塊只采用包流來傳遞包,那么在節(jié)點間傳輸包將依賴于發(fā)信機和收信機。然而在某些情況下,要將所有節(jié)點直連起來并不方便,因此在某些系統(tǒng)中,在沒有物理連接的條件下,可利用中間節(jié)點的轉(zhuǎn)發(fā)來傳輸包。為了支持對這種系統(tǒng)的建模,OPNET提供了一種叫做“包傳遞”的機制,使得任意處理器或隊列模塊間都可直接傳遞包,而無需考慮其物理位置,如圖2-19所示。圖2-19未連接節(jié)點中模塊間的包傳遞

3)通信鏈路

當模塊創(chuàng)建了包后,包可能被傳遞到同一節(jié)點的另一模塊,接著再被傳遞到第三個模塊,依此類推。但在大多數(shù)情況下,包最終將被發(fā)動到其他節(jié)點的模塊中。前面講到的包傳遞是物理鏈路的抽象表示,當預(yù)先無法獲知鏈路的存在或鏈路的物理特征并不影響仿真的精確性時,包傳遞非常有用。OPNET同樣也支持兩種直觀表示物理鏈路的通信鏈路:點到點鏈路和總線鏈路(在無線模塊中還提供了無線鏈路)。

4)鏈路模型

OPNET提供了幾種類型的鏈路,每種類型分別支持一種節(jié)點間的通信形式。OPNET使用鏈路編輯器中定義的鏈路模型來處理大量的鏈路對象。

模型是一個類,可用于創(chuàng)建實例,因此鏈路對象就是鏈路模型的實例,同樣節(jié)點也是節(jié)點模型的實例。但不同于節(jié)點,鏈路并不由其下層的對象所組成。通過一系列屬性說明鏈路的行為特征,如鏈路的傳播時延、錯誤比率以及相連的收/發(fā)信機。此外,屬性還可用于選擇一系列下層的C語言過程——管道階段,來執(zhí)行大量的計算和判決。盡管對于每種鏈路類型,管道體系結(jié)構(gòu)是固定的,但仍可插入用戶自定義的管道過程來完成自定義的鏈路行為。換句話說,鏈路對象的描述(Specification)完全是由屬性控制的,因此鏈路模型主要在于定義如何配置這些屬性,這將通過稱作“屬性接口”的描述機制來完成。

鏈路屬性接口用于指定從用戶的角度所看到的鏈路模型。屬性接口包含了多種組件,其中最重要的是屬性接口描述。2.2.2ICI的通信

接口控制信息(InterfaceControlInformation,ICI)是類似于包的,由一系列數(shù)據(jù)項組成的數(shù)據(jù)對象。但ICI是比包更簡單的數(shù)據(jù)結(jié)構(gòu),它只存儲用戶自定義的值,并且沒有大小和所有權(quán)的概念。ICI可同時被多個實體共享和修改/檢查。

1.?ICI的應(yīng)用

從廣義上講,ICI就是一系列與時間相關(guān)聯(lián)的用戶自定義的數(shù)據(jù)項。這使得信息可從產(chǎn)生事件的上下文傳遞到事件稍后將發(fā)生的另一上下文中。這兩個上下文可能是同一節(jié)點或不同節(jié)點中的兩個模塊,也可能是在不同時間分別執(zhí)行事件的同一模塊。因此,ICI可看作在上下文間的通信機制中扮演了一定的角色,其中事件提供了活動的通知,而ICI提供了傳遞的數(shù)據(jù)有效載荷。

某些類型的事件通常只攜帶少量或沒有攜帶用戶自定義信息,而ICI為此增強了數(shù)據(jù)傳遞能力。這些事件類型包括:●自事件:與該類事件相關(guān)聯(lián)的信息只有一種,即調(diào)用核心函數(shù)op_intrpt_schedule_self()時指定的整型代碼。然而,由于事件發(fā)生在產(chǎn)生它的同一進程中,因此通常將信息存儲在狀態(tài)變量中以便稍后使用。

●遠程、進程和多播事件:與自事件一樣,只提供了整型代碼,但不能采用狀態(tài)變量,因為目的進程與源進程不同。

●訪問事件:沒有為該類事件提供相應(yīng)的信息。

●統(tǒng)計事件:該類中斷可傳遞一個浮點數(shù)。

ICI機制并不針對某一特定事件類型,它可用于以上任意事件類型,在上下文間傳遞用戶自定義數(shù)據(jù)。ICI也常用于流事件。盡管在流事件中,傳遞的包可攜帶用戶自定義的信息,但仍采用ICI是為了將包的傳遞與額外的參數(shù)關(guān)聯(lián)起來,而避免使用包本身來包含這些參數(shù)值。

2.?ICI的內(nèi)容

當采用核心函數(shù)op_ici_create()創(chuàng)建ICI時,必須指定ICI格式的名稱。ICI的格式依據(jù)它所包含的屬性定義了ICI的結(jié)構(gòu)。每個屬性定義由三部分組成:名稱(AttributeName)、數(shù)據(jù)類型(Type)和默認值(DefaultValue),如圖2-20所示。圖2-20ICI格式描述

3.?ICI機制

仿真內(nèi)核利用稱作“ICI安裝”的機制來將ICI與事件關(guān)聯(lián)起來。每個進程在任一給定時間內(nèi)最多只能擁有一個已安裝的ICI。最初進程并未安裝ICI,隨后可能通過調(diào)用核心函數(shù)op_ici_install()來安裝ICI并傳遞相關(guān)ICI的地址。ICI將一直維持安裝狀態(tài)直到又有其他ICI安裝。

仿真內(nèi)核自動將進程安裝的ICI與進程產(chǎn)生的事件關(guān)聯(lián)起來。由于ICI與事件關(guān)聯(lián)后可一直維持安裝狀態(tài),因而它也可與隨后的事件進行關(guān)聯(lián)。實際上,同一個已安裝的ICI地址將與進程預(yù)設(shè)的每個事件進行關(guān)聯(lián),直到被其他ICI取代。為避免ICI與事件間的無謂關(guān)聯(lián),可在每個事件預(yù)設(shè)后恢復(fù)初始條件(也就是沒有安裝ICI),這可以通過調(diào)用帶符號常量OPC_NIL的核心函數(shù)op_ici_install()來完成。

1)對ICI的操作

ICI是進程創(chuàng)建的,用于將信息與預(yù)設(shè)的事件關(guān)聯(lián)起來的動態(tài)對象。函數(shù)op_ici_create()將返回ICI的地址(內(nèi)存指針),并存儲于進程的狀態(tài)變量、臨時變量或其他變量中。隨后對ICI的所有操作都通過地址來引用ICI,而不直接將其作為數(shù)據(jù)結(jié)構(gòu)。OPNET提供了許多核心函數(shù)以支持對ICI的操作,如創(chuàng)建、設(shè)置/獲取屬性、銷毀、安裝等。

2)標準ICI生存周期

在ICI的存在期間,最主要的三個事件就是創(chuàng)建、銷毀和安裝。這些事件確定了ICI加入和離開循環(huán)的時間以及ICI何時可與事件進行關(guān)聯(lián)。除此以外,還要執(zhí)行諸如修改和提取屬性等中間操作。由于ICI不同于包,它沒有嚴格的所有權(quán)控制,因而任何可以訪問ICI地址的進程都可進行這些操作。比如ICI可以被創(chuàng)建它的進程銷毀,也可以被收到該ICI的進程銷毀。同樣,多個進程可同時訪問同一個ICI,所做的修改彼此間都是可見的。

盡管仿真內(nèi)核對ICI的使用沒有嚴格的限制,但應(yīng)盡量采用標準的創(chuàng)建、安裝和銷毀操作,從而避免共享ICI的進程間的復(fù)雜交互。每個ICI生存周期都可應(yīng)用于不同類型的建模。2.2.3事件狀態(tài)的通信

事件狀態(tài)提供了一種比ICI更快速的與數(shù)據(jù)進行關(guān)聯(lián)的方法。事件狀態(tài)是用戶自定義的數(shù)據(jù)結(jié)構(gòu),安裝后能自動與每個產(chǎn)生的事件進行關(guān)聯(lián),直到安裝了新的事件狀態(tài)。

使用事件狀態(tài)的目的與ICI相同,但事件狀態(tài)提供了優(yōu)于ICI的性能,對于事件結(jié)構(gòu),并不需要采用如op_ici_attr_get()等核心函數(shù)來訪問對象結(jié)構(gòu),而采用標準的C/C++操作符來創(chuàng)建數(shù)據(jù)結(jié)構(gòu)并訪問結(jié)構(gòu)字段,這樣就節(jié)約了一定的開銷。與ICI類似,對于無用的事件狀態(tài),需要進行適當?shù)牟僮鹘獬浞峙?。事件函?shù)集中提供了兩個核心函數(shù)用于操作事件狀態(tài):op_ev_state_install()和op_ev_state()。

在并行內(nèi)核中,每個執(zhí)行線程都有其可附著在事件上的全局狀態(tài),因此安裝的事件狀態(tài)的值只在當前中斷處理中有效,當通過op_pro_invoke()、op_ev_send_forced()或其他機制將執(zhí)行轉(zhuǎn)移到另一模塊時,其值可能被覆蓋或清除。2.2.4統(tǒng)計量的通信

由于包可存儲用戶自定義信息,因而可用于處理器間的數(shù)據(jù)通信。但對于只有少量信息通信的特定類型應(yīng)用,并不需要包格式所提供的結(jié)構(gòu),此時包接口就顯得過于復(fù)雜了。例如,若模塊間每次通信只傳輸一個值,如果采用包作為通信工具,那么每次傳輸一個新值都需進行如下幾個步驟:

(1)創(chuàng)建包。

(2)將新值放入包字段中。

(3)將包通過流或包傳遞發(fā)送到目的地。

(4)目的模塊獲取該包。

(5)目的模塊提取字段的值。由于在模塊間傳輸單個的數(shù)值相當普遍,因而OPNET提供了一個更為簡單的接口。該接口是由一個叫做“統(tǒng)計線”的節(jié)點域?qū)ο髞硗瓿傻?,通信的值稱為“統(tǒng)計量”。

1.統(tǒng)計線的配置

統(tǒng)計線是同一節(jié)點中模塊的源端口和另一模塊的目的端口間的物理連接。統(tǒng)計線的源端口叫做“輸出統(tǒng)計量”,目的端口叫做“輸入統(tǒng)計量”。任意模塊,只要能產(chǎn)生統(tǒng)計量,就可作為統(tǒng)計線的源模塊。而由于只有處理機和隊列模塊才能包含可接收統(tǒng)計值的進程,因而只有處理機和隊列模塊才能作為統(tǒng)計線的目的地。統(tǒng)計線在圖形表示上與包流類似,但也有區(qū)別。包流是用實線表示的,而統(tǒng)計線是由虛線表示的。統(tǒng)計線的輸入端口由整數(shù)標識,范圍為0~99。

統(tǒng)計線可以只在目的地輸入統(tǒng)計值發(fā)生改變時才產(chǎn)生相應(yīng)事件。可通過“觸發(fā)”來確定何時產(chǎn)生事件。觸發(fā)通過統(tǒng)計線的屬性來指定,共有六種類型的值的改變。當統(tǒng)計值改變而觸發(fā)事件時,必須至少滿足以下觸發(fā)條件之一,并且相應(yīng)的觸發(fā)屬性不能設(shè)為去激

活(disabled)。●上升沿觸發(fā):新接收的值嚴格大于之前接收的值;

●下降沿觸發(fā):新接收的值嚴格小于之前接收的值;

●重復(fù)值觸發(fā):新接收的值與之前接收的值相同;

●過零觸發(fā):新接收的值與之前接收的值異號,或新接收的值為零;

●低門限觸發(fā):新接收的值小于或等于用戶指定的低門限值;

●高門限觸發(fā):新接收的值大于或等于用戶指定的高門限值。統(tǒng)計線觸發(fā)的默認配置是激活上升沿觸發(fā)和下降沿觸發(fā),并去激活所有其他類型的觸發(fā),這意味著只要輸入統(tǒng)計量的值發(fā)生變化就將產(chǎn)生統(tǒng)計事件,但若更新的統(tǒng)計量與之前收到的值相同,則不產(chǎn)生事件。另外一種常用配置是在默認配置的基礎(chǔ)上再激活重復(fù)值觸發(fā),這樣任何收到的統(tǒng)計量值都可以產(chǎn)生主動通知。第三種常用的配置是激活所有的觸發(fā)來執(zhí)行被動的統(tǒng)計量傳輸,也就是說,目的模塊可以觀察統(tǒng)計線源產(chǎn)生的統(tǒng)計量值,但實際結(jié)果并未收到任何中斷。

2.統(tǒng)計線的應(yīng)用

由于統(tǒng)計線可傳遞任何用戶自定義進程控制下的值,因而其在同一節(jié)點的模塊間通信的應(yīng)用十分廣泛。

1)利用統(tǒng)計線進行動態(tài)監(jiān)控

統(tǒng)計線最普遍的應(yīng)用就是為用戶自定義的進程提供獲知同一節(jié)點中其他模塊狀態(tài)的能力。這對于開發(fā)可根據(jù)所屬節(jié)點的動態(tài)運行條件來決定執(zhí)行何種操作的自適應(yīng)模塊將是一個很有用的工具。由于統(tǒng)計線可對變化進行主動通知,因而它非常適合于對其他模塊進行動態(tài)監(jiān)控。這相對于輪詢策略提高了效率,因為輪詢策略需要監(jiān)控進程對外部條件進行周期性檢查,以決定是否采取行動。此外,由于一旦條件發(fā)生改變,能夠及時通知進程,因而精確度也有一定程度的提高。最后,通過配置統(tǒng)計線觸發(fā),監(jiān)控進程只在特定的時候才被告知外部的變化。

對于除處理機或隊列之外的模塊,統(tǒng)計線只在仿真中提供監(jiān)控。例如,通過觸發(fā),當預(yù)定義的模塊統(tǒng)計量到達特定的門限時,就將對其產(chǎn)生“告警”。這常用于隊列中包的數(shù)目、收信機信道的吞吐率以及無線收信機的信噪比等這些統(tǒng)計量。

2)將統(tǒng)計線作為信號量

統(tǒng)計量接口對于進程來說十分簡單,統(tǒng)計線常用于執(zhí)行不同模塊進程間的低層信號機制?!靶盘柫俊?Semaphore)是一個源進程控制并由目的進程觀察的變量。目的進程利用變量的值來控制它的定時并作出決策。

一種常用的信號量是一個簡單的雙值統(tǒng)計量,如在0和1之間交替轉(zhuǎn)換。它可作為一個開關(guān),阻止一個進程而允許另一個進程執(zhí)行特定的操作。通過統(tǒng)計線觸發(fā),可激活信號量,阻塞目的進程,直到源進程產(chǎn)生了特定的“釋放”信號。2.2.5通信鏈路模型

回憶前面介紹的通信鏈路的基本操作,每種鏈路類型都提供了不同的連通性:點到點鏈路連接一個源節(jié)點和一個目的節(jié)點;總線鏈路連接一組固定的節(jié)點。盡管OPNET已經(jīng)預(yù)定義了這些鏈路的一般連通性,但開發(fā)者也可為每條鏈路根據(jù)不同的傳輸自定義鏈路的行為。由于這種開放性的體系結(jié)構(gòu)為發(fā)信機和多個收信機提供了管道連接,因而將其稱作

“收/發(fā)信機管道”。

1.收/發(fā)信機管道機制

收/發(fā)信機管道與所支持的鏈路類型具有相似的結(jié)構(gòu)。對于每種鏈路類型,仿真內(nèi)核都通過模擬鏈路的某特定方面,并執(zhí)行一系列計算來控制包的傳輸。每個鏈路類型的計算順序和接口都是標準化的。每個管道階段都是在仿真內(nèi)核之外,通過用戶提供的“管道過程”來執(zhí)行的,這使OPNET為鏈路行為的執(zhí)行提供了一個開放的模型體系結(jié)構(gòu)。

鏈路的底層執(zhí)行可看作是一組按序執(zhí)行的管道階段。當包發(fā)送到發(fā)信機時,仿真內(nèi)核繼而調(diào)用適當?shù)墓艿离A段來處理包。當包在發(fā)送時執(zhí)行某特定管道階段,其余的將在一定延時后執(zhí)行。收/發(fā)信機的基本目標就是確定包是否可被鏈路的目的地接收。這通常在最后一個管道階段根據(jù)計算前面階段的信息來作出判斷。階段之間信息的主要運載工具就是包本身,它將自己作為參數(shù)傳遞給每個管道過程。管道階段也常采用包將信息返回給仿真內(nèi)核。鏈路模型也可包含本地統(tǒng)計量,通過本地統(tǒng)計量也可將某特定鏈路對象的信息傳遞到各個管道階段。包包含一個由一組稱作“傳輸數(shù)據(jù)屬性”(TransmissionDataAttributes,TDA)的值組成的存儲區(qū),用于攜帶標準的和用戶自定義的管道信息。TDA被指定于包中特定的位置,可以為整數(shù)或浮點數(shù)。TDA的位置通過整數(shù)索引標識,不同的位置基于特定的鏈路類型以及管道階段達成的協(xié)定。當包進入管道后,仿真內(nèi)核就自動分配一定數(shù)目的TDA,提供有關(guān)傳輸?shù)墓艿离A段信息。

2.收/發(fā)信機管道階段

總線鏈路的行為由收/發(fā)信機的管道階段來定義。管道階段(PipelineStages)是一系列由C和C++的代碼組成的代碼過程,可以通過修改這些代碼過程的方式來自定義鏈路模型。

管道階段就是帶預(yù)定義參數(shù)和返回值接口的C或C++語言過程。幾乎所有的管道階段都將包地址(Packet*)作為它們的惟一參數(shù)。信息通過包的TDA字段返回給仿真內(nèi)核以及后繼的管道階段。每個管道階段都具有一個用戶提供的名稱,通常代表它的屬性。例如表示在點到點鏈路上計算傳輸延時的管道階段稱作“tx_delay”。管道階段過程的名稱還可作為它所包含的源代碼文件的名稱。管道階段目標代碼文件以?.ps.o后綴結(jié)尾,表示其只能被OPNET識別,因此管道階段源代碼文件在C文件中常以?.ps.c作為后綴,在C++文件中常以?.ps.cpp作為后綴。

1)點到點收/發(fā)信機管道

點到點鏈路收/發(fā)信機管道共四個階段,用于從點到點發(fā)信機到點到點收信機的包傳遞。如圖2-21所示是點到點鏈路收/發(fā)信機管道的結(jié)構(gòu)。

2)總線收發(fā)信機管道

由于總線鏈路是一個廣播介質(zhì),每次傳輸都可能影響總線上的其他收信機。此外,當處理一個傳輸時,總線鏈路可能對每個收信機都呈現(xiàn)出不同的行為和定時特征。因此,對總線上的每個收信機,應(yīng)分別執(zhí)行管道。總線收/發(fā)信機管道由六個階段組成,如圖2-22所示。圖2-21點到點鏈路收/發(fā)信機管道的結(jié)構(gòu)圖2-22總線鏈路收/發(fā)信機管道的結(jié)構(gòu)

2.3數(shù)據(jù)收集和仿真

利用OPNET進行仿真的目的大多是為了衡量仿真系統(tǒng)的性能或獲得關(guān)于系統(tǒng)行為的觀測資料。OPNET通過建立可運行的系統(tǒng)模型來支持系統(tǒng)仿真。一旦建立的模型能夠充分代表實際系統(tǒng),OPNET就能夠通過運行仿真獲得與實際系統(tǒng)性能和行為相似的軟件評估。OPNET提供了多種機制來從系統(tǒng)的一次或多次仿真中收集所需的評估數(shù)據(jù)。2.3.1仿真輸出數(shù)據(jù)類型

OPNET仿真可以產(chǎn)生很多類型的輸出數(shù)據(jù)。由于進程模型和鏈路模型具有通用的編程機制,因而開發(fā)者也可以定義他們自己的輸出文件類型,包括文本報告(.txt)、專有二進制文件(ProprietaryBinaryFile)等。在多數(shù)情況下,建模者使用OPNET直接支持數(shù)據(jù)類型,這些數(shù)據(jù)類型包括輸出矢量、輸出標量和動畫等。

1.輸出矢量

在可收集的仿真輸出數(shù)據(jù)類型中,最常用的是輸出矢量。輸出矢量簡稱為矢量,由實數(shù)值對構(gòu)成的條目(Entry)組合而成。輸出矢量收集在仿真運行期間產(chǎn)生的任意大小的條目,將它們列表并存儲在輸出矢量文件(OutputVectorFile)中。條目是實數(shù)值對,其中第一個值是獨立變量,第二個值是從屬變量。在OPNET中,獨立變量和從屬變量分別代表橫坐標和縱坐標。多數(shù)情況下,矢量中的獨立變量就是仿真時間。仿真時間隨著仿真的執(zhí)行單調(diào)遞增。從屬變量則代表仿真系統(tǒng)中隨時間而變化的其他變量。注意在某些情況下,橫坐標也可以不表示時間。圖2-23描述了典型輸出矢量的數(shù)據(jù)集,由圖2-23可見,一個橫坐標值可以對應(yīng)存儲多個縱坐標值。圖2-23典型輸出矢量的數(shù)據(jù)集

2.輸出標量

相對于矢量,標量統(tǒng)計是一些離散的獨立值。典型的標量統(tǒng)計是仿真測量中數(shù)據(jù)統(tǒng)計的平均值、概率或峰值。隊列平均或峰值大小、數(shù)據(jù)包的平均端到端時延、呼叫阻塞或丟失概率、平均呼叫持續(xù)時間等都可成為輸出標量統(tǒng)計。事實上,標量統(tǒng)計量是輸出矢量中實數(shù)值對的某些性質(zhì)或統(tǒng)計值。給定一個輸出矢量,可以針對矢量中用戶感興趣的值對產(chǎn)生很多輸出標量。通常沒有必要統(tǒng)計一個輸出矢量中的所有值對來產(chǎn)生反映整個數(shù)據(jù)集的輸出標量。采用標量統(tǒng)計能節(jié)省磁盤空間,它比矢量統(tǒng)計有更高效的磁盤I/O性能。單獨看一個標量數(shù)據(jù)點,輸出標量幾乎沒有任何統(tǒng)計和分析功能。通常用戶需要合并多個仿真中記錄的標量,生成圖表或曲線來顯示一個系統(tǒng)變量隨其他系統(tǒng)參數(shù)的變化函數(shù)(如圖2-24所示)。用于生成這樣的圖表或曲線的獨立變量和從屬變量都作為標量被記錄。例如,仿真性能分析中生成系統(tǒng)吞吐量隨負載變化的典型曲線,顯示了當網(wǎng)絡(luò)數(shù)據(jù)量增加時網(wǎng)絡(luò)傳遞數(shù)據(jù)能力的變化情況。在仿真中將代表負載的標量作為每次仿真輸入的獨立變量,而吞吐量在仿真過程中被測量,并將測量值作為一個新的標量來記錄。圖2-24根據(jù)輸出標量統(tǒng)計值生成圖表

OPNET軟件在輸出標量文件(OutputScalarFile)中記錄仿真中的標量統(tǒng)計。不同于輸出矢量文件,輸出標量文件可以

溫馨提示

  • 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

提交評論