專利名稱:用于執(zhí)行實時計算待仿真信號的任務(wù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于借助于在具有實時操作系統(tǒng)的數(shù)據(jù)處理設(shè) 備上以軟件實現(xiàn)的任務(wù)管理器,執(zhí)行至少一個實時計算至少一個待仿 真信號的任務(wù)的方法,該任務(wù)管理器周期性地分別在預(yù)定的周期持續(xù) 時間之后啟動根據(jù)預(yù)定的輸入信號計算依賴于該輸入信號的輸出信 號的任務(wù)。
背景技術(shù):
在現(xiàn)有技術(shù)中已知在技術(shù)上借助數(shù)據(jù)處理設(shè)備仿真真實世界的 行為。其中,尤其是為了測試諸如控制設(shè)備、尤其是汽車控制設(shè)備這 樣的技術(shù)部件,優(yōu)選執(zhí)行實時仿真,也就是這樣一種仿真,其中外部 的觀察者感知通過該仿真所產(chǎn)生的事件,就好像這些事件實際上實時 地發(fā)生一樣。
在實時仿真時,由于太過復(fù)雜的模型而可能產(chǎn)生涉及計算時間或 所執(zhí)行的計算的品質(zhì)的問題。相應(yīng)地可能出現(xiàn)以下情形,即在采用太 過復(fù)雜的模型時出現(xiàn)例如以下問題,即在仿真期間無法保證在得到正 確計算結(jié)果的同時又保持實時性。
例如,可能由于在電機仿真中使用除了公知的平均值模型之外的 模型而產(chǎn)生這樣的問題。目前,為了在汽車領(lǐng)域中進行仿真,通常釆
用歐拉方法,該方法具有固定的步長寬度(Schrittweite )用于對物理 系統(tǒng)進行數(shù)值近似。其中,對于工程師來說很難找到一個步長寬度一 方面保證整個系統(tǒng)的數(shù)值穩(wěn)定性,另 一 方面又不危害系統(tǒng)的實時性。 因此可能出現(xiàn)以下情形,即太過復(fù)雜的模型被編程,其中該模型需要 的計算時間過長,并且因此無法實時提供仿真結(jié)果。在此,在這里所
描述的發(fā)明中,待執(zhí)行的計算任務(wù)的復(fù)雜度被理解為隨著復(fù)雜度的增大,任務(wù)的計算時間變長。其中,任務(wù)是用于根據(jù)輸入信號計算依賴 于該輸入信號的輸出信號的計算指令。因此,總的來說,對更高復(fù)雜 度的期望或者更高復(fù)雜度的必要性可能損害為此要進行的計算的實 時性。
因此,在現(xiàn)有技術(shù)中已知,如上所述執(zhí)行用于計算待仿真信號的 任務(wù),其中公知地可以規(guī)定使用以軟件實現(xiàn)的任務(wù)管理器,該任務(wù)管 理器周期性地分別在預(yù)定/可預(yù)定的周期持續(xù)時間之后啟動這樣的任 務(wù)。
其中,目前的編程被執(zhí)行為使得待啟動的任務(wù)保證在預(yù)定的周期 持續(xù)時間內(nèi)結(jié)束其計算,以便不危急實時性。在此,在個別情況下可 能出現(xiàn)以下情形,即計算的結(jié)束沒有充分利用預(yù)定的周期持續(xù)時間內(nèi) 可用的計算時間,例如因為所執(zhí)行的任務(wù)在特定時刻或在特定的給定 情況下可以比期待的計算得更快。因此這表示,在這樣的情況下可能 計算比實際所執(zhí)行的更為精確的任務(wù)。進行仿真的數(shù)據(jù)處理設(shè)備的計 算能力因此很明顯沒有被充分利用,以便總是可靠地保持實時性。
在現(xiàn)有技術(shù)中,還已知,為了達(dá)到盡可能高的精度且同時保持實
時性,在執(zhí)行仿真之前決定是用簡單建;f莫的模型、即例如具有更少計 算時間的任務(wù)還是用復(fù)雜公式化的模型,即具有更長計算時間的任務(wù) 來計算期望的行為。
這種解決方案的缺點在于,總是必須在仿真之前已經(jīng)確定應(yīng)當(dāng)以
什么樣的復(fù)雜度來執(zhí)行計算。但是,其中對于選擇具有更長計算時間 的復(fù)雜任務(wù)的決定是有問題的,因為并非總是在準(zhǔn)備階段,即在實際 執(zhí)行仿真之前就可以確鑿無疑地確定是否可以在具體給定的條件下 確實在保持實時性的情況下計算復(fù)雜公式化的任務(wù)。
在現(xiàn)有技術(shù)中已知被稱為Fraunhofer研究所的Mosilab的程序, 該程序同樣試圖解決上述問題,其中在每次計算任務(wù)之前決定是應(yīng)當(dāng) 用復(fù)雜任務(wù)還是簡單任務(wù)來計算一項行為。從而,與該Mosilab軟件 結(jié)合地公知,區(qū)分例如通過計算之前的任務(wù)或者在仿真之前進行判斷 而得出的感興趣的系統(tǒng)狀態(tài)和不太感興趣的系統(tǒng)狀態(tài),并基于此來在
6仿真之前選擇計算簡單還是復(fù)雜的任務(wù)。例如在對太陽能設(shè)備的工作 方式進行仿真時,可以在仿真其行為之前在晚上決定節(jié)省計算開銷。 此外,雖然可以在任務(wù)之前決定是應(yīng)當(dāng)計算簡單任務(wù)還是復(fù)雜任務(wù), 但是并不是總能在事先估計復(fù)雜任務(wù)是否能被實時計算。因此,即使
Mosilab軟件也不適于在執(zhí)行實時仿真期間影響待計算的任務(wù)及其復(fù) 雜度或由此產(chǎn)生的計算時間。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種開頭所述類型的方法,該方 法實現(xiàn)了在仿真運行期間保證實時性得到保持的可能性,并且同時充 分利用所有可能以便在計算時達(dá)到盡可能精確的仿真結(jié)果。在此,可 以既針對待仿真信號的完整模型,也針對仿真信號的子模型 (Teilmoddl)的完整模型執(zhí)行開頭所述的任務(wù)。應(yīng)當(dāng)避免其中總是 只計算一個保證在預(yù)定的周期持續(xù)時間內(nèi)結(jié)束計算的任務(wù)的現(xiàn)有技
術(shù)的缺陷。此外,對使用者來說應(yīng)當(dāng)靈活地和沒有代價地對技術(shù)的框 架條件進行反應(yīng)。從而,應(yīng)當(dāng)例如考慮可以在快速的處理器、而不是 在更慢速的處理器上實時地計算可能更復(fù)雜的任務(wù)。
根據(jù)本發(fā)明,通過以下方式解決該技術(shù)問題,即在一般性所迷的 方法中,在數(shù)據(jù)處理i殳備上可執(zhí)行地存儲包括至少兩個不同任務(wù)的集 合,這些任務(wù)所具有的用于計算相同的待仿真信號的計算時間不同, 并且至少 一 個最小任務(wù)具有比周期持續(xù)時間更短的計算時間,其中任 務(wù)管理器根據(jù)所存儲的、例如預(yù)先給定的或?qū)W習(xí)的(erlernt)策略啟 動來自該集合的至少一個任務(wù),其中利用該策略,在保持實時性的同 時在給定的周期持續(xù)時間內(nèi)獲得來自該集合的至少 一個任務(wù)的計算 結(jié)果。其中,任務(wù)管理器周期性地啟動任務(wù)的提法并沒有排除,相反 根據(jù)本發(fā)明尤其甚至包括根據(jù)隨后描述的策略也可以通過任務(wù)管理 器非周期性地啟動任務(wù)。
在此,待仿真信號被理解為可以通過任務(wù)的計算結(jié)果代表的任何 可能的物理量,例如電信號、光信號或聲信號,對于電信號來說尤其是模擬或數(shù)字信號,如電壓或電流。這樣的信號例如可以通過由對所 述任務(wù)的計算而得到的數(shù)值來代表。其中,尤其還可以規(guī)定,根據(jù)仿 真的計算結(jié)果生成實際的物理信號,例如通過數(shù)模轉(zhuǎn)換,對伺服驅(qū)動
的控制等。
因此,本發(fā)明的重要核心思想是,在一個任務(wù)中不僅用唯一的復(fù) 雜度以及與復(fù)雜度關(guān)聯(lián)的計算時間來對待仿真信號建模,而是用不同 復(fù)雜度并因此產(chǎn)生不同計算時間的不同模型來對該信號建模。因此, 根據(jù)本發(fā)明存在以下可能性,即借助所存儲的策略,從在不同復(fù)雜度 或計算時間的集合中存在的任務(wù)中選擇一個或多個任務(wù)用于計算,并 由此總是在預(yù)定的周期持續(xù)時間內(nèi)獲得至少一個任務(wù)的計算結(jié)果。在 此為了能夠在任何情況下保證實時的仿真,根據(jù)本發(fā)明,任務(wù)之一具 有小的復(fù)雜度或計算時間,使得可以保證總是在預(yù)定的周期持續(xù)時間 內(nèi)執(zhí)行該任務(wù)。作為數(shù)據(jù)處理設(shè)備上可用的所有任務(wù)的集合中一個任 務(wù)的這個任務(wù)在以下被稱為最小任務(wù),以便將該任務(wù)與其余的可能任 務(wù)區(qū)分開來。
在數(shù)據(jù)處理設(shè)備上、尤其是在可用的以軟件實現(xiàn)的任務(wù)管理器中 所存儲的策略同樣可以用軟件來實現(xiàn),并且確定所采用的任務(wù)管理器 如何周期性地分別在與此關(guān)聯(lián)的所述周期持續(xù)時間過去之后啟動可 用集合中的一個或多個任務(wù)。在此,根據(jù)本發(fā)明,策略被選擇并且以 軟件實現(xiàn)在所述數(shù)據(jù)處理設(shè)備上,使得如開頭所述,總是可以在可用 的周期持續(xù)時間內(nèi)實時地獲得計算結(jié)果。為此,根據(jù)本發(fā)明可以采用 多個替換的策略。
在一種可能的替換方式中,可以根據(jù)所存儲的策略首先由任務(wù)管 理器啟動最小任務(wù),在該最小任務(wù)結(jié)束之后啟動集合中計算時間比該 最小任務(wù)更長的至少一個其它任務(wù),其中在周期持續(xù)時間過去之后, 終止還在運行的任務(wù),并且將滿足預(yù)定/可預(yù)定的判斷標(biāo)準(zhǔn)的任務(wù)的計 算結(jié)果作為仿真結(jié)果。
例如,判斷標(biāo)準(zhǔn)可以是(尤其是最長的)計算持續(xù)時間和/或(尤 其是最高的)計算精度和/或(尤其是最小的)仿真步長寬度和/或是
8解算器(Solver)或它們的組合。解算器是一種算法,它在這種特殊 情況下計算DAE ( differential algebraic equation,微分代數(shù)方程)或 DGL (Differentialgleichung,微分方程)的數(shù)值解。公知的解算器例 如是根據(jù)Euler、 Heun、 Runga-Kutta的方法。從而,在一種可能的 實施方式中可以例如采用具有最長計算持續(xù)時間的任務(wù)的計算結(jié)果。
通過首先啟動保證計算時間小于周期持續(xù)時間的最小任務(wù),確保 在仿真時獲得至少一個計算結(jié)果,即最小任務(wù)的計算結(jié)果。由于最小 任務(wù)的計算時間總是小于周期持續(xù)時間,因此在最小任務(wù)結(jié)束之后總 是存在剩余時間,其中在該剩余時間中可以還啟動可用任務(wù)的集合中 至少一個其它任務(wù)。因此,這樣的任務(wù)是與最小任務(wù)相比具有更長計 算時間并因此提供更精確計算結(jié)果的任務(wù)。因此,根據(jù)該策略,首先 保證一個計算結(jié)果,以便然后嘗試在直到周期持續(xù)時間結(jié)束之前的剩 余時間內(nèi)再獲得更精確的計算結(jié)果。
其中,可以在最小任務(wù)的計算結(jié)束之后只啟動一個其它任務(wù)。如 果還在該任務(wù)的運行時間期間就達(dá)到周期持續(xù)時間的結(jié)束,則終止該 任務(wù),并且使用最小任務(wù)的結(jié)果。也可以在這個其它任務(wù)結(jié)束之后啟 動再另一個其它任務(wù)。例如在此可以從任務(wù)集合中從最小任務(wù)開始按 照計算時間增大的順序依次啟動另一任務(wù)。從而,在保證所獲得的例 如可以被臨時存儲的計算結(jié)果之后,在周期持續(xù)時間結(jié)束之前連續(xù)地 嘗試通過持續(xù)地隨后啟動更為復(fù)雜、即計算時間更多的任務(wù)來獲得更 精確的計算結(jié)果。在這種在此從最小任務(wù)開始串行地相繼地計算任務(wù) 的情況下,總是分別可以終止在周期持續(xù)時間結(jié)束時仍在運行的任 務(wù),并因此丟棄該任務(wù)的結(jié)果,例如中間結(jié)果。
在另一替換方式中,還可以根據(jù)所存儲的策略啟動集合中計算時 間比最小任務(wù)的計算時間更長的任務(wù),并且隨著該任務(wù)的啟動而啟動 定時器,其中任務(wù)管理器根據(jù)周期持續(xù)時間和定時器的時間值之差而
終止已啟動的任務(wù)并啟動最小任務(wù)。
從而,根據(jù)該策略,嘗試獲得比具有最小計算時間的最小任務(wù)所 提供的計算結(jié)果更為精確的計算結(jié)果。因此,啟動計算時間與最小任務(wù)的計算時間不同的任務(wù),為此優(yōu)選已知并且存儲最小任務(wù)的計算時 間。其余任務(wù)的計算時間、至少其余任務(wù)的預(yù)期計算時間也可以已知 并被存儲,使得該預(yù)期計算時間也可以被提供用于在策略的范圍內(nèi)選 擇。在此,預(yù)期計算時間實際上不一定作為時間已知,而是在集合中 給出的各個任務(wù)只要在其計算時間方面具有例如可以相當(dāng)于優(yōu)先級 的順序就足夠了。
在此,利用同時啟動定時器,保證在任務(wù)的運行時間期間隨時提 供關(guān)于計算已經(jīng)經(jīng)過的時間的信息。因此,可以基于已知的最小任務(wù) 的計算時間使得可以及時終止已啟動的任務(wù),以便在該任務(wù)終止之后
還能在到周期持續(xù)時間結(jié)束之前的剩余時間內(nèi)保證將最小任務(wù)一直 執(zhí)行到計算結(jié)束為止。從而,根據(jù)該策略,嘗試獲得更為精確的計算 結(jié)果,但是在任何情況下都及時地啟動對最小任務(wù)的執(zhí)行,以便在先 前啟動的任務(wù)的計算無法及時結(jié)束時獲得最小任務(wù)的計算結(jié)果。
從而在此可以在定時器的在為計算提供的總的周期持續(xù)時間和 定時器的時間值之差比最小任務(wù)的計算持續(xù)時間長一安全時間時的 時間值時進行終止。在此,尤其可以設(shè)置通過安全時間提供的時間緩 沖,以補償最小任務(wù)的計算持續(xù)時間與為該任務(wù)存儲的理論計算時間 之間的偏差。
為了在技術(shù)上實現(xiàn)對運行的任務(wù)的終止和/或?qū)ψ钚∪蝿?wù)的啟 動,可以使用中斷。中斷在數(shù)據(jù)處理設(shè)備中是已知的,并且例如可以 發(fā)揮作用使得中斷信號線被置于確定的、為中斷而設(shè)置的信號電平, 以便觸發(fā)中斷。
如果數(shù)據(jù)處理設(shè)備獲得這樣的中斷信號,則可以跟蹤向數(shù)據(jù)處理 設(shè)備的存儲器中一個地址的轉(zhuǎn)移,其中從該地址開始執(zhí)行存儲在那里 的程序。從而,在此可以存在以下可能性,即根據(jù)定時器的時間值, 尤其是在周期持續(xù)時間和該時間值之差比最小任務(wù)的計算持續(xù)時間 長一安全時間時,觸發(fā)這樣的中斷,例如通過以下方式,即通過其中
時間被遞增計數(shù)(hochzaehlen)的定時器組件來產(chǎn)生相應(yīng)的中斷信號, 例如通過以下方式產(chǎn)生,即將相應(yīng)的中斷線置于前面所述的為此所需的信號電平,尤其是地電平。
然后,可以利用通過中斷所啟動的程序檢查最開始的任務(wù)是否已 經(jīng)結(jié)束,其中該程序是任務(wù)管理器的程序。如果還沒有結(jié)束,則終止 該任務(wù)并啟動最小任務(wù)。但是如果該任務(wù)已經(jīng)結(jié)束,則任務(wù)管理器可 以等待直到周期持續(xù)時間結(jié)束,即不啟動其它任務(wù)。替換地,也可以
在任務(wù)結(jié)束的情況下在中斷之前,任務(wù)管理器從任務(wù)集合中啟動預(yù)期 計算時間比已結(jié)束的任務(wù)的計算時間更長的其它任務(wù)。從而,在此可
以給出這樣的可能性,即在周期持續(xù)時間結(jié)束之前還可用的計算時間 內(nèi)實現(xiàn)更精確的結(jié)果。
根據(jù)本發(fā)明的一種可能的實施,在此可以規(guī)定,在這種順序處理 類型的情況下,可以從集合中啟動具有最大預(yù)期計算持續(xù)時間或者被 系統(tǒng)認(rèn)為具有最高計算精度的任務(wù)。從而,系統(tǒng)總是可以首先嘗試達(dá) 到盡可能精確的計算結(jié)果,但是在計算在提供足夠的剩余時間以替代 地執(zhí)行最小任務(wù)的時間內(nèi)無法及時執(zhí)行時,終止該計算并啟動最小任 務(wù)。
尤其是在該方法具有周期順序的情況下,可以從集合中啟動這樣 一個任務(wù),即該任務(wù)的預(yù)期計算時間比在先前計算周期中終止該任務(wù) 時的定時器時間更小。從而,在此存在這樣的可能性,即根據(jù)過去的 經(jīng)驗值實施任務(wù)管理器的一種類型的學(xué)習(xí)。如果例如在先前處理周期 中顯示所選擇的任務(wù)沒有及時結(jié)束,即由于安全起見啟動最小任務(wù), 則可以在隨后的周期中選擇具有更小復(fù)雜度或更少計算時間的任務(wù)。 由于在先前周期中確定了這樣一個定時器時間,即在該定時器時間之 后終止先前已啟動的任務(wù),因此現(xiàn)在可以選擇預(yù)計其預(yù)期計算時間比 該定時器時間小的任務(wù),以便以一定的概率使得該任務(wù)在中斷之前可 以被一直執(zhí)行直到結(jié)束。從而,任務(wù)管理器可以根據(jù)先前的結(jié)果學(xué)習(xí) 并嘗試優(yōu)化對在集合中所提供的任務(wù)的選擇,其中在該實施中,于是 可以已經(jīng)附加地將關(guān)于各任務(wù)的預(yù)計預(yù)期計算時間的盡可能具體的 信息存儲在數(shù)據(jù)處理設(shè)備中。串行策略組合的另 一替換方式中,數(shù)據(jù)處理設(shè)備可以具有多個并行工 作的處理器,任務(wù)管理器可以并行地分別在一個處理器上啟動最小任 務(wù)和來自集合的至少一個其它任務(wù),其中在周期持續(xù)時間結(jié)束之后采 用并行任務(wù)中被完全執(zhí)行的任務(wù)中具有最大計算持續(xù)時間并由此具 有最高結(jié)果精度的任務(wù)的計算結(jié)果作為仿真結(jié)果。從而,在此也通過 并行處理在任何情況下都確保最小任務(wù)提供計算結(jié)果,其中通過計算 的并行性獲得這樣一個機會,即在可用的周期持續(xù)時間內(nèi)還將與最小 任務(wù)相比具有更高精度的任務(wù)計算到結(jié)束。只要是這種情況,則因此 根據(jù)所存儲的這個策略,將具有更長計算持續(xù)時間的任務(wù)的結(jié)果、優(yōu) 選將具有最長計算持續(xù)時間的任務(wù)的結(jié)果作為仿真結(jié)果。如上所述, 在此可以在每個并行工作的處理器上在啟動相應(yīng)的任務(wù)之后在一個 處理器上按照剛開始在串行策略情況下所描述的那樣實現(xiàn)該計算的 其它行為。因此,可以存在以下可能性,即從每個并行工作的處理器 中可能提供多個計算結(jié)果,其中在所有計算的計算結(jié)果的集合上,根 據(jù)本發(fā)明然后采用最精確的計算結(jié)果,即具有最高計算持續(xù)時間的計 算結(jié)果。
如開頭所述,在此為數(shù)據(jù)處理設(shè)備提供多個任務(wù)的集合,這些任 務(wù)全部都可以針對同一待仿真信號計算仿真結(jié)果,但為此需要不同的 計算時間,其中至少一個任務(wù)作為最小任務(wù)來執(zhí)行,最小任務(wù)具有保 證的、比可用周期持續(xù)時間短的計算時間。各個任務(wù)的計算時間的差 異例如可以通過不同地選擇步長寬度來產(chǎn)生,其中任務(wù)以步長寬度來 執(zhí)行計算。因此,具有較長計算持續(xù)時間的任務(wù)可以比具有較短計算 持續(xù)時間的任務(wù)具有更小的步長寬度。計算持續(xù)時間同樣可以通過用 于計算任務(wù)的解算器區(qū)分。從而,更復(fù)雜的任務(wù)、即具有更長計算持 續(xù)時間的任務(wù)與具有更小復(fù)雜度的任務(wù)相比具有同樣更復(fù)雜的解算 器。
計算持續(xù)時間的其它差異也可以通過以下方式給出,即在任務(wù)內(nèi) 被計算的方程具有不同的精度、但優(yōu)選總是具有相同數(shù)量的狀態(tài),尤 其是方程的輸入?yún)?shù)。從而,對于具有更長計算時間的任務(wù)可以使用
12更精確的方程。
計算時間的其它差異也可以通過以下方式給出,即待計算的功能 的數(shù)量或用于計算的參數(shù)的數(shù)量不同。如果在這里非限制性理解的例 子中對剎車防抱死系統(tǒng)的功能進行仿真,則例如在具有更短計算持續(xù)
時間的任務(wù)中只可以獲取ABS功能,如制動壓力和車輪旋轉(zhuǎn)。相反, 在具有更長計算持續(xù)時間的任務(wù)中,可以附加地一起考慮上述例如制 動輔助功能的功能或參數(shù),如踩到制動踏板上的速度和/或松開油門踏 板的速度。
在可與所有可能的實現(xiàn)方式組合的擴展方案中,還可以更改周期 持續(xù)時間,其中任務(wù)在該周期持續(xù)時間之后被啟動。周期持續(xù)時間的
重新編程例如可以在當(dāng)前周期持續(xù)時間運行期間進行,使得在當(dāng)前周
期持續(xù)時間結(jié)束之后接著進行后面已被改變的周期持續(xù)時間。
總之,所述根據(jù)本發(fā)明的方法不僅可以被用于單個待仿真信號, 而且可以被用于必要時還并行計算的多個不同信號。
在此所介紹的根據(jù)本發(fā)明的方法可以在技術(shù)上例如通過不同的 方式實現(xiàn)。例如,可以在數(shù)據(jù)處理設(shè)備上運行該方法,其中借助數(shù)據(jù) 處理設(shè)備,針對真實的電子控制設(shè)備、例如汽車控制設(shè)備對測試環(huán)境 進行仿真,并且其中數(shù)據(jù)處理設(shè)備向真實的控制設(shè)備饋送來自仿真的 控制設(shè)備環(huán)境的信號和/或數(shù)據(jù),并且控制設(shè)備將真實的信號和/或計 算的數(shù)據(jù)發(fā)送到數(shù)據(jù)處理設(shè)備。從而,在此在根據(jù)本發(fā)明的方法運行 于其上的數(shù)據(jù)處理設(shè)備和實際的真實電子控制設(shè)備之間進行真實的 和仿真的信號或數(shù)據(jù)的數(shù)據(jù)交換。其中,這些信號或數(shù)據(jù)的通信例如 可以有線地通過電信號線或光信號線進行,或者也可以無線地進行。 相應(yīng)的信號在此可以被提供或被接收到相應(yīng)數(shù)據(jù)處理設(shè)備或電子控 制設(shè)備的為此設(shè)置的端口上,用于發(fā)送。
在另一替換方式中,也可以在真實的電子控制設(shè)備、如汽車控制 設(shè)備上執(zhí)行該方法,以便對該控制設(shè)備的控制行為進行仿真,其中向 控制設(shè)備饋送來自真實控制設(shè)備環(huán)境的信號和/或數(shù)據(jù),例如傳感器和 測量值記錄器的信號和/或數(shù)據(jù),并且其中控制設(shè)備將仿真的信號和/
13或仿真計算的數(shù)據(jù)提供到控制設(shè)備環(huán)境上,例如提供到執(zhí)行器。因此, 在此也進行相應(yīng)的通信,該通信可以用與上述實施方式中提到的相同 的方式和方法進行。
在另一可能方案中,該方法也可以在數(shù)據(jù)處理設(shè)備上運行,其中 借助數(shù)據(jù)處理設(shè)備對控制設(shè)備、尤其是汽車控制設(shè)備的控制行為進行 仿真,其中向數(shù)據(jù)處理設(shè)備饋送來自真實控制設(shè)備環(huán)境的、尤其是傳 感器和測量值記錄器的信號和/或數(shù)據(jù),或者還在此設(shè)置仿真,即例如 由用于對控制設(shè)備環(huán)境進行仿真的數(shù)據(jù)處理設(shè)備,以及由對控制行為 進行仿真的數(shù)據(jù)處理設(shè)備將仿真的信號和/或數(shù)據(jù)饋送到真實的或仿 真的控制設(shè)備環(huán)境。因此,在此還在兩個方向上進行信號和數(shù)據(jù)的通 信,其中參與該通信的設(shè)備可以是真實的,也可以是仿真的。
總之存在以下可能性,即利用根據(jù)本發(fā)明的方法在不同的技術(shù)應(yīng) 用中,在實現(xiàn)盡可能精確的計算結(jié)果的情況下提供仿真的實時性。
在以下附圖中示出了本發(fā)明的實施例。其中
圖1示出其中仿真計算機對具體的控制設(shè)備的環(huán)境進行仿真的
變體,
圖2示出其中在控制設(shè)備自身中對其控制行為進行仿真的變體, 圖3示出從最小任務(wù)開始的任務(wù)的串行啟動, 圖4示出從與最小任務(wù)相比具有更長計算時間的任務(wù)開始的串 行啟動,
圖5示出對不同計算時間的任務(wù)的并行計算。
具體實施例方式
圖l在此示意性示出可能的、在前面提到的應(yīng)用可能,其中數(shù)據(jù) 處理設(shè)備作為仿真計算機工作,并且執(zhí)行開頭所述的根據(jù)本發(fā)明的方 法。在此,仿真計算機對具體的真實汽車控制設(shè)備的環(huán)境進行仿真。 在進行仿真的計算機和具體的控制設(shè)備之間進行數(shù)據(jù)和/或信號交換,例如涉及關(guān)于街道、速度、車輪定位等信息的信號和數(shù)據(jù)。在此在該 示例中,結(jié)合防抱死制動系統(tǒng),針對控制設(shè)備的控制行為對該控制設(shè) 備的性能進行測試。在用于執(zhí)行根據(jù)本發(fā)明的方法的仿真計算機上運 行的軟件以及在其中實現(xiàn)的任務(wù)管理器根據(jù)預(yù)定策略啟動所顯示的
任務(wù),其中在此分別為防抱死系統(tǒng)和/或ESP系統(tǒng)設(shè)置一個簡單的任 務(wù)和/或一個復(fù)雜的任務(wù),即具有較少計算時間的任務(wù)和/或具有較大 計算時間的任務(wù),其中ESP系統(tǒng)用于控制在起步或轉(zhuǎn)彎行駛時的打 滑。根據(jù)所存儲的策略,串行或并行地計算在此設(shè)置在任務(wù)集合中的 任務(wù),并向控制設(shè)備提供計算結(jié)果,以便為控制設(shè)備對環(huán)境、例如汽 車在街道上的行駛進行仿真,并且在返回到仿真計算機的通信中獲得 控制設(shè)備對被仿真的環(huán)境的反應(yīng)。
圖2示出應(yīng)用的一種替換可能性,在這種替換可能性中,控制設(shè) 備本身執(zhí)行根據(jù)本發(fā)明的方法,控制設(shè)備還沒有就其電子結(jié)構(gòu)被具體 化,而是對其控制行為進行軟件仿真。在此也采用根據(jù)本發(fā)明的方法, 其中在此設(shè)置較少或較長計算時間的相應(yīng)任務(wù),其被稱為"簡單"或 "復(fù)雜,,任務(wù)。在此未示出的是,可以從外部向控制設(shè)備饋送信號或數(shù) 據(jù)以用于對控制設(shè)備的控制行為進行仿真,這些信號或數(shù)據(jù)例如來自 真實的環(huán)境,例如來自汽車環(huán)境,其中借助這樣獲得的數(shù)據(jù)或信號, 控制設(shè)備通過根據(jù)本發(fā)明的可能策略處理任務(wù)來提供輸出量,其中輸 出量可以直接影響具體汽車的液壓和/或制動。要指出的是,在此所示 的圖l和圖2的應(yīng)用只是示例性的,并不是要將本方法限于在此所述 的應(yīng)用。
圖3以直觀的示例示出開頭所述的對所提供的集合中的任務(wù)的
串行處理的一般工作方式。在此,用軟件實現(xiàn)的上級任務(wù)管理器每次
在預(yù)定的時間間隔之后分別總是從最小任務(wù)開始啟動計算,其中該時
間間隔是在其期間執(zhí)行仿真的周期時間間隔,最小任務(wù)在此被稱為 "簡單"任務(wù)。從而,在此在第一個周期持續(xù)時間I內(nèi)示出,在處理完
最小任務(wù)之后自動通過任務(wù)管理器啟動更高復(fù)雜度的任務(wù),即具有更 長計算持續(xù)時間和可能更精確的結(jié)果的任務(wù)。在此在時間段I中的實施中示出,具有更長計算持續(xù)時間的任務(wù) 一 在此被標(biāo)記為復(fù)雜一 不能在周期持續(xù)時間結(jié)束之前被完全計算,因此終止該復(fù)雜任務(wù),并 且在此將最小任務(wù)的結(jié)果作為仿真計算的結(jié)果。
在接下來的時間段II中又啟動最小任務(wù)的計算,此后啟動具有 更高復(fù)雜度的任務(wù),其中在此在該時間流逝過程中示出,在周期持續(xù) 時間結(jié)束之前還完全結(jié)束對該復(fù)雜任務(wù)的計算。由此,在周期持續(xù)時 間結(jié)束時,根據(jù)在此給出的策略釆用具有最長計算時間或最高復(fù)雜度 并且可以被完全計算的任務(wù)的結(jié)果。在此可以規(guī)定,如點劃線所示, 在這里所示的復(fù)雜任務(wù)之后必要時還啟動具有更高復(fù)雜度或更長計 算時間的其它后續(xù)任務(wù),其中對這些任務(wù)的處理可能不再能夠在所設(shè) 置的周期持續(xù)時間內(nèi)結(jié)束。
圖4示出串行處理策略的記錄,其中根據(jù)該處理策略,啟動與最 小任務(wù)相比具有更長計算時間的任務(wù),最小任務(wù)在此稱為簡單任務(wù)。 在啟動該任務(wù)的同時,也啟動定時器,其中定時器在經(jīng)過預(yù)定的時間 之后觸發(fā)中斷。該觸發(fā)可以象在一般部分中示出的那樣進行,以確保 在觸發(fā)中斷以及周期持續(xù)時間結(jié)束之后的剩余時間內(nèi)還有足夠的時 間來啟動最小任務(wù)。從而,在此在時間段I中示出這樣的圖示,即根 據(jù)該圖示,在中斷時終止具有更長計算時間的復(fù)雜任務(wù),以便使得能 夠在到周期持續(xù)時間結(jié)束之前的剩余時間中還完整地執(zhí)行最小任務(wù)。 在此可以看出,在可用的最大周期持續(xù)時間和定時器的時間值之差大 于最小任務(wù)所需要的計算時間時,在此是比該計算時間長一定的安全 時間SZ時觸發(fā)中斷,其中安全時間在此反映在處理完最小任務(wù)之 后到周期持續(xù)時間結(jié)束之前剩余這個選擇的安全時間。從而在此可以 通過安全時間確保,在可能的情況下,所存儲的最小任務(wù)的計算時間 的偏差不會因為特定的環(huán)境條件而導(dǎo)致系統(tǒng)的實時性受到影響。
在時間段II中可以看出,在觸發(fā)中斷之前,與最小任務(wù)相比具 有更長計算時間的復(fù)雜任務(wù)可以被完全處理。因此,在此不通過任務(wù) 管理器啟動其它任務(wù),并且將該復(fù)雜任務(wù)的結(jié)果用作仿真結(jié)果。
圖5示出在多個處理器上并行處理不同任務(wù)的實施方式,在此例如是在其上執(zhí)行根據(jù)本發(fā)明的方法的數(shù)據(jù)處理設(shè)備的僅僅兩個處理 器。在此,通過數(shù)據(jù)處理設(shè)備上用軟件實現(xiàn)的任務(wù)管理器,分別在這
兩個處理器1和2的每一個上啟動一個任務(wù),其中在處理器l上啟動 最小任務(wù),該最小任務(wù)保證提供以下可能性,即在所提供的周期持續(xù) 時間內(nèi)完全結(jié)束對該任務(wù)的計算。在這里示出的時間段I中可以看出, 雖然處理器1可以在可用的周期持續(xù)時間內(nèi)結(jié)束對最小任務(wù)的處理, 但是處理器II不能結(jié)束對具有更長計算時間的更復(fù)雜任務(wù)的處理。因 此,通過任務(wù)管理器,在可用的周期持續(xù)時間結(jié)束之后終止處理器2 上對更復(fù)雜任務(wù)的計算,并只使用最小任務(wù)的計算結(jié)果。
在根據(jù)該方法的另一周期性執(zhí)行II的情況下,可以看出,又在 處理器1上啟動最小任務(wù),該最小任務(wù)的計算還是可以在可用的周期 持續(xù)時間內(nèi)結(jié)束,但是在此同樣還可以通過處理器2在周期持續(xù)時間 結(jié)束之前結(jié)束對更復(fù)雜并因此計算量更大的任務(wù)的計算。根據(jù)作為基 礎(chǔ)的策略,任務(wù)管理器然后選擇處理器2上計算量更大的任務(wù)的結(jié)果 作為仿真結(jié)果。
可以看出,在此所提供的示例還可以用比這里示出的兩個處理器 更多的處理器來執(zhí)行,并且因此還可以同時啟動具有不同計算時間的 多于兩個的任務(wù)。
權(quán)利要求
1.一種用于借助在具有實時操作系統(tǒng)的數(shù)據(jù)處理設(shè)備上以軟件實現(xiàn)的任務(wù)管理器執(zhí)行至少一個實時計算至少一個待仿真信號的任務(wù)的方法,其中所述任務(wù)管理器周期性地分別在預(yù)定/可預(yù)定的周期持續(xù)時間之后啟動根據(jù)至少一個預(yù)定的輸入信號計算至少一個依賴于所述輸入信號的輸出信號的任務(wù),其特征在于,在所述數(shù)據(jù)處理設(shè)備上可執(zhí)行地存儲包括至少兩個不同任務(wù)的集合,其中所述任務(wù)對于計算相同的至少一個待仿真信號具有不同的計算時間,并且至少一個最小任務(wù)具有比所述周期持續(xù)時間更短的計算時間,其中任務(wù)管理器根據(jù)所存儲的策略啟動所述集合中的至少一個任務(wù),其中利用所述策略,在保持實時性的情況下在給定的周期持續(xù)時間內(nèi)獲得所述集合中至少一個任務(wù)的計算結(jié)果。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所存儲的策 略,首先啟動最小任務(wù),其中在所述最小任務(wù)結(jié)束之后啟動所述集合 中與所述最小任務(wù)相比具有更長計算時間的至少一個其它任務(wù),其中 最遲在經(jīng)過所述周期持續(xù)時間之后終止還在運行的任務(wù),并且將滿足 預(yù)定/可預(yù)定判斷標(biāo)準(zhǔn)的任務(wù)的計算結(jié)果作為仿真結(jié)果。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述判斷標(biāo)準(zhǔn)是 計算持續(xù)時間,尤其是最長的計算持續(xù)時間,和/或計算精度,尤其是 最高的計算精度,和/或仿真步長寬度,尤其是最小的仿真步長寬度, 和/或是解算器,和/或它們的組合。
4. 根據(jù)權(quán)利要求2或3所述的方法,其特征在于,在任務(wù)集合 中從最小任務(wù)開始,按照計算時間增加的順序啟動其它任務(wù)。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所存儲的策 略,啟動所述集合中計算時間比最小任務(wù)的計算時間更長的任務(wù),并 且隨著該任務(wù)的啟動而啟動定時器,其中所述任務(wù)管理器根據(jù)周期持 續(xù)時間和所述定時器的時間值之差終止所啟動的任務(wù)并啟動最小任務(wù)。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述定時器的 在所述周期持續(xù)時間和所述時間值之差比最小任務(wù)的計算持續(xù)時間 長一安全時間時的時間值時進行終止。
7. 根據(jù)權(quán)利要求5或6所述的方法,其特征在于,根據(jù)所述定 時器的時間值,尤其是在周期持續(xù)時間和所述時間值之差比最小任務(wù) 的計算持續(xù)時間長一安全時間時,觸發(fā)中斷,其中在通過所述中斷啟 動的程序中檢查所述任務(wù)是否已經(jīng)結(jié)束,其中如果還沒有結(jié)束,則終 止所述任務(wù)。
8. 根據(jù)權(quán)利要求5至7中任一項所述的方法,其特征在于,啟 動所述集合中具有最大預(yù)期計算持續(xù)時間的任務(wù)。
9. 根據(jù)權(quán)利要求5至8中任一項所述的方法,其特征在于,從 所述集合中啟動以下任務(wù),即該任務(wù)的預(yù)期計算時間比該任務(wù)在先前 計算周期中終止時的定時器時間更小。
10. 根據(jù)權(quán)利要求5至9中任一項所述的方法,其特征在于,在 所述任務(wù)結(jié)束的情況下,在中斷之前,所述任務(wù)管理器一直等待直到 所述周期持續(xù)時間結(jié)束。
11. 根據(jù)權(quán)利要求5至9中任一項所述的方法,其特征在于,在 所述任務(wù)結(jié)束的情況下,在中斷之前,所述任務(wù)管理器從所述集合中 啟動與已結(jié)束的任務(wù)相比具有更長預(yù)期計算時間的另一任務(wù)。
12. 根據(jù)權(quán)利要求1至11中任一項所述的方法,其特征在于, 所述數(shù)據(jù)處理設(shè)備具有多個并行工作的處理器,并且所述任務(wù)管理器 并行地分別在一個處理器上啟動最小任務(wù)和所述集合中至少一個其 它任務(wù),其中在經(jīng)過周期持續(xù)時間之后,采用并行任務(wù)中被完全執(zhí)行 的任務(wù)中滿足預(yù)定/可預(yù)定的判斷標(biāo)準(zhǔn)的任務(wù)的計算結(jié)果作為仿真結(jié) 果。
13. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述判斷標(biāo)準(zhǔn) 是計算持續(xù)時間,尤其是最長的計算持續(xù)時間,和/或計算精度,尤其 是最高的計算精度,和/或仿真步長寬度,尤其是最小的仿真步長寬度, 和/或解算器,和/或它們的組合。
14. 根據(jù)權(quán)利要求1至13中任一項所述的方法,其特征在于, 所述方法在數(shù)據(jù)處理設(shè)備上運行,其中借助所述數(shù)據(jù)處理設(shè)備,針對 真實的電子控制設(shè)備、尤其是汽車控制設(shè)備對測試環(huán)境進行仿真,其 中由所述數(shù)據(jù)處理設(shè)備向所述真實的控制設(shè)備饋送來自被仿真的控 制設(shè)備環(huán)境的信號和/或數(shù)據(jù),并且所述控制設(shè)備將真實的信號和/或 計算的數(shù)據(jù)發(fā)送到所述數(shù)據(jù)處理設(shè)備。
15. 根據(jù)權(quán)利要求1至14中任一項所述的方法,其特征在于, 所述方法在真實的電子控制設(shè)備、尤其是汽車控制設(shè)備上執(zhí)行,以對 所述控制設(shè)備的控制行為進行仿真,其中向所述控制設(shè)備饋送來自真 實的控制設(shè)備環(huán)境的信號和/或數(shù)據(jù),尤其是傳感器和測量值記錄器的 信號和/或數(shù)據(jù),并且所述控制設(shè)備向真實的控制設(shè)備環(huán)境的執(zhí)行器提 供所仿真的信號和/或仿真計算的數(shù)據(jù)。
16. 根據(jù)權(quán)利要求1至15中任一項所述的方法,其特征在于, 所述方法在數(shù)據(jù)處理設(shè)備上運行,其中借助所述數(shù)據(jù)處理設(shè)備對控制 設(shè)備、尤其是汽車控制設(shè)備的控制行為進行仿真,其中向所述數(shù)據(jù)處 理設(shè)備饋送來自真實控制設(shè)備環(huán)境、尤其是傳感器和測量值記錄器的 信號和/或數(shù)據(jù),或者由用于對控制設(shè)備環(huán)境進行仿真的數(shù)據(jù)處理設(shè)備 饋送,以及由對控制行為進行仿真的數(shù)據(jù)處理設(shè)備將所仿真的信號和 /或數(shù)據(jù)饋送到真實或仿真的控制設(shè)備環(huán)境。
全文摘要
本發(fā)明涉及借助在具有實時操作系統(tǒng)的數(shù)據(jù)處理設(shè)備上以軟件實現(xiàn)的任務(wù)管理器執(zhí)行至少一個實時計算至少一個待仿真信號的任務(wù)的方法,任務(wù)管理器周期性地分別在預(yù)定/可預(yù)定的周期持續(xù)時間之后啟動根據(jù)至少一個預(yù)定的輸入信號計算依賴于輸入信號的輸出信號的任務(wù),在數(shù)據(jù)處理設(shè)備上可執(zhí)行地存儲包括至少兩個不同任務(wù)的集合,這些任務(wù)具有不同的用于計算相同的至少一個待仿真信號的計算時間,并且至少一個最小任務(wù)具有比周期持續(xù)時間更短的計算時間,任務(wù)管理器根據(jù)所存儲的策略啟動集合中至少一個任務(wù),利用該策略在保持實時的同時在給定的周期持續(xù)時間內(nèi)獲得集合中至少一個任務(wù)的計算結(jié)果。
文檔編號G06F11/36GK101582049SQ20091013356
公開日2009年11月18日 申請日期2009年4月14日 優(yōu)先權(quán)日2008年5月13日
發(fā)明者B·穆勒, J·卡拉霍德, K·克呂格爾 申請人:帝斯貝思數(shù)字信號處理和控制工程有限公司