Simulink實時仿真--Desktop Real-Time

什麼是實時仿真

  首先簡單介紹一下實時仿真的概念,所謂Real-Time就是指程序運行的時間和真實時間是一致的。比如我們建立一個慣性環節對單位階躍信號的響應的仿真程序,仿真時間爲10秒;而程序很可能幾毫秒就運行完,並給出了你計算結果,也就是說這個過程是非實時的。它所耗費的時間卻決於模型的複雜程度、計算機性能等因素,因此這個時間對我們來說是不可控的。然而在進行仿真,特別是涉及到硬件的硬件再環仿真(HIL)的時候,我們往往要求程序的響應和真實時間是一致的。舉例來說,如果我們建立了一個飛機的動力學模型,現在希望考察它對搖桿操縱的響應情況。如果程序運行的太快或太慢都將導致和搖桿輸入量的不匹配,那麼計算出來的結果也是沒有意義的。所以實時仿真就顯得十分重要了。一個程序要實時,包括兩層含義:程序不能響應太慢,也就是在一個仿真步長內必須完成一次計算;也不能太快,完成一次計算後還沒有到下一個步長就要等待。能進行實時仿真的工具很多,其中Matlab/Simulink可以很方便地實現這一功能。下面介紹一下Simulink的實時仿真功能。

Simulink的實時仿真類型

在Matlab早期的版本中,提供的實時仿真工具稱爲Real Time WorkShop也就是常常見到的RTW工具箱。現在最新的Matlab把它更名爲Simulink Real-Time,並添加了Simulink Desktop Real-Time功能。相比前者,後者使用起來更加簡單、方便上手,基本上可以滿足一些常見的實時仿真要求。具體地說,Desktop Real-Time可以在一臺電腦上完成仿真,而Simulink Real-Time則有宿主機(host)和目標機(target)之分。

從性能上講,Normal模式支持的最高仿真頻率爲1kHz,即最小仿真步長爲0.001;而External模式則最高可達20kHz。本文主要講Desktop Real-Real,至於另一種功能相對繁瑣,以後再寫。下面舉例說明,如何仿真的具體過程。

如何進行Desktop Real-Time仿真

Normal模式

還以上文中提到的慣性環節對單位階躍的響應爲例,首先在Simulink中建立相關模型,其模型如下圖所示


可以注意到除了模型必須的模塊外,還有一個Real-Time Synchronization模塊,它是Desktop Real-Time中用來輸出錯過的仿真步長的模塊。這個需要特別說明,模型中至少應該含有一個實時模塊才能在Normal模式下進行實時仿真,否則模型實際上處於FreeRun狀態,是非實時的。我們知道上述響應在時域的函數應該爲:

我們點擊工具欄中的設置按鈕,進入參數配置頁面。
這時候可以進行一些參數設置,比如仿真的時間、步長類型、求解器類型等等,這裏我們保持默認即可。


點擊運行我們即可觀察到持續10秒的實時的響應過程,最終結果如圖所示:


以上即爲Normal模式下的實時仿真。下面介紹External模式。

External模式

External外部模式下需要進行一些配置。首先是求解器中的仿真步長必須設定爲定步長,然後其數值可以選自動也可以手動指定。然後代碼生成設置中,選擇目標文件爲是sldrt.tlc,最後選擇在工具欄中把模式改爲External,點擊運行即可。等待編譯完成即開始實時仿真。


外部模式下不需要特別加入實時模塊,這一點和Normal模式是有區別的。關於Desktop Real-Time就寫這些非常基本的內容,以後會繼續寫實時仿真的相關內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章