我是Matlab/Simulink的新手,但需要從一個軟件接口與Simulink模型。使用實時輸入運行連續的Simulink模型?
目前我已經創建了一個簡單的Simulink函數'Inc',它有一個輸入到一個常數爲1和輸出的加法塊。我已經使用了To/From Workspace塊,並且可以使用時間/值向量輸入(如simin = [0,0; 5,0; 5,1; 10,1])在固定時間內運行仿真。
我想要做的是不斷運行我的模型?實時讀取Workspace值而不是預定義的基於時間的矢量?
我看不出如何設置它? Matlab/Simulink可以做到這一點嗎?總之,我想simin和simout是單個值,即simin = 1,然後在下一個固定步驟simout連續(無限次)運行的模型將更新爲simout = 2。simin更改將在工作區以不同的時間間隔。
謝謝。我有一些使用事件監聽器技術的工作,並使用tcpclient從外部系統將實時更新流式傳輸到模型中。我注意到,儘管我需要向在事件監聽器上運行的腳本添加一個暫停(TimeStep),以將模型減慢到實時執行速度。這感覺不對,我錯過了某個地方的設置嗎? – MattP
是的,Simulink本身並不是一個實時系統。首先,它運行在Windows或其他不是實時的O/S上,但模型本質上運行得儘可能快。由於模型的複雜性,它可能比實時更快或更慢。如果速度更快,那麼可以使用工具來將執行速度減慢到僞實時,例如http://uk.mathworks.com/matlabcentral/fileexchange/21908-simulink%C2%AE-real-time-執行。 – am304
甚至是那個:http://uk.mathworks.com/matlabcentral/fileexchange/29107-real-time-pacer-for-simulink – am304