我有一系列的TOFILE在我的Simulink模型塊,每有一個獨特的文件名(如「Pulse.mat」我要來存儲我仿真基於時間戳的文件夾中的結果大致就當我點擊運行按鈕/使用SIM命令。設置文件名已經完成
我的解決辦法是寫兩個劇本,一個InitFcn
回調過程中調用,一個用於StopFcn
/CloseFcn
回調(和PreSaveFcn
回調)。
該InitFcn回調會發現所有TOFILE塊,並從「Pulse.mat」文件名更改爲類似「../runs//Pulse.mat」,以及StopFcn
/CloseFcn
/PreSaveFcn
他們恢復到其原來的「.MAT」的名字。這個工作對我的小測試模型,但是當我試圖把它融入我的實際模型,我收到以下錯誤:
Error evaluating 'StopFcn' callback of block_diagram '<model_name>'.
Caused by:
Cannot change parameter 'Filename' of '<ToFile Block>' while simulation is running. The block was made virtual as it was optimized for simulation
從我的研究,我發現,StopFcn
實際執行前的模擬是「完成「(無論什麼原因),但爲什麼它在我的初始測試模型中工作?我的實際模型中的ToFile塊是否有一些導致此錯誤發生的屬性集?
你可以使StopFcn創建一個'計時器'所執行的StopFcn之後執行短時間對象,與模型將由時間已完全終止的期望。定時器功能然後將名稱更改。 (它可能要檢查,該模型仍然是開放的,該模型的SimulationStatus財產確認模擬已經終止。) –