调试 MATLAB Function 模块

您所在的位置:网站首页 vba中call调用模块变量 调试 MATLAB Function 模块

调试 MATLAB Function 模块

2023-06-09 15:02| 来源: 网络整理| 查看: 265

调试 MATLAB Function 模块

您可以使用 MATLAB Function 模块编辑器来调试 MATLAB Function 模块代码。MATLAB Function 模块编辑器包含一些与 MATLAB® 编辑器中相同的调试工具。要调试 MATLAB Function 模块代码,请设置至少一个断点并运行仿真。

调试示例函数

此示例使用您在用 MATLAB Function 模块在 Simulink 中实现 MATLAB 函数中创建的模型 call_stats_block2。要调试此模型中的 MATLAB Function 模块代码,请执行以下操作:

打开 call_stats_block2 模型。双击 MATLAB Function 模块打开编辑器。

在 MATLAB Function 模块编辑器中,点击以下行左侧的行号:

len = length(vals);

行号以红色突出显示,表示存在断点。

对模型进行仿真。

当执行到断点时,仿真将暂停。绿色箭头指向仿真暂停的位置。

在函数选项卡上,点击越过以继续执行。

执行前进到 stats 的下一行,它调用局部函数 avg。

在函数选项卡上,点击步入。

执行前进到局部函数 avg。进入局部函数后,您可以使用越过或步入命令继续执行。如果局部函数又调用另一个局部函数,可以使用步入进入。要执行局部函数的其余行,可以使用步出。

点击越过以执行 avg 中的唯一一行代码。

点击越过以返回到函数 stats。

执行前进到调用 avg 之后的代码行。

点击越过两次,以计算 stdev 并执行 plot 函数。

plot 函数在 MATLAB 中执行:

点击继续以继续执行模型。

如果返回到模型,计算出的 mean 和 stdev 的值将出现在 Display 模块中。

在 MATLAB Function 模块编辑器中,点击停止以停止仿真。

注意

您可以在普通模式和加速模式下调试 MATLAB Function 模块。但是,如果在加速模式下仿真的模型在模型引用中使用 MATLAB Function 模块,父模型仿真将忽略断点。

设置断点条件

您可以在 MATLAB Function 模块内的断点上输入 MATLAB 表达式作为条件。仅当满足该条件时,仿真才会在断点处暂停。要设置条件断点,请在 MATLAB Function 模块编辑器中,右键点击一个代码行左边的行号,选择设置条件断点,然后在对话框中输入条件。您可以使用任何有效的 MATLAB 表达式作为条件。此表达式可以包含数值以及位于断点作用域内的任何数据。

要添加或修改某现有断点的条件,请右键点击该断点,然后选择设置/修改条件。

在仿真期间观察函数变量

在仿真 MATLAB Function 模块时,您可以使用几种工具来跟踪函数的变量值。

在代码中观察函数变量

要在仿真期间在代码中查看 MATLAB Function 模块的函数中的变量值,请执行以下操作:

向 MATLAB Function 模块编辑器添加一个断点。

运行模型。

当仿真暂停时,指向一个变量名称。工具提示显示当前变量值。

例如,要在仿真期间观察变量 stdev,请指向代码中的 len。

在符号窗格中观察函数变量

要在仿真期间在符号窗格中查看 MATLAB Function 模块的变量值,请执行以下操作:

打开符号窗格。在函数选项卡中,点击编辑数据。

向 MATLAB Function 模块编辑器添加一个断点。

运行模型。

当仿真暂停时,符号窗格会用断点处的值进行更新。如果变量是数组,则值列显示该变量的维度和数据类型。指向值列以查看值。

例如,要在仿真期间查看变量 vals,请指向值列中 vals 的值。

用命令行调试器监视函数变量

在仿真期间,您可以在命令行窗口中查看函数变量的值。当到达断点时,在 debug>> 提示符处输入变量的名称以查看其值。

debug>> stdev 1.1180 debug>>

您也可以在调试时在命令行窗口中输入以下命令:

命令描述

dbcont

继续执行到下一个断点。

dbquit

退出调试并终止仿真。

dbstep [in|out]

遇到断点后,前进到下一个程序步骤。跳过或者进入/退出 MATLAB 局部函数。

help

显示命令行调试帮助。

print

显示变量 var 在当前作用域中的值。如果 var 是向量或矩阵,您也可以对 var 进行索引。例如,var(1,2)。

save

将当前作用域中的所有变量保存到指定的文件中。遵循 MATLAB save 命令的语法。要从 MATLAB 基础工作区检索变量,请在仿真完成后使用 load 命令。

如果变量在当前作用域内,则等效于 print 。

who

显示当前作用域中的变量。

whos

显示当前作用域中所有变量的大小和类(类型)。

如果在 debug>> 提示符下输入其他命令,结果将在 MATLAB Function 模块的工作区中执行。要在 MATLAB 基础工作区中发出命令,请使用 evalin 命令和第一个参数 "base" 后跟第二个参数命令,例如 evalin("base","whos")。您无法在 debug>> 提示符下定义或更改变量。

显示大小限制

MATLAB Function 模块编辑器不显示维数超过二或元素数超过 200 的矩阵的内容。对于超过这些限制的矩阵,MATLAB Function 模块编辑器只显示形状和基类型。

检查数据范围违例

当输入或输出值进入或离开 MATLAB Function 模块时,模块将检查输入和输出数据是否存在范围违规问题。要启用数据范围违规检查,请打开“配置参数”窗口,点击诊断 > 数据有效性,并将仿真范围检查设置为 error 或 warning。

指定数据范围

要指定输入和输出变量的范围,请在 MATLAB Function 模块编辑器中,执行以下操作:

在符号窗格中,点击感兴趣的变量。

在属性检查器的属性选项卡中,通过输入所需的最小值和最大值值来调整限制范围属性。

调试 Initialize Function 和 Terminate Function 模块中的 MATLAB Function 模块

当您在 Initialize Function 或 Terminate Function 模块中使用 MATLAB Function 模块时,您无法使用调试代码部分中的按钮来浏览断点。要浏览断点,请使用行号上下文菜单。在 MATLAB Function 模块编辑器中,添加一个断点并运行仿真。在仿真期间,右键点击任一行号,然后点击越过、步入、步出、继续或停止。

另请参阅

MATLAB Function 模块编辑器

相关主题用 MATLAB Function 模块在 Simulink 中实现 MATLAB 函数MATLAB Function Reports


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3