Assertion
Verification断言方块(Assertion)在每个仿真步长监测输入信号,并检查其是否满足用户定义的属性或约束。当条件满足时,状态输出端口输出 1;当条件被违反时,输出 0,并在系统日志中记录违规行为及其精确时间戳。断言满足时方块主体变为绿色,违规时变为红色,在仿真期间提供即时的视觉反馈。
使用断言方块可以直接在原理图中固化安全约束和工程设计要求——例如,验证控制指令永不饱和、物理量保持在安全范围内,或两路信号维持在有效关系中。断言可作为轻量级的运行时监控器,无需编写外部测试脚本。
数学模型
输入与输出
| 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输出来触发应急保护通路切换。