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
- 触发时机:仿真停止之后(无论正常结束或手动中断)。
- 用途:
- 分析和可视化仿真结果。
- 清理临时文件或释放资源。
- 生成性能报告或日志。
- 示例场景:计算并显示系统的稳态误差和超调量。