麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

使用模型事件調度模型組件的執行的系統和方法

文檔序號:6655317閱讀:331來源:國知局
專利名稱:使用模型事件調度模型組件的執行的系統和方法
技術領域
本發明的示范實施例一般涉及建模環境內的模型組件的執行,更具體來說使用模型事件來調度建模組件的執行。
相關的申請本發明的示范實施例涉及目前待決的美國專利申請,標題為“在塊圖建模中使用執行場景的系統和方法”,序列號為10/414,644,其內容通過引用結合于本文。
背景技術
馬薩諸塞州內蒂克的Math Works公司的SimulinkTM是圖形建模環境的一個示例,確切地來說塊圖環境的示例。SimulinkTM允許用戶創建動態系統的圖畫模型。模型由一組符號(稱為塊)組成。每個塊可以具有零或多個輸入端口、輸出端口和狀態。每個塊表示一個動態系統,其輸入、狀態和輸出可以在特定時間點上連續和/或離散地改變。使用線將塊的端口彼此連接,以及它表示塊之間的數據相關性。可以將信號表示為沿著將塊圖中的塊連接的線上分布的值。
如果塊所有的輸入、狀態和輸出連續地或按一個固定的周期速率改變,則將該塊視為“單速率”塊。如果輸入、狀態和輸出一起或單獨在兩個或以上速率定義的時間點上更新,則將該塊視為“多速率”塊。如果模型在其中具有多速率塊,或按不同速率運行的兩個或以上的單速率塊,則該模型本身是多速率的(相對于單速率)。
如果塊的功能定義是在它所在的模型的環境之外,則稱該塊為“原子”。SimulinkTM具有一組預定義的原子塊(例如,求和、乘積、增益),以及用戶還可以通過用戶書寫的“S-函數”創建他們自己的原子塊。作為原子,S-函數的功能定義是在模型的場景之外指定的,例如使用C代碼或MATLAB′m′代碼指定的?!皬秃稀眽K是其功能定義是通過模型使用多組原子和復合塊指定的塊。SimuliakTM允許用戶指定“子系統”,其定義是由互連的多組預定義塊、用戶書寫的S-函數和其他SimulinkTM子系統構成的復合塊。子系統可以使用“模型層次結構”按層次結構嵌套。
SimulinkTM采樣速率提供一種用于指定模型組件的執行頻率的機制。圖1描述一種在控制模型組件的執行時使用采樣速率的示例。例如,設計者可以指定被控對象塊4按連續速率執行,以及控制器塊10按某個周期性的離散速率執行。模型組件的執行由SimulinkTM基礎設施在仿真時調度,或由操作系統來調度以供實時的實施。在模型的動態性與這些速率的調度之間沒有因果關系;組件執行的瞬間是預定的。
SimulinkTM支持采樣速率的傳播。例如,圖1中的增益塊8和12的速率保留不指定,而或指定為“繼承”。在此情況中,假定已指定被控對象4和控制器10塊的速率,增益塊8和12從被控對象和控制器塊繼承它們的速率。
SimulinkTM還提供用于指定模型的動態性與模型組件的執行之間的因果關系的機制,包括函數調用子系統、觸發子系統、迭代器(iterator)子系統、動作子系統和啟用的子系統。因果關系的指定允許用戶指定以模型中信號的當前值和過去值以及其他數據為條件的模型組件的執行。
但是,條件執行的范圍一般限于子系統,因為指定這些關系的常規方法不允許將條件執行的范圍定義為隨意一組塊(相對于包括子系統的一組塊)。這是相當大的局限性,因為有許多時候,期望同時執行不在一個子系統和/或在模型中非鄰接的一組塊。例如,條件執行的常規方法不允許在開機(power-up)或關機(power-down)時分布在模型上的不同塊的執行。因此,組成因果關系的方式是受限制的。指定模型的動態性與模型組件的執行之間的因果關系的常規方法不允許用戶啟用子系統中一半的塊然后觸發其他塊。相似地,不能通過一個觸發來觸發子系統中的一些塊,而通過另一個觸發來觸發其余的塊。
指定模型的動態性與模型組件的執行之間的因果關系的常規機制的另一個缺點是這些機制需要在塊圖中制作圖形連接來指示因果性。這可能導致一些用戶感覺塊圖“雜亂”的外觀。用于指定因果關系的常規機制的另一個局限性是,這些常規機制不會自然而然地映射到如初始化、異?;蛉蝿盏母呒壾浖虿僮飨到y構造。相似地,因為指定該因果關系的常規機制缺乏與因果關系相關聯的第一類對象,所以難以對該關系配置和指派特征。對于用戶來說,還難以直接影響與這些機制相關聯的隱式動態性,例如與被啟用的子系統相關聯的啟用和禁用方法,并基于這些隱式動態性有條件地執行模型的組件。

發明內容
本發明的示范實施例提供一種指定和配置模型的動態性與模型的組件的執行之間的因果關系的機制。模型組件執行依賴于“模型事件”的出現。首先,在建模環境中定義模型事件。在事件定義中指定的模型中出現條件促使事件被“發布”。與事件的出現相關聯的模型組件“接收到”發布事件的通知,然后執行。可以指派在子系統內被隔離的組件以在出現事件時執行,如同模型內非鄰接的組件所能夠執行的一樣??梢圆辉谀P偷囊暣爸欣L制連接組件的圖形指示符而指定模型事件和組件執行之間的關聯。
在一個實施例中,在具有至少一個含多個可執行組件的模型的建模環境中,一種方法可監控針對指定事件的出現的模型的執行。當確定指定事件出現時,將事件的出現發布(posted)到事件處理程序。然后,執行組件以響應事件處理程序的通知。
在另一個實施例中,在具有含多個可執行組件的至少一個模型的建模環境中,一種方法可監控針對指定事件的出現的模型的執行。當確定指定事件出現時,中斷另一個事件的執行以響應確定了指定事件的發生。然后,執行模型中的操作以響應確定了指定事件的發生。
在一個實施例中,在建模環境中,系統包括具有多個可執行組件的圖形模型。該系統還包括事件處理程序。事件處理程序從發生指定事件的模型接收通知。系統還包括從發生指定事件的事件處理程序接收通知的至少一個組件。接收組件響應該通知來執行。


圖1描述了利用采樣速率的常規塊圖模型;圖2描述了利用本發明的示范實施例的發布過程的模型;圖3描述了根據本發明的示范實施例在StateflowTM環境中發布和接收事件;圖4是啟用的子系統中發生隱式事件的時序圖;圖5描述了在啟用的子系統中使用隱式事件的模型;圖6A描述了在相同任務內且在沒有事件轉換塊的情況下發生事件轉換的模型;圖6B描述了使用事件轉換塊在不同任務中發生事件轉換的模型;圖6C描述了在模型中使用事件轉換塊的時間線;圖7A描述了利用本發明的示范實施例將事件處理為異常的模型;圖7B描述了利用本發明的示范實施例以使用分支優先級塊來控制執行次序的模型;圖7C突出了圖7B模型中的分支優先級塊指示的執行次序;圖7D描述了利用本發明的示范實施例以通過塊組來控制執行次序的模型;圖8是本發明的示范實施例中對比正常和異常事件的處理的數據流程圖;圖9描述了適于實現本發明的示范實施例的環境;以及圖10是用于將采樣速率與事件發生相關聯的遵循本發明的示范實施例的步驟序列的高級視窗的流程圖。
具體實施例方式
本發明的示范實施例提供一種將模型組件的執行和指定模型事件的發生聯系起來的機制。將采樣速率指定為事件,由此建立了模型組件的執行與模型動態性間的聯系??梢詫⒎青徑幽P驮嘏渲脼榛谀P褪录某霈F有條件地執行。此外,組件執行的范圍不限于整體中如某些常規系統所要求的子系統?;谑录霈F的組件的條件執行還可以用于異常處理。可以不在模型的視窗中繪制附加的組件連接而建立模型組件與事件之間的關聯。
為了簡明,本文所包含的本發明的示范實施例的解釋參考了基于SimulinkTM和MATLABTM的建模環境(二者都是馬薩諸塞州內蒂克的Math Works公司的應用程序)。但是,本領域技術人員應該認識到除了包括馬薩諸塞州內蒂克的Math Works公司的StateflowTM的傳統的塊圖、狀態圖示應用程序(state diagramming application)以及數據流程圖示環境(data flow diagramming environment)之外,本發明的示范實施例還可以應用于其他建模環境和其他類型的圖。
如本發明的示范實施例中使用的SimulinkTM模型事件(下文也稱為“事件”或“SimulinkTM事件”)可以明確地在MATLAB工作區中被定義為對象。其屬性可以包括名稱、顏色、可選的期望速率、可選的任務、以及有關應該如何實施該事件對應的功能的解釋(例如嵌入(inline)對明確定義的簽名)。
已定義的事件可以由模型中的塊基于用戶定義的隨意條件來“發布”?!敖邮铡痹撌录膲K在它被發布時執行。“發布”指向事件處理程序發送指示特定事件發生的消息。然后,當事件發布時,注冊到或在其他方面掛接到事件處理程序的塊被告知事件的出現。
圖2描述了利用發布過程的模型20的示例。事件“A”已經定義并被賦予顏色“藍色”的屬性。在模型20中,塊“發布”22已配置為(如該附圖的對話框所示)當在其輸入端口26的信號24大于零時有條件地發布事件“A”。該對話框為發布塊22從用戶請求多個參數,包括多個輸入36、該塊據以執行的條件38和指派給定義的模型事件40的名稱。模型20的視窗指示塊“常量”28的的采樣速率已被指定為事件“A”。該采樣速率(即事件“A”的發生)被傳播到已設為繼承它們的采樣速率的塊“單元延遲”30和“輸出1”32。由此所有三個塊接收到事件“A”。所有三個塊28、30和32可以假設事件“A”的“顏色”并在顯示器中向用戶陰影顯示藍色作為表示邏輯關聯的方式。因此,當“正弦波”塊21的輸出是正時,塊“發布”發布“A”,三個塊28、30和32執行,并更新模型的根輸出端口(outport)上的值。
圖2所示的模型示出與本發明的示范實施例提出的子系統的條件執行相關聯的一些問題的解決。有與因果關系相關聯的第一類對象“A”,由此對該關系配置和指派如顏色的特征是可能的。條件執行的范圍不限于子系統。有條件地執行的三個塊28、30和32不被分組到一個母子系統內以及可以從模型20的非鄰接區域中選擇。此外,條件執行的范圍采用速率傳播(僅塊“常量”28指定“A”作為其采樣速率)。這促成一種指定采樣速率的方法,該方法比接收到“A”的每個塊不得不具有明確指定為“A”的采樣速率的其他情況更簡明。還有,塊與事件的關聯不需要在塊圖中發布塊22與常量塊28之間繪制圖形連接來指示因果性?!鞍l布”塊22指定的條件與三個塊28、30和32的執行之間的因果關系通過它們的公共基準到達名稱為“A”的事件對象23。
事件的“范圍”是它所在的工作區的范圍。如果工作區與子系統或模型相關聯,則事件的范圍是該子系統或模型。塊只能指定它們的采樣時間作為事件,此時該事件不超出該塊的范圍內。
圖3描述了另一個發生事件的顯式發布和接收的環境示例,其中更詳細地顯示StateflowTM圖表30和該圖表的組件的塊圖模型32。在該示例中,用戶定義分別具有屬性顏色綠色和藍色的事件“A”34和“B”36。事件34和36都具有指定為20毫秒的采樣速率。Stateflow圖表30則每個20毫秒執行一次,并按嚴格定義的周期性順序發布這些事件。兩個輸入端口塊40和50具有設為事件“A”34和“B”36的采樣速率。其余的塊承接那些事件作為繼承的采樣速率,并陰影顯示為對應于該事件的顏色。一組綠色塊40、42、44和46接收事件“A”并在該事件被發布時執行。同樣地,一組藍色塊50、52、54和56在事件“B”被發布時執行。
一組處理每個事件的塊按它們在模型中排序的塊列表中出現的相對次序執行。排序的塊列表次序由數據相關性確定。因此,每20毫秒,Stateflow圖表30執行一次,以及綠色塊40、42、44和46的鏈從左到右執行,然后藍色塊50、52、54和56的鏈從左到右執行。再者,因為事件的可選采樣速率已經明確地指定為20毫秒,所以執行運行時間檢查以確保那些事件按每20毫秒發布。明確指定事件的速率的一個優點在于無論任何情況下只要相繼的執行之間需要消逝的時間,為該速率生成的任何代碼就可以使用所生成的代碼中的對應的常量采樣時間,而無需如常規情況那樣需要使用定時器。
與定義為工作區對象以及其發布的條件由用戶明確地指定(例如使用SimulinkTM的“發布”塊或Stateflow邏輯)的顯式事件相比,隱式事件由模型構造隱含,并響應那些構造的執行被自動發布。用戶不能發布隱式事件。但是,用戶可以處理隱式事件,這意味著用戶可以定義直接響應隱式事件來執行的模型組件。
本發明的示范實施例包括下表注釋的五種類型的隱式事件

本領域技術人員將認識到,在不背離本發明范圍的前提下,除了上表中列出的那些外,還可以處理其他類型的隱式事件。例如,可以支持的其他類型的隱式事件包括錯誤條件,如乘積塊嘗試除以零時或對數塊嘗試取零的對數時發布的隱式事件。對應于隱式事件的對象自動占據模型的各種工作區,由此用戶可以配置它們的特性。
圖4在時序圖中描述了上表中注釋的隱式事件。圖4示出在啟用子系統或函數調用層次結構中該子系統的派生范圍內的事件的相對時序;該時間變化信號是啟用子系統的信號。所有五種類型的隱式事件具有異步的采樣速率。這些隱式事件包括啟動70、初始化72、啟用74、禁用76和關閉78。
圖5中示出在啟用的子系統90中使用隱式事件的一個示例。子系統90具有與之相關聯的隱式啟用和禁用事件,它們在該子系統啟用和禁用時被發布。塊“零階保持”92具有指定為“禁用”的采樣速率,由此它在隱式禁用事件執行時,即啟用的子系統90禁用時執行。通過傳播,塊“增益1”94也繼承該事件(禁用)作為其采樣速率,當子系統90禁用時這兩個塊一起執行并更新與該子系統輸出端口96相關聯的存儲器。
本發明的示范實施例中的每個事件1-1地映射到用作至已將其采樣速率指定或繼承為該事件的塊所對應的代碼的入口點的函數(這里也稱為“事件處理程序”)。無論何時,只要導致發布事件的條件成立,系統就通過調用該函數來反應。該函數可在代碼生成時嵌入。對是否嵌入事件的函數的選擇是對應事件對象的特性。作為缺省實現,用戶可以選擇嵌入隱式事件的函數,而不嵌入顯式事件的函數。
SimulinkTM事件的特性之一是它的任務。缺省情況下,事件從發布它的源場景中繼承它的任務。例如,在圖3中,事件“A”34和“B”36在與發布這些事件的Stateflow圖表30相同的任務中執行。生成的代碼調用對應于“A”和“B”的函數作為本地函數調用,如下文對應于圖3的模型的偽代碼所述。
void model_step(){A();B();}void A(){u3=x;u2=2*u1;x=u2;}void B(){v3=y;v2=3*v1;y=v2;}可以將事件的任務指定為模型任務對象的名稱,對應于實時實現中的任務。SimulinkTM任務對象對應于衍生(spawned)的操作系統任務。任務對象的特性可以包括指派的速率(周期性值或異步)、優先級、任務棧大小、該任務是否是可搶占的或其他特性。當發布事件而其任務不同于發布該事件的塊或模型構造的任務時,將對應于該事件的函數調度在該事件的任務中。如果該任務被指定為周期性的,則該函數在發布該事件期間該任務的任何時間步長期間執行。如果該任務被指定為異步的,則發布該事件促使該任務被操作系統執行。
本發明的示范實施例通過任務的使用避免了異步發布事件和多線程的實現。通過指示為了數據的完整性而需要事件轉換模塊的地方,任務用于幫助確保在實時實現中使用事件時數據的完整性。任務還用于指定與轉換相關聯的任務的相對優先級。本發明的示范實施例使用作為SimulinkTM的速率轉換塊的規范化的事件轉換塊。圖6A、6B和6C圖示涉及事件轉換和事件轉換塊的使用的一些問題。
圖6A描述了響應事件A和B的出現而出現轉換的模型100。在模型100中,事件A和B具有相同的任務,以及可以利用永久存儲器以存儲處于這兩個事件的邊界處的數據來解決數據完整性問題。因為這兩個事件都在相同的任務中,所以它們無法彼此搶占,而且無需附加機制(例如雙緩沖)。在該模型100中,將永久存儲器用于左邊兩個傳遞函數塊102、104的輸出,因此無需轉換塊以在傳遞函數塊102、104和106之間傳遞數據。
但是,如果事件A和B被指定為在不同任務中執行,則事件轉換塊是必需的,如圖6B所示。在圖6B的模型110中,事件A是具有高優先級的任務,而事件B是具有低優先級的任務。在此情況中,位于第一112和第二116傳遞函數塊之間的邊界處的名稱為轉換的塊114充當零階保持。位于第二116和第三120傳遞函數塊之間的邊界處的名稱為轉換1的塊118通過缺省充當延遲。
圖6C的時間線示出圖6B的事件轉換塊的功能。因為事件轉換塊轉換114充當零階保持,所以在附圖中它由標記為“ZOH”的時間片表示。因為事件轉換塊轉換1118充當延遲,所以在附圖中它由標記為“1/z”的時間片表示。只要指派給事件A的任務不在搶占包含事件B的任務,事件轉換塊轉換114在每次事件A的處理程序執行時執行。這防止了對B的處理程序的輸入在執行中間改變。因為在異步因果系統中,沒有方法預先知道下次將在何時發布事件B,所以這是必需的。在時間B的處理程序完成執行之后,時間轉換塊轉換1 118的輸出函數在每次發布事件A時執行。這確保事件A的處理程序利用B的處理程序計算的最新值,但是如果不是必需的話不執行轉換1的輸出函數。
由此,在圖6C中,與事件B相關聯的低優先級任務執行(步驟130),延遲執行(步驟132),與事件A相關聯的高優先級任務(步驟134)執行,然后是零階保持(步驟136)。然后與事件A相關聯的任務執行(步驟138)而沒有在此前執行延遲,因為自上次A執行后B并沒有執行。然后在該高優先級任務(步驟138)之后執行零階保持(步驟140)。然后執行與B相關聯的低優先級任務(步驟142),并被高優先級任務中斷(步驟144)。在完成高優先級任務(步驟144)之后,低優先級任務(步驟142)恢復而零階保持不執行,因為低優先級任務已經啟動。過程然后繼續,依次執行延遲(步驟146),高優先級任務(步驟148)和零階保持(步驟150)。
除了確保數據完整性外,事件轉換塊對于事件傳播期間解析(resolution)也是必需的。但是,當在相同任務中的事件之間轉換時,該塊將它的輸入值復制到它的永久輸出。然后可以嘗試后期編譯來減小該塊。應該注意轉換塊需要InitialCondition(初始條件)參數來初始化它們的存儲器。在一個實施中,該參數的缺省值是零。
事件還可以用于處理模型執行時遇到的錯誤。當錯誤發生時,模型可以“以異常的方式發布事件”。以異常的方式發布的事件稱為“異常事件”。異常事件的關鍵特征是,以不同于以非異常方式發布的事件或“正常事件”不同的方式處理它。具體來說,當一個事件發布另一個異常事件時,該第一事件的函數從不在退出異常事件的函數時恢復執行。換言之,如果B以異常方式中斷A,則在B完成之后,A的執行不被恢復。注意在相同模型中可以同時以正常方式和異常方式調用事件。
圖7A中描述了在模型中使用異常事件。在模型160中,上方組件屬于事件A的處理程序的一部分。如果輸入u1 162的量值小于或等于1e-6,則由異常子系統164中的拋出塊166以異常方式發布事件B或簡稱為“拋出”。如果輸入u1 162小于等于1e-6,則異常子系統164評估輸入162和并僅拋出事件B。拋出塊166在功能上與發布塊相似,例外的是它以異常方式而非正常方式發布事件。當拋出事件B時,事件B的處理程序執行,將數據存儲168設為大的固定常量。當事件B的處理程序完成時,控制不返回到事件A的處理程序,因為事件B作為異常被拋出,而非返回到調用進程。表示圖7A所描述的過程的代碼可以表示為如下void model_step(){A();}void A(){u2=fabs(u1);u3=u2<=1.0e-6;if(fabs(u1)<=1.0e-6){B();/*return from B()exceptionally*/return;}v4=rt_sgn(4*(v1/u1));x=rt_lookup(rtP.lookup,v4);}void B(){x =1.0e6;}如果以正常方式而非作為異常發布了事件B,則當事件B的處理程序完成時,事件A的處理程序會完成執行。圖8中以抽象方式描述了這兩個對比場景。本領域技術人員將理解,具有一種精確的機制以在將事件引入到模型中時控制如何排序塊是重要的,因為事件在數據相關性隱含的因果關系之上和之外引入一個因果關系。
圖7A中的模型利用了原子子系統來強制要求排序的塊次序,其中拋出塊先于乘積塊執行,其意圖是有條件地通過異常事件B來繞開該塊。因為在排序的塊列表中原子子系統早于乘積塊,所以包括拋出塊的其內容將先于乘積決執行。原子子系統的一個缺點在于,其內容不是在相同的圖形級作為其母圖形來呈示,使得其內容較不容易辨認。
使用原子子系統來控制執行次序的一個備選機制是,對離開塊的分支指派優先級,然后分支中的所有塊繼承該塊的優先級,只要這種繼承是唯一的且明確的。圖7B示出“分支優先級塊”170的安置,它指定下方分支中的塊應該先于上方分支中的塊執行。圖7C指示圖7B的分支優先級塊170指示的執行次序。分支優先級塊170中的編號“1”(172)指示下方分支應該首先執行。分支優先級塊170中的編號“2”指示上方分支應該第二地執行。
圖7D描述了使用原子子系統來控制執行次序的再一個備選。圖7D描述了“塊組”的使用。在排序的塊列表中,組1(176)中的塊將出現在組2(178)中的塊之前。
在圖8中左邊示出兩個事件的正常發布過程的塊圖中,模型的執行(步驟180)觸發事件A(步驟182)。事件A的執行期間,事件B以正常方式發生并被處理(步驟184)。在處理事件B(步驟184)之后,恢復事件A的處理(步驟182)。在事件A的執行(步驟182)完成之后,控制返回到事件A出現(步驟180)之前模型執行中的點上。
在圖8中右邊示出兩個事件的異常發布過程的塊圖中,模型的執行(步驟190)觸發事件A(步驟192)。事件A的執行(步驟192)期間,事件B以異常方式發生并被處理(步驟194)。因為以異常方式處理事件B,控制傳遞回事件A出現(步驟190)之前所存在的模型執行中的點上,而不恢復事件A的處理。
與異常事件相關聯的“早期返回”還可以幫助防止無用地執行源于錯誤條件中所含信號的計算下游。例如,在圖7的示例中,u1的量值的檢查作為原子子系統執行的一部分在乘積塊和乘積塊的塊下游之前發生。因為早期返回源于被中斷的事件,所以如果事件B被拋出,則那些塊免于(無用)執行。
如上所述,可以以正?;虍惓7绞桨l布事件。發布塊用于以正常方式發布事件,而拋出塊用于以異常方式發布事件。此外,用戶指定的S-函數API也可以用于以正常或異常方式發布事件。模型組件可以在事件以正常方式被拋出或以異常方式被拋出但是不能同時這兩種情況時,處理該事件??梢詫K的采樣時間指定為“A”,以指示在以正常方式發布時它處理事件A,或指定為“A.exception”,以指示在以異常方式發布時它處理事件A。當以異常方式發布事件A時,具有采樣時間A的塊不處理它,以及當以正常方式發布事件A時,具有采樣時間A.exception的塊不處理它。
以異常方式發布的顯式事件應該具有非空處理程序;在以異常方式處理該事件的模型中應該有至少一個塊。如果情況不是這樣,則產生錯誤。此要求通過用戶花時間創建的模型組件發布顯式異常事件以及應該由該模型來處理事件的認識來驗證。如果有非空處理程序,則以正常方式發布隱式事件。如果沒有模型組件正在處理以正常方式發布的隱式事件,則反之以異常方式發布該時間。拋出塊可以再次發布它正在以正常方式處理為異常事件的事件。當不能保證以正常方式成功處理事件時,可以利用此場景。在初次嘗試之后,可以以異常方式處理該事件。
圖9描述了適于實現本發明的示范實施例的環境。電子設備200擁有圖形建模和執行環境202,如SimulinkTM或StateflowTM應用程序。電子設備200可以是工作站或服務器、膝上型計算機、PDA、網絡連接的器具或能夠支持圖形建模和執行環境202的某種其他數字電子設備。圖形建模和執行環境202包括上文論述的至少一個圖形模型204和事件處理程序206。電子設備200與顯示設備208接口,該顯示設備208為用戶212顯示模型204的視窗210。顯示設備208和用戶212可以處在電子設備200的本地或遠程位置。本領域技術人員將認識到在本發明的范圍內可以有許多不同的可能軟件和硬件配置。
圖10中示出本發明的示范實施例遵循的步驟的一個高級順序。該順序開始于圖形建模和執行環境202中模型204的執行(步驟220)。然后,確定模型執行期間先前指定的事件的出現(步驟222)。將事件出現發布到事件處理程序206(步驟224)。事件處理程序通知其采樣速率與事件發生相關的注冊塊(步驟226)。通知之后,其采樣速率依賴的事件發生的塊執行(步驟228)。
因為在不背離本發明范圍的前提下可以進行某些更改,所以上文描述所含或附圖所示的所有內容應該解釋為說明性的而不應作字面上的解釋。本領域的實施者將意識到,本文圖示和描述的系統配置是落在本發明范圍內的多種可能系統配置的示例。同樣地,本文論述的步驟的順序是落在本發明范圍內的可能的示范而非排他性的步驟順序。
權利要求
1.在具有含多個可執行基于時間的組件的至少一個模型且提供所述模型的視窗的圖形建模環境中,一種方法包括如下步驟監控所述模型的執行,以確定指定的事件的發生,所述事件加有標號;在所述模型的執行期間確定所述指定的事件的出現;以及將所述圖形建模環境中所述事件的出現發布到事件處理程序,所述發布將所述事件的發生通知所述事件處理程序;以及響應所述通知執行來自所述多個組件的至少一個組件,所述組件與所述標號相關聯。
2.如權利要求1所述的方法,還包括如下步驟將所述多個組件的至少其中之一注冊到所述事件處理程序;以及在所述發布之后,在注冊到所述事件處理程序的所述多個組件的至少其中之一上,接收所述事件的出現的通知。
3.如權利要求1所述的方法,還包括如下步驟在所述視窗上顯示發布組件,所述發布組件指定導致所述發布發生的條件。
4.如權利要求1所述的方法,還包括如下步驟將至少一個組件的初始執行的采樣時間設為所述指定的事件的發生。
5.如權利要求4所述的方法,還包括如下步驟將所述采樣時間傳播到所述模型中的至少一個其他組件,所述至少一個其他組件配置為繼承采樣速率。
6.如權利要求4所述的方法,還包括如下步驟將所述模型中的多個非鄰接組件的采樣時間設為所述事件的發生。
7.如權利要求6所述的方法,其中設置多個非鄰接組件的所述采樣時間,而不調整所述視窗中顯示的組件之間的可視連接。
8.如權利要求4所述的方法,還包括如下步驟以所述視窗中的事件ID指示將所述至少一個組件的采樣時間設到所述事件。
9.如權利要求4所述的方法,其中所述事件是用戶設置的顯式事件。
10.如權利要求4所述的方法,其中所述事件是所述模型執行導致的隱式事件。
11.如權利要求10所述的方法,其中所述隱式事件是開機、關機和初始化的其中之一。
12.如權利要求10所述的方法,其中所述隱式事件對應于子系統的啟用和禁用的其中之一。
13.如權利要求2所述的方法,還包括如下步驟以所述視窗中用戶可配置的顏色指示組件接收哪個事件。
14.如權利要求1所述的方法,將正在監控所述模型的執行所針對的所述指定的事件的執行范圍限制于所述模型的一部分。
15.如權利要求1所述的方法,其中所述模型中的每個事件基于一一對應的方式映射到事件處理程序,所述事件處理程序是函數。
16.如權利要求15所述的方法,其中所述函數被嵌入。
17.如權利要求1所述的方法,其中分支優先級塊響應所述通知指示塊的至少兩個分支之間的執行次序。
18.如權利要求1所述的方法,其中多于一個塊組執行以響應所述通知,所述塊組是用戶選擇的塊分組,所述塊組的執行次序由用戶指定。
19.在具有含多個可執行組件的至少一個模型的建模環境中,一種方法包括如下步驟監控所述模型的執行,以確定指定的事件的發生;在所述模型的執行期間確定所述指定的事件的出現;響應所述指定的事件發生的確定中斷執行事件的執行;以及響應所述指定的事件發生的確定執行所述模型中的操作。
20.如權利要求19所述的方法,其中所述指定的事件作為正常事件而被處理,并且害包括如下步驟恢復所述被中斷的事件的執行。
21.如權利要求19所述的方法,其中所述指定的事件作為異常事件而被處理,并且還包括如下步驟將所述模型的執行的控制返回到調用所述被中斷執行的事件的調用過程,而不恢復所述被中斷的事件的執行。
22.如權利要求19所述的方法,其中所述指定的事件是使用例示的事件對象來指定的。
23.如權利要求22所述的方法,其中所述事件是顯式事件。
24.如權利要求22所述的方法,其中所述事件是隱式事件。
25.如權利要求22所述的方法,其中所述事件對象與任務對象相關聯,所述任務對象對應于操作系統任務。
26.如權利要求25所述的方法,其中所述任務對象具有指定的執行速率和優先級的至少其中之一。
27.如權利要求26所述的方法,其中具有不同任務的至少兩個事件正在模型中執行,并且還包括如下步驟使用事件轉換組件來調度與所述至少兩個事件相關聯的組件的執行,所述事件轉換組件將與所述至少兩個事件相關聯的所述組件的執行分開。
28.如權利要求19所述的方法,其中所述操作由分支優先級塊中指示的執行次序來控制。
29.如權利要求19所述的方法,其中所述操作是多于一個塊組的執行,所述塊組是用戶選擇的塊分組,所述塊組的執行次序由用戶指定。
30.在建模環境中,一種系統包括至少一個具有多個可執行組件的圖形模型;事件處理程序,所述事件處理程序從發生指定的事件的所述模型接收通知;以及至少一個接收組件,所述接收塊從所述事件處理程序接收有關所述指定的事件的發生的通知,并響應所述通知而執行。
31.如權利要求30所述的系統,其中所述事件是所述模型的執行滋生的錯誤事件。
32.如權利要求30所述的系統,其中所述指定的事件的發生導致所述模型中多于一個組件執行。
全文摘要
公開了一種指定和配置圖形模型的動態性與該模型的組件的執行之間的因果關系的方法。模型組件執行依賴于模型事件的出現。首先在建模環境中定義模型事件。在事件定義中指定的模型中出現條件促使事件被“發布”。已與事件的出現相關聯的模型組件“接收到”發布事件的通知,然后執行??梢灾概稍谧酉到y內隨機的組件以在出現事件時執行,與模型內不鄰接的組件所能夠執行的一樣??梢圆辉谀P偷囊暣爸欣L制連接組件的圖形指示符而指定模型事件和組件執行之間的關聯性。
文檔編號G06F9/46GK1965293SQ200580007811
公開日2007年5月16日 申請日期2005年1月6日 優先權日2004年1月15日
發明者P·什帕克, M·恩萊哈特 申請人:數學工程公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 博客| 页游| 株洲市| 桐乡市| 富阳市| 开远市| 达孜县| 丹巴县| 蓬莱市| 阜新市| 汾阳市| 桑日县| 长汀县| 丘北县| 武义县| 墨玉县| 荃湾区| 濉溪县| 岑巩县| 桂阳县| 白银市| 博客| 天水市| 太湖县| 临桂县| 金昌市| 洮南市| 古蔺县| 格尔木市| 桦川县| 安丘市| 井冈山市| 岗巴县| 鄂温| 五常市| 六安市| 秭归县| 彭山县| 永寿县| 琼结县| 罗定市|