1. 什么是回调函数
Callback functions(回调函数)是因某种操作而触发对其调用的函数,如按下按钮或双击操作等。对于模型来说,回调函数在 Simulink中起着举足轻重的作用。当执行一系列动作,如选中某个模块或仿真开始时,回调函数便被触发执行。使用回调功能可用来执行一个 MATLAB脚本或调用 MATLAB函数。 Simulink中回调函数的触发可通过模块、端口或模块的参数设置来实现
常用的 Simulink回调函数可应用在以下场合:
1) 打开 Simulink模型时自动加载变量到工作空间;
2) 双击模块时执行 MATLAB脚本;
3) 仿真开始前进行模型参数的初始化;
4) 仿真结束后将仿真出来的数据绘制图像;
5)关闭模型时清除相关变量或关闭图像。
2. 回调跟踪
当打开模型或对某个模型进行仿真时,回调跟踪功能可以清楚显示 Simulink如何调用回调函数以及以何种顺序调用它们。在 Preferences对话框中选择 Callback tracing选项或者在Command Window中执行 set param(0, ‘CallbackTracing',’on'),即可打开回调跟踪功能。回调函数被调用时,在MATLAB命令窗口中将显示回调列表。这个选项对所有 Simulink软件都适用,而不仅仅对于当前打开的模型。如单击 MATLAB T具栏 Simulink Library按钮打开 Simulink Library Browser时会显示回调函数过程,如下图所示。
开启了回调函数追踪功能之后,可以显示任何类型的回调函数执行过程。Simulink中回调函数分为模型回调函数、模块回调函数、端口回调函数和参数回调函数。
3. 模型回调函数
可以通过手动或程序创建2种方式创建模型回调函数。在模型菜单中选择File->Model->Properties->Model Properties可以打开模型属性对话框,如下图所示。
4. 模块回调函数
可以通过手动或M代码创建模块回调函数。手动创建模块的回调函数时通过模块回调函数的对话框实现。鼠标右键点击模块,在右键菜单里选择Properties打开模块属性对话框,其Callbacks列表和回调函数内容编辑对话框,如下图所示。
5. 端口回调函数
模块输入和输出端口的回调函数称为连接回调函数,在任何时刻端口信号连接发生改变时都会触发此回调函数。变化情况包括:从端口连接信号线到其它端口;从端口删除信号线连接;删除、切断或增加连接到端口的分支或信号线等。
端口的回调函数无法通过对话框手动填入,必须使用get_param获得端口的句柄,使用set_param设置端口的回调函数。此回调函数含有一个输入参数,代表端口句柄,但在调用set_param时不包括此输入参数。