仿真裝置、仿真方法
【技術領域】
[0001] 本發(fā)明涉及仿真裝置、仿真方法和程序。
【背景技術】
[0002] 對諸如車輛、機器人和飛機之類的大規(guī)模電子控制系統(tǒng)的仿真已經(jīng)通過使用諸如 MATLAB(注冊商標)或者Simulink(注冊商標)之類的仿真建模系統(tǒng)生成仿真程序而被執(zhí) 行,從而不需要使用昂貴的硬件以用于模擬。在這種情況中,待仿真的電子控制系統(tǒng)被建模 為多功能塊,這些塊被并行執(zhí)行以改善執(zhí)行的速度(參見例如,專利文獻1以及非專利文獻 1 和 2)。
[0003] [專利文獻1]國際公開號2013/084654
[0004] [非專利文獻l]AloisFerscha,SatishK.Tripathi,"Paralleland DistributedSimulationofDiscreteEventSystems,',theUniversityofMaryland ComputerScienceDepartment;CS_TR-3336, 1998 年 10 月 15 日
[0005] [非專利文獻2]VikasJha,RajiveBagrodia,"Simultaneouseventsand lookaheadinsimulationprotocols",JournalACMTransactionsonModelingand ComputerSimulation,第 3 期第 10 卷,2000 年 7 月
【發(fā)明內容】
[0006] [技術問題]然而,在此類功能塊的并行執(zhí)行中,除了在有限的條件下之外,很難 生成用于高效地執(zhí)行并行處理同時最小化在功能塊之間的消息的發(fā)送的仿真程序。特別 地,當在多個功能塊的一些功能塊之間存在一個方向上的通信而不存在相反方向上的通信 時,尚不可能生成用于并行處理的高效執(zhí)行的仿真程序。
[0007] [解決方案]本發(fā)明的第一方面提供了一種仿真裝置、仿真方法和程序。該仿真裝 置執(zhí)行通過對在待仿真的系統(tǒng)中包括的多個部件建模而獲得的多個邏輯過程的并行執(zhí)行。 該仿真裝置包括:條件生成單元,該條件生成單元被配置成基于在多個邏輯過程之間的通 信延遲生成約束條件,該約束條件將由被給予多個邏輯過程的初始時間偏移和各自由從充 當通信源的邏輯過程發(fā)送到充當通信目的地的邏輯過程以允許先行(lookahead)的消息 所允許的先行時間滿足;以及求解器單元,該求解器單元被配置成求解優(yōu)化問題,該優(yōu)化問 題滿足約束條件并且最小化在多個邏輯過程之間的消息的通信中的開銷,并且被配置成獲 得多個邏輯過程的初始時間偏移和在多個邏輯過程之間的先行時間。
[0008] 以上描述的
【發(fā)明內容】
并不覆蓋本發(fā)明的所有特征。這些特征的分組的子組合也可 以構成發(fā)明。
【附圖說明】
[0009] 圖1圖示了根據(jù)實施例的邏輯過程以及邏輯過程的示例性操作。
[0010] 圖2圖示了根據(jù)實施例的邏輯過程以及具有初始偏移時段的邏輯過程的第一示 例性操作。
[0011] 圖3圖示了根據(jù)實施例的邏輯過程以及具有初始偏移時段的邏輯過程的第二示 例性操作。
[0012] 圖4圖示了根據(jù)實施例的仿真裝置100的示例性配置。
[0013] 圖5圖示了根據(jù)實施例的仿真裝置100的操作流程。
[0014] 圖6圖示了根據(jù)實施例的具有三個邏輯過程的第一示例性配置。
[0015] 圖7圖示了根據(jù)實施例的具有四個邏輯過程的示例性配置。
[0016] 圖8圖示了根據(jù)實施例的具有三個邏輯過程的第二示例性配置。
[0017] 圖9圖示了根據(jù)實施例的充當仿真裝置100的計算機1900的硬件配置。
【具體實施方式】
[0018] 現(xiàn)在將通過使用本發(fā)明的實施例來描述本發(fā)明。以下實施例并不限制根據(jù)權利要 求的本發(fā)明。并非在實施例中描述的所有特征組合都是解決本發(fā)明的手段所必須的。
[0019] 圖1圖示了根據(jù)實施例的邏輯過程以及邏輯過程的示例性操作。圖1圖示了其中 通過由A和B表示的兩個邏輯過程執(zhí)行仿真的配置。邏輯過程是通過對在待仿真的系統(tǒng)中 包括的多個部件建模而獲得的功能塊。仿真建模工具布置此類功能塊并且指定處理的流 程。
[0020] 每個邏輯過程具有以下功能:諸如相加和相乘的基本操作、邏輯操作、諸如整合 (integration)、條件分支和軟件代碼的調用之類的公式處理。例如,邏輯過程表示仿真的 執(zhí)行單元。例如,邏輯過程A和B各自是對汽車的引擎、傳動裝置或者電子控制單元的操作 仿真的邏輯過程。邏輯過程A和B以協(xié)作方式進行操作,同時向彼此發(fā)送消息。
[0021] 由邏輯過程發(fā)送的消息包括例如允許在接收側上的邏輯過程的先行的消息。時間 信息可以被添加到該消息中。在這種情況中,時間信息可以是關于在接收側上的邏輯過程 的先行將結束的時間的信息,或者可以是關于允許在接收側上的邏輯過程的先行的時間段 的信息。
[0022] 被添加到消息的時間信息是事先確定的,例如根據(jù)在發(fā)送側和接收側上的邏輯過 程之間的傳送延遲。該傳送延遲可以根據(jù)在由邏輯過程控制的功能之間傳播狀態(tài)、命令/ 控制等所需要的時間而被確定。
[0023] 當邏輯過程使用定時器功能執(zhí)行處理時,允許在接收側上的邏輯過程的先行的時 間段可以根據(jù)由在發(fā)送側上的邏輯過程設置的定時器所針對的時間和/或在接收側上的 邏輯過程發(fā)出警報的時間而被事先確定。以上描述的時段可以根據(jù)由在接收側上的邏輯過 程允許的延遲時間的范圍而被事先確定。
[0024] 在根據(jù)本實施例的邏輯過程中,在仿真執(zhí)行開始時間已經(jīng)預先開始了處理的邏輯 過程在預定初始偏移時段流逝之后向對應的邏輯過程發(fā)送允許先行的消息。在執(zhí)行開始時 間未處于先行的另一邏輯過程在執(zhí)行開始時間向對應的邏輯過程發(fā)送允許先行的消息。
[0025] 響應于接收到允許先行的消息,邏輯過程預先執(zhí)行對應的操作。在對應于被添加 到消息的時間信息的時段流逝之后,每個邏輯過程向對應的邏輯過程發(fā)送允許先行的消 肩、。
[0026]如果接收到允許先行的下一消息,則每個邏輯過程執(zhí)行對應的下一操作,而如果 未接收到下一消息,則每個邏輯過程被置于待機狀態(tài)中,直到接收到下一消息。通過在多個 邏輯過程之間發(fā)送消息的同時維持同步來執(zhí)行仿真的方法是已知的,例如,通過以上描述 的非專利文獻1。被發(fā)送的消息被稱為空消息。
[0027] 圖1示意性地將在邏輯過程A和B之間的通信中的發(fā)送和接收中的時間差圖示為 時間滯后(時間偏移)。在圖1中,Lab指示在從A向B發(fā)送消息中的時間滯后(例如,先 行時間,其是給予邏輯過程B的用于允許執(zhí)行的最早時間),并且L'BA指示從B向A發(fā)送消 息中的時間滯后。
[0028] 如果L'AB和L'BA兩者都為0 (L'AB =L'BA = 0),則兩個時間滯后都為零。這意味著 邏輯過程A和B強烈耦合,并且不能被并行執(zhí)行。在這種情況中,邏輯過程A和B不能被分 離到不同的邏輯過程中,并且作為單個仿真器被計算。
[0029] 如果L'AB和L'BA都不為0 (L'AB尹L'BA尹0),則執(zhí)行同步處理,例如,以在L' AB和 L'BA2間的最大公約數(shù)的時間步長。因此,實現(xiàn)了耦合的仿真的執(zhí)行,其中以最大公約數(shù)的 時間發(fā)生并行操作,而沒有時間錯誤。
[0030] 如果L'Afi和L'BA之一(例如,L'BA)為0 (L'AB關0,L'BA = 0),則邏輯過程A保留在 待機狀態(tài)中,直到從邏輯過程B接收到消息。在這種情況中,邏輯過程A和B交替地執(zhí)行順 序執(zhí)行。
[0031] 圖1中的"仿真時間"和"執(zhí)行時間"示出了這樣的順序操作的示例,其中水平軸表 示時間軸。在圖1中的仿真時間中,在邏輯過程A和B之間的消息的交換由箭頭指示。例 如,在與水平軸垂直的方向上從邏輯過程B向上指向邏輯過程A的箭頭指示邏輯過程B向 邏輯過程A發(fā)送具有為0的時間滯后的消息。
[0032] 在與水平軸對角的方向上從邏輯過程A指向邏輯過程B的箭頭指示邏輯過程A向 邏輯過程B發(fā)送具有為0或者更大的時間滯后(在這一示例中為L'J的消息。每個消息 指示允許邏輯過程執(zhí)行處理,直到對應的箭頭的尖端位置。
[0033] 在圖1中沿著實際時間軸的執(zhí)行時間中,每個邏輯過程執(zhí)行仿真的時段由矩形表 示,而邏輯過程處于待機狀態(tài)的時段由箭頭表示。也就是說,其