为什么使用回调函数?为了使用户在数据初始化、模块拖拽、仿真结果绘图操作等过程中更加便利,表现力更加丰富,使模型和模块的动作,甚至跟模块端口相连
的信号的动作都能够由用户自定义,用户可以建立使用便利、具有个性化的模型执行过程。
7.1 什么是回调函数
Callback functions 是因某种操作而触发对其调用的函数,如按下按钮或双击操作等。
对于模型来说,回调函数在Simulink有举足轻重作用。当执行一系列动作,如选中某个模块或仿真开始时,回调函数便被触发执行。使用回调功能可用来执行一个MATLAB脚本或调用MATLAB函数。Simulink中回调函数的触发可通过模块、端口或模块的参数设置来实现。
Simulink回调函数应用场合:
7.2 回调跟踪
作用:可以清楚显示Simulink如何调用回到函数以及以何种顺序调用他们。
使能回调跟踪:在Preferences对话框中选择Callback tracing选项,或 在Command Window中执行set_param(0, ‘Callback Tracing‘, ‘on‘)
7.3 模型回调函数
创建模型回调函数:方法1,模型菜单中,File--Model Properties--Model Properties
左侧是回调函数的名字,表征被调用时刻,从上到下按时间先后排序。点击任意一个函数,在右侧框内编写函数内容。
在Command Window或M脚本文件中通过M代码设置模型回调函数。即通过set_param设置回调函数。
set_param指定一个MATLAB表达式,这个表达式表示回调函数的内容。
举例说明set_param设置回调函数的方法:
7.4 模块回调函数
右键模块--properties打开Callbacks列表和回调函数内容编辑框。在右侧填入回调函数的代码内容。
或者使用set_param指定MATLAB表达式作为某个回调函数的内容。如设定某个模块被删除时,显示This block is being deleted
在命令行中输入代码并回车执行: set_param(gcbh, ‘DeleteFcn‘, ‘msgbox("This block is being deleted!"); ‘ );
7.5 端口回调函数
模块输入和输出端口的回调函数称为连续回调函数,在任何时刻端口信号连续发生改变时都会触发此回调函数。
7.6 参数回调函数的使用
7.7 回调函数使用例程
7.7.1 打开模型时自动加载变量
7.7.2 双击模块执行MATLAB脚本
7.7.3 开始仿真前执行命令
7.7.4 提示模块端口的连线情况
7.7.5 统计模型中所有模块信息
原文:https://www.cnblogs.com/snoopingmind/p/14421934.html