• 7进阶、Simulink回调函数


    为什么使用回调函数?为了使用户在数据初始化、模块拖拽、仿真结果绘图操作等过程中更加便利,表现力更加丰富,使模型和模块的动作,甚至跟模块端口相连

    的信号的动作都能够由用户自定义,用户可以建立使用便利、具有个性化的模型执行过程。

    7.1 什么是回调函数

    Callback functions 是因某种操作而触发对其调用的函数,如按下按钮或双击操作等。

    对于模型来说,回调函数在Simulink有举足轻重作用。当执行一系列动作,如选中某个模块或仿真开始时,回调函数便被触发执行。使用回调功能可用来执行一个MATLAB脚本或调用MATLAB函数。Simulink中回调函数的触发可通过模块、端口或模块的参数设置来实现。

    Simulink回调函数应用场合:

    • 打开Simulink模型时自动加载变量到工作空间;
    • 双击模块时执行MATLAB脚本;
    • 仿真开始前进行模型参数初始化;
    • 仿真结束后将仿真出来的数据绘制图像;
    • 关闭模型时清除相关变量或关闭图像。

    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 打开模型时自动加载变量

    例如,现有一个模型包含增益模块Gain且增益为K,Simulink就会在Base Workspace中搜寻变量K,使用以下方法,可以在每次打开模型时自动定义K,可以在单独M脚本中定义变量K,然后使用PreLoadFcn回调函数来执行此脚本。

    7.7.2 双击模块执行MATLAB脚本

    7.7.3 开始仿真前执行命令

    7.7.4 提示模块端口的连线情况

    7.7.5 统计模型中所有模块信息

  • 相关阅读:
    用before 和after 清除浮动
    清除浮动最优
    pc端布局03
    PC端布局02
    >PC端常用布局01
    浮动
    盒模型-
    盒模型-外边距合并
    spring中的AOP
    AOP的概念
  • 原文地址:https://www.cnblogs.com/snoopingmind/p/14421934.html
Copyright © 2020-2023  润新知