專利名稱:分布式仿真的制作方法
技術(shù)領(lǐng)域:
本發(fā)明得到政府的支持,是在美國國防部授予的合同F(xiàn)33615-99-C-291 1之下展開的。美國政府具有本發(fā)明的某些權(quán)利。
相關(guān)申請(qǐng)的引用本申請(qǐng)對(duì)2000年6月19日提交的共同待審的美國臨時(shí)專利申請(qǐng)60/212,695要求優(yōu)先權(quán)。
背景本發(fā)明涉及用于對(duì)系統(tǒng)進(jìn)行仿真的計(jì)算機(jī)程序。更具體地講,本發(fā)明涉及使用分布式計(jì)算機(jī)網(wǎng)絡(luò)的仿真系統(tǒng),其中子系統(tǒng)能夠單獨(dú)進(jìn)行仿真,子系統(tǒng)仿真?zhèn)鬟_(dá)輸入/輸出變量的值以便仿真子系統(tǒng)的互動(dòng)。仿真復(fù)雜系統(tǒng)的當(dāng)前方法要受到如下的限制安全、共用性、跨平臺(tái)通信以及其它功能性方面。許多仿真平臺(tái)根本無法進(jìn)行分布式仿真,從而限制作為單一設(shè)備的計(jì)算和存儲(chǔ)能力的函數(shù)而能夠被建立模型的系統(tǒng)的復(fù)雜性。使用廣泛可用的計(jì)算系統(tǒng)在合理時(shí)間內(nèi)的復(fù)雜系統(tǒng)的仿真(例如,坦克和飛行器的仿真)是極其困難的,如果要說并非不可能的話。
此外,在多個(gè)銷售商負(fù)責(zé)較大系統(tǒng)的各種子系統(tǒng)的情況下,安全和所有權(quán)的考慮可能會(huì)抑制或阻礙合作性的仿真系統(tǒng)的形成,該合作性仿真系統(tǒng)包括由每個(gè)銷售商所提供的每個(gè)子系統(tǒng)的仿真模型。在一些契約和/或受規(guī)章管理的情況下,為使整個(gè)系統(tǒng)的仿真得以實(shí)施,銷售商可能要被迫違背他們的優(yōu)先選擇,而把他們的仿真模型公開給其它的銷售商或者管理機(jī)構(gòu)。
因此,有必要進(jìn)一步地對(duì)分布式仿真技術(shù)作出貢獻(xiàn)和進(jìn)行改進(jìn)。
發(fā)明概述本發(fā)明的一個(gè)目的是提供一種新穎的仿真系統(tǒng)。另一個(gè)目的是提供這樣的仿真系統(tǒng),其中的各種子系統(tǒng)仿真由不同語言編寫并由運(yùn)行在不同計(jì)算設(shè)備上的不同程序執(zhí)行,而且這些子系統(tǒng)仿真進(jìn)行通信以便仿真子系統(tǒng)組合的操作。此外,另一個(gè)目的是提供這樣的仿真系統(tǒng),其中所述仿真的各個(gè)部分能夠使用不同的集成方法和/或來自該仿真的其它部件的參數(shù)來執(zhí)行。
這些目的和其它的目的通過本發(fā)明的各種形式實(shí)現(xiàn)。本發(fā)明的一種形式是一個(gè)獨(dú)特的分布式仿真系統(tǒng)。此外的各形式包括這樣的系統(tǒng),其中多個(gè)處理器中的每一個(gè)執(zhí)行單獨(dú)的程序以便獨(dú)立地仿真一個(gè)物理系統(tǒng)的不同部分。在各種時(shí)間點(diǎn),處理器中的第一個(gè)把消息傳達(dá)到處理器中的第二個(gè),以便傳送關(guān)于在仿真時(shí)間的特定點(diǎn)被仿真子系統(tǒng)的狀態(tài)的信息。第二個(gè)處理器使用來自第一個(gè)處理器的有關(guān)狀態(tài)的信息來執(zhí)行該系統(tǒng)的第二部分的模型。在這種形式的一些實(shí)施方案中,各消息是以仿真時(shí)間的固定間隔發(fā)送的,然而在其它實(shí)施方案中,消息是以真實(shí)時(shí)間的固定間隔發(fā)送的。在除此之外的其它實(shí)施方案中,消息是以依賴于環(huán)境而變化的間隔發(fā)送的,例如一個(gè)或多個(gè)變量的函數(shù)、一個(gè)或多個(gè)變量變化的模式、檢測(cè)到的網(wǎng)絡(luò)阻塞或延遲、或者(在第一模型、第二模型、另一個(gè)模型中或者它們的組合中的)其它狀態(tài)變量的行為等。
在本發(fā)明的另一種形式中,一個(gè)程序公開有一個(gè)與第一模型相關(guān)聯(lián)的接口,同時(shí)第二個(gè)程序公開有與第二模型相關(guān)聯(lián)的接口。第一接口允許第二程序?qū)σ唤M由程序控制的第一模型的關(guān)于狀態(tài)的信息進(jìn)行訪問,同時(shí)阻止第二模型對(duì)第一程序或模型的基本部分的訪問。在這種形式的一些實(shí)施方案中,第二程序的接口允許第一模型對(duì)一組由程序控制的第二模型的關(guān)于狀態(tài)的信息進(jìn)行訪問,同時(shí)阻止第一模型至少對(duì)第二程序或模型的基本部分的訪問。
在本發(fā)明的又一種形式中,系統(tǒng)監(jiān)視應(yīng)用程序提供對(duì)子系統(tǒng)仿真的控制和協(xié)調(diào)。在這種形式的一些實(shí)施方案中,每個(gè)子系統(tǒng)模型允許其自身被該系統(tǒng)監(jiān)視應(yīng)用程序啟動(dòng)、停止、配置和/或與其它模型進(jìn)行連接。在其它實(shí)施方案中,模型接收和處置請(qǐng)求,以便周期地把某個(gè)關(guān)于狀態(tài)的信息傳送給一個(gè)或多個(gè)數(shù)據(jù)輸出應(yīng)用程序,后者可以生成一個(gè)或多個(gè)那些值(或那些值的函數(shù))的曲線圖。在其中的一些實(shí)施方案中,向多個(gè)可能的接收者廣播一個(gè)或多個(gè)關(guān)于狀態(tài)的變量的值的序列。
附圖簡(jiǎn)述
圖1是分布式仿真系統(tǒng)的方塊示意圖。
圖2是在分布式仿真系統(tǒng)中模型主計(jì)算機(jī)的兩種實(shí)施方案的方塊示意圖。
圖3是在分布式仿真系統(tǒng)中的一個(gè)系統(tǒng)監(jiān)視計(jì)算機(jī)和一個(gè)模型主計(jì)算機(jī)的方塊示意圖。
圖4是分布式仿真的流程圖。
圖5是在分布式仿真系統(tǒng)中的OSCOPE應(yīng)用程序的樣本視圖。
圖6是包括了子網(wǎng)安排的一部分分布式仿真系統(tǒng)的原理視圖。
圖7A-7C是應(yīng)用在一些分布式仿真系統(tǒng)的控制消息處理循環(huán)的流程圖。
圖8是在分布式仿真系統(tǒng)中的控制面板應(yīng)用程序的樣本視圖。
優(yōu)選實(shí)施方案說明為了方便對(duì)本發(fā)明的原理的理解,現(xiàn)在參考在附圖中所展示的實(shí)施方案,專門的術(shù)語用來描述所述實(shí)施方案。不過,應(yīng)該理解的是,本發(fā)明的保護(hù)范圍并沒有由此而受任何限制;對(duì)所描述或展示的實(shí)施方案的任何變更和進(jìn)一步的修改,以及任何對(duì)在此所闡述的本發(fā)明原理的進(jìn)一步應(yīng)用都將被視為一個(gè)對(duì)本發(fā)明所涉及領(lǐng)域諳熟的技術(shù)人員在正常情況下是會(huì)想到的。
總體來講,在圖1-3所展示的分布式仿真系統(tǒng)提供物理系統(tǒng)的各種部分或方面(“子系統(tǒng)”)的并行實(shí)施。在所展示的這種實(shí)施方案中,計(jì)算機(jī)29啟動(dòng)、停止、配置以及控制多個(gè)模型22、24、26、28之間的連接和互動(dòng),在模型主計(jì)算機(jī)23、25、27上運(yùn)行。每個(gè)模型22、24、26、28實(shí)現(xiàn)一個(gè)或多個(gè)子系統(tǒng)的模型,并使那種實(shí)施可以用于與系統(tǒng)的其它部分的模型相連接。用于各種硬件和軟件平臺(tái)的一致的外部通信接口(在下面進(jìn)行進(jìn)一步的論述)允許每一子系統(tǒng)在不同的仿真平臺(tái)和/或操作系統(tǒng)上建立模型,還允許不同子系統(tǒng)的不同銷售商建立他們的子系統(tǒng)的模型,以便與系統(tǒng)的其它部分結(jié)合起來進(jìn)行仿真。
應(yīng)該注意的是,對(duì)于具有不同的物理子系統(tǒng)的物理系統(tǒng)的仿真,能夠非常容易地理解本說明書。然而,在這里所使用的″系統(tǒng)″并非有意地限制在部件的物理安排上。應(yīng)該把該概念理解為包括任何仿真的主題。同樣地,在本申請(qǐng)所使用的″子系統(tǒng)″并非必須是一組物理上完全不同的部件。例如,一個(gè)獨(dú)立建立的模型的″子系統(tǒng)″可以是一項(xiàng)的熱傳遞方面,而另一個(gè)″子系統(tǒng)″模型則可以是該項(xiàng)的電子方面。
用作仿真的模型可以通過一個(gè)或許多程序員或者程序員組織,用與該系統(tǒng)中其它模型相同的語言或不同的語言進(jìn)行編程來實(shí)施。
現(xiàn)在,繼續(xù)參照?qǐng)D1更詳細(xì)地對(duì)系統(tǒng)20進(jìn)行論述。網(wǎng)絡(luò)21與計(jì)算機(jī)23、25、27、29相互連接。模型22、24、26、28如所展示的運(yùn)行在那些計(jì)算機(jī)上,一起建立一個(gè)完全系統(tǒng)的模型,這些模型22、24、26和28中的每個(gè)建立至少一個(gè)子系統(tǒng)模型并相互作用,以便用真實(shí)或虛擬時(shí)間的各種間隔在各子系統(tǒng)之間傳達(dá)仿真接口的狀態(tài),這點(diǎn)將在下面進(jìn)行更詳細(xì)的論述。在分布式仿真系統(tǒng)20中所涉及的其它應(yīng)用程序在圖1中以各種配置加以表示。簡(jiǎn)單模型主計(jì)算機(jī)23運(yùn)行一個(gè)簡(jiǎn)單模型,該簡(jiǎn)單模型22可以被其它模型24、26、28以及其它應(yīng)用程序(諸如系統(tǒng)監(jiān)視程序31)通過網(wǎng)絡(luò)21訪問。
然而,在本發(fā)明的許多實(shí)施方案中,可以在單個(gè)主計(jì)算機(jī)中獲得各資源,以便執(zhí)行附加的應(yīng)用程序。共同的配置表示在圖1中的計(jì)算機(jī)25。此處,模型24仿真一個(gè)或多個(gè)子系統(tǒng),控制面板32發(fā)出那些諳熟本領(lǐng)域的技術(shù)人員會(huì)想到的啟動(dòng)、停止、參數(shù)設(shè)置、相關(guān)連接以及其它的命令。OSCOPE應(yīng)用程序33和34顯示一個(gè)或多個(gè)變量的值或模型24的變量在時(shí)間上的函數(shù)值。通過實(shí)驗(yàn)已經(jīng)表明,各應(yīng)用程序的這種分組合理有效地利用了單個(gè)計(jì)算機(jī)上的各資源。例如,當(dāng)一個(gè)模型所需要的資源太大而無法支持附加的應(yīng)用程序(例如,如果該模型在仿真系統(tǒng)中是個(gè)瓶頸)時(shí),其它部件可以從該主計(jì)算機(jī)上卸載而在局域網(wǎng)的“鄰接”計(jì)算機(jī)上執(zhí)行。
在一些情況下,能夠在單個(gè)計(jì)算機(jī)上執(zhí)行多個(gè)模型,如在圖1的計(jì)算機(jī)27上所表示的那樣。計(jì)算機(jī)27運(yùn)行模型26和28,它們各自與控制面板(分別是35和37)以及OSCOPE(分別是36和38)相關(guān)聯(lián)。
系統(tǒng)監(jiān)視程序31運(yùn)行在計(jì)算機(jī)29上,它控制模型22、24、26、28的參數(shù)以及它們之間的連接。在這種示范性的實(shí)施方案中,盡管控制面板32、35、37的每個(gè)控制和監(jiān)視單個(gè)模型(分別是24、26、28),但是系統(tǒng)監(jiān)視程序31被設(shè)計(jì)成管理整個(gè)分布式仿真系統(tǒng)20。運(yùn)行在計(jì)算機(jī)29上的還有OSCOPE39,例如,它用于監(jiān)視模型22的一個(gè)或多個(gè)變量或變量的函數(shù)。
″系統(tǒng)監(jiān)視″應(yīng)用程序31(在下面也有更詳細(xì)的論述)運(yùn)行在計(jì)算機(jī)29上,它用于設(shè)置模型的各參數(shù);控制各模型之間的連接;監(jiān)視它們的功能;以及記錄仿真中的相關(guān)事實(shí)、參數(shù)和事件。系統(tǒng)監(jiān)視程序31的幾個(gè)功能在下面有更詳細(xì)的論述。
現(xiàn)在參照?qǐng)D2來論述計(jì)算機(jī)23和25的某些功能部件。模型主計(jì)算機(jī)23包括處理器41,在一種實(shí)施方案中,它是常規(guī)的集成電路微處理器裝置,例如,一個(gè)或多個(gè)奔騰III或奔騰4處理器(由美國加利福尼亞州的Santa Clara的INTEL公司供應(yīng))、Athlon處理器(由美國加利福尼亞州的Sunnyvale的高級(jí)微設(shè)備有限公司(Advanced Micro Devices,Inc.)供應(yīng))、PowerPC處理器(由美國得克薩斯州的Austin的摩托羅拉有限公司半導(dǎo)體產(chǎn)品部(Semiconductor Products Sector ofMotorola,Inc.)供應(yīng))。
存儲(chǔ)裝置43提供計(jì)算機(jī)23所需要的數(shù)據(jù)存儲(chǔ),包括例如程序、模型、日志以及其它數(shù)據(jù)的存儲(chǔ)。存儲(chǔ)裝置43可以包括一種或多種類型的固態(tài)電子存儲(chǔ)器、磁性存儲(chǔ)器或光存儲(chǔ)器,這里只指出幾種。作為非限制性的示例,存儲(chǔ)裝置43可以包括固態(tài)電子隨機(jī)訪問存儲(chǔ)器(RAM)、順序訪問存儲(chǔ)器(SAM)(諸如先進(jìn)先出(FIFO)的變體或后進(jìn)先出(LIFO)的變體)、可編程只讀存儲(chǔ)器(PROM)、電可編程只讀存儲(chǔ)器(EPROM)、或者電可擦除可編程只讀存儲(chǔ)器(EEPROM);光盤存儲(chǔ)器(諸如DVD或CD-ROM);磁方式編碼硬盤、軟盤、磁帶、盒式介質(zhì)(cartridge media);或者這些存儲(chǔ)器類型的任意的一種組合。此外,存儲(chǔ)裝置43可以是易失的、非易失的、或者易失和非易失變體的混合式的組合。
可選的輸入設(shè)備45可以包括鍵盤、鼠標(biāo)、軌跡球、光筆和/或麥克風(fēng),這里只指出幾種代表性的示例。
此外,可選輸出設(shè)備47可以包括一個(gè)或多個(gè)監(jiān)視器、揚(yáng)聲器、打印機(jī)和/或其它的記錄設(shè)備,這里同樣地只指出幾種代表性的示例。
操作系統(tǒng)49是通用操作系統(tǒng),例如WINDOWS操作系統(tǒng)(由美國華盛頓的Redmond的微軟公司發(fā)行)或者M(jìn)AC OS(由美國加利福尼亞的Cupertino的蘋果計(jì)算機(jī)有限公司發(fā)行)。對(duì)于那些諳熟本領(lǐng)域的技術(shù)人員來說,其它操作系統(tǒng)是可以使用的,不會(huì)有不適當(dāng)?shù)默F(xiàn)象。
運(yùn)行在操作系統(tǒng)49上的是計(jì)算平臺(tái)51,它是通用的計(jì)算和分析包,諸如MATLAB(由美國馬薩諸塞州的Natick的MathWorks有限公司發(fā)行)。一些候選的仿真程序和平臺(tái)的配置在下面結(jié)合計(jì)算機(jī)25和27進(jìn)行論述。然而,在用計(jì)算機(jī)23的情況下,稱為SIMULINK(也由MathWorks有限公司發(fā)行)的附加的仿真工具箱52被包括以便允許結(jié)合用于子系統(tǒng)模型實(shí)施22的分布式仿真的API。在這個(gè)示例中,模型22是用MATLAB編程語言所寫的,它引用了在SIMULINK工具箱52和分布式仿真接口55中所定義的過程和/或?qū)ο?。接?5提供了包含各函數(shù)的API,這些函數(shù)能夠使模型22可編程控制來自其它計(jì)算設(shè)備的連接,并且處理通過它們所交換的數(shù)據(jù),這點(diǎn)于此有進(jìn)一步的論述。
計(jì)算機(jī)25由處理器61使用在存儲(chǔ)裝置63中所存儲(chǔ)的程序加以控制(此處,處理器61和存儲(chǔ)裝置63可以使用任何合適的類型,這點(diǎn)在上面結(jié)合處理器41和存儲(chǔ)裝置43已經(jīng)分別進(jìn)行了論述)。可選輸出設(shè)備67和可選輸入設(shè)備65同樣地可以與作為人的用戶進(jìn)行方便的互動(dòng)。在該示例中,操作系統(tǒng)69是由微軟公司所發(fā)行的WINDOWS 2000操作系統(tǒng)。模型24在OS69上執(zhí)行,它作為獨(dú)立的應(yīng)用程序是用一種或多種系統(tǒng)編程語言諸如C、C++、Fortran、Visual Basic、或JAVA等所編寫。
瀏覽器71能夠訪問和查看通過網(wǎng)絡(luò)21可獲得的資源,諸如超文本標(biāo)記語言(HTML)文件和JAVA小應(yīng)用程序(諸如系統(tǒng)控制小應(yīng)用程序32)。例如,瀏覽器71可以是Netscape瀏覽器(由美國加利福尼亞的Palo Alto的太陽微系統(tǒng)有限公司(Sun Microsystems,Inc.)發(fā)行)。OSCOPE應(yīng)用程序33和34從模型24讀取關(guān)于狀態(tài)的信息,并通過輸出設(shè)備67把它作為輸出發(fā)送給用戶。與接口55類似,分布式仿真接口75提供了模型24的有關(guān)通信的功能。
圖3表示計(jì)算機(jī)27和29(也見圖1)的各部件。在計(jì)算機(jī)27中,存儲(chǔ)裝置83、可選輸入設(shè)備85、以及可選輸出設(shè)備87與43、45以及47是相似的(不過并非必須相同)。同樣地,在這里的子系統(tǒng)模型實(shí)施26、28是用一種或多種系統(tǒng)編程語言諸如C、C++、Fortran、Visual Basic、或JAVA等所編寫的獨(dú)立的應(yīng)用程序,只指出幾種非限制性的示例。處理器81是專門用于仿真計(jì)算的由客戶設(shè)計(jì)的專用集成電路(ASIC)??蛻粼O(shè)計(jì)的仿真操作系統(tǒng)89運(yùn)行子系統(tǒng)模型實(shí)施26和28,它們通過分布式仿真接口88互相通信并與系統(tǒng)20中的其它模型通信。控制面板應(yīng)用程序35和OSCOPE應(yīng)用程序36與模型26相連接,并運(yùn)行在仿真操作系統(tǒng)89之上,它通過模型28的連接也運(yùn)行控制面板37和OSCOPE38。系統(tǒng)監(jiān)視應(yīng)用程序31運(yùn)行在操作系統(tǒng)99上,以便提供在用于系統(tǒng)20的命令和控制功能,這點(diǎn)在上面進(jìn)行了綜述并將在下面進(jìn)行詳述。OSCOPE應(yīng)用程序39也運(yùn)行在操作系統(tǒng)99上,從而給在計(jì)算機(jī)29邊的用戶顯示來自計(jì)算機(jī)23(見圖1)的模型22的關(guān)于狀態(tài)的信息的輸出。
計(jì)算機(jī)29包括處理器91、存儲(chǔ)裝置93、輸入設(shè)備95以及輸出設(shè)備97(與計(jì)算機(jī)23中的對(duì)應(yīng)部件相類似但并非必須相同;即,部件41、43、45以及47)。操作系統(tǒng)99例如是UNIX或類似UNIX的操作系統(tǒng),諸如Red Hat Linux(由美國北卡羅來納州的Durham的紅帽子有限公司(Red Hat,Inc.)發(fā)行)。
盡管上面的涉及圖1-3的描述闡述了計(jì)算資源的幾種應(yīng)用和安排、在部件、應(yīng)用程序、小應(yīng)用程序、模型以及系統(tǒng)20中的其它物理和功能部件之間的連接和關(guān)系的幾種圖解,但是應(yīng)該注意的是,對(duì)于那些諳熟本領(lǐng)域的技術(shù)人員根據(jù)本發(fā)明使用的這些或其它物理和/或虛擬配置將能夠?qū)崿F(xiàn)分布式仿真子系統(tǒng)。例如,在這里所描述的任何功能可以在任何計(jì)算設(shè)備中通過與該系統(tǒng)的至少一個(gè)其它部件的通信得到實(shí)現(xiàn)。
為執(zhí)行根據(jù)本發(fā)明的一種實(shí)施方案的仿真的過程,將結(jié)合圖4并繼續(xù)參照在圖1-3中所表示和論述的項(xiàng)在更廣泛的方面加以論述。關(guān)于控制在本發(fā)明中一種選擇實(shí)施方案的模型之間的連接的另外的細(xì)節(jié)將結(jié)合圖7A-7C在下面進(jìn)行論述。圖4中的過程100在開始(START)點(diǎn)101啟動(dòng)。各模型在方塊110處啟動(dòng)。在各種實(shí)施方案中,為每個(gè)模型啟動(dòng)該事件的方法是本地用戶的一個(gè)動(dòng)作(諸如在桌面圖形用戶界面(GUI)中的一個(gè)手勢(shì))、遠(yuǎn)程用戶(例如,通過web瀏覽器或通過另一個(gè)信號(hào))或者一個(gè)自動(dòng)過程(諸如任務(wù)調(diào)度器的調(diào)用),這里只指出幾種可能的觸發(fā)。在其中的一些實(shí)施方案中,把操作系統(tǒng)49、69、89、99、計(jì)算平臺(tái)51、仿真工具箱52、子系統(tǒng)模型實(shí)施22、24、26、28以及分布式仿真接口軟件55、75、88裝入到存儲(chǔ)器中,并使用那些諳熟本領(lǐng)域的技術(shù)人員應(yīng)會(huì)理解的仿真參數(shù)進(jìn)行初始化。
在方塊120,例如通過系統(tǒng)監(jiān)視應(yīng)用程序31或與每個(gè)特定模型相關(guān)聯(lián)的控制面板32、35、37來設(shè)置用于各種模型22、24、26、28的參數(shù)(諸如電容器的容量或者在仿真中的系統(tǒng)的燃料密度)。在各種實(shí)施方案中,提供這些參數(shù)的可以是本地配置文件、用戶輸入、來自系統(tǒng)監(jiān)視程序31或控制面板的信號(hào)或者是諳熟本領(lǐng)域的技術(shù)人員會(huì)想到的其它源。
在方塊130,同樣地,在系統(tǒng)監(jiān)視程序31或模型的各自控制面板32、35、37的控制下,模型可以與其它模型相連接和/或斷開連接。例如,在一些使用TCP/IP協(xié)議堆棧的實(shí)施方案中,可以(例如,從本地存儲(chǔ)裝置43、63、83,一個(gè)或多個(gè)命令行參數(shù),系統(tǒng)監(jiān)視程序31等等)獲得IP地址和TCP端口號(hào),并打開TCP連接。
連接的模型在方塊140交換控制和關(guān)于狀態(tài)的信息,并在方塊150向OSCOPE或其它監(jiān)視過程輸出有關(guān)狀態(tài)的信息。在圖1-3所表示的示范實(shí)施方案中,子系統(tǒng)模型實(shí)施24從子系統(tǒng)模型實(shí)施22接收關(guān)于狀態(tài)的消息,這些消息傳達(dá)涉及到來自子系統(tǒng)模型實(shí)施22的一個(gè)或多個(gè)狀態(tài)變量的信息。然后,子系統(tǒng)模型實(shí)施24在其仿真中使用該信息。例如,在一些實(shí)施方案中,子系統(tǒng)模型實(shí)施24把來自關(guān)于狀態(tài)消息的那些信息用作傳向仿真中的子系統(tǒng)的輸入。在其中的一些實(shí)施方案中,從子系統(tǒng)模型實(shí)施24到子系統(tǒng)模型實(shí)施22的關(guān)于狀態(tài)的消息提供這樣的信息,該信息涉及作為向子系統(tǒng)模型實(shí)施22的操作輸入的子系統(tǒng)模型實(shí)施24中的一個(gè)或多個(gè)狀態(tài)變量。
在方塊160,各模型處理其它命令,并且在判定塊170,要判定系統(tǒng)20是否應(yīng)該繼續(xù)運(yùn)行。如果要繼續(xù)運(yùn)行,則過程100返回到方塊120的命令處理循環(huán)的開始部分。如果在判定塊170系統(tǒng)20將不繼續(xù)運(yùn)行(否定結(jié)果),則過程100在結(jié)束點(diǎn)199結(jié)束。
盡管在圖4把過程100展示為線性的單線程任務(wù),但是它的實(shí)施可以采用多線程的形式在多臺(tái)計(jì)算設(shè)備上或者用候選的控制流程方式進(jìn)行,這點(diǎn)對(duì)于一個(gè)諳熟本領(lǐng)域的技術(shù)人員來說是會(huì)想到的。
在該示范性實(shí)施方案中,分布式仿真接口55、75、88公開一個(gè)用于開發(fā)各種子系統(tǒng)模型實(shí)施22、24、26、28的應(yīng)用程序編程接口(API)。該API中的函數(shù)的ACSL版本在下面的表1中表示。這些函數(shù)允許子系統(tǒng)模型實(shí)施程序員來控制從其它子系統(tǒng)仿真輸入的或向其它子系統(tǒng)仿真輸出的那些變量。
表1在該示范性實(shí)施方案中,端口索引號(hào)(PIN)和OSCOPE索引號(hào)(OIN)是從零開始順序分配的,每次分別調(diào)用ADD_PORT或OSCOPE函數(shù)。接著,當(dāng)OSCOPE向特定模型請(qǐng)求一個(gè)連接時(shí),該模型把請(qǐng)求應(yīng)用程序(或小應(yīng)用程序)連接到下一個(gè)可用的OSCOPE索引號(hào),如果另一個(gè)存在的話。
因此,在所展示的實(shí)施方案中,在仿真執(zhí)行之前,由模型的程序員使用在表1中所表示的命令來設(shè)置數(shù)據(jù)交換之間的間隔。對(duì)于給定端口的交換以仿真時(shí)間中有規(guī)律的間隔(它可以與用于其它端口的間隔相同或者不相同)進(jìn)行,從而把模型時(shí)間用作參考系。在一些候選實(shí)施方案中,使用實(shí)時(shí)的或其它的外部參考系,然而在其它實(shí)施方案中,間隔如這里所論述的那樣是動(dòng)態(tài)地控制的。
表1中所表示的函數(shù)的提供采用各種形式,以便適應(yīng)在系統(tǒng)20中可能用到的各種仿真環(huán)境。例如,各函數(shù)的實(shí)現(xiàn)可以采用動(dòng)態(tài)鏈接庫(.DLL)、源代碼庫、設(shè)備驅(qū)動(dòng)程序、操作系統(tǒng)API或其它的對(duì)于一個(gè)諳熟本領(lǐng)域的技術(shù)人員來說是會(huì)想到的格式,并且各函數(shù)在其指定的實(shí)現(xiàn)環(huán)境的約束下是可以被接受的。
圖7A-7C表示的是用于處理仿真控制消息的消息處理循環(huán)。該示例可由那些諳熟本領(lǐng)域的技術(shù)人員很容易地進(jìn)行修改,以便包括附加的消息處理任務(wù)或其它在給定的本發(fā)明實(shí)施中會(huì)出現(xiàn)的事件。此外,非基于消息的控制機(jī)制可以用在本發(fā)明的各種實(shí)施方案中。
現(xiàn)在,結(jié)合圖7A-7C描述用于給定模型的消息處理循環(huán)300??傮w來講,循環(huán)300在開始點(diǎn)301開始,310部分處理系統(tǒng)監(jiān)視連接活動(dòng),320部分控制面板活動(dòng),330部分處理來自控制面板的命令,350部分處理進(jìn)入的模型連接請(qǐng)求,360部分處理進(jìn)入的OSCOPE連接活動(dòng),370部分處理系統(tǒng)監(jiān)視命令,在結(jié)束點(diǎn)399結(jié)束。
在循環(huán)300的310部分,模型在方塊312確認(rèn),它正在偵聽來自系統(tǒng)監(jiān)視程序的進(jìn)入的連接請(qǐng)求。如果在判定塊314的判定是系統(tǒng)監(jiān)視連接請(qǐng)求處于掛起(肯定結(jié)果),那么在方塊316試圖連接的系統(tǒng)監(jiān)視程序作為用于本地模型的活動(dòng)系統(tǒng)監(jiān)視程序而建立。接著,否則如果沒有上述連接處于掛起(在判定塊314是否定結(jié)果),則在310部分的處理就結(jié)束,并且循環(huán)300進(jìn)展到320部分。
循環(huán)300在320部分處理進(jìn)入的控制面板連接活動(dòng),通過首先在方塊321確認(rèn)系統(tǒng)正在偵聽進(jìn)入的控制面板連接。如果在判定塊323的判定是,來自控制面板的應(yīng)用程序的進(jìn)入的連接處于等待(肯定結(jié)果),則在方塊325控制面板應(yīng)用程序作為活動(dòng)控制面板而建立。然后,在方塊327,把用于本地模型的當(dāng)前參數(shù)和端口信息發(fā)送到那個(gè)控制面板,并且如果系統(tǒng)監(jiān)視程序是活動(dòng)的,則要在方塊329進(jìn)行新連接的通知。在該點(diǎn),否則如果在方塊323的判定是,沒有來自外部控制面板的連接處于等待(否定結(jié)果),則循環(huán)300越過320進(jìn)展到330部分。
循環(huán)300在330部分處理任何掛起的控制面板命令。在判定塊331要判定控制面板當(dāng)前是否連接到本地模型。如果沒有(否定結(jié)果),則循環(huán)300越過330部分(通過占位符A)進(jìn)展到350部分。如果判定控制面板是連接的(在判定塊331是肯定結(jié)果),則在判定塊333要判定來自那個(gè)控制面板的命令是否處于等待。如果不處于等待(在判定塊333是否定結(jié)果),則循環(huán)300(通過占位符A)進(jìn)展到350部分。
如果在判定塊333的判定是命令處于等待(肯定結(jié)果),則在方塊335讀取該命令,并且在方塊337讀取用于“設(shè)置參數(shù)”的相關(guān)參數(shù)名和值。在方塊339,更新給定的參數(shù)以便反映該新值,并且如果系統(tǒng)監(jiān)視程序是連接的,則要在方塊341通知該更新。
判定塊343通過控制面板命令實(shí)施用于連接/斷開連接遠(yuǎn)程模型的可選方法。如果在方塊337所讀取的參數(shù)不是有效的端口索引號(hào)(在判定塊343是″X″結(jié)果),則循環(huán)300(通過占位符A)進(jìn)展到350部分。如果該參數(shù)名是有效的端口索引號(hào),并且對(duì)應(yīng)的端口狀態(tài)值不是1(在判定塊343是否定結(jié)果),則在方塊345關(guān)閉通過那個(gè)端口的連接,并且循環(huán)300(通過占位符A)進(jìn)展到350部分。
如果端口狀態(tài)值是1(在判定塊343是肯定結(jié)果),則在方塊347從控制面板讀取模型的連接參數(shù)(包括例如遠(yuǎn)程模型主機(jī)的IP號(hào),遠(yuǎn)程模型索引號(hào),遠(yuǎn)程端口索引號(hào)以及本地模型索引號(hào))。接著,在方塊349啟動(dòng)在標(biāo)識(shí)的本地模型和標(biāo)識(shí)的遠(yuǎn)程模型之間的連接,并且循環(huán)300繼續(xù)350部分。
循環(huán)300在350部分處理來自其它模型的進(jìn)入的連接請(qǐng)求。在方塊351,要確認(rèn)服務(wù)器正在偵聽模型的連接請(qǐng)求。如果上述請(qǐng)求并不處于等待(判定塊353是否定結(jié)果),則循環(huán)300進(jìn)展到360部分。如果模型的連接請(qǐng)求處于等待(判定塊353是肯定結(jié)果),則在方塊355讀取所請(qǐng)求的PIN,并且在方塊357完成到遠(yuǎn)程模型的連接。然后,在方塊359更新內(nèi)部端口狀態(tài),并且循環(huán)300進(jìn)展到360部分。
在360部分,循環(huán)300處理用于來自O(shè)SCOPE應(yīng)用程序或小應(yīng)用程序的連接的進(jìn)入的請(qǐng)求。首先,在方塊361要確認(rèn)該模型正在偵聽上述的連接。然后,如果沒有OSCOPE連接請(qǐng)求處于等待(判定塊363是否定結(jié)果),則循環(huán)300進(jìn)展到370部分。如果上述的請(qǐng)求處于等待(判定塊363是肯定結(jié)果),則在方塊365確定下一個(gè)可用的OSCOPE標(biāo)識(shí)符,并且在方塊367向OSCOPE應(yīng)用程序或小應(yīng)用程序發(fā)送用于那個(gè)OSCOPE標(biāo)識(shí)符的元數(shù)據(jù)(例如通過所請(qǐng)求的端口可獲得的變量數(shù)、那些變量的名稱以及模型的名稱)。在方塊369,向活動(dòng)的系統(tǒng)監(jiān)視程序(如果有一個(gè)連接)通知關(guān)于那個(gè)活動(dòng)。循環(huán)300繼續(xù)370部分。
在循環(huán)300的370部分處理來自系統(tǒng)監(jiān)視程序(如果有一個(gè)連接)的各命令。首先,在方塊371檢查是否的確有系統(tǒng)監(jiān)視程序的連接。如果沒有(否定結(jié)果),則循環(huán)300在結(jié)束點(diǎn)399結(jié)束。如果有系統(tǒng)監(jiān)視程序的連接(判定塊371是肯定結(jié)果),則在判定塊373判定是否有來自那個(gè)系統(tǒng)監(jiān)視程序的命令在等待被處理。如果沒有系統(tǒng)監(jiān)視程序的命令處于等待(在判定塊373是否定結(jié)果),則循環(huán)300在結(jié)束點(diǎn)399結(jié)束。如果有命令處于等待(判定塊373是肯定結(jié)果),則循環(huán)300(通過占位符B)進(jìn)展到圖7C所表示的400。當(dāng)在400部分的處理完成時(shí),循環(huán)300到達(dá)結(jié)束點(diǎn)399并終結(jié),或者再次在開始點(diǎn)301開始重復(fù)。
在圖7C所表示的循環(huán)400的方塊401,從系統(tǒng)監(jiān)視程序讀取所請(qǐng)求的命令。在判定塊411,要判定系統(tǒng)監(jiān)視程序是否正在請(qǐng)求對(duì)參數(shù)和/或端口數(shù)據(jù)的顯示。如果那樣的話,在方塊413讀取正被請(qǐng)求的項(xiàng)的名稱。如果那個(gè)名稱是“參數(shù)”或″全部″(在判定塊415是肯定結(jié)果),則在方塊417向系統(tǒng)監(jiān)視程序發(fā)送模型的每個(gè)參數(shù)的名稱和對(duì)應(yīng)的值。然后(或者當(dāng)判定塊415是否定結(jié)果),在判定塊419要判定在方塊413所讀取的名稱是否是″端口″或″全部″。如果是那樣的話(判定塊419是肯定結(jié)果),則在方塊421向系統(tǒng)監(jiān)視發(fā)送模型的每個(gè)端口的名稱和狀態(tài)。然而,如果判定塊419的結(jié)果是否定的,則在方塊423向系統(tǒng)監(jiān)視程序發(fā)送(在方塊413)所指定的參數(shù)的名稱和值。在或者方塊421或者方塊423的動(dòng)作之后,循環(huán)300(通過占位符C)返回到結(jié)束點(diǎn)399。
如果在方塊401所讀取的命令不是一個(gè)用于顯示一個(gè)或多個(gè)參數(shù)的請(qǐng)求(即,方塊411是否定結(jié)果),則在判定塊431要判定命令是否用于模型的注冊(cè)。如果那樣的話,則在方塊433讀取該模型名稱并在方塊435注冊(cè)該模型。然后,循環(huán)(通過占位符C)返回到結(jié)束點(diǎn)399。
如果在方塊401所讀取的命令也不是用于模型的注冊(cè)(判定塊431是否定結(jié)果),則在判定塊441要判定命令是否是用于設(shè)置參數(shù)值的請(qǐng)求。如果那樣的話(肯定結(jié)果),則在方塊443讀取名稱和新值,并且在方塊445更新所指定參數(shù)的值。接著,為了登錄、調(diào)試或其它目的,在方塊447向控制面板發(fā)送所有參數(shù)和端口的名稱和值。然后,循環(huán)300(通過占位符C)返回到結(jié)束點(diǎn)399。
如果在方塊401所讀取的命令也不是用于設(shè)置模型參數(shù)的請(qǐng)求(判定塊441是否定結(jié)果),則在判定塊451要判定該命令是否是要把本地模型連接到遠(yuǎn)程模型的請(qǐng)求。如果那樣的話(肯定結(jié)果),在方塊453讀取用于建立那個(gè)連接的各參數(shù)(參見結(jié)合方塊347在上面所作的論述)。然后,在方塊455啟動(dòng)和建立在遠(yuǎn)程模型和本地模型之間所請(qǐng)求的連接。循環(huán)300繼續(xù),在方塊447如上面所論述的向控制面板發(fā)送參數(shù)和端口的值和狀態(tài)并(通過占位符C)返回到結(jié)束點(diǎn)399。
如果在方塊401所讀取的命令不是用于連接模型的請(qǐng)求(在判定塊451是否定結(jié)果),則在方塊461要判定那個(gè)命令是否用于斷開模型的連接。如果那樣的話(肯定結(jié)果),在方塊463讀取要斷開連接的端口。接著,在判定塊465要判定是否已經(jīng)請(qǐng)求要斷開連接所有的端口。如果那樣的話(肯定結(jié)果),則在方塊467關(guān)閉所有的端口,并且在方塊447向控制面板報(bào)告的關(guān)于參數(shù)和端口的信息,如上面所論述的,循環(huán)300繼續(xù)下去。如果請(qǐng)求了要關(guān)閉指定的端口(在判定塊465是否定結(jié)果),那么在方塊469關(guān)閉那個(gè)指定的端口,并且,如上面所論述的在方塊447報(bào)告關(guān)于參數(shù)和端口的信息循環(huán)300繼續(xù)。
如果經(jīng)過在判定塊461的判定,在方塊401所讀取的命令并不是用于斷開連接的請(qǐng)求,則忽略那個(gè)命令,并且循環(huán)300(通過占位符C)進(jìn)展到結(jié)束點(diǎn)399。應(yīng)當(dāng)注意,與結(jié)合400部分所論述的那些實(shí)施方案相比,本發(fā)明的各種實(shí)施方案可以處理不同的、附加的或者較少的命令,這對(duì)于那些諳熟本領(lǐng)域的技術(shù)人員來說是會(huì)得到理解的。還應(yīng)當(dāng)注意,那些諳熟本領(lǐng)域的技術(shù)人員將會(huì)理解,除了結(jié)合圖7A-7C所描述的“設(shè)置參數(shù)”命令之外,通過控制面板可使用其它命令。
還可以注意到的是,循環(huán)300展示了對(duì)給定模型至多同時(shí)連接一個(gè)系統(tǒng)監(jiān)視程序或一個(gè)控制面板。盡管在本發(fā)明的一些實(shí)施方案中可以用連接中的兩種類型的控制應(yīng)用程序操作,但是其它的可以阻止兩種類型的控制應(yīng)用程序的同時(shí)連接,并且其它的可以要求連接這兩者用于確定功能。其它的還可以允許對(duì)給定模型的一種和兩種類型的控制應(yīng)用程序的多個(gè)實(shí)例。
還應(yīng)該注意的是,為了更加容易理解,通過忽略涉及到使用中的通信協(xié)議、發(fā)送和/或期待中的應(yīng)答以及錯(cuò)誤處理的細(xì)節(jié)而對(duì)循環(huán)300的論述進(jìn)行了簡(jiǎn)化。例如,在使用模型、端口、OSCOPE、以及其它標(biāo)識(shí)號(hào)和句柄之前,最好由分布式仿真接口55、75、88驗(yàn)證它們都是有效的。在一些實(shí)施方案中,忽略了錯(cuò)誤,然而在其它實(shí)施方案中,它們導(dǎo)致建立日志項(xiàng)、觸發(fā)報(bào)警和/或停止系統(tǒng)。
現(xiàn)在,參照?qǐng)D5來論述按照本發(fā)明的一種形式的OSCOEP應(yīng)用程序的示范性實(shí)施方案。OSCOPE應(yīng)用程序方便了對(duì)系統(tǒng)20的各種模型22、24、26、28的特定關(guān)于狀態(tài)的信息的訪問。圖形用戶界面(GUI)200包括控制元件202、輸出格式化元件204以及圖形元件206,它方便了用戶與OSCOPE應(yīng)用程序的互動(dòng)。控制元件202接受用戶的模型主機(jī)(IP地址)、模型索引號(hào)號(hào)(MIN)以及用于顯示的輸出格式的選擇。當(dāng)用戶選擇“連接”復(fù)選框時(shí),OSCOPE應(yīng)用程序試圖連接所選擇的模型。
隨著從選擇的模型中接收仿真數(shù)據(jù),它就以輸出曲線圖206顯示。各種用戶接口部件204允許用戶選擇用于顯示的廣泛的格式類型,包括選擇要繪圖的變量,以一種或多種尺度縮放曲線圖,使用所獲得的數(shù)據(jù)點(diǎn)的范圍自動(dòng)縮放曲線圖,根據(jù)正被繪圖的一個(gè)或多個(gè)信號(hào)的一個(gè)或多個(gè)觸發(fā)點(diǎn)顯示重復(fù)的軌跡,連接顯示中的采樣點(diǎn),和/或通過FFT(快速傅立葉變換)變換信號(hào),這里只指出幾種非限制性的示范。在這幅圖中,把輸出繪制成曲線圖206,它可以用任何合適的格式保存在任何合適的介質(zhì)上,包括例如磁盤上的圖形文件。對(duì)于那些諳熟本領(lǐng)域的技術(shù)人員來說可以理解的是,候選的選擇、控制、以及輸出形式和技術(shù)可以按照特定實(shí)施方案中的需求或意愿進(jìn)行使用。例如,信號(hào)數(shù)據(jù)可以用包括了圖2中的“輸出設(shè)備”67打印成頁、圖形或條形圖的形式。
圖8展示的是用在系統(tǒng)20中的GUI。復(fù)選框221根據(jù)用戶的輸入建立或斷開與特定模型的連接。模型信息區(qū)域223反映的是連接的模型的參數(shù)值以及該模型端口的狀態(tài)。″參數(shù)″和″值″字段能夠用于改變與該控制面板相連接的模型的參數(shù),而″本地I/O端口″和″端口狀態(tài)″元件能夠用來與受控中的模型進(jìn)行連接和斷開連接。當(dāng)想要連接到遠(yuǎn)程模型時(shí),就在GUI220的225區(qū)域輸入IP地址、端口標(biāo)識(shí)號(hào)以及模型標(biāo)識(shí)號(hào)。在這種實(shí)施方案中,每當(dāng)用戶希望向模型提交信息時(shí),就選擇″提交″按鈕227,并且使用本領(lǐng)域所熟知的方法、技術(shù)以及協(xié)議向模型傳送信息。文本框229給用戶顯示從連接的模型所接收的消息以及任何錯(cuò)誤消息。
對(duì)于那些諳熟本領(lǐng)域的技術(shù)人員來說,顯而易見的是,傳統(tǒng)的和/或候選部件可以存在于或附屬于本說明書中所論述的任何計(jì)算設(shè)備中。類似地,所表示的網(wǎng)絡(luò)也可以連接這里沒有示出的設(shè)備,包括但不限于在分布式仿真中沒有作用的設(shè)備。
在本發(fā)明的一種候選實(shí)施方案中,模型正在執(zhí)行的同時(shí),可以動(dòng)態(tài)連接和配置子系統(tǒng)模型實(shí)施22、24、26、28。在一些情況下,這種動(dòng)態(tài)連接仿真在各自實(shí)施的正在建立模型的物理部件的物理連接或重新連接。
在另一種候選實(shí)施方案中,多個(gè)仿真程序一起仿真一個(gè)系統(tǒng),每個(gè)仿真程序仿真該系統(tǒng)的不同子系統(tǒng)。在又一種實(shí)施方案中,不同人員指定由或通過網(wǎng)絡(luò)中的其它計(jì)算機(jī)能夠看到和/或控制的各種子系統(tǒng)模型的參數(shù)和數(shù)據(jù)。
圖6中表示了另一種實(shí)施方案的一部分。多個(gè)計(jì)算機(jī)251構(gòu)成與網(wǎng)絡(luò)21通信的子網(wǎng)261。每個(gè)計(jì)算機(jī)251建立了子系統(tǒng)的部分模型,同時(shí)在子網(wǎng)261中的網(wǎng)關(guān)計(jì)算機(jī)251a作為通信網(wǎng)關(guān),它用于在子網(wǎng)261中的計(jì)算機(jī)和網(wǎng)絡(luò)21的其余部分之間發(fā)送關(guān)于狀態(tài)的消息。網(wǎng)關(guān)計(jì)算機(jī)251a可以是也可以不是一個(gè)或多個(gè)模型的主機(jī)。在這種配置的一些實(shí)施方案中,發(fā)生在非網(wǎng)關(guān)計(jì)算機(jī)251上的仿真是獨(dú)立進(jìn)行的(即,并不依賴于來自任何其它模型的狀態(tài)信息)。在這些情況下,網(wǎng)關(guān)計(jì)算機(jī)251a收集那些子系統(tǒng)仿真的結(jié)果,并可以聚集它們或者按照源數(shù)據(jù)傳遞到系統(tǒng)20中的其它模型或其它部件。
在本發(fā)明的另一種形式中,多個(gè)彼此相關(guān)的仿真程序是在網(wǎng)絡(luò)中的多個(gè)計(jì)算機(jī)上執(zhí)行的。多個(gè)彼此相關(guān)的仿真程序并行操作,并且互相交換數(shù)據(jù)。在這種形式的一些實(shí)施方案中,各種仿真程序每一個(gè)都執(zhí)行在相同的軟件包上(諸如ACSL(美國阿拉巴馬州的Huntsville的Aegis Technologies Group有限公司發(fā)行)、Saber(美國加里福尼亞州的Fremont的Avant!公司發(fā)行)、MATLAB/SIMULINK或EASY5(美國伊利諾斯州芝加哥的波音公司發(fā)行))。在這種形式的其它實(shí)施方案中,各種子系統(tǒng)仿真是由軟件包的不同組執(zhí)行的(諸如一個(gè)計(jì)算機(jī)上的ACSL模型和兩個(gè)MATLAB/SIMULINK模型,每個(gè)都在另一個(gè)分開的計(jì)算機(jī)上)。
在這種形式的一種實(shí)施方案中,多個(gè)仿真程序一起仿真一個(gè)真實(shí)系統(tǒng),其中每個(gè)仿真程序仿真該真實(shí)系統(tǒng)中的不同的真實(shí)子系統(tǒng)。在這種形式的另一種實(shí)施方案中,不同人員指定由或通過系統(tǒng)20中的其它計(jì)算機(jī)能夠看到和/或控制的各種仿真程序的參數(shù)和數(shù)據(jù)。
在本發(fā)明的另一種形式中,使用第一處理器可以執(zhí)行的編程指令給計(jì)算機(jī)可讀介質(zhì)編碼,以便(a)實(shí)現(xiàn)具有第一狀態(tài)變量的第一仿真模型;(b)從另一個(gè)處理器正在執(zhí)行的程序接收第一命令信號(hào),以及(c)管理基于該第一命令信號(hào)的第一仿真模型;同樣地,使用與輸出設(shè)備通信的第二處理器可以執(zhí)行的編程指令給計(jì)算機(jī)可讀介質(zhì)編碼,以便(1)向第一處理器發(fā)送第一命令信號(hào);(2)使輸出設(shè)備生成第一輸出,該第一輸出反映涉及在仿真時(shí)間段的第一狀態(tài)變量的信息。在本發(fā)明的這種形式的一種實(shí)施方案中,把涉及在第一仿真中的一個(gè)或多個(gè)狀態(tài)變量值的信息按照真實(shí)時(shí)間的有規(guī)律間隔傳遞到第二仿真(或從其接收)。在這種形式的另一種實(shí)施方案中,把涉及在第一仿真中的一個(gè)或多個(gè)狀態(tài)變量的值的信息按照仿真時(shí)間的有規(guī)律間隔傳遞到第二仿真(或從其接收)。在這種形式的又一種實(shí)施方案中,把涉及在第一仿真中的一個(gè)或多個(gè)狀態(tài)變量的值的信息按照仿真時(shí)間的這樣的間隔傳遞到第二仿真(或從其接收),該間隔隨著系統(tǒng)中的一個(gè)或多個(gè)模型的狀態(tài)的變化而變化。在這種形式的又一種實(shí)施方案中,把涉及在第一仿真中的兩個(gè)或更多個(gè)狀態(tài)變量的值的信息傳遞到第二仿真(或從其接收)。在又一種實(shí)施方案中,把涉及在第一仿真中的四個(gè)或更多個(gè)狀態(tài)變量的值的信息傳遞到第二仿真(或從其接收)。在這種形式的除此之外的又一種實(shí)施方案中,把涉及在第一仿真中的n≥2個(gè)狀態(tài)變量的值的信息傳遞到第二仿真(或從其接收),并且由第一仿真所發(fā)送的一系列關(guān)于狀態(tài)的消息中的至少一條消息包含與n≥2個(gè)狀態(tài)變量中的每個(gè)變量的值都有關(guān)的信息。在又一種實(shí)施方案中,把涉及在第一仿真中的n≥2個(gè)狀態(tài)變量的值的信息傳遞到第二仿真(或從其接收),并且由第一仿真所發(fā)送的一系列關(guān)于狀態(tài)的消息中的至少一條消息包含與n個(gè)狀態(tài)變量中的恰好一個(gè)變量的值有關(guān)的信息。在這種形式的其它實(shí)施方案中,一個(gè)過程生成該請(qǐng)求,但是第一仿真把有關(guān)狀態(tài)消息的系列導(dǎo)向不同的過程。在另一種實(shí)施方案中,一個(gè)過程接收有關(guān)狀態(tài)消息的系列并在輸出設(shè)備(例如顯示器或打印機(jī))上顯示(例如狀態(tài)變量對(duì)[仿真]時(shí)間的函數(shù)的曲線圖)由那個(gè)系列中的多條消息所攜帶的信息。
本發(fā)明的另一種形式包括在多臺(tái)計(jì)算機(jī)上操作的多個(gè)仿真。系統(tǒng)監(jiān)視程序與每個(gè)仿真通信,并且它能夠?qū)γ總€(gè)仿真進(jìn)行配置、控制和/或協(xié)調(diào)。在這種形式的一種實(shí)施方案中,也為每個(gè)仿真提供有一個(gè)本地控制面板小應(yīng)用程序,它能夠?qū)δ莻€(gè)特定仿真進(jìn)行配置、控制和/或協(xié)調(diào)。
在一些實(shí)施方案中,不同子系統(tǒng)模型實(shí)施22、24、26、28使用不同技術(shù)和/或參數(shù)進(jìn)行集成。例如,一個(gè)模型可能會(huì)使用每毫秒都對(duì)新值進(jìn)行估計(jì)的有限歐拉集成技術(shù),而另一個(gè)使用微秒間隔估計(jì)的Runge-Kutta集成。這種類型的實(shí)施方案能夠更有效地對(duì)包括變化快和變化慢的信號(hào)的系統(tǒng)進(jìn)行仿真,所述仿真通過以合適的速率對(duì)每個(gè)子系統(tǒng)進(jìn)行“采樣”來實(shí)現(xiàn),不在頻繁地對(duì)變化慢的信號(hào)進(jìn)行采樣上浪費(fèi)計(jì)算資源。
在一些實(shí)施方案中,提供了用于仿真開發(fā)的插入式組件,其中在子系統(tǒng)模型實(shí)施設(shè)計(jì)中放置了″黑盒″元件,它代表在仿真中的一個(gè)或多個(gè)其它子系統(tǒng)。給“黑盒”進(jìn)行了參數(shù)的編程,藉此定義由鄰接子系統(tǒng)(分別)提供以及向其提供的子系統(tǒng)的輸入和輸出。在其中一些實(shí)施方案中,“黑盒”由GUI仿真設(shè)計(jì)工具中的方塊來代表。與在子系統(tǒng)模型實(shí)施中的“黑盒”相關(guān)聯(lián)的字段表示用于那個(gè)連接的聯(lián)網(wǎng)(例如IP地址和TCP端口號(hào))和發(fā)信號(hào)(例如消息頻率和變量的可用性)的參數(shù)。
對(duì)于那些諳熟本領(lǐng)域的技術(shù)人員來說可以應(yīng)會(huì)理解的是,在本描述中所論述的計(jì)算機(jī)23、25、27、29和其它計(jì)算機(jī)可以包括在特定實(shí)施中所需要的或希望的附加或候選的部件。同樣地,附加的或候選的設(shè)備可以與網(wǎng)絡(luò)21和/或子網(wǎng)261(參見圖1和6)相連接,而不背離本發(fā)明的實(shí)質(zhì)。
在申請(qǐng)之前的所有出版物和在這里所引用的其它文件以它們的整體引入到這里以供參考,就好像每個(gè)都已經(jīng)單個(gè)地被引入用來參考并充分闡明一樣。
盡管本發(fā)明在附圖和前面的描述中已經(jīng)進(jìn)行了詳細(xì)的闡述和說明,但是它們應(yīng)當(dāng)被視為是說明性的而不是在本質(zhì)上有限制性,應(yīng)當(dāng)理解,僅僅表示和描述了優(yōu)選實(shí)施方案,還希望保護(hù)諳熟相關(guān)領(lǐng)域的技術(shù)人員會(huì)想到的所有改變和修改。
權(quán)利要求
1.一種系統(tǒng),它包括第一執(zhí)行過程,它實(shí)現(xiàn)第一模型以便仿真第一子系統(tǒng),第一模型用第一語言編程并具有第一狀態(tài)變量;以及發(fā)送第一系列有關(guān)狀態(tài)的消息,每條消息反映涉及在第一模型中仿真時(shí)間不同點(diǎn)tm的第一狀態(tài)變量的值的信息;以及第二執(zhí)行過程,該過程接收所述第一系列有關(guān)狀態(tài)的消息;以及實(shí)現(xiàn)第二模型,以便仿真第二子系統(tǒng),第二模型用第二語言編程,并從所述第一系列有關(guān)狀態(tài)的消息中取第一狀態(tài)變量的值作為輸入。
2.權(quán)利要求1的系統(tǒng),其中第二模型具有第二狀態(tài)變量;所述第二過程還發(fā)送第二系列有關(guān)狀態(tài)的消息,每條消息反映涉及在第一模型中仿真時(shí)間不同點(diǎn)tn的第二狀態(tài)變量的值的信息;所述第一過程還接收所述第二系列有關(guān)狀態(tài)的消息;以及第一模型從所述第二系列有關(guān)狀態(tài)的消息中取第二狀態(tài)變量的值作為輸入。
3.權(quán)利要求2的系統(tǒng),其中關(guān)于所述第一系列有關(guān)狀態(tài)的消息中的至少一條第一消息,所述第一消息反映涉及在第一模型中仿真時(shí)間的點(diǎn)t1的第一狀態(tài)變量值的信息,在所述第二系列有關(guān)狀態(tài)的消息中具有第二消息,它反映在第一模型中仿真時(shí)間的點(diǎn)t1的第二狀態(tài)變量的值。
4.權(quán)利要求2的系統(tǒng),其中對(duì)于在系列有關(guān)狀態(tài)的消息中的至少第一消息,所述第一消息反映在仿真時(shí)間的點(diǎn)t1的第一狀態(tài)變量的值,在所述第二系列有關(guān)狀態(tài)的消息中,沒有反映在仿真時(shí)間的點(diǎn)t1的第二狀態(tài)變量的值的第二消息。
5.權(quán)利要求1的系統(tǒng),其中所述第一系列有關(guān)狀態(tài)的消息包括第一消息,它反映涉及在第一模型中仿真時(shí)間的時(shí)間t1時(shí)第一狀態(tài)變量的值的信息;第二消息,它反映涉及在第一模型中仿真時(shí)間的時(shí)間t2時(shí)第一狀態(tài)變量的值的信息;以及第三消息,它反映涉及在第一模型中仿真時(shí)間的時(shí)間t3時(shí)第一狀態(tài)變量的值的信息;以及其中,第一消息、第二消息以及第三消息在所述第一系列有關(guān)狀態(tài)的消息中是連續(xù)的;并且t2-t1=t3-t2。
6.權(quán)利要求1的系統(tǒng),其中所述第一系列有關(guān)狀態(tài)的消息包括第一消息,它反映涉及在第一模型中仿真時(shí)間的時(shí)間t1時(shí)第一狀態(tài)變量的值的信息;第二消息,它反映涉及在第一模型中仿真時(shí)間的時(shí)間t2時(shí)第一狀態(tài)變量的值的信息;以及第三消息,它反映涉及在第一模型中仿真時(shí)間的時(shí)間t3時(shí)第一狀態(tài)變量的值的信息;以及其中,第一消息、第二消息以及第三消息在所述第一系列有關(guān)狀態(tài)的消息中是連續(xù)的;并且t2-t1≠t3-t2。
7.權(quán)利要求1的系統(tǒng),其中所述第一組編程指令公開用于第一模型的第一接口,其中所述第一接口阻止所述第二組編程指令對(duì)第一模型的第一基本部分的訪問;并且允許所述第二組編程指令對(duì)第一模型的第二基本部分的訪問;以及所述第二組編程指令公開用于第二模型的第二接口,其中所述第二接口阻止所述第一組編程指令對(duì)第二模型的第一基本部分的訪問,并且允許所述第一組編程指令對(duì)第二模型的第二基本部分的訪問。
8.權(quán)利要求1的系統(tǒng),其中第一模型具有第三狀態(tài)變量;在所述第一系列有關(guān)狀態(tài)的消息中的每條消息還反映涉及在仿真時(shí)間的點(diǎn)tm的第三狀態(tài)變量值的信息;以及第二模型也從所述第一系列有關(guān)狀態(tài)的消息中取所為輸入的第三狀態(tài)變量。
9.一種用于仿真具有多個(gè)物理子系統(tǒng)的物理系統(tǒng)的運(yùn)行的方法,它包括仿真第一物理子系統(tǒng);接收用于輸出關(guān)于涉及n個(gè)有關(guān)狀態(tài)變量的信息的請(qǐng)求,這些狀態(tài)變量表現(xiàn)所述仿真的第一物理子系統(tǒng)的狀態(tài)的特征;發(fā)送第一系列有關(guān)狀態(tài)的消息,每條消息包含涉及在n個(gè)狀態(tài)變量中的至少一個(gè)變量的值的信息;以及仿真第二物理子系統(tǒng);其中請(qǐng)求是結(jié)合所述仿真第二物理子系統(tǒng)而生成的;第一物理子系統(tǒng)與第二物理子系統(tǒng)互動(dòng);以及至少一個(gè)狀態(tài)變量表現(xiàn)在第一物理子系統(tǒng)和第二物理子系統(tǒng)之間的至少一部分互動(dòng)的特征。
10.權(quán)利要求9的方法,其中所述仿真第一物理子系統(tǒng)是在第一處理器上執(zhí)行的,并且所述仿真第二物理子系統(tǒng)是在該第一處理器上執(zhí)行的。
11.權(quán)利要求9的方法,其中所述仿真第一物理子系統(tǒng)是在第一處理器上執(zhí)行的,以及所述仿真第二物理子系統(tǒng)是在第二處理器上執(zhí)行的。
12.權(quán)利要求9的方法,其中n至少是2個(gè)。
13.權(quán)利要求12的方法,其中n至少是4個(gè)。
14.權(quán)利要求12的方法,其中在第一系列有關(guān)狀態(tài)的消息中至少一條消息包含涉及在n個(gè)狀態(tài)變量中的每個(gè)變量的值的信息。
15.權(quán)利要求12的方法,其中在第一系列有關(guān)狀態(tài)的消息中至少一條消息包含涉及在包括全部n個(gè)狀態(tài)變量的組的第一特有子集的值的信息。
16.權(quán)利要求15的方法,它還包括發(fā)送第三系列有關(guān)狀態(tài)的消息,其中在第三系列有關(guān)狀態(tài)的消息中的至少一條消息包含涉及在包括全部n個(gè)狀態(tài)變量的組的第二特有子集的值的信息,以及第二特有子集不同于第一特有子集。
17.權(quán)利要求16的方法,其中在第一模型的仿真時(shí)間中以第一速率對(duì)第一系列有關(guān)狀態(tài)的消息中的消息進(jìn)行采樣;在第一模型的仿真時(shí)間中以第二速率對(duì)第三系列有關(guān)狀態(tài)的消息中的消息進(jìn)行采樣;以及第一速率與第二速率不相等。
18.權(quán)利要求16的方法,其中在第一模型的仿真時(shí)間中以第一速率對(duì)第一系列有關(guān)狀態(tài)的消息中的消息進(jìn)行采樣;在第一模型的仿真時(shí)間中以第二速率對(duì)第三系列有關(guān)狀態(tài)的消息中的消息進(jìn)行采樣;以及第一速率與第二速率相等。
19.權(quán)利要求9的方法,其中給定的過程生成該請(qǐng)求;以及所述發(fā)送把第一系列有關(guān)狀態(tài)的消息導(dǎo)向不同于給定過程的過程。
20.權(quán)利要求9的方法,它還包括在第一輸出過程中與第一輸出設(shè)備通信來接收第一系列有關(guān)狀態(tài)的消息;以及向第一輸出設(shè)備發(fā)送由第一系列有關(guān)狀態(tài)消息中的多條消息所攜帶的第一組信息;以及其中第一輸出設(shè)備與第一輸出過程通信。
21.權(quán)利要求20的方法,其中第一輸出設(shè)備是監(jiān)視器。
22.權(quán)利要求20的方法,其中第一輸出設(shè)備是打印機(jī)。
23.權(quán)利要求20的方法,其中第一輸出設(shè)備把第一組信息存儲(chǔ)在可記錄介質(zhì)中。
24.權(quán)利要求20的系統(tǒng),其中所述顯示包括繪制第一狀態(tài)變量關(guān)于時(shí)間的函數(shù)的曲線圖。
25.權(quán)利要求20的方法,它還包括在第一輸出過程中接收第二系列有關(guān)狀態(tài)的消息;以及向第一輸出設(shè)備發(fā)送由第二系列有關(guān)狀態(tài)的消包中的多條消息所攜帶的第二組信息;以及其中所述發(fā)送步驟包括輸出使第一組信息和第二組信息與系統(tǒng)時(shí)間關(guān)聯(lián)起來的時(shí)間信息。
26.權(quán)利要求20的方法,它還包括在第二輸出過程中接收第二系列有關(guān)狀態(tài)的消息,該第二輸出過程與第二輸出設(shè)備通信;以及向第二輸出設(shè)備輸出由第二系列有關(guān)狀態(tài)的消息中的多條消息所攜帶的第二組信息;其中所述發(fā)送包括把第一組信息與系統(tǒng)時(shí)間關(guān)聯(lián)起來;以及所述輸出包括把第二組信息與系統(tǒng)時(shí)間關(guān)聯(lián)起來。
27.一種系統(tǒng),它包括用編程指令編碼的第一計(jì)算機(jī)可讀介質(zhì),該編程指令可在第一過程中執(zhí)行,以便實(shí)現(xiàn)第一仿真模型;接收第一命令信號(hào);以及管理基于第一命令信號(hào)的第一仿真模型;用第二組編程指令編碼的第二計(jì)算機(jī)可讀介質(zhì),該第二組編程指令可在第二過程中執(zhí)行,以便實(shí)現(xiàn)第二仿真模型;接收第二命令信號(hào);以及管理基于第二命令信號(hào)的第二仿真模型;以及用第三組編程指令編碼的第三計(jì)算機(jī)可讀介質(zhì),該第三組編程指令可在第三過程中執(zhí)行,以便向所述第一過程發(fā)送第一命令信號(hào);以及向所述第二過程發(fā)送第二命令信號(hào)。
28.權(quán)利要求27的系統(tǒng),其中所述管理步驟與公用系統(tǒng)時(shí)間同步。
全文摘要
介紹一種用于使在多臺(tái)計(jì)算設(shè)備上復(fù)雜系統(tǒng)仿真方便進(jìn)行的方法(300)和裝置(20)。模型作者能夠指定用于輸出以便其它應(yīng)用程序(33、34、36、38、39)和模型(22、24、26、28)查看和訪問的有關(guān)狀態(tài)的信息??梢詫懽酉到y(tǒng)模型(22、24、26、28),以便能夠通過受控的接口(55、75、88)連接其它子系統(tǒng)模型(22、24、26、28),例如,通過定義用于輸出的有關(guān)狀態(tài)的信息,并提供從與子系統(tǒng)模型(22、24、26、28)相連接的其它模型(22、24、26、28)輸入的數(shù)據(jù)的特定用途。在一些實(shí)施方案中,一致的分布式仿真API能夠進(jìn)行復(fù)雜系統(tǒng)的跨平臺(tái)、多設(shè)備的仿真,其中每個(gè)子系統(tǒng)仿真的所有者能夠保持其實(shí)施(22、24、26、28)的秘密,但是卻可以被其它所有者所訪問。
文檔編號(hào)G06F9/46GK1582432SQ01814335
公開日2005年2月16日 申請(qǐng)日期2001年6月19日 優(yōu)先權(quán)日2000年6月19日
發(fā)明者O·瓦辛克祖克, C·E·盧卡斯, E·A·沃爾特斯, J·V·亞斯克維奇, S·F·格洛弗 申請(qǐng)人:P·C·克勞斯及合伙人公司