在Engee中调试模型
调试在模型开发中起着关键作用,使我们能够检查模型各个部分的操作及其行为是否符合我们的期望。 此过程有助于识别和消除错误,验证数据是否正确传输,尺寸是否与预期尺寸匹配。 如果在模型的输出端出现错误的结果,通过调试,您可以了解系统行为偏离预期的位置和方式。
本文讨论了使用*Engee*工具调试模型的主要方法。
设置窗口的"属性"选项卡
标签"调试"设置窗口
显示信息
在调试模型时,重要的是能够直观地跟踪关键特征,以便了解数据是如何在块中传输和处理的。 各种类型的信息可以显示在*Engee*:
-
数据类型 -显示模型块之间的信号线的数据类型。 如果模型中存在不正确的数据类型,则在选择函数时 数据类型 它会自动出现 诊断窗口指示错误。
显示数据类型的示例
-
信号尺寸 -显示模型块之间信号线的尺寸(请参阅 处理不同维度的信号). 模型信号可以是标量、矢量和矩阵。
显示不同信号的例子
-
*标量信号*是没有方向的单个数据值,是最简单的信号类型。:
-
*矢量信号*是一组有序的相同类型的数据,组织为一个矢量,它有一个方向,可以包含几个元素。
-
*矩阵信号*是由行和列组成的二维数据阵列,可以包含各种类型的数据。 矩阵可用于同时表示多个信号。
-
-
信号采样频率 -显示模型块的采样率。 小的采样步骤可导致数据量的增加,这可减慢仿真的执行。 步长过大会导致模型计算精度下降。 控制信号的采样频率,方便使用块 速率转变.
采样率示例
这里是街区 DSP 正弦波 幅度为1,频率为2Hz,采样步骤对于第一通道(D1,*DSP正弦波*块)为0.001,对于第二通道(D2,*DSP正弦波-1*块)为0.01。 在*速率转换*块中,采样步骤设置为:对于D1为0.005,对于D2为0.02。 这将允许您在图表上看到:D1信号平滑且准确,D2信号是逐步的,细节较少。
-
颜色突出 -子项目选项 信号采样频率 允许您选择以下选项之一:具有当前采样率的信号,信号源或不选择任何内容(默认情况下选择)。 离散信号可以根据信号的采样频率以不同的颜色显示(如上面的例子)。
-
-
区块的执行顺序 -允许您找出模型中块的执行顺序。 模型执行的顺序将以数字显示,其中1是模型中的第一个可执行块。 此选项有助于控制块执行的顺序,以避免不必要的依赖关系并提高模型的可读性。
执行顺序示例
信号的记录
通过记录信号,您可以捕获仿真结果并对其进行分析,以便进行后续诊断和调试。 在*Engee中记录信号有两种方法*:
-
将模拟结果保存到工作区 -允许您将模型的仿真结果保存到工作区(变量窗口
)作为`simout`变量。 这允许您在仿真完成后访问数据,并将其用于分析、可视化或后处理。 阅读文章中有关保存仿真结果的更多信息 Engee中仿真结果的软件处理.
-
物理变量 -允许您记录所选块的数据。 只有来自库的块才适合记录 物理建模 . 右键单击要记录信号的块,然后选择该选项 记录物理信号 在上下文菜单中:
记录的变量显示在模块中 图表
在应用程序中 数据检查员.
记录信号的例子
模块中记录的变量 图表 :
在应用程序中记录的变量 数据检查员 :
-
-
物理变量初始化的结果 -在物理变量窗口中显示物理变量的值
.
实时调试
*Engee*环境允许您实时监控模型的执行。 这种方法结合了多种工具,可帮助您逐步监控信号、块及其动态过程的状态。:
-
分步执行 -允许您一次执行一个时间步骤的模型。 启用该设置会在上部模拟菜单中添加额外的按钮*Engee*:
在此模式下,您可以配置参数:
-
存储步数 -参数决定了有多少模拟步骤将被存储在内存中。 它对于了解模型如何达到其当前状态和调试非常有用,因为它允许您比较每个步骤的更改。
-
保存步骤的间隔时间 -参数设置多少时间步后,模型的状态将被保存。
-
前进/后退 -参数确定模型将采取的步骤数。:
-
向前一步
-模拟继续进行指定数量的步骤。 例如,如果"Step forward/backward by"参数的值为'2`,那么仿真将前进两步。
-
退后一步
-模拟返回指定的步数。 *Engee*恢复模型状态的操作点,从中返回所选步数。
-
-
-
显示信号的瞬时值 -允许您在模拟或分步执行期间标记信号以显示瞬时值。 该方法清晰,便于块间数据传输的可视化分析。
断点
调试模型的重要工具之一是 断点. 它们允许您在模拟的正确时刻暂停模型的执行,以便研究系统的状态,发现错误或检查单个块和设置的操作。
要打开点编辑器,请转到设置窗口 并在标签 调试 选择 打开断点列表 :
这将打开使用断点的编辑器。:
用鼠标左键单击信号线,然后在断点编辑器中单击 . 在打开的窗口中,如图所示选择小于零:
创建的断点将在信号线上有一个独特的红色标记。:
运行模拟。 模拟将在第三秒暂停,模型的图形将如下所示:
触发的断点将在编辑器中以绿色标记,触发器的数量将显示在列中 触发器 :