專利名稱:車輛系統(tǒng)建模系統(tǒng)和方法
技術(shù)領(lǐng)域:
本公開涉及車輛硬件和軟件仿真系統(tǒng)和方法。
背景技術(shù):
此處提供的背景技術(shù)的描述的目的是總體地給出本公開的背景。當(dāng)前署名的發(fā)明人的工作,在該背景技術(shù)部分所描述的程度,以及在提交時(shí)可能不構(gòu)成現(xiàn)有技術(shù)的本發(fā)明的方面并非明示或暗示地接受為本公開的現(xiàn)有技術(shù)。車輛控制器和硬件可以于生產(chǎn)前在仿真環(huán)境中測試,以確保組件和系統(tǒng)的精確度。車輛仿真系統(tǒng)提供了仿真環(huán)境。車輛仿真系統(tǒng)為了硬件在環(huán)(HIL)測試而存在。HIL 測試包括使用在與物理和仿真負(fù)載接口的目標(biāo)控制模塊上執(zhí)行的嵌入式軟件。盡管HIL測試可以是有效的,但是HIL測試需要開發(fā)物理負(fù)載或?qū)崟r(shí)仿真負(fù)載,這些負(fù)載很昂貴且僅能稍后在開發(fā)周期中執(zhí)行。HIL測試還包括使用一組硬件裝置,如車輛控制模塊(例如,變速器控制模塊)和信號仿真器。
發(fā)明內(nèi)容
車輛仿真系統(tǒng)包括編譯模塊、解析模塊、封裝模塊、建模模塊以及仿真模塊。編譯模塊基于由車輛控制模塊執(zhí)行以及與第二類型操作系統(tǒng)兼容的源代碼生成與第一類型操作系統(tǒng)兼容的目標(biāo)代碼。解析模塊基于源代碼和目標(biāo)代碼生成定義文件和可擴(kuò)展標(biāo)記語言 (XML)文件。封裝模塊基于目標(biāo)代碼和定義文件生成庫文件。建模模塊基于XML文件和虛擬模型的用戶配置,為虛擬模型生成基于模型的源代碼。仿真模塊用虛擬模型仿真車輛裝置的操作。車輛仿真方法包括基于由車輛控制模塊執(zhí)行且與第二類型操作系統(tǒng)兼容的源代碼生成目標(biāo)代碼,該目標(biāo)代碼與第一類型操作系統(tǒng)兼容;基于源代碼和目標(biāo)代碼生成定義文件和可擴(kuò)展標(biāo)記語言(XML)文件;基于目標(biāo)代碼和定義文件生成庫文件;基于XML文件和虛擬模型的用戶配置生成用于虛擬模型的基于模型的源代碼;以及用所述虛擬模型仿真車輛裝置的操作。在其它特征中,上面介紹的系統(tǒng)和方法由一個(gè)或多個(gè)處理器執(zhí)行的計(jì)算機(jī)程序?qū)崿F(xiàn)。計(jì)算機(jī)程序可以駐留在有形的計(jì)算機(jī)可讀介質(zhì)中,例如但不限于存儲器、非易失性數(shù)據(jù)存儲和/或其它合適的有形存儲介質(zhì)。此外,本發(fā)明還涉及以下技術(shù)方案。1. 一種車輛仿真系統(tǒng),包括
編譯模塊,基于可由車輛控制模塊執(zhí)行并且與第二類型操作系統(tǒng)兼容的源代碼生成與第一類型操作系統(tǒng)兼容的目標(biāo)代碼;
基于所述源代碼和所述目標(biāo)代碼生成定義文件和可擴(kuò)展標(biāo)記語言(XML)文件的解析模
塊;
基于所述目標(biāo)代碼和所述定義文件生成庫文件的封裝模塊;
基于所述XML文件和虛擬模型的用戶配置而生成用于所述虛擬模型的基于模型的源代碼的建模模塊;以及
用所述虛擬模型仿真車輛裝置的操作的仿真模塊。2.如技術(shù)方案1的車輛仿真系統(tǒng),其特征在于,所述建模模塊包括
圖形用戶接口(GUI)模塊,在第一⑶I中顯示可配置模塊,并且當(dāng)選擇了所述可配置模塊時(shí),顯示第二⑶I ;
數(shù)據(jù)獲取模塊,從所述XML文件獲取用于所述虛擬模型的數(shù)據(jù),且基于所述獲取的數(shù)據(jù)選擇性地產(chǎn)生所述第二⑶I的菜單。3.如技術(shù)方案2的車輛仿真系統(tǒng),其特征在于,所述建模模塊進(jìn)一步包括 配置模塊,基于所述XML文件和通過所述第二 GUI獲得的所述用戶配置輸入而生成所
述基于模型的源代碼;以及
模型更新模塊,基于通過所述第二 GUI獲得的所述用戶配置輸入而更新顯示在所述第一⑶I中的所述可配置模塊。4.如技術(shù)方案2的車輛仿真系統(tǒng),其特征在于,所述數(shù)據(jù)獲取模塊通過第一菜單顯示用于選擇的所述虛擬模型,
其中,所述數(shù)據(jù)獲取模塊通過第二菜單顯示用于選擇的由所述虛擬模型調(diào)用的函數(shù); 其中,所述數(shù)據(jù)獲取模塊通過第三菜單顯示額外作為所述函數(shù)的輸入和輸出中的一個(gè)的變量。5.如技術(shù)方案2的車輛仿真系統(tǒng),其特征在于,當(dāng)選擇了所述第二 GUI的任務(wù)調(diào)度選項(xiàng)時(shí),所述⑶I模塊顯示第三⑶I。6.如技術(shù)方案5的車輛仿真系統(tǒng),其特征在于,所述配置模塊進(jìn)一步基于通過所述第三GUI而獲得的配置輸入而生成所述基于模型的源代碼。7.如技術(shù)方案5的車輛仿真系統(tǒng),其特征在于,所述數(shù)據(jù)獲取模塊基于所述XML 文件生成任務(wù)列表。8.如技術(shù)方案7的車輛仿真系統(tǒng),其特征在于,所述數(shù)據(jù)獲取模塊通過所述第三 ⑶I顯示算法任務(wù)和函數(shù)中的至少一個(gè)用于補(bǔ)充所述任務(wù)列表。9.如技術(shù)方案7的車輛仿真系統(tǒng),其特征在于,進(jìn)一步包括基于所述庫文件和所述基于模型的源代碼生成可執(zhí)行文件的可執(zhí)行生成模塊,
其中,所述執(zhí)行模塊使用所述可執(zhí)行文件、所述任務(wù)列表和所述裝置的虛擬模型仿真所述裝置的操作。10.如技術(shù)方案1的車輛仿真系統(tǒng),其特征在于,所述第一和第二操作系統(tǒng)是不同的。11. 一種車輛仿真方法,包括
基于可由車輛控制模塊執(zhí)行且與第二類型操作系統(tǒng)兼容的源代碼而生成與第一類型操作系統(tǒng)兼容的目標(biāo)代碼;基于所述源代碼和所述目標(biāo)代碼生成定義文件和可擴(kuò)展標(biāo)記語言(XML)文件; 基于所述目標(biāo)代碼和所述定義文件生成庫文件;
基于所述XML文件和虛擬模型的用戶配置生成用于所述虛擬模型的基于模型的源代碼;以及
用所述虛擬模型仿真車輛裝置的操作。12.如技術(shù)方案11的車輛仿真方法,進(jìn)一步包括 在第一圖形用戶接口(⑶I)中顯示可配置模塊;
當(dāng)選擇了所述可配置模塊時(shí)顯示第二 GUI ;
從所述XML文件獲取用于所述虛擬模型的數(shù)據(jù);以及
基于所述獲取的數(shù)據(jù)選擇性地產(chǎn)生所述第二 GUI的菜單。13.如技術(shù)方案12的車輛仿真方法,其特征在于,進(jìn)一步包括
基于所述XML文件和通過所述第二 GUI獲得的所述用戶配置輸入而生成所述基于模型的源代碼;以及
基于通過所述第二GUI獲得的所述用戶配置輸入而更新顯示在所述第一GUI中的所述可配置模塊。14.如技術(shù)方案12的車輛仿真方法,其特征在于,進(jìn)一步包括 通過第一菜單顯示用于選擇的所述虛擬模型;
通過第二菜單顯示用于選擇的由所述虛擬模型調(diào)用的函數(shù);以及通過第三菜單顯示額外作為所述函數(shù)的輸入和輸出之一的變量。15.如技術(shù)方案12的車輛仿真方法,其特征在于,進(jìn)一步包括,當(dāng)選擇了所述第二⑶I的任務(wù)調(diào)度選項(xiàng)時(shí)顯示第三⑶I。16.如技術(shù)方案15的車輛仿真方法,其特征在于,進(jìn)一步包括,進(jìn)一步基于通過所述第三GUI獲得的配置輸入生成所述基于模型的源代碼。17.如技術(shù)方案15的車輛仿真方法,其特征在于,進(jìn)一步包括,基于所述XML文件生成任務(wù)列表。18.如技術(shù)方案17的車輛仿真方法,其特征在于,進(jìn)一步包括,通過所述第三⑶I 顯示算法任務(wù)和函數(shù)中的至少一個(gè)用于補(bǔ)充所述任務(wù)列表。19.如技術(shù)方案17的車輛仿真方法,其特征在于,進(jìn)一步包括 基于所述庫文件和所述基于模型的源代碼生成可執(zhí)行文件;以及
使用所述可執(zhí)行文件、所述任務(wù)列表和所述裝置的虛擬模型仿真所述裝置的操作。20.如技術(shù)方案11的車輛仿真方法,其特征在于,所述第一和第二操作系統(tǒng)是不同的。本公開的其它應(yīng)用領(lǐng)域?qū)南旅嫣峁┑脑敿?xì)介紹中變得明顯。應(yīng)該理解的是,詳細(xì)介紹和具體實(shí)例僅用于說明目的,不是旨在限制公開的范圍。
從詳細(xì)說明和附圖將更全面地理解本公開,其中
圖1A、1B和圖2是根據(jù)本公開的原理的示例性車輛仿真系統(tǒng)的功能框圖。圖3是根據(jù)本公開的原理的操作系統(tǒng)的示例性文件結(jié)構(gòu)的圖示。
圖4是根據(jù)本公開的原理的示例性第一圖形用戶接口(⑶I)的圖示。圖5是根據(jù)本公開的原理的示例性的第二⑶I的圖示。圖6是根據(jù)本公開的原理的第一示例性軟件在環(huán)(SIL)⑶I的圖示。。圖7是根據(jù)本公開的原理的第二示例性SIL⑶I的圖示。圖8是根據(jù)本公開的原理的第一 SIL⑶I的另一示例性圖示。圖9是根據(jù)本公開的原理的第二 SIL⑶I的另一示例性圖示。圖10是根據(jù)本公開的原理的第一 SIL⑶I的另一示例性圖示。圖11是根據(jù)本公開的原理的第二 SIL⑶I的另一示例性圖示。圖12-14是根據(jù)本公開的原理的第三示例性SIL⑶I的示例性圖示。圖15是根據(jù)本公開的原理的執(zhí)行車輛系統(tǒng)仿真的示例性方法。
具體實(shí)施例方式以下描述在本質(zhì)上僅僅是示例性的,并且絕不意圖限制本公開,其應(yīng)用或用途。為了清楚,在附圖中使用相同的標(biāo)號來表示相似的元件。如本文所用,短語A,B和C中的至少一個(gè)應(yīng)被理解為表示邏輯(A或B或C),使用的是非排他的邏輯或。應(yīng)該懂得,方法中的步驟可以以不同的順序執(zhí)行,而不改變本公開的原理。第一備選硬件在環(huán)(HIL)測試包括使用源代碼(如C代碼、Fortran等)對車輛控制模塊的仿真以及裝置模型的仿真。源代碼可以是手工代碼或以自動(dòng)方式生成的代碼(稱為自動(dòng)碼)。手工代碼可以指手動(dòng)操作源代碼,可以包括錯(cuò)誤。HIL測試方法不是可擴(kuò)展的, 因?yàn)榕c車輛控制模塊相關(guān)的代碼是固定的。使用這種方法改變源代碼以及執(zhí)行額外的仿真是緩慢的。另一備選HIL測試(稱為雙?;旌峡偩€測試)包括利用基于模型的軟件來仿真車輛控制模塊和車輛組件或系統(tǒng)?;谀P偷姆抡孳浖?如Mathworks出品的Matlab和 Simulink軟件)在微軟Windows操作系統(tǒng)中運(yùn)行,包括連接功能塊以及相對應(yīng)的輸入和輸出來創(chuàng)建模型。模型在Windows環(huán)境中開發(fā),可以基于開發(fā)的模型生成自動(dòng)碼?;谀P偷能浖怯脩粲押玫?,允許方便操作模型、功能塊、信號等。但是,雙?;旌峡偩€測試不允許集成以C代碼寫的車輛控制模塊的軟件。作為HIL測試的一個(gè)備選,可執(zhí)行軟件在環(huán)(SIL)測試。SIL測試包括汽車控制系統(tǒng)仿真,在仿真中,通過執(zhí)行仿真環(huán)境中的車輛控制模塊的實(shí)際目標(biāo)嵌入式處理器軟件來獲得控制算法的全部或部分行為。SIL測試包括仿真負(fù)載,如下面這些的輸入及輸出汽車區(qū)域網(wǎng)路(CAN)、控制模塊、裝置模型、傳感器等。在SIL測試環(huán)境中,目標(biāo)軟件,如變速器控制模塊(TCM)軟件,虛擬鏈接于裝置模型。SIL測試不需要特別的與裝置相關(guān)的硬件。裝置模型仿真裝置的實(shí)際操作(如發(fā)動(dòng)機(jī)、 變速器或車輛動(dòng)力學(xué))。裝置模型接收來自仿真控制模塊的輸入,產(chǎn)生可反饋的輸出。目標(biāo)軟件虛擬鏈接于裝置模型允許在開發(fā)周期的早期在虛擬環(huán)境中評估車輛系統(tǒng)。在下面的介紹中,術(shù)語“任務(wù)”指在仿真期間執(zhí)行的軟件函數(shù)或在方法中執(zhí)行的項(xiàng)目、函數(shù)或步驟。函數(shù)指在較大的程序中的一部分代碼的子例程或子程序。任務(wù)可以包括多個(gè)子任務(wù)。此外,在下面的介紹中,術(shù)語“環(huán)”指一組任務(wù)或函數(shù)?,F(xiàn)在參考圖1A,顯示了車輛仿真系統(tǒng)2的功能框圖。車輛仿真系統(tǒng)2包括帶有宿主控制模塊6和存儲器8的宿主4。存儲器8可以在位置上遠(yuǎn)離宿主4,通過網(wǎng)絡(luò)被存取, 或者可以位于宿主4內(nèi),如圖示。宿主控制模塊6包括控制車輛的一個(gè)或多個(gè)車輛控制模塊、組件和系統(tǒng)的仿真的車輛系統(tǒng)仿真(VSS)控制模塊10。VSS控制模塊10可以控制將源代碼轉(zhuǎn)換為基于模型的代碼;將從源代碼生成的基于模型的代碼與通過仿真軟件生成的基于模型的代碼結(jié)合;以及基于基于模型的代碼生成模型。宿主控制模塊6可以包括模型生成模塊12、調(diào)度模塊14、驅(qū)動(dòng)循環(huán)模塊20、裝置模型選擇模塊22、數(shù)據(jù)處理模塊24、校準(zhǔn)模塊26以及調(diào)試器模塊28。模塊生成模塊12生成SIL模型。例如,可以利用模塊生成模塊12來生成與裝置模型(如變速器、發(fā)動(dòng)機(jī)、車輛或其它合適的裝置)結(jié)合使用的模型。模塊生成模塊12可以建立包括將新近生成的模型的輸入和輸出與其它模型對象掛鉤的一個(gè)或多個(gè)模型。掛鉤可以指,如,將模型的輸入和輸出連接到信號線或塊的節(jié)點(diǎn)和/或模型。對象可以是節(jié)點(diǎn)、信號線、輸入、輸出、存儲的變量等。調(diào)度模塊14調(diào)度仿真環(huán)境中執(zhí)行的仿真任務(wù)的順序。調(diào)度模塊14可以是基于事件和/或時(shí)間的。任務(wù)可以基于條件執(zhí)行和/或例如按順序執(zhí)行。例如,當(dāng)某個(gè)條件或事件發(fā)生時(shí)可以執(zhí)行一系列任務(wù)。在給定的時(shí)間段內(nèi),可以執(zhí)行多個(gè)任務(wù)。調(diào)度模塊14可以調(diào)度例如如算法任務(wù)、函數(shù)、控制系統(tǒng)軟件任務(wù)和其它合適的任務(wù)。驅(qū)動(dòng)循環(huán)模塊20控制一個(gè)或多個(gè)控制模型的輸入。例如,驅(qū)動(dòng)循環(huán)模塊20可以在用戶輸入、預(yù)定義信號輸入和已存儲的車輛信號間選擇并提供給給定模型。裝置模型選擇模塊22選擇一個(gè)或多個(gè)裝置模型的精確度水平。精確度水平指裝置模型的復(fù)雜度以及裝置模型精確仿真裝置的實(shí)際組件和/或系統(tǒng)的程度。仿真具有更高精確度水平的裝置模型可以更精確地仿真裝置實(shí)際上將如何執(zhí)行。但是,更高精確度水平的處理時(shí)間通常比稍低精確度水平的處理時(shí)間長些。數(shù)據(jù)處理模塊24選擇要監(jiān)測的對象、獲取各數(shù)據(jù)、處理各數(shù)據(jù)等。與要監(jiān)測的對象相關(guān)的數(shù)據(jù)存儲在存儲器8中的對象數(shù)據(jù)文件30中。校準(zhǔn)模塊26允許對存儲器8中的變量或存儲值(在校準(zhǔn)文件32中)的校準(zhǔn)。校準(zhǔn)模塊26可以調(diào)整各種類型的值,包括布爾值、標(biāo)量值、表值等。調(diào)試器模塊28用于調(diào)試基于模型的代碼。存儲器8可以包括例如基于源代碼的庫40、基于建模環(huán)境的庫42、輸入共享變量 44、輸出共享變量46以及函數(shù)庫48。基于源代碼的庫40包括基于模型的代碼,用于基于源代碼生成的模型(或模型組50)?;谀P偷拇a可以在建模環(huán)境中執(zhí)行,用于生成虛擬模型。虛擬模型可以利用基于模型的軟件在建模環(huán)境中觀察?;谀P偷拇a可以用于執(zhí)行仿真以及在仿真環(huán)境中用一個(gè)或多個(gè)其它模型仿真模型的操作。基于建模環(huán)境的庫42可以包括模型。僅用于示例,模型可以包括裝置模型52、如控制 模型54、傳感器模型56、控制器局域網(wǎng)絡(luò)(CAN)模型58、致動(dòng)器模型60、變速器模型 62、發(fā)動(dòng)機(jī)模型64、車輛模型66以及其它合適的模型。每個(gè)裝置模型可以用于仿真相應(yīng)的裝置。僅用于示例,傳感器模型可以用于仿真車輛的傳感器,如發(fā)動(dòng)機(jī)速度傳感器、車輛速度傳感器、溫度傳感器、壓力傳感器、流率傳感器等。CAN模型可以用于仿真通過車輛的CAN接收到的輸出信號。致動(dòng)器模型可以用于仿真致動(dòng)器,如火花塞、電動(dòng)馬達(dá)、節(jié)氣門、螺線管、燃料噴射器或車輛的其它致動(dòng)器。
輸入共享變量44和輸出共享變量46可指被一個(gè)或多個(gè)模型共享的變量。輸入共享變量44和輸出共享變量46可包括全局變量,或可包括與一個(gè)或多個(gè)模型、算法或函數(shù)相關(guān)的變量。函數(shù)庫48可包括額外標(biāo)準(zhǔn)塊,如用于生成一個(gè)或多個(gè)塊的數(shù)學(xué)函數(shù)。宿主4還可包括顯示裝置70、用戶輸入裝置72以及編譯器74。由宿主控制模塊 6生成的一個(gè)或多個(gè)圖形用戶接口(⑶1)76可以通過顯示裝置70為用戶顯示。例如,用戶輸入裝置72可以是例如指向裝置(如鼠標(biāo)、筆與板、觸摸屏等)、鍵盤和/或一個(gè)或多個(gè)其它合適的裝置。用戶輸入裝置72可包括各種實(shí)現(xiàn)的顯示裝置70。顯示裝置70可包括例如顯示器、投影機(jī)或其它合適的顯示裝置。編譯器74可編譯一個(gè)或多個(gè)類型的代碼,如源代碼、 基于模型的代碼和/或自動(dòng)碼。 現(xiàn)在參考圖1B,顯示了示例性VSS系統(tǒng)100的另一功能框圖。源代碼文件102包括用于在建模環(huán)境中創(chuàng)建模型的源代碼??梢栽诜抡姝h(huán)境中仿真帶有一個(gè)或多個(gè)其它模型的模型的操作,如裝置模型(如發(fā)動(dòng)機(jī)、變速器、排放系統(tǒng)、車輛或其它合適的裝置)。僅用于示例,源代碼可以是Fortran編程語言、C編程語言或其它合適的語言。源代碼可以以自動(dòng)方式、手工或其它合適的方式撰寫。交叉編譯器模塊106編譯源代碼。交叉編譯器模塊106可以將源代碼轉(zhuǎn)換成目標(biāo)代碼,并把目標(biāo)代碼存儲在目標(biāo)代碼文件110中。目標(biāo)代碼可以是與交叉編譯器模塊106 運(yùn)行的操作系統(tǒng)不同的操作系統(tǒng)兼容的二進(jìn)制代碼。交叉編譯器模塊106運(yùn)行的操作系統(tǒng)將被稱為第一操作系統(tǒng),與目標(biāo)代碼兼容的操作系統(tǒng)將被稱為第二操作系統(tǒng)。僅用于示例, 第一操作系統(tǒng)可以包括基于Linux的操作系統(tǒng)或其它合適的操作系統(tǒng),第二操作系統(tǒng)可以包括基于微軟Windows的操作系統(tǒng)或其它合適的操作系統(tǒng)。僅用于示例,交叉編譯器模塊 106可包括不同實(shí)現(xiàn)的mingw32-gcc模塊。解析模塊114從源代碼文件102和目標(biāo)代碼文件110中提取信息。解析模塊114 基于所提取的信息產(chǎn)生定義文件118和可擴(kuò)展標(biāo)記語言(XML)文件122。XML文件122包括描述源代碼文件102的源代碼的信息,如相關(guān)變量、校準(zhǔn)、函數(shù)、算法以及其它合適的信息。 定義文件118包含描述將從一個(gè)或多個(gè)庫中導(dǎo)出的數(shù)據(jù)的信息。封裝模塊126可基于來自定義文件118和目標(biāo)代碼文件110中的數(shù)據(jù)產(chǎn)生源代碼動(dòng)態(tài)鏈接庫(DLL)文件130和靜態(tài)庫文件134。僅用于示例,封裝模塊126可包括不同實(shí)現(xiàn)的mingw32-dlIwrap模塊。在不同實(shí)現(xiàn)中,源代碼DLL文件130和靜態(tài)庫文件134可被包括在一個(gè)文件中。校準(zhǔn)使能模塊138從源代碼DLL文件130和一個(gè)或多個(gè)數(shù)據(jù)(.DAT)文件(如數(shù)據(jù)文件142)中提取校準(zhǔn)信息。校準(zhǔn)使能模塊138基于來自源代碼DLL文件130和/或一個(gè)或多個(gè)數(shù)據(jù)文件的數(shù)據(jù)產(chǎn)生校準(zhǔn)文件146。校準(zhǔn)文件146可包括被例如INCA模塊(未示出) 的校準(zhǔn)模塊使用的信息。僅用于示例,校準(zhǔn)文件146可以是XML文件。當(dāng)通過用戶輸入激勵(lì)時(shí),建模模塊160產(chǎn)生和顯示一個(gè)或多個(gè)圖形用戶接口 (⑶IK例如,參看圖2-14)。用戶輸入可以包括通過指向裝置(如鼠標(biāo)、筆和板、觸摸屏等)、 鍵盤以及/或一個(gè)或多個(gè)其它合適裝置所作的用戶輸入。一個(gè)或多個(gè)GUI可以顯示在顯示屏(如顯示器)、投影儀或其它合適的顯示裝置上。建模模塊160可以運(yùn)行在第二操作系統(tǒng)中。更具體地,建模模塊可以運(yùn)行在與第二操作系統(tǒng)兼容的建模環(huán)境(例如程序空間)中。僅用于示例,建模模塊160可運(yùn)行在Simulink建模環(huán)境中。建模模塊160從XML文件122獲取數(shù)據(jù),有選擇地通過一個(gè)或多個(gè)⑶I為用戶顯示獲取的數(shù)據(jù)。用戶可以通過一個(gè)或多個(gè)⑶I在建模域內(nèi)配置模型。建模模塊160基于從 XML文件122獲取的數(shù)據(jù)和 用戶提供的配置生成模型源代碼文件164。模型源代碼文件164 包括與第二操作系統(tǒng)兼容且運(yùn)行在建模域的代碼。僅用于示例,模型源代碼文件164可包括S函數(shù)代碼或其它合適類型的代碼。換言之,模型源代碼文件164可包括以S函數(shù)編程語言或其它合適的編程語言寫的代碼??蓤?zhí)行生成模塊168基于源代碼DLL文件130和模型源代碼文件164生成可執(zhí)行 DLL文件172(也稱為動(dòng)態(tài)加載可執(zhí)行)??蓤?zhí)行生成模塊168可進(jìn)一步基于靜態(tài)庫文件134 生成可執(zhí)行DLL文件172。例如,可執(zhí)行生成模塊168可將模型源代碼文件164編譯和鏈接進(jìn)可執(zhí)行DLL文件172。可執(zhí)行DLL文件172由建模/仿真軟件在建模環(huán)境中執(zhí)行。僅用于示例,可執(zhí)行DLL文件172可結(jié)合包括裝置模型的模型文件176來執(zhí)行?,F(xiàn)在參考圖2,顯示了 VSS系統(tǒng)100的另一示例性功能框圖。構(gòu)建模塊202可包括交叉編譯器模塊106、解析模塊114以及封裝模塊126。構(gòu)建模塊202還可包括壓縮模塊 206。壓縮模塊206可將源代碼文件102壓縮進(jìn)源代碼壓縮文件210中。壓縮模塊206 可將XML文件122、源代碼DLL文件130、靜態(tài)庫文件134以及源代碼壓縮文件210壓縮進(jìn)壓縮文件214中。僅用于示例,當(dāng)被用戶輸入觸發(fā)時(shí),壓縮模塊206可創(chuàng)建壓縮文件214,并把XML文件122、源代碼DLL文件130、靜態(tài)庫文件134以及源代碼壓縮文件210壓縮進(jìn)壓縮文件214中。盡管沒有示出,壓縮模塊206還可將定義文件118和一個(gè)或多個(gè)其它文件壓縮進(jìn)壓縮文件214中。示例性虛線218示出了在第一操作系統(tǒng)和第二操作系統(tǒng)之間的示例性分割?,F(xiàn)在參考圖3,顯示了第二操作系統(tǒng)的示例性文件結(jié)構(gòu)300。文件結(jié)構(gòu)300可包括N個(gè)第一級項(xiàng)目302,其中N是大于零的整數(shù)。僅用于示例,第一級項(xiàng)目302可包括文件夾、文件或其它合適項(xiàng)目。每個(gè)第一級項(xiàng)目302可包括一個(gè)或多個(gè)被稱為第二級項(xiàng)目的子項(xiàng)目。僅用于示例,第一級項(xiàng)目310包括第二級項(xiàng)目314和318。每個(gè)第二級項(xiàng)目可包括一個(gè)或多個(gè)子項(xiàng)目。第二級項(xiàng)目的子項(xiàng)目可被稱為第三級項(xiàng)目。僅用于示例,第二級項(xiàng)目314包括第三級項(xiàng)目322。每個(gè)第三級項(xiàng)目可包括一個(gè)或多個(gè)子項(xiàng)目等等。文件結(jié)構(gòu)300可在第一視圖窗格326中顯示。當(dāng)從第一視圖窗格326中選擇文件結(jié)構(gòu)300的一個(gè)項(xiàng)目時(shí),所選項(xiàng)目的子項(xiàng)目,如果存在,可以展示在第二視圖窗格330中。僅用于示例,當(dāng)在第一視圖窗格326中選擇第二級項(xiàng)目314時(shí),第二級項(xiàng)目314的子項(xiàng)目顯示在第二視圖窗格330中。再參考圖2并繼續(xù)參考圖3,用戶可將壓縮文件214存儲作為文件結(jié)構(gòu)300的一個(gè)預(yù)先確定的項(xiàng)目的子項(xiàng)目。僅用于示例,用戶可將壓縮文件214存儲作為第二級項(xiàng)目314 的子項(xiàng)目(即,第三級項(xiàng)目),如圖3中的實(shí)例所示。在第二操作系統(tǒng)中可運(yùn)行的解壓縮模塊 224選擇性地將壓縮文件214解壓縮。更具體地,解壓縮模塊224將壓縮在壓縮文件214中的文件提取到選定位置。僅用于示例,解壓縮模塊224可將文件提取到第二級項(xiàng)目314的子項(xiàng)目,如圖3的實(shí)例所示。源代碼壓縮文件210可被提取成為第三級項(xiàng)目322的子項(xiàng)目(即,第四級項(xiàng)目)。以這種方式,源代碼壓縮文件210可保持與其它提取的文件分開。
建模模塊160可包括⑶I模塊240、數(shù)據(jù)獲取模塊244、配置模塊248、模型更新模塊252以及仿真模塊256。當(dāng)用戶打開建模/仿真軟件時(shí),GUI模塊240可為用戶打開和顯示第一 GUI?,F(xiàn)在參考圖4,顯示了示例性第一⑶I 402的圖。第一⑶I 402可包括第一組預(yù)定選項(xiàng),如選項(xiàng)406、選項(xiàng)410等。僅用于示例,第一組預(yù)定選項(xiàng)可包括算數(shù)運(yùn)算符、邏輯運(yùn)算符、比較運(yùn)算符、數(shù)學(xué)函數(shù)、計(jì)數(shù)器和定時(shí)器、延遲塊、子系統(tǒng)塊、非線性塊、控制塊以及濾波器和平均。第一組預(yù)定選項(xiàng)還可包括例如參數(shù)和常量、信號、分析塊(如源和匯),模型文檔、之前已用塊、例子以及基于模型的代碼生成選項(xiàng)414。當(dāng)用戶選擇基于模型的代碼生成選項(xiàng)414時(shí),⑶I模塊240可為用戶打開和顯示第二⑶I?,F(xiàn)在參考圖5,顯示了示例性第二⑶I 502的圖。第二⑶I 502可包括第二組預(yù)定選項(xiàng),如選項(xiàng)506、選項(xiàng)510等。僅用于示例,第二組預(yù)定選項(xiàng)可包括數(shù)據(jù)對象向?qū)нx項(xiàng)、模型輔助選項(xiàng)、內(nèi)部類型創(chuàng)建選項(xiàng)、遺留代碼選項(xiàng)、環(huán)境控制器選項(xiàng)以及軟件在環(huán)(SIL)選項(xiàng) 514。當(dāng)用戶選擇SIL選項(xiàng)514時(shí),⑶I模塊240可為用戶打開和顯示第一 SIL⑶I?,F(xiàn)在參考圖6,顯示了示例性第一 SIL⑶I 602的圖。當(dāng)用戶首先選擇SIL選項(xiàng) 514時(shí),為用戶顯示處于初始狀態(tài)(例如,空白)的SIL模塊606。總體而言,SIL模塊606、 SIL模塊606的輸入(未示出)以及SIL模塊606的輸出(未示出)可被稱為虛擬模型。模型可包括零到N個(gè)SIL塊。在給定時(shí)間,每個(gè)SIL塊與單獨(dú)一個(gè)DLL文件相關(guān)。但是,多于一個(gè)的SIL塊可以使用相同的底層DLL文件或不同的底層DLL文件。SIL塊可被視為類似建模環(huán)境中的任何其它塊。用戶可以通過菜單610加載以前保存的虛擬模型。僅用于示例,菜單610可包括文件菜單,用戶通過文件菜單可選擇打開選項(xiàng)(未示出)和從一個(gè)或多個(gè)以前保存的虛擬模型中選擇以前保存的虛擬模型。當(dāng)用戶加載以前保存的虛擬模型時(shí),GUI模塊240在第一 SIL⑶I 602中顯示以前保存的虛擬模型。用戶可通過第一 SIL⑶I 602選擇虛擬模型。僅用于示例,用戶可通過雙擊SIL 模塊606或者以其它合適的方式選擇虛擬模型。SIL模塊606的選擇將被隨后討論,以前保存的虛擬模型的選擇可導(dǎo)致相似或相同的結(jié)果。當(dāng)選擇虛擬模型時(shí),GUI模塊240可為用戶打開和顯示第二 SIL⑶I。現(xiàn)在參考圖7,顯示了示例性第二 SIL⑶I 702的圖。第二 SIL⑶I 702包括多個(gè)域,用戶可使用這些域來配置所選的虛擬模型和/或被所選虛擬模型調(diào)用的函數(shù)。僅用于示例,第二 SIL GUI 702可包括SIL構(gòu)建域705、函數(shù)域710、變量域714、輸入域718以及輸出域722。數(shù)據(jù)獲取模塊244為SIL構(gòu)建域706、函數(shù)域710和變量域714獲取數(shù)據(jù)。數(shù)據(jù)獲取模塊244基于獲取的數(shù)據(jù)產(chǎn)生SIL構(gòu)建域706、函數(shù)域710和變量域714。更具體地,數(shù)據(jù)獲取模塊244基于獲取的數(shù)據(jù)分別產(chǎn)生SIL構(gòu)建域706的菜單(S卩,下拉菜單)740、函數(shù)域710的菜單744和變量域714的菜單748。關(guān)于SIL構(gòu)建域706,數(shù)據(jù)獲取模塊244可查看文件結(jié)構(gòu)300中的預(yù)定項(xiàng)目的子項(xiàng)目。僅用于示例,在解壓縮模塊224將文件提取到第二級項(xiàng)目314的情況下,數(shù)據(jù)獲取模塊 244可查看第二級項(xiàng)目314的子項(xiàng)目。數(shù)據(jù)獲取模塊244可獲取文件結(jié)構(gòu)300中的預(yù)定項(xiàng)目的預(yù)定類型子項(xiàng)目的名稱。僅用于示例,數(shù)據(jù)獲取模塊244可獲取文件結(jié)構(gòu)300中的預(yù)定項(xiàng)目的XML文件的名稱。 數(shù)據(jù)獲取模塊244可基于獲取的數(shù)據(jù)產(chǎn)生SIL構(gòu)建域706的下拉菜單740。僅用于示例,數(shù)據(jù)獲取模塊244可用XML文件的名稱產(chǎn)生下拉菜單740。當(dāng)用戶選擇SIL構(gòu)建域 706的下拉菜單740時(shí),⑶I模塊240選擇性地顯示下拉菜單740中的名稱。用戶可從下拉菜單740中選擇名稱。該名稱對應(yīng)于用戶可配置的虛擬模型,包括采用一個(gè)或多個(gè)其它虛擬模型的仿真,和/或用于執(zhí)行其它合適的操作。一旦用戶選擇了名稱(即,虛擬模型),數(shù)據(jù)獲取模塊244獲取關(guān)于所選虛擬模型相關(guān)的函數(shù)的數(shù)據(jù)。與所選虛擬模型相關(guān)的函數(shù)可被定義在例如XML文件中。數(shù)據(jù)獲取模塊 244可用相關(guān)函數(shù)的名稱產(chǎn)生函數(shù)域710的下拉菜單744。相關(guān)函數(shù)可包括例如被所選虛擬模型調(diào)用的一個(gè)或多個(gè)函數(shù)、空函數(shù)或系統(tǒng)函數(shù)。被所選虛擬模型調(diào)用的函數(shù)可被定義在例如XML文件中。當(dāng)選擇了可被所選虛擬模型調(diào)用的空函數(shù)或一個(gè)函數(shù)時(shí),用戶可以通過變量域 714選擇性地配置輸入和輸出。當(dāng)所選虛擬模型將要使用一個(gè)或多個(gè)可用變量而不調(diào)用相關(guān)函數(shù)時(shí),可選擇空函數(shù)。數(shù)據(jù)獲取模塊244獲取與所選虛擬模型相關(guān)的變量以及模型文件176可用的變量。與所選虛擬模型相關(guān)的變量可被定義在例如XML文件中。數(shù)據(jù)獲取模塊244可用相關(guān)變量產(chǎn)生變量域714的下拉菜單748。當(dāng)用戶選擇了變量域714時(shí),數(shù)據(jù)獲取模塊244選擇性地顯示下拉菜單748中的變量的名稱。用戶可從下拉菜單748中選擇一個(gè)變量。一旦從下拉菜單748中選擇了一個(gè)變量,用戶可增加所選變量作為輸入或輸出。用戶可通過選擇變量域714的輸入選項(xiàng)752 來增加所選變量作為輸入。用戶可通過選擇變量域714的輸出選項(xiàng)756來增加所選變量作為輸出。用戶可增加一個(gè)或多個(gè)其它輸入和/或輸出。 當(dāng)增加可用變量作為輸入時(shí),數(shù)據(jù)獲取模塊244將所選變量增加到輸入域718中。 更具體地,數(shù)據(jù)獲取模塊244將所選變量增加到輸入域718的輸入列表760中。數(shù)據(jù)獲取模塊244可為增加的輸入獲取單位數(shù)據(jù)以及為增加的輸入獲取尺寸數(shù)據(jù)。數(shù)據(jù)獲取模塊244 分別將單位數(shù)據(jù)和尺寸數(shù)據(jù)增加到輸入域718的單位列表764中和尺寸列表768中。當(dāng)增加所選變量作為輸出時(shí),數(shù)據(jù)獲取模塊244將所選變量增加到輸出域722中。 更具體地,數(shù)據(jù)獲取模塊244將所選變量增加到輸出域722的輸出列表772中。數(shù)據(jù)獲取模塊244可為增加的輸出獲取單位數(shù)據(jù)以及為增加的輸出獲取尺寸數(shù)據(jù)。數(shù)據(jù)獲取模塊244 分別將單位數(shù)據(jù)和尺寸數(shù)據(jù)增加到輸出域722的單位列表776中和尺寸列表780中。當(dāng)通過函數(shù)域710選擇了所選虛擬模型調(diào)用的一個(gè)函數(shù)(S卩,不是空函數(shù)或系統(tǒng)函數(shù))時(shí),數(shù)據(jù)獲取模塊244獲取與該函數(shù)預(yù)相關(guān)的輸入和/或輸出。預(yù)相關(guān)的輸入和/或輸出可被定義在例如XML文件中。數(shù)據(jù)獲取模塊244分別基于預(yù)相關(guān)輸入和預(yù)相關(guān)輸出產(chǎn)生輸入域718和輸出域722 (的列表)。用戶可通過輸入域718的輸入刪除選項(xiàng)784來從輸入域718刪除所增加的輸入。 用戶可通過輸出域722的輸出刪除選項(xiàng)788來刪除所增加的輸出。但是,在某些情況下, 可能無法刪除預(yù)相關(guān)輸入和預(yù)相關(guān)輸出。用戶可以通過保存選項(xiàng)792來保存第二 SIL⑶I 702 (和第一 SIL⑶I 602)的配置。用戶可以通過取消選項(xiàng)796來丟棄未保存的配置。
現(xiàn)在參考圖8,顯示了第一 SIL⑶I 602的另一示例性圖。模型更新模塊252基于第二 SIL⑶I 702的配置,更新通過第一 SIL⑶I 602顯示的虛擬模型802。模型更新模塊 252基于在函數(shù)域710的下拉菜單744中所選的函數(shù)更新SIL模塊606的名稱部分806。
模型更新模塊252為輸入域718的每個(gè)輸入創(chuàng)建和顯示輸入指示符814(例如,箭頭指向)。模型更新模塊252為輸出域722的每個(gè)輸出創(chuàng)建和顯示輸出指示符818 (例如, 箭頭來源)。對于每個(gè)輸入和輸出指示符,模型更新模塊252可顯示變量名稱和單位。模型更新模塊252還可顯示尺寸和/或其它合適的數(shù)據(jù)。分別在822和826圖示了模型更新模塊252如何為輸入指示符和輸出指示符顯示名稱和單位的示例。當(dāng)用戶選擇保存選項(xiàng)792時(shí),模型更新模塊252可基于第二 SIL⑶I 702的配置, 更新通過第一 SIL⑶I 602顯示的虛擬模型。在各種實(shí)現(xiàn)中,模型更新模塊252可在每次第二 SIL⑶I 702的一個(gè)域發(fā)生改變的時(shí)候或以其它合適的頻率更新第一 SIL⑶I 602。圖9包括第二 SIL GUI 702的另一示例性圖。輸入域718還可包括輸入向上選項(xiàng) 902和輸入向下選項(xiàng)906。輸入向上選項(xiàng)902或輸入向下選項(xiàng)906可用于移動(dòng)在第一 SIL GUI 602中相對于非選擇輸入的所選擇輸入顯示的地方。僅用于示例,當(dāng)用戶選擇了在輸入列表760中的一個(gè)輸入(或與一個(gè)輸入相關(guān)的單位或尺寸)時(shí),模型更新模塊252可分別在每次用戶選擇輸入向上選項(xiàng)902或輸入向下選項(xiàng)906時(shí),在第一 SIL⑶I 602中移動(dòng)所選擇的輸入向上或向下一個(gè)位置。這在圖10中通過示例性虛箭頭組1002和1006圖示?,F(xiàn)在參考圖11,顯示了第二 SIL⑶I 702的另一示例性圖。當(dāng)用戶從函數(shù)域710 的下拉菜單744中選擇系統(tǒng)函數(shù)時(shí),GUI模塊240激活調(diào)度選項(xiàng)1102。更具體地,當(dāng)用戶從函數(shù)域710中選擇系統(tǒng)函數(shù)時(shí),GUI模塊240使調(diào)度選項(xiàng)1102可用于用戶選擇。當(dāng)用戶選擇調(diào)度選項(xiàng)1102時(shí),⑶I模塊240打開第三SIL⑶I。現(xiàn)在參考圖12,顯示了示例性第三SIL⑶I 1202的圖。用戶可例如通過調(diào)度選項(xiàng)1102配置一個(gè)或多個(gè)任務(wù)的執(zhí)行和/或調(diào)度。任務(wù)可用模型文件176在所選擇虛擬模型的仿真中執(zhí)行。僅用于示例,任務(wù)可包括算法任務(wù)、函數(shù)、操作系統(tǒng)任務(wù)、事件任務(wù)以及其它合適類型的任務(wù)。操作系統(tǒng)任務(wù)和事件任務(wù)可顯示在第三SIL⑶I 1202的第一視圖窗格1206中, 算法任務(wù)可顯示在第三SIL⑶I 1202的第二視圖窗格1210中,函數(shù)可顯示在第三SIL⑶I 1202的第三視圖窗格1214中。更具體地,操作系統(tǒng)任務(wù)列表1220和事件任務(wù)列表1224可顯示在第一視圖窗格1206中。算法任務(wù)列表1228可顯示在第二視圖窗格1210中,函數(shù)任務(wù)列表1232可顯示在第三視圖窗格1214中。每個(gè)列表可包括N個(gè)任務(wù),其中N是大于零的整數(shù)。當(dāng)選擇了調(diào)度選項(xiàng)1102時(shí),數(shù)據(jù)獲取模塊244可獲取操作系統(tǒng)任務(wù)。當(dāng)選擇了調(diào)度選項(xiàng)1102時(shí),數(shù)據(jù)獲取模塊244還可獲取算法任務(wù)和函數(shù)。僅用于示例,操作系統(tǒng)任務(wù)、算法任務(wù)和函數(shù)可定義在XML文件中。數(shù)據(jù)獲取模塊244用各獲取的任務(wù)產(chǎn)生列表和顯示各列表。操作系統(tǒng)任務(wù)可被稱為控制系統(tǒng)軟件任務(wù)。操作系統(tǒng)任務(wù)可指在仿真環(huán)境中執(zhí)行的任務(wù)。算法任務(wù)可被稱為組件模型任務(wù)。函數(shù)可被稱為組件軟件任務(wù)。GUI模塊240可用第一類型圖標(biāo)或指示符(未示出),如復(fù)選標(biāo)記,顯示每個(gè)獲取的操作系統(tǒng)任務(wù)。第一類型圖標(biāo)或指示符的實(shí)例在1252示出ο每個(gè)操作系統(tǒng)任務(wù)可包括一個(gè)或多個(gè)子任務(wù),如一個(gè)或多個(gè)算法任務(wù)和/或一個(gè)或多個(gè)函數(shù)。僅用于示例,示例性操作系統(tǒng)任務(wù)1240可包括函數(shù)1244和算法任務(wù)1248。 用戶可用通過第三SIL GUI 1202選擇的操作系統(tǒng)任務(wù)調(diào)度(如,增加)要執(zhí)行的算法任務(wù)。 用戶可額外地或替代地用通過第三SIL⑶I 1202選擇的操作系統(tǒng)任務(wù)調(diào)度(如,增加)要執(zhí)行的函數(shù)。僅用于示例,通過從各列表選擇算法任務(wù)或函數(shù)以及將所選擇的算法任務(wù)或函數(shù)拖進(jìn)第一視圖窗格1206中的一個(gè)操作系統(tǒng)任務(wù)中,用戶可用一個(gè)操作系統(tǒng)任務(wù)調(diào)度要執(zhí)行的算法任務(wù)或函數(shù)。⑶I模塊240可用第二類型圖標(biāo)或指示符(未示出),如A,顯示每個(gè)增加的算法任務(wù)。第二類型圖標(biāo)或指示符的實(shí)例在1256示出。GUI模塊240可用第三類型圖標(biāo)或指示符 (未示出),如F,顯示每個(gè)增加的函數(shù)。第三類型圖標(biāo)或指示符的實(shí)例在1260示出。對于在算法任務(wù)列表1228中的每個(gè)算法,⑶I模塊240可顯示計(jì)數(shù)。計(jì)數(shù)還可為函數(shù)任務(wù)列表1232中的每個(gè)函數(shù)顯示。僅用于示例,算法任務(wù)1248和函數(shù)1244的計(jì)數(shù)用 #圖示。給定算法任務(wù)或函數(shù)的計(jì)數(shù)代表在操作系統(tǒng)任務(wù)列表1220中出現(xiàn)的給定算法任務(wù)或函數(shù)實(shí)例的數(shù)量。計(jì)數(shù)是大于或等于零的整數(shù)。用戶可通過選擇保存和繼續(xù)選項(xiàng)1270來保存第三SIL⑶I 1202的配置。當(dāng)用戶選擇保存和繼續(xù)選項(xiàng)1270時(shí),⑶I模塊240可顯示第二 SIL⑶I 702。⑶I模塊240還可關(guān)閉第三SIL GUI 1202。 現(xiàn)在參考圖13,顯示了第三SIL⑶I 1202的另一示例性圖。用戶可通過第三SIL GUI 1202停用或啟動(dòng)在操作系統(tǒng)任務(wù)列表1220中調(diào)度的任務(wù)。僅用于示例,用戶可通過首先選擇(如,右擊)調(diào)度的任務(wù)停用調(diào)度的任務(wù)。當(dāng)選擇了調(diào)度的任務(wù)時(shí),GUI模塊240可顯示下拉菜單,用戶通過下拉菜單可選擇停用或啟動(dòng)。當(dāng)停用了調(diào)度的任務(wù)時(shí),在操作系統(tǒng)任務(wù)列表1220的正常執(zhí)行期間,不執(zhí)行該任務(wù)。GUI模塊240可用第四類型圖標(biāo)或指示符 (未示出),如X,顯示各停用的算法任務(wù)。第四類型圖標(biāo)或指示符的實(shí)例在1302示出。停用的任務(wù)仍然在操作系統(tǒng)任務(wù)列表1220中,但是在操作系統(tǒng)任務(wù)執(zhí)行期間不執(zhí)行。用戶還可通過第三SIL⑶I 1202從操作系統(tǒng)任務(wù)列表1220中刪除所增加的任務(wù)。僅用于示例,用戶可通過首先選擇(如,右擊)增加的任務(wù)而刪除所增加的任務(wù)。當(dāng)選擇了調(diào)度的任務(wù)時(shí),GUI模塊240可顯示下拉菜單,用戶通過下拉菜單可選擇停用、啟動(dòng)或刪除。如果用戶從下拉菜單中選擇了刪除,那么所增加的任務(wù)可從操作系統(tǒng)任務(wù)列表1220中移除?,F(xiàn)在參考圖14,顯示了第三SIL⑶I 1202的另一示例性圖。用戶還可通過第三 SIL GUI 1202在其它時(shí)間再次調(diào)度已調(diào)度的任務(wù)。僅用于示例,當(dāng)函數(shù)1244在操作系統(tǒng)任務(wù)列表1220中調(diào)度時(shí),用戶可從函數(shù)任務(wù)列表1232中選擇函數(shù)1244。用戶可將所選擇的函數(shù)1244從第三視圖窗格1214拖進(jìn)第一視圖窗格1206中,更具體地,拖進(jìn)一個(gè)已調(diào)度的任務(wù)。當(dāng)用戶終止了對函數(shù)1244的選擇時(shí),⑶I模塊240將函數(shù)1244插入到一個(gè)已調(diào)度的任務(wù)的上面或下面來再次調(diào)度函數(shù)1244。當(dāng)用戶再次調(diào)度操作系統(tǒng)任務(wù)列表1220中的函數(shù)1244時(shí),⑶I模塊240還可停用函數(shù)1244 (在1402圖示)并將函數(shù)1244標(biāo)記為停用的。用戶還可通過第三SIL⑶I 1202繞過已調(diào)度的任務(wù)以支持另一個(gè)任務(wù)。僅用于示例,當(dāng)函數(shù)1244在操作系統(tǒng)任務(wù)列表1220中調(diào)度時(shí),用戶可選擇將函數(shù)1244繞過。例如, 通過右擊函數(shù)1244以及選擇“繞過”選項(xiàng),用戶可選擇將函數(shù)1244繞過。當(dāng)函數(shù)1244要被執(zhí)行時(shí),用戶可稍后從函數(shù)任務(wù)列表1232中選擇另一個(gè)要執(zhí)行的函數(shù)來替代函數(shù)1244。 以這種方式,函數(shù)1244被繞過。再次參考圖2,配置模塊248基于第二 SIL⑶I 702和第三SIL⑶I 1202以及XML 文件122的配置生成基于模型的代碼(即,在模型源代碼文件164中的代碼)。模型更新模塊252基于基于模型的代碼和源代碼DLL文件130在建模/仿真環(huán)境中生成模型。模型更新模塊252可進(jìn)一步基于靜態(tài)庫文件134生成模型。仿真模塊256用例如模型文件(即,車輛裝置模型)、一個(gè)或多個(gè)其它模塊等仿真所生成模型的操作。仿真模塊256還可調(diào)試基于模型的代碼。⑶I模塊240可顯示在一個(gè)或多個(gè)⑶I (未示出)中的仿真。用戶可基于仿真的結(jié)果使用第二 SIL⑶I 702和/或第三 SIL⑶I 1202來再配置和再生成模型。盡管示出的和顯示的是不同的,圖IB和圖2的一個(gè)或多個(gè)模塊可在圖IA的一個(gè)或多個(gè)的模塊中實(shí)現(xiàn)?,F(xiàn)在參考圖15,顯示了描述執(zhí)行車輛系統(tǒng)仿真的示例性方法1500的流程圖。控制可開始于1502,控制基于源代碼生成目標(biāo)代碼。在1506,控制可生成定義文件和XML文件。 控制可基于源代碼和目標(biāo)代碼生成定義文件和XML文件。在1510,控制可生成DLL文件和靜態(tài)庫文件??刂瓶苫谀繕?biāo)代碼和定義文件生成DLL文件和靜態(tài)庫文件。在1514,控制可生成基于模型的源代碼。控制可基于XML文件生成基于模型的源代碼。在1514,控制還可生成虛擬模型并在⑶I中顯示虛擬模型。在1518,控制可有選擇地將一個(gè)或多個(gè)⑶I顯示給用戶和接收用戶配置。在1522, 控制可基于用戶配置更新基于模型的源代碼和虛擬模型。在1526,控制可基于基于模型的源代碼生成可執(zhí)行文件??蓤?zhí)行文件在仿真環(huán)境中是可執(zhí)行的。在1530,控制可執(zhí)行包括虛擬模型的仿真。然后,控制可結(jié)束。本公開的寬泛的教導(dǎo)可以多種形式來實(shí)施。因此,盡管本公開包括具體的實(shí)例,但本公開的真實(shí)范圍不應(yīng)受到此限制,因?yàn)樵谘芯苛烁綀D、說明書和權(quán)利要求后,本領(lǐng)域技術(shù)人員將清楚其它的改型。
權(quán)利要求
1.一種車輛仿真系統(tǒng),包括編譯模塊,基于可由車輛控制模塊執(zhí)行并且與第二類型操作系統(tǒng)兼容的源代碼生成與第一類型操作系統(tǒng)兼容的目標(biāo)代碼;基于所述源代碼和所述目標(biāo)代碼生成定義文件和可擴(kuò)展標(biāo)記語言(XML)文件的解析模塊;基于所述目標(biāo)代碼和所述定義文件生成庫文件的封裝模塊;基于所述XML文件和虛擬模型的用戶配置而生成用于所述虛擬模型的基于模型的源代碼的建模模塊;以及用所述虛擬模型仿真車輛裝置的操作的仿真模塊。
2.如權(quán)利要求1的車輛仿真系統(tǒng),其特征在于,所述建模模塊包括圖形用戶接口(⑶I)模塊,在第一⑶I中顯示可配置模塊,并且當(dāng)選擇了所述可配置模塊時(shí),顯示第二⑶I ;數(shù)據(jù)獲取模塊,從所述XML文件獲取用于所述虛擬模型的數(shù)據(jù),且基于所述獲取的數(shù)據(jù)選擇性地產(chǎn)生所述第二⑶I的菜單。
3.如權(quán)利要求2的車輛仿真系統(tǒng),其特征在于,所述建模模塊進(jìn)一步包括配置模塊,基于所述XML文件和通過所述第二 GUI獲得的所述用戶配置輸入而生成所述基于模型的源代碼;以及模型更新模塊,基于通過所述第二 GUI獲得的所述用戶配置輸入而更新顯示在所述第一⑶I中的所述可配置模塊。
4.如權(quán)利要求2的車輛仿真系統(tǒng),其特征在于,所述數(shù)據(jù)獲取模塊通過第一菜單顯示用于選擇的所述虛擬模型,其中,所述數(shù)據(jù)獲取模塊通過第二菜單顯示用于選擇的由所述虛擬模型調(diào)用的函數(shù);其中,所述數(shù)據(jù)獲取模塊通過第三菜單顯示額外作為所述函數(shù)的輸入和輸出中的一個(gè)的變量。
5.如權(quán)利要求2的車輛仿真系統(tǒng),其特征在于,當(dāng)選擇了所述第二GUI的任務(wù)調(diào)度選項(xiàng)時(shí),所述⑶I模塊顯示第三⑶I。
6.如權(quán)利要求5的車輛仿真系統(tǒng),其特征在于,所述配置模塊進(jìn)一步基于通過所述第三⑶I而獲得的配置輸入而生成所述基于模型的源代碼。
7.如權(quán)利要求5的車輛仿真系統(tǒng),其特征在于,所述數(shù)據(jù)獲取模塊基于所述XML文件生成任務(wù)列表。
8.如權(quán)利要求7的車輛仿真系統(tǒng),其特征在于,所述數(shù)據(jù)獲取模塊通過所述第三GUI 顯示算法任務(wù)和函數(shù)中的至少一個(gè)用于補(bǔ)充所述任務(wù)列表。
9.如權(quán)利要求7的車輛仿真系統(tǒng),其特征在于,進(jìn)一步包括基于所述庫文件和所述基于模型的源代碼生成可執(zhí)行文件的可執(zhí)行生成模塊,其中,所述執(zhí)行模塊使用所述可執(zhí)行文件、所述任務(wù)列表和所述裝置的虛擬模型仿真所述裝置的操作。
10.一種車輛仿真方法,包括基于可由車輛控制模塊執(zhí)行且與第二類型操作系統(tǒng)兼容的源代碼而生成與第一類型操作系統(tǒng)兼容的目標(biāo)代碼;基于所述源代碼和所述目標(biāo)代碼生成定義文件和可擴(kuò)展標(biāo)記語言(XML)文件; 基于所述目標(biāo)代碼和所述定義文件生成庫文件;基于所述XML文件和虛擬模型的用戶配置生成用于所述虛擬模型的基于模型的源代碼;以及用所述虛擬模型仿真車輛裝置的操作。
全文摘要
本發(fā)明涉及車輛仿真系統(tǒng),包括編譯模塊、解析模塊、封裝模塊、建模模塊以及仿真模塊。編譯模塊基于可由車輛控制模塊執(zhí)行并且與第二類型操作系統(tǒng)兼容的源代碼生成與第一類型操作系統(tǒng)兼容的目標(biāo)代碼。解析模塊基于源代碼和目標(biāo)代碼生成定義文件和可擴(kuò)展標(biāo)記語言(XML)文件。封裝模塊基于目標(biāo)代碼和定義文件生成庫文件。建模模塊基于XML文件和虛擬模型的用戶配置生成用于虛擬模型的基于模型的源代碼。仿真模塊用虛擬模型仿真車輛裝置的操作。
文檔編號G05B17/02GK102262394SQ201110135078
公開日2011年11月30日 申請日期2011年5月24日 優(yōu)先權(quán)日2010年5月24日
發(fā)明者G.費(fèi)里斯, H.M.埃斯法罕, M.A.克羅平斯基, M.A.斯蒂爾, M.考, O.馬修斯, W-C.林 申請人:通用汽車環(huán)球科技運(yùn)作有限責(zé)任公司