3. 场景分析与运行模式:运行模式、系统状态、使用场景、环境条件
好,咱们接着聊HARA的第三步——场景分析。
说实话,这一步是很多工程师容易忽略的。大家往往急着去给危害定ASIL等级,却忘了问一个根本问题:这个危害到底在什么情况下才会发生?
我见过不少项目,HARA报告写得漂漂亮亮,结果评审时被安全专家一问「你这个场景考虑全了吗?」——当场卡住。嗯,今天咱们就把这块彻底讲透。
3.1 运行模式:系统到底在干嘛?
先说说运行模式。说白了,就是系统当前处于什么工作状态。
拿一个电动助力转向系统(EPS)举例。它的运行模式至少包括:
- 上电自检模式:系统刚上电,正在做初始化检查
- 正常助力模式:车辆行驶中,EPS正常提供转向助力
- 降级模式:部分传感器失效,系统切换到备份策略
- 故障安全模式:检测到严重故障,系统主动切断助力
- 休眠模式:车辆熄火,系统进入低功耗状态
为什么要区分这些?因为同一个危害,在不同运行模式下,风险等级可能完全不同。
关键点:每个运行模式都要单独分析。不能只盯着「正常模式」看。
我个人习惯的做法是:先列一个表格,把系统所有可能的运行模式都写出来。然后针对每个模式,问自己三个问题:
- 这个模式下,系统有哪些功能在运行?
- 这个模式下,哪些功能可能失效?
- 这个模式下,失效会导致什么后果?
3.2 系统状态:内部变量的快照
系统状态和运行模式不一样。运行模式是宏观的,系统状态是微观的。
举个例子。同样是「正常助力模式」,系统状态可能包括:
- 车速状态:0 km/h、30 km/h、120 km/h
- 方向盘转角状态:居中、小角度、大角度、极限位置
- 电池电压状态:正常、偏低、临界
- 温度状态:常温、高温、低温
你想想看,同样是EPS突然失去助力,在车速30 km/h和120 km/h时,后果能一样吗?
我在项目中遇到过一件事。有个同事做HARA时,只考虑了「车辆行驶中」这一个状态。结果评审时被问到:「那车辆在倒车入库时呢?在坡道起步时呢?」——嗯,后来我们花了两周时间补全了所有系统状态。
我的建议:系统状态不要只列「正常」和「故障」两种。要细化到具体的参数范围。比如车速可以分区间:0-10 km/h、10-60 km/h、60-120 km/h、120 km/h以上。
3.3 使用场景:谁在用?怎么用?
使用场景,说白了就是「人机交互的上下文」。
同一个功能,不同的人用,不同的方式用,风险是不一样的。比如:
- 正常驾驶场景:驾驶员注意力集中,双手在方向盘上
- 辅助驾驶场景:驾驶员可能分心,手暂时离开方向盘
- 泊车场景:车速慢,但周围可能有行人或障碍物
- 紧急避让场景:驾驶员操作剧烈,系统响应时间要求极高
- 维修保养场景:非专业人员操作,可能误触发某些功能
这里有个容易踩的坑——很多人只考虑「正常使用场景」,忽略了「误用场景」。
我曾经参与过一个项目,客户投诉说「车子停着的时候,方向盘自己会动」。后来一查,是维修工在更换蓄电池时,不小心触发了EPS的某个诊断模式。嗯,这就是典型的「维修场景」没考虑到位。
避坑指南:我曾经因为漏掉了「儿童误操作」这个场景,导致一个项目在功能安全审核时被开了严重不符合项。从那以后,我每次做场景分析都会专门列一个「误用场景清单」。
3.4 环境条件:外部因素不可忽视
环境条件,就是系统运行的外部环境。包括:
| 环境因素 | 典型取值 | 对安全的影响 |
|---|---|---|
| 温度 | -40°C ~ 125°C | 高温可能导致电子元件性能漂移 |
| 湿度 | 0% ~ 100% | 高湿度可能引起短路或腐蚀 |
| 振动 | 不同路面等级 | 振动可能导致连接器松动 |
| 电磁干扰 | 不同频段和强度 | EMI可能干扰传感器信号 |
| 海拔 | 0 ~ 5000米 | 高海拔影响散热和绝缘性能 |
| 路面条件 | 干燥/湿滑/冰雪/砂石 | 影响车辆动力学和制动距离 |
你可能会问:「这些环境条件都要考虑吗?」
我的回答是:取决于你的系统。一个车内信息娱乐系统,可能不需要考虑极端低温。但一个制动系统,就必须覆盖全温度范围。
我记得有一次做ADAS摄像头的HARA。我们一开始只考虑了「白天」和「夜晚」两种光照条件。后来安全专家提醒:「那隧道入口呢?那逆光呢?那大雾呢?」——好家伙,最后我们列了12种光照条件。
3.5 组合分析:场景的排列组合
好了,现在我们有四个维度:运行模式、系统状态、使用场景、环境条件。怎么把它们组合起来?
我的做法是:先列一个矩阵。
比如,对于「EPS突然失去助力」这个危害:
- 运行模式:正常助力模式
- 系统状态:车速120 km/h,方向盘居中
- 使用场景:高速巡航,驾驶员注意力正常
- 环境条件:干燥路面,白天,温度25°C
这个组合下,危害的严重度可能是S3(危及生命)。
但如果换成:
- 运行模式:正常助力模式
- 系统状态:车速5 km/h,方向盘大角度
- 使用场景:倒车入库,驾驶员注意力集中
- 环境条件:干燥路面,白天,温度25°C
这个组合下,严重度可能降到S1(轻微伤害)。
核心原则:每个危害都要在最严苛的场景下评估。但也要记录下「典型场景」和「最严苛场景」的区别。
3.6 实战中的常见问题
最后,分享几个我在实际项目中踩过的坑:
- 场景数量失控:有人恨不得把每个参数都排列组合一遍,结果一个危害搞出几百个场景。没必要!我的经验是:每个危害分析3-5个典型场景就够了。
- 忽略时间维度:有些危害不是瞬间发生的,而是随时间累积的。比如「制动片磨损导致制动距离增加」——这个场景要考虑时间因素。
- 忘记多系统交互:现在的车都是域控制器架构。一个场景可能涉及多个ECU。比如「自动紧急制动(AEB)触发时,EPS应该怎么配合?」——这种跨系统场景最容易遗漏。
好了,关于场景分析就讲到这里。下一节咱们聊聊怎么给危害定ASIL等级——那才是真正考验经验的地方。