docs: add valve_pair jitter/over-delay fault simulation params

delay_jitter_ms for natural timing variation, delay_over_prob/delay_over_ms
for simulating occasional valve timeout faults (e.g. once per day).
This commit is contained in:
Huamonarch 2026-05-13 14:47:35 +08:00
parent a93801fea5
commit 302aa82e38

View File

@ -36,7 +36,7 @@ t 为时间索引,从进程启动起每周期(~20ms递增。
| `bool_random` | 随机 0/1可配置为 1 的概率 | prob_true (default 0.5) |
| `bool_toggle` | 固定周期 0/1 翻转 | period_ms |
| `bool_csv` | CSV 数据回放int 列) | file, column |
| `valve_pair` | 跟随另一个信号,加延迟/闪断 | on_delay_ms, off_delay_ms, flash_prob |
| `valve_pair` | 跟随另一个信号,加延迟/闪断/抖动/超时 | on_delay_ms, off_delay_ms, delay_jitter_ms, flash_prob, delay_over_prob, delay_over_ms |
### spike 毛刺行为
@ -53,19 +53,46 @@ t 为时间索引,从进程启动起每周期(~20ms递增。
不模拟动作信号本身,而是通过模型名引用另一个信号(如 `bool_toggle`)的当前值,模拟传感器对动作的响应延迟。
```
动作信号 A (如 toggle_2s):
t: 0 1 2 3 4 5 6 7 8 9
0────1──────────────────────────────0──────────
参数说明:
到位传感器 B (valve_px_std:toggle_2s):
0─────────1────────────────────0───1──0────────
↑ on_delay=200ms ↑闪断(2%) ↑ off_delay=150ms
| 参数 | 含义 | 默认值 |
|------|------|--------|
| `on_delay_ms` | 阀开到位延迟ms信号 0→1 后传感器多久变 1 | 必填 |
| `off_delay_ms` | 阀关到位延迟ms信号 1→0 后传感器多久变 0 | 必填 |
| `delay_jitter_ms` | 延迟抖动范围,实际延迟 = delay ± random(0, jitter) | 0 |
| `flash_prob` | 高电平期间每周期出现闪断的概率 | 0 |
| `delay_over_prob` | 每次阀动作时触发超时的概率on/off 独立判断) | 0 |
| `delay_over_ms` | 超时时的延迟值,替代正常延迟 | 0 |
正常时序(无超时,有抖动):
```
动作信号 A:
────────────┐ ┌────────────────
│ │
├── on_delay ──→ ├── off_delay ──→
传感器 B: │ ±jitter │ ±jitter
────────────┘ └────────────────
└─ 阀芯移动 ──→ └─ 阀芯复位 ──→
```
- B 在 A 变为 1 后延迟 `on_delay_ms` 才变为 1
- B 在 A 变为 0 后延迟 `off_delay_ms` 才变为 0
- B 在高电平期间有 `flash_prob` 概率出现短暂闪断(单周期归零后自动恢复)
超时场景delay_over_prob 触发时):
```
动作信号 A:
────────────┐
├──────── on_delay_over (4000ms) ────────→ 正常 off_delay
传感器 B: │ ┌────── ...
────────────┘ │
└── 超时! 远超正常范围
```
- 每次 A 跳变时0→1 或 1→0`delay_over_prob` 概率独立判断是否超时
- 超时时延迟 = `delay_over_ms`,未超时时延迟 = `delay_ms` ± random(0, `delay_jitter_ms`)
- 闪断:高电平期间以 `flash_prob` 概率单周期归零后自动恢复
- `delay_over_prob = 0` = 永不超时;`delay_jitter_ms = 0` = 无抖动
- on 和 off 方向各自由各自概率独立触发超时
配对方式B 的 `tables[1]` = `valve_px_std:toggle_2s`,其中 `toggle_2s` 是 A 的模型名。运行时通过模型名查找动作信号的 IModel 实例。
@ -91,8 +118,8 @@ t: 0 1 2 3 4 5 6 7 8 9
"toggle_2s": { "mode": "bool_toggle", "params": { "period_ms": 2000 } },
"toggle_5s": { "mode": "bool_toggle", "params": { "period_ms": 5000 } },
"toggle_10s": { "mode": "bool_toggle", "params": { "period_ms": 10000 } },
"valve_px_std": { "mode": "valve_pair", "params": { "on_delay_ms": 200, "off_delay_ms": 150, "flash_prob": 0.02 } },
"valve_px_fast": { "mode": "valve_pair", "params": { "on_delay_ms": 80, "off_delay_ms": 60, "flash_prob": 0.01 } }
"valve_px_std": { "mode": "valve_pair", "params": { "on_delay_ms": 200, "off_delay_ms": 150, "delay_jitter_ms": 20, "flash_prob": 0.02, "delay_over_prob": 0.0001, "delay_over_ms": 4000 } },
"valve_px_fast": { "mode": "valve_pair", "params": { "on_delay_ms": 80, "off_delay_ms": 60, "delay_jitter_ms": 10, "flash_prob": 0.01, "delay_over_prob": 0, "delay_over_ms": 0 } }
}
}
```