当你的状态流®图处于调试模式,可以通过查看数据值、消息值和时态逻辑表达式来检查图的状态。您还可以通过修改数据值和发送本地和输出消息来测试图表的设计。该表总结了用于执行这些调试任务的接口。有关更多信息,请参见调试Stateflow图表.
调试任务 | Stateflow编辑器 | 符号面板 | 断点和观察窗口 | MATLAB®命令窗口 |
---|---|---|---|---|
检查数据和消息的值 | 是的 | 是的 | 是的 | 是的 |
检查时态逻辑表达式 | 是的 | 不 | 不 | 不 |
修改数据和消息的值 | 不 | 是的 | 不 | 是的 |
发送消息 | 不 | 不 | 不 | 是的 |
当模拟在断点处暂停时,您可以通过指向图表中的状态、转换或函数来检查数据值。工具提示显示所选对象使用的数据和消息的值。
对象类型 | 提示信息 |
---|---|
状态和转换 | 对象使用的数据、消息和时态逻辑表达式的值 |
图形,真值表,和MATLAB函数 | 函数范围内的本地数据、消息、输入和输出的值 |
例如,当第二个
状态评估它在
行动。指向超国家齿轮
显示显示以下值的工具提示:
时序逻辑表达式持续时间(速度> = up_threshold)
和持续时间(< = down_threshold速度)
.
数据,包括速度
,up_threshold
,向上
.
请注意
如果您选择图表属性导出图表级功能和将导出的函数视为全局可见的,工具提示不显示时态逻辑数据。
当图表处于调试模式时,“符号”窗格将显示图表中每个数据和消息对象的值。例如,当此图表在断点处暂停时,您可以看到列表中的所有图表数据的值价值列。突出显示的值在上一个时间步骤中更改。
在“符号”窗格中,您可以更改以下值:
数据存储内存、本地和输出数据。
本地和输出消息。
单击价值字段用于输入新值的数据或消息对象。
在模拟过程中,不能更改常量、参数或输入数据和消息的值。
有关更多信息,请参见在“符号”窗格中管理数据、事件和消息.
在statflow断点和监视窗口中,可以在模拟在断点暂停时查看当前数据和消息值。要打开“断点和监视”窗口,请单击调试选项卡上,单击断点列表。或者,打开“断点”对话框并单击断点列表链接。
要查看所有断点及其关联条件的列表,请选择断点选项卡。有关更多信息,请参见通过断点和监视窗口管理断点.
要检查数据和消息值,请选择看选项卡。
你可以使用断点和观察窗口:
将数据和消息对象添加到监视列表中。
跟踪自上次时间步骤以来更改的值。
展开消息以查看消息队列和消息数据值。
例如,您可以添加速度
,up_threshold
,向上
到观察列表,并在模拟过程中跟踪它们的值。突出显示的值表示速度
和up_threshold
在最后一个时间步骤中更改。
要将数据或消息对象添加到监视列表,请打开属性检查器或模型浏览器。选择要监视的数据或消息对象,然后单击添加到监视窗口链接。
或者,在statflow Editor中,右键单击使用数据或消息的状态或转换。选择添加到监视窗口并从下拉列表中选择变量名。
若要更改用于显示手表数据的格式,请选择齿轮图标在窗户的顶端。使用下拉列表为每个数据类型选择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日;
无法在调试提示下更改常量、参数或输入数据的值。
请注意
修改类型数据int64
或uint64
,使用该函数fi
(定点设计器)将新值强制转换为定点类型。
在调试提示符下,您可以发送本地消息和输出消息。例如,在这个图表中,本地消息米
确定在状态之后哪个状态变为活动状态DecisionPoint
。如果图表收到该消息米
如果值为正值,则表示状态收到了
变为活动状态,图表输出值为真的
. 否则,国家错过
变为活动状态,图表输出值为假
.
消息的初始值为零。要将数据字段的值更改为正数并将消息发送到其本地队列,请输入:
M=5;发送(M);
收到了
.有关更多信息,请参见断点后的控制图执行.
当从调试提示符发送消息时,遵循以下规则:
若要读取或写入有效消息的消息数据字段,请使用消息对象的名称。不要使用点符号语法。
控件显式地发送消息时,才能从调试提示符发送消息发送
操作符。
您不能从调试提示符发送输入消息。
有关更多信息,请参见控制状态流图中的消息活动.
您可以在调试提示下输入其他MATLAB命令,但结果将在Stateflow工作区中执行。例如,您可以使用保存
功能:
保存(chartVars)
要在MATLAB基本工作空间中输入命令,请使用埃瓦林
命令的第一个参数“基地”
.例如,要在MATLAB工作空间中列出变量,使用命令:
evalin (“基地”,“谁”)