Simulink 模型回調函數是一種特殊的 MATLAB 函數,可在模型生命周期的特定階段自動執行。它們允許用戶自定義模型行為、執行初始化任務、驗證參數或記錄數據。以下是各回調函數的詳細說明:
1. PreLoadFcn
- 觸發時機:Simulink 模型加載到內存之前。
- 用途:
- 設置環境變量或工作區變量。
- 驗證依賴文件或工具箱是否存在。
- 修改模型路徑或配置參數。
- 示例場景:檢查必要的數據文件是否存在,若不存在則生成默認數據。
2. PostLoadFcn
- 觸發時機:Simulink 模型成功加載到內存之后,但尚未顯示。
- 用途:
- 初始化模型參數或模塊屬性。
- 添加自定義注釋或標記。
- 執行模型版本檢查或兼容性調整。
- 示例場景:根據當前 MATLAB 版本自動調整積分器類型。
3. CloseFcn
- 觸發時機:模型窗口關閉之前。
- 用途:
- 保存臨時數據或用戶設置。
- 確認是否需要保存未修改的模型。
- 釋放外部資源(如文件句柄或網絡連接)。
- 示例場景:提示用戶保存未保存的參數更改。
4. PreSaveFcn
- 觸發時機:模型保存之前。
- 用途:
- 清理臨時變量或無用數據。
- 自動更新模型注釋或版本號。
- 驗證模型完整性(如檢查參數范圍)。
- 示例場景:確保所有增益模塊的參數為正數。
5. PostSaveFcn
- 觸發時機:模型成功保存之后。
- 用途:
- 生成相關文檔或報告。
- 備份模型或同步到版本控制系統。
- 顯示保存成功的提示信息。
- 示例場景:自動將模型備份到指定目錄。
6. InitFcn
- 觸發時機:模型更新階段(如點擊 "Update Diagram")、計算模塊參數之前。
- 用途:
- 初始化變量或分配內存。
- 設置模塊參數的默認值。
- 執行模型結構驗證(如檢查信號維度)。
- 示例場景:根據輸入信號長度動態調整緩沖區大小。
7. StartFcn
- 觸發時機:仿真開始之前(點擊 "Run" 按鈕后)。
- 用途:
- 初始化仿真數據記錄器。
- 設置隨機數生成器種子以確保可重復性。
- 連接外部硬件或數據源。
- 示例場景:啟動數據采集卡并配置采樣率。
8. PauseFcn
- 觸發時機:仿真暫停之后。
- 用途:
- 顯示當前仿真狀態或中間結果。
- 保存臨時數據用于后續分析。
- 修改參數以便在繼續仿真時生效。
- 示例場景:繪制當前時刻的系統響應曲線。
9. ContinueFcn
- 觸發時機:仿真從暫停狀態繼續之前。
- 用途:
- 驗證參數修改是否合法。
- 恢復外部資源或連接。
- 更新顯示以反映當前仿真狀態。
- 示例場景:確認修改后的控制器參數在安全范圍內。
10. StopFcn
- 觸發時機:仿真停止之后(無論正常結束或手動中斷)。
- 用途:
- 分析和可視化仿真結果。
- 清理臨時文件或釋放資源。
- 生成性能報告或日志。
- 示例場景:計算并顯示系統的穩態誤差和超調量。