BlockWerk 文档
!

Assertion

Verification

断言方块(Assertion)在每个仿真步长监测输入信号,并检查其是否满足用户定义的属性或约束。当条件满足时,状态输出端口输出 1;当条件被违反时,输出 0,并在系统日志中记录违规行为及其精确时间戳。断言满足时方块主体变为绿色,违规时变为红色,在仿真期间提供即时的视觉反馈。

使用断言方块可以直接在原理图中固化安全约束和工程设计要求——例如,验证控制指令永不饱和、物理量保持在安全范围内,或两路信号维持在有效关系中。断言可作为轻量级的运行时监控器,无需编写外部测试脚本。

在 BlockWerk 中仿真

浏览器即开即用的交互式仿真环境 — 无需安装,由 WebAssembly 强力驱动。

在 BlockWerk 中仿真 →

数学模型

assert(f(u(t)))\text{assert}(f(u(t)))

输入与输出

Direction ID Label 类型 Status
→ In in Signal number Required
← Out status Pass number Output

参数

参数 Label 类型 默认值 描述
mode Condition select between Which property to check
lowerBound Lower Bound number -1 Lower bound of the assertion range
upperBound Upper Bound number 1 Upper bound of the assertion range

使用示例

验证执行器控制信号不超过饱和极限

Controller → Assertion → Actuator
             mode=between  lowerBound=-10  upperBound=10

状态输出可与控制信号一同在示波器上绘制,以记录每次超限发生的准确时刻。

检测温度是否超出安全操作区间

TempSensor → Assertion → Display
              mode=between  lowerBound=15  upperBound=85

确认信号严格保持为正值

PressureSensor → Assertion → FlowCalc
                  mode=above  lowerBound=0

说明与最佳实践

  • 透传信号:主输入信号在穿过方块时不会受到任何修改。可将主信号线继续连接至下游系统,并将 status 端口专门用于监控或条件逻辑分支。
  • 状态输出:status 端口在每一步输出数值 1(通过)或 0(失败);可输入至 Scope 或用于逻辑门控。
  • 未连接输入:如果输入端口未连接,方块将信号视为 0,并在每一步针对 0 评估断言条件。
  • 阈值与模式关联:在 mode=below 时忽略 lowerBound;在 mode=above 时忽略 upperBound。
  • 违规日志记录:发生违规时,系统会带时间戳记录在仿真日志中。仿真运行后可查阅日志定位所有故障时间窗口。
  • 非强制终止:默认情况下,断言失败不会强制中止仿真,仅作状态报警。若需要发生违规时立即停止运行,可在 status 输出端后级联 Stop 方块。

相关模块

  • uPlotDisplay:随时间绘制 status 状态信号,直观展示断言违规的时间历程。
  • Comparator:执行简单的数值比较并输出布尔信号,适用于纯数值判断而非系统设计属性监测。
  • Switch:可利用 Assertion 的 status 输出来触发应急保护通路切换。