Simulink命令行仿真技术(15)
时间:2025-07-11
时间:2025-07-11
Simulink命令行仿真技术
难道真的不需要运行仿真之前事先定义变量吗?答案是否定的。相信每个用户在建模做仿真时都曾经有过忘记定义变量的经历。如果用户建立了一个系统仿真模型,只要该系统中只有一个变量没有定义,在启动仿真运行时,Simulink都会给出错误提示。事实上,f14仿真模型中用到的一些变量已经事先定义好了,只是现在定义变量的方式和以前我们使用的方式不一样而已。对于这一点,用户可以从MATLAB工作空间看出,实际上在打开f14模型之后,这些参数已经存在于MATLAB工作空间中了。用户在MATLAB命令窗口中键入
>> who
就可以查询到所有这些变量了。
那么,这些变量是怎样被赋值的?本节我们就来回答这个问题。事实上,f14系统仿真模型被打开时,MATLAB就自动调用执行了某些MATLAB命令和函数,完成了对所需参数的定义,这些MATLAB命令及MATLAB函数的集合就是f14的回调函数。
从某种意义上来说,回调函数就像许多高级编程语言中的事件处理程序。在MATLAB中,为模型或模块的某种行为设置回调函数的方法是将该行为对应的参数(称为模型的回调参数)的值设置为需要执行的回调函数名。回调参数就像高级程序语言中的事件。那么剩下的问题就是MATLAB中哪些行为对应哪些回调参数?这些回调参数值对应的回调函数会在什么时间调用?表11.2列出了部分回调参数及对应的回调函数的执行时间。
11.4.2 回调函数的使用
对于回调函数,用户应该掌握两个比较重要的命令:
set_param(‘模型名称’,’回调参数’,’回调函数名’)
get_param(‘模型名称’,’回调参数’)
一、get_param命令
get_param命令用于获得系统仿真模型的某个回调参数对应的回调函数名。其调用格式是
get_param(‘模型名称’,’回调参数’)
例如在MATLAB命令窗口键入
>> f14 %必须先打开f14模型
>> get_param('f14','PreLoadFcn') %使用get_param命令
ans =
f14dat
由此可见,使用get_param命令得到了f14模型的回调参数PreLoadFcn对应的回调函数是名为f14dat的M文件。那么,在f14模型加载前MATLAB先执行了f14dat.m文件,实现了对仿真所需参数的设置。感兴趣的读者可以在MATLAB命令窗口键入
>> open f14dat
打开f14dat.m文件,可以看到此文件是给各个仿真所需
参数赋值的。
二、set_param命令
set_param命令用于设置系统仿真模型的某个回调参
数的值(即需执行的回调函数的名称)。其调用格式是
set_param(‘模型名称’,’回调参数’,’回调函数
名’)
这里我们使用一个较简单的例子为例来说明回调函数
的使用。系统的仿真模型见图11.12所示。系统中有两个
参数需要在仿真前被赋值,否则无法进行仿真计算。
现在我们编写两个的脚本文件。 图11.12 仿真模型 表
11.2 模型的回调函数及其对应的回调函数执行的时间
161
下一篇:审计风险的成因及防范措施