主要内容

在模拟块数据的访问

关于块运行时对象

金宝app®提供了一个应用程序编程接口,称为块运行时界面,使编程访问数据块,如块输入和输出、参数、状态,和工作载体,而模拟运行。您可以使用此接口来访问运行时数据块从MATLAB®命令行,MATLAB仿真软件调试器,金宝app从2级S-functions(见写2级MATLAB S-Functions)。

请注意

您可以使用此接口即使模型是停了或正在运行或停在调试器中。

块运行时界面由一组仿真软件(参见数据对象类金宝app数据对象)的实例在运行模型提供的数据块。特别是,接口的同事的一个实例金宝appSimulink.RunTimeBlock称为块的运行时对象,每个nonvirtual块的运行模式。运行时对象的方法和属性提供运行时数据块的I / O端口,参数,样品时间和状态。

一个运行时对象的访问

每个nonvirtual块运行模式RuntimeObject参数的值,模拟运行时,运行时对象的一个句柄。这允许您使用get_param获得一块的运行时对象。例如,以下语句

“RuntimeObject”rto = get_param (gcb);

返回当前选择的运行时对象。运行时对象数据是只读的。你不能使用运行时对象改变块的参数,输入、输出和状态数据。

请注意

虚拟块(见Nonvirtual和虚拟块)没有运行时对象。块消除在编译作为优化模型(见也没有运行时对象块减少)。一个运行时对象包含块的模型运行时只存在或暂停。如果模型是停了下来,get_param返回一个空句柄。当你停止一个模型,所有现有处理运行时对象变得空虚。

监听方法执行的事件

一个应用程序的运行时API是收集诊断数据块在重点模拟,如块状态块之前或之后的价值计算其输出或衍生品。块运行时API提供了一个事件监听器机制,促进了这类应用程序。有关更多信息,请参见的文档add_exec_event_listener命令。对于使用方法执行事件的一个例子,输入

在MATLAB命令行。该仿真软件金宝app模型包含了功能adapt_lms.m,它执行一个系统识别确定冷杉滤波器的系数。功能的PostPropagationSetup运行时对象的方法初始化块DWork矢量,第二个商店在每个时间步长计算滤波器系数。

在仿真软件模型金宝app中,双击下面的注释功能块执行它OpenFcn。这个函数首先打开一个图来绘制冷杉滤波器系数。然后执行函数add_adapt_coef_plot.m添加一个PostOutputs方法执行事件功能块的运行时对象使用下面的代码行。

%为PostOutputs事件添加一个回调黑色=“sldemo_msfcn_lms / LMS自适应”;h = add_exec_event_listener(黑色,……PostOutputs, @plot_adapt_coefs);

这个函数plot_adapt_coefs.m注册一个事件监听器,每次调用函数执行的吗输出方法。运行时对象的函数访问块DWork向量和阴谋的滤波器系数计算输出方法。用于调用语法plot_adapt_coefs.m遵循标准所需的任何侦听器。第一个输入参数是函数的块运行时对象,第二个参数是一个事件数据结构,如下所示。

函数plot_adapt_coefs(块,ei) % #好< INUSD > % %回调函数来绘制当前自适应滤波%系数。stemPlot = get_param (block.BlockHandle,用户数据);美国东部时间= block.Dwork (2) . data;集(stemPlot (2),“YData”,美国东部时间);drawnow(“暴露”);

同步运行时对象和金宝app执行

您可以使用运行时对象获得的价值一块输出和显示在MATLAB命令窗口输入以下命令。

“RuntimeObject”rto = get_param (gcb) rto.OutputPort (1) . data

然而,显示的数据可能不是真正的块输出如果没有同步运行时对象模型的执行。金宝app金宝app仿真软件只有确保运行时对象和模型执行时同步运行时对象用于在一个2级MATLAB函数或一个事件侦听器回调。从MATLAB命令窗口时,运行时对象可以返回不正确的输出数据如果其他模型中可以共享内存块。

以确保数据字段包含正确的块输出,打开配置参数对话框,然后清除信号存储重用复选框(见信号存储重用(金宝app仿真软件编码器))。

相关的话题