判定逻辑

本科毕业设计 · 2027 届 · 计算机工程学院

首页/判定逻辑与报警时效

状态机全貌

系统的判定不是「雷达说跌倒就报警」,而是一条带回边的状态机。回边是这个设计里最重要的一条线——它决定了误触发之后系统怎么恢复。

  1 空闲
    └── 雷达上报跌倒候选(status = fall)
          ──► 2 跌倒候选
                │
                ├─ 5 秒确认窗 · PIR 无活动 且 高度持续 < 0.65 m
                │     ──► 3 本地报警(蜂鸣 + 红灯)
                │
                └─ 5 秒确认窗 · PIR 有活动 或 高度回升
                      ──► 2 → 返回 1 空闲
                          记一次「无后果候选」,不报警

  3 本地报警 ── 30 秒取消窗(自雷达上报时刻起算)
                ├── 按键 / 语音取消
                │     ──► 4 已取消(记一次误报,不推送家属)
                └── 30 秒内未取消
                      ──► 5 超时确认(推送家属端,QoS 1)
「无后果候选」与「误报」是两回事:无后果候选是在 5 秒窗内就被否掉的——系统从未响过,用户没有被打扰;误报是响过之后被取消的。两者都要计数,但含义不同,评估特异度时按定义各算各的。

为什么必须有「确认失败」这条回边

坐下、弯腰捡东西、蹲下系鞋带,在雷达的高度曲线里都可能长得像一次跌落的开始。如果没有回边,系统一旦进入「本地报警」就再也不会中途退出——那样误报就会直接变成一次响铃加一次家属惊吓。

5 秒确认窗就是为这条回边存在的:真跌倒之后人不会马上站起来,而蹲下、坐下会在几秒内出现 PIR 活动或高度回升。窗口内只要出现这两个条件之一,系统就退回空闲,不响。

5 秒确认窗的判定条件

条件判据说明
PIR 活动5 秒内 PIR 数字量无上升沿真跌倒后人常处于静止或轻微挣扎,PIR 不触发;有活动则多为正常人动作
高度持续偏低雷达上报的 0x0E0E 高度持续低于 0.65 m(默认阈值,可配置)两个条件必须同时满足才算确认通过

阈值 0.65 m 是默认值,不是真理。它要按安装挂高与地面材质在标定过程中调整,这也是硬件页强调「挂高必须实测」的原因之一。

30 秒取消窗

本地报警一旦响起,就开启 30 秒取消窗。计时起点是雷达上报那一刻,不是报警响起那一刻——这两个时刻之间还夹着 5 秒确认窗,所以从报警响起到窗口结束实际约 25 秒。这个细节在答辩时会被追问,必须说清楚。

取消窗内,按下取消按键或用语音说固定取消命令词,都算取消。取消后记一次误报,不推送家属——响铃已经起到了本地提醒作用,没有必要再把一次虚惊送到子女手机上。

30 秒内无人取消,事件升级为「超时确认」,通过 MQTT QoS 1 推送家属端。这一步之后事件不可撤回,家属端会看到完整记录。

三段时间:分别计量,禁止相加

① 检测延迟雷达上报跌倒候选 → STM32 完成 5 秒确认
② 本地告警确认通过 → 蜂鸣器与红灯启动
③ 远程通知事件发出 → 家属端 WebSocket 收到
这三段时间覆盖的区间互不重叠,不能相加成一个「系统总延迟」。它们回答的是三个不同的问题:雷达多快发现、本地多快响、家属多快知道。任何把它们加起来说「共 X 秒」的表述都不成立。
指标含义实测值单侧 95% 置信下限是否达标
① 检测延迟从雷达上报到确认完成
② 本地告警从确认完成到声光启动
③ 远程通知从事件发出到家属端收到
三列口径固定:实测值(样本均值)、单侧 95% 置信下限(保守估计,向下取)、是否达标(对照开题设定的目标)。只报均值是常见的论文答辩失分点——评委一定会问「你的样本量凭什么支撑这个均值」。

久滞判定(另一条独立链路)

久滞检测与跌倒检测是两条独立链路,用的传感器组合不同,不能混为一谈。

级别触发条件动作
L1 观察长时间无活动,满 5 分钟记录,本机 OLED 提示
L2 询问满 15 分钟(考虑有人起身活动的情况,约 20 分钟)SU-03T 语音询问「您还好吗」
L3 报警语音发问后 60 秒内无应答推送家属端

久滞的辅助判据是 60 秒窗口内 PIR 累计活动时间少于 10 秒——不是「完全无活动」,因为呼吸、翻身这类微小动作可能被 PIR 边缘捕捉到,用累计时长比用瞬时状态稳。

三个必被追问的问题

「坐下、弯腰捡东西误触发了,系统怎么回去?」

5 秒确认窗内 PIR 有活动或高度回升 → 状态机走「确认失败」回边 → 返回空闲,不报警,只记一次「无后果候选」。如果确实响了才被取消,那是「误报」,走 30 秒取消窗那条路,记一次误报但不推送家属。

「老人真的摔倒了但自己爬起来了呢?」

那就是一次正常的「确认通过 → 取消」流程:本地已经响过(起到了提醒与求助作用),老人按取消键,事件不推送家属。这也是取消窗存在的意义之一——不剥夺老人自己处理的权利。

「断网了还会报警吗?」

会。报警动作在 STM32 上完成,不依赖 ESP32、不依赖 MQTT、不依赖云端。断网只影响家属能否及时知情;恢复网络后设备会补传缓存事件(详见 系统架构 的可靠性说明)。