主要内容

在调试时检查和修改数据和消息

当你的状态流®图处于调试模式,可以通过查看数据值、消息值和时态逻辑表达式来检查图的状态。您还可以通过修改数据值和发送本地和输出消息来测试图表的设计。该表总结了用于执行这些调试任务的接口。有关更多信息,请参见调试Stateflow图表

调试任务 Stateflow编辑器 符号面板 断点和观察窗口 MATLAB®命令窗口
检查数据和消息的值 是的 是的 是的 是的
检查时态逻辑表达式 是的
修改数据和消息的值 是的 是的
发送消息 是的

视图中的数据Stateflow编辑器

当模拟在断点处暂停时,您可以通过指向图表中的状态、转换或函数来检查数据值。工具提示显示所选对象使用的数据和消息的值。

对象类型 提示信息
状态和转换 对象使用的数据、消息和时态逻辑表达式的值
图形,真值表,和MATLAB函数 函数范围内的本地数据、消息、输入和输出的值

例如,当第二个状态评估它行动。指向超国家齿轮显示显示以下值的工具提示:

  • 时序逻辑表达式持续时间(速度> = up_threshold)持续时间(< = down_threshold速度)

  • 数据,包括速度up_threshold,向上

请注意

如果您选择图表属性导出图表级功能将导出的函数视为全局可见的,工具提示不显示时态逻辑数据。

在“符号”窗格中查看和修改数据

当图表处于调试模式时,“符号”窗格将显示图表中每个数据和消息对象的值。例如,当此图表在断点处暂停时,您可以看到列表中的所有图表数据的值价值列。突出显示的值在上一个时间步骤中更改。

在“符号”窗格中,您可以更改以下值:

  • 数据存储内存、本地和输出数据。

  • 本地和输出消息。

单击价值字段用于输入新值的数据或消息对象。

在模拟过程中,不能更改常量、参数或输入数据和消息的值。

有关更多信息,请参见在“符号”窗格中管理数据、事件和消息

在断点和监视窗口中查看数据

在statflow断点和监视窗口中,可以在模拟在断点暂停时查看当前数据和消息值。要打开“断点和监视”窗口,请单击调试选项卡上,单击断点列表。或者,打开“断点”对话框并单击断点列表链接。

  • 要查看所有断点及其关联条件的列表,请选择断点选项卡。有关更多信息,请参见通过断点和监视窗口管理断点

  • 要检查数据和消息值,请选择选项卡。

跟踪观察列表中的数据

你可以使用断点和观察窗口:

  • 将数据和消息对象添加到监视列表中。

  • 跟踪自上次时间步骤以来更改的值。

  • 展开消息以查看消息队列和消息数据值。

例如,您可以添加速度up_threshold,向上到观察列表,并在模拟过程中跟踪它们的值。突出显示的值表示速度up_threshold在最后一个时间步骤中更改。

要将数据或消息对象添加到监视列表,请打开属性检查器或模型浏览器。选择要监视的数据或消息对象,然后单击添加到监视窗口链接。

或者,在statflow Editor中,右键单击使用数据或消息的状态或转换。选择添加到监视窗口并从下拉列表中选择变量名。

格式表显示

若要更改用于显示手表数据的格式,请选择齿轮图标在窗户的顶端。使用下拉列表为每个数据类型选择MATLAB格式。

从观察列表中删除数据

要从监视列表中删除数据或消息对象,请指向监视数据的路径,然后单击把这个手表出现在变量名左边的图标。

保存和恢复手表数据

观察数据在MATLAB会话期间持续存在。当您关闭一个模型时,它的监视数据列表仍然保留在断点和监视窗口中。如果在同一个MATLAB会话期间重新打开一个模型,则会恢复该模型的观察数据列表。

您可以保存断点和观察数据列表,并在以后的MATLAB会话中重新加载它们。要保存断点和监视数据列表的快照,请在“断点和监视窗口”的顶部单击保存当前断点和手表图标。如果需要恢复快照,请单击加载断点并观察图标。

中的“查看和修改数据”MATLAB命令窗口

当模拟在断点处暂停时,MATLAB命令提示符变为调试> >.在这个提示符下,您可以检查和更改statflow数据的值,发送本地和输出消息,并与MATLAB工作区进行交互。

例如,假设前面的图表已经到达一个断点。要查看在当前范围内可见的数据,请使用命令。

Name Size Bytes Class Attributes TWAIT 1x1 1 uint8 down 1x1 1 logical down_th 1x1 8 double down_threshold 1x1 8 double gear 1x1 4 gearType speed 1x1 8 double throttle 1x1 8 double up 1x1 1 logical up_th 1x1 8 double up_threshold 1x1 8 double

检验…的价值速度up_threshold,输入:

速度
速度= 26.3383
up_threshold
up_threshold = 41.3601

使用调试提示符修改数据

在调试提示下,您可以更改数据存储内存、本地和输出数据的值。例如,在上一个图表中,您可以更改up_threshold向上,齿轮:

up_threshold = 25;
向上=真;
齿轮= gearType.third;
在调试提示符处修改数据时,请遵循这些规则。

  • 要修改向量和矩阵,请使用MATLAB语法进行索引,而不管图表的操作语言属性是什么。看到索引符号

    例如,改变一个2 × 2矩阵的对角线上的元素u,输入:

    u (1,1) = 6.022 e23;u (2, 2) = 6.626 e-34

  • 只要新大小在为数据指定的维度范围内,您就可以更改可变大小数据的维度。例如,假设v是最大大小为的可变大小数组16 (16).的值v对于一个5乘7的1数组,输入:

    v = 1(5、7);

  • 若要修改枚举数据,请使用带前缀的标识符显式指定枚举类型。看到枚举值的表示法

    例如,假设w是否具有枚举数据类型颜色.的值w到枚举值红色的,输入:

    w =颜色。红色的

  • 若要修改数值数据,请使用MATLAB类型转换函数将其转换为显式数据类型。类型的数据不需要显式强制转换看见类型转换操作

    例如,假设x有类型y有类型int32,z有类型fixdt(12) 1, 16日.要更改这些数据对象的值,请输入:

    x =单(98.6);y = int32 (100);z = fi(12) 0.5413、1、16日;

  • 无法在调试提示下更改常量、参数或输入数据的值。

请注意

修改类型数据int64uint64,使用该函数fi(定点设计器)将新值强制转换为定点类型。

使用调试提示发送消息

在调试提示符下,您可以发送本地消息和输出消息。例如,在这个图表中,本地消息确定在状态之后哪个状态变为活动状态DecisionPoint。如果图表收到该消息如果值为正值,则表示状态收到了变为活动状态,图表输出值为真的. 否则,国家错过变为活动状态,图表输出值为

消息的初始值为零。要将数据字段的值更改为正数并将消息发送到其本地队列,请输入:

M=5;发送(M);
当您进入模拟的下一个步骤时,消息将触发到状态的转换收到了.有关更多信息,请参见断点后的控制图执行

当从调试提示符发送消息时,遵循以下规则:

  • 若要读取或写入有效消息的消息数据字段,请使用消息对象的名称。不要使用点符号语法。

  • 控件显式地发送消息时,才能从调试提示符发送消息发送操作符。

  • 您不能从调试提示符发送输入消息。

有关更多信息,请参见控制状态流图中的消息活动

访问MATLAB调试时的工作区

您可以在调试提示下输入其他MATLAB命令,但结果将在Stateflow工作区中执行。例如,您可以使用保存功能:

保存(chartVars)

要在MATLAB基本工作空间中输入命令,请使用埃瓦林命令的第一个参数“基地”.例如,要在MATLAB工作空间中列出变量,使用命令:

evalin (“基地”“谁”

另请参阅

|||

相关话题