2、危害分析与风险评估(HARA):HARA的目的与流程、运行场景与模式定义、危害识别方法、危害事件定义
好,咱们进入正题。HARA,全称是 Hazard Analysis and Risk Assessment。说白了,它就是功能安全的“地基”。
我见过不少项目,上来就急着写安全需求,结果做到一半发现场景没覆盖全,又回头补HARA。那感觉,就像盖楼时发现地基没打牢,你说难受不难受?
所以,咱们今天就把这块地基夯实了。我会把HARA的目的、流程,以及怎么定义场景、识别危害,一步步拆开来讲。
2.1 HARA的目的与流程
HARA到底要干嘛?其实就三件事:
- 找出危害:这车在什么情况下会出危险?
- 评估风险:这个危险有多严重?发生的概率大不大?
- 定下等级:给它定个ASIL等级,A、B、C、D,或者QM。
流程上,我习惯分成五步走:
- 定义功能:先搞清楚这个系统是干嘛的。比如“电子助力转向系统”。
- 定义运行场景与模式:车在什么路上开?什么速度?什么天气?
- 识别危害:功能失效了会怎样?比如“转向助力突然丢失”。
- 定义危害事件:把危害和场景结合起来。比如“在高速上以120km/h行驶时,转向助力突然丢失”。
- 评估与定级:根据严重度(S)、暴露率(E)、可控性(C),算出ASIL等级。
核心要点:HARA不是一次性的工作。项目后期如果功能变了,或者发现了新场景,一定要回头更新HARA。我吃过这个亏,希望大家别重蹈覆辙。
2.2 运行场景与模式定义
这一步,很多人容易忽略。你想想看,一个功能在“地下车库”和“高速公路”上失效,后果能一样吗?
所以,定义场景要尽可能全面。我个人习惯从这几个维度去考虑:
- 道路类型:城市道路、高速公路、乡村小路、停车场。
- 环境条件:白天/黑夜、晴天/雨天/雪天、路面湿滑/干燥。
- 车辆状态:静止、低速、中速、高速、转弯、变道。
- 驾驶员行为:正常驾驶、紧急制动、分心驾驶。
举个例子,对于“自动紧急制动(AEB)”功能,它的运行模式可能包括:
| 模式 | 描述 |
|---|---|
| 城市模式 | 车速0-50km/h,检测前方车辆或行人 |
| 高速模式 | 车速50-120km/h,主要检测前方车辆 |
| 倒车模式 | 车速低于10km/h,检测后方障碍物 |
我的小技巧:做场景定义时,拉上系统工程师和测试工程师一起 brainstorm。一个人想,总有遗漏。我记得有一次,我们漏掉了“隧道内突然变暗”的场景,后来在评审时被揪了出来,差点酿成大错。
2.3 危害识别方法
危害识别,就是找“茬”。怎么找?常用的方法有这几种:
- 头脑风暴:团队坐在一起,天马行空地想。但要注意,别跑偏了。
- 检查表法:基于以往项目的经验,列出一张常见危害清单。新手用这个最保险。
- HAZOP分析:这是化工行业传过来的方法。通过引导词(如“无”、“多”、“少”、“相反”)来触发思考。
我比较推荐HAZOP,因为它系统性强。比如,针对“转向系统”,我们可以这样分析:
| 引导词 | 偏差 | 可能的危害 |
|---|---|---|
| 无 | 无转向助力 | 驾驶员无法转向 |
| 多 | 转向助力过大 | 车辆过度转向,失控 |
| 相反 | 转向方向相反 | 车辆向反方向转向 |
注意:危害识别时,不要只盯着“功能失效”。也要考虑“非功能”的,比如电磁干扰、软件bug、传感器脏污等。我曾经遇到过一个案例,因为摄像头被泥巴糊住了,导致车道保持功能误激活,差点出了事故。
2.4 危害事件定义
危害事件,就是把“危害”和“场景”结合起来。这一步很关键,因为同样的危害,在不同场景下,ASIL等级可能完全不同。
举个例子,同样是“转向助力丢失”:
- 场景A:车辆在停车场,车速5km/h。驾驶员很容易控制,风险低。
- 场景B:车辆在高速上,车速120km/h。驾驶员需要用力打方向,风险极高。
所以,定义危害事件时,要写清楚:
- 什么功能:转向系统
- 什么失效:助力丢失
- 什么场景:高速行驶,120km/h
- 什么后果:驾驶员无法及时转向,车辆偏离车道,可能发生碰撞
一个完整的危害事件描述,应该是这样的:
危害事件:在高速公路上以120km/h行驶时,电子助力转向系统因软件故障导致助力完全丢失,驾驶员需要施加远大于正常值的力才能转动方向盘,导致车辆无法及时避让前方障碍物,存在碰撞风险。
嗯,到这里,HARA的核心内容就讲完了。记住,HARA不是走过场,它是后续所有安全工作的输入。你花在HARA上的每一分钟,都会在后面的开发中省下十倍的时间。
下一章,咱们聊聊怎么给这些危害事件定ASIL等级,以及怎么分解它。到时候见。