Engee 文档

在Engee中调试模型

调试在模型开发中起着关键作用,使我们能够检查模型各个部分的操作及其行为是否符合我们的期望。 此过程有助于识别和消除错误,验证数据是否正确传输,尺寸是否与预期尺寸匹配。 如果在模型的输出端出现错误的结果,通过调试,您可以了解系统行为偏离预期的位置和方式。

本文讨论了使用*Engee*工具调试模型的主要方法。

模型的初始调试

在模型开发的初始阶段,确保其组件和连接(信号线)正常工作非常重要。 初始调试允许您识别基本错误,例如不正确的块参数、不正确的输入数据或不正确的执行逻辑。

信号图

最简单的检查方法 — 用于记录的标记信号 signal logging 1 并观察模型开始行为不正确的图表(有关更多信息,请参阅文章 图表).

禁用和跳过块

在调试模型的过程中,经常需要暂时将一些块排除在执行之外,这与文本编程语言中的注释代码类似。

要禁用/跳过一个块,右键单击它并在上下文菜单中选择相应的选项。:

  • 禁用块—块完全从模型中排除,就好像它不存在一样。 它的输入和输出被打乱,它不以任何方式参与仿真过程。 这允许您检查没有此块的模型将如何工作。 因此,如果该单元被禁用,那么信号不会通过它传输,并且连接到其输出的组件不接收数据。

    comment out 1 cn

  • 跳过块—块保留在模型中,但其功能被忽略。 块的输入直接连接到其输出,数据不变地通过。 这相当于将块的所有输入连接到相应的输出。

    comment through 1 cn

    通行证不适用于某些街区。

设置窗口的"属性"选项卡

settings first cn

选择模拟模式

参数 模式 允许您根据调试任务和性能自定义仿真。 对于调试,该模式特别有用,它最大限度地减少了启动时间并简化了模型的工作。 总共有两种模式可用:

  • 快速初始化 -由于简化了键入和禁用优化,模型尽可能快地启动。 此模式便于调试,因为它允许您快速检查模型中的更改,而无需等待很长时间启动。 它对于模型的结构或参数的频繁变化特别有用。

  • 快速计数 -优先考虑高性能和减少计算时间。 虽然这种模式对于调试来说不太灵活,但在验证的最后阶段,当需要验证计算的正确性和稳定性时,它可能很有用。

因此,建议在初始阶段使用该模式。 快速初始化 快速查找和修复错误,并在最终 — 快速计数 来检查模型的性能。

仿真速度控制

参数 控制模拟速度 允许您设置模拟时间与实时的比率,指定在一个真实秒内应该通过多少秒的模拟。

此设置对调试非常有用,因为减慢仿真速度有助于更好地实时分析模型的行为。 这使您可以:

  • 在视觉上监测信号的变化 图表;

  • 与之合作很方便 动画一步一步地检查模型的执行。

因此,减慢仿真会创建一个受控的工作环境,您可以在其中与模型交互,分析信号的行为,并在调试的早期阶段修复问题。

标签"调试"设置窗口

显示信息

在调试模型时,重要的是能够直观地跟踪关键特征,以便了解数据是如何在块中传输和处理的。 各种类型的信息可以显示在*Engee*:

information display 1 cn

  • 数据类型 -显示模型块之间的信号线的数据类型。 如果模型中存在不正确的数据类型,则在选择函数时 数据类型 它会自动出现 诊断窗口指示错误。

    显示数据类型的示例

    datatypes function engee cn

  • 信号尺寸 -显示模型块之间信号线的尺寸(请参阅 处理不同维度的信号). 模型信号可以是标量、矢量和矩阵。

    显示不同信号的例子
    • *标量信号*是没有方向的单个数据值,是最简单的信号类型。:

      example dimension scalar

    • *矢量信号*是一组有序的相同类型的数据,组织为一个矢量,它有一个方向,可以包含几个元素。

      example dimension vector

    • *矩阵信号*是由行和列组成的二维数据阵列,可以包含各种类型的数据。 矩阵可用于同时表示多个信号。

      example dimension matrix

  • 信号采样频率 -显示模型块的采样率。 小的采样步骤可导致数据量的增加,这可减慢仿真的执行。 步长过大会导致模型计算精度下降。 控制信号的采样频率,方便使用块 速率转变.

    采样率示例

    rate transition example 1 cn

    这里是街区 DSP 正弦波 幅度为1,频率为2Hz,采样步骤对于第一通道(D1,*DSP正弦波*块)为0.001,对于第二通道(D2,*DSP正弦波-1*块)为0.01。 在*速率转换*块中,采样步骤设置为:对于D1为0.005,对于D2为0.02。 这将允许您在图表上看到:D1信号平滑且准确,D2信号是逐步的,细节较少。

    • 颜色突出 -子项目选项 信号采样频率 允许您选择以下选项之一:具有当前采样率的信号,信号源或不选择任何内容(默认情况下选择)。 离散信号可以根据信号的采样频率以不同的颜色显示(如上面的例子)。

  • 区块的执行顺序 -允许您找出模型中块的执行顺序。 模型执行的顺序将以数字显示,其中1是模型中的第一个可执行块。 此选项有助于控制块执行的顺序,以避免不必要的依赖关系并提高模型的可读性。

    执行顺序示例

    order feature models

信号的记录

通过记录信号,您可以捕获仿真结果并对其进行分析,以便进行后续诊断和调试。 在*Engee中记录信号有两种方法*:

signal recording 1

  • 将模拟结果保存到工作区 -允许您将模型的仿真结果保存到工作区(变量窗口 img65)作为`simout`变量。 这允许您在仿真完成后访问数据,并将其用于分析、可视化或后处理。 阅读文章中有关保存仿真结果的更多信息 Engee中仿真结果的软件处理.

    • 物理变量 -允许您记录所选块的数据。 只有来自库的块才适合记录 物理建模 . 右键单击要记录信号的块,然后选择该选项 记录物理信号 在上下文菜单中:

      physical variables recording 1 cn

      记录的变量显示在模块中 图表 graphs icon 1 在应用程序中 数据检查员.

      记录信号的例子

      模块中记录的变量 图表 :

      graphs variables 1 cn

      在应用程序中记录的变量 数据检查员 :

      data inspector variables 1 cn

  • 物理变量初始化的结果 -在物理变量窗口中显示物理变量的值 variable viewer icon.

实时调试

*Engee*环境允许您实时监控模型的执行。 这种方法结合了多种工具,可帮助您逐步监控信号、块及其动态过程的状态。:

interactive debugging 1

  • 分步执行 -允许您一次执行一个时间步骤的模型。 启用该设置会在上部模拟菜单中添加额外的按钮*Engee*:

    stepping through sim

    在此模式下,您可以配置参数:

    • 存储步数 -参数决定了有多少模拟步骤将被存储在内存中。 它对于了解模型如何达到其当前状态和调试非常有用,因为它允许您比较每个步骤的更改。

    • 保存步骤的间隔时间 -参数设置多少时间步后,模型的状态将被保存。

    • 前进/后退 -参数确定模型将采取的步骤数。:

      • 向前一步 move forward -模拟继续进行指定数量的步骤。 例如,如果"Step forward/backward by"参数的值为'2`,那么仿真将前进两步。

      • 退后一步 move back -模拟返回指定的步数。 *Engee*恢复模型状态的操作点,从中返回所选步数。

  • 显示信号的瞬时值 -允许您在模拟或分步执行期间标记信号以显示瞬时值。 该方法清晰,便于块间数据传输的可视化分析。

    instant values 1

  • 动画速度 -控制操作速度 状态机(块内支持 *图表*它有四种模式:关闭(默认),慢,中,快。

    image3

断点

调试模型的重要工具之一是 断点. 它们允许您在模拟的正确时刻暂停模型的执行,以便研究系统的状态,发现错误或检查单个块和设置的操作。

要打开点编辑器,请转到设置窗口 debug article icon 1 并在标签 调试 选择 打开断点列表 :

breakpoints adding 1 cn

这将打开使用断点的编辑器。:

breakpoints 1 cn

让我们来看一个例子,其中使用断点,模拟在特定阶段停止。 要做到这一点,从块组装模型 正弦波终结者,开启信号记录:

sine wave terminator model

用鼠标左键单击信号线,然后在断点编辑器中单击 breakpoint add. 在打开的窗口中,如图所示选择小于零:

breakpoints editing 1 cn

创建的断点将在信号线上有一个独特的红色标记。:

sine wave terminator model 1

运行模拟。 模拟将在第三秒暂停,模型的图形将如下所示:

sine wave terminator model 2 cn

触发的断点将在编辑器中以绿色标记,触发器的数量将显示在列中 触发器 :

sine wave terminator model 3 cn

有用的连结