概念阶段:项目定义、HARA分析、安全目标定义、功能安全概念
概念阶段,说白了就是给整个功能安全项目打地基。我见过太多项目,上来就画架构、写代码,结果做到一半发现安全目标定得太高,或者压根没覆盖到真正的风险点。嗯,这时候再回头改,成本就大了去了。
这一阶段的核心任务,就是把「这辆车要做什么」和「它可能出什么危险」这两件事彻底搞清楚。我个人习惯把概念阶段拆成四个步骤,每一步都有它存在的道理。
项目定义 → HARA分析 → 安全目标定义 → 功能安全概念
1. 项目定义:先搞清楚我们要做什么
项目定义听起来简单,但坑不少。你得明确这系统是干什么的、装在什么车上、谁会用、在什么环境下跑。举个例子,一个自动泊车辅助系统,装在10万块的A级车和装在50万的豪华车上,安全要求能一样吗?
我建议你在项目定义阶段至少把下面这些信息写清楚:
- 系统边界:哪些功能归你管,哪些是外部系统的事
- 功能清单:每个功能的具体行为描述
- 运行场景:高速、城市、地库、雨雪天……
- 用户群体:驾驶员、乘客、维修人员
- 已知约束:成本、功耗、算力、法规
我曾经在一个项目里,项目定义写得模棱两可,结果HARA分析时发现有个场景根本没考虑——车辆在隧道里突然失去GPS信号。你说这算不算运行场景?当然算。但项目定义里没写,后面就得补,一补就是好几周的工作量。
2. HARA分析:找到所有可能出事的点
HARA(Hazard Analysis and Risk Assessment)是概念阶段的重头戏。它的目标就一个:找出所有可能导致人员受伤的危险事件,然后评估它们的严重度。
HARA分析的标准流程是这样的:
- 识别危险:系统功能失效时,会发生什么?
- 分析场景:在什么情况下这个危险会变成事故?
- 评估风险:用S(严重度)、E(暴露概率)、C(可控性)三个维度打分
- 确定ASIL等级:根据S、E、C的组合,算出ASIL A/B/C/D或QM
这里我多说一句。很多人做HARA时容易犯一个错——把「系统失效」和「危险事件」混为一谈。系统失效是内部原因,危险事件是外部后果。比如「刹车助力失效」是失效,「车辆在高速上无法减速导致追尾」才是危险事件。你想想看,这两个东西能一样吗?
| 危险事件 | S(严重度) | E(暴露概率) | C(可控性) | ASIL |
|---|---|---|---|---|
| 高速行驶中突然失去动力 | S3(生命危险) | E3(中高频) | C3(难控制) | ASIL D |
| 倒车时影像延迟 | S1(轻伤) | E2(中等) | C2(一般可控) | ASIL A |
| 车内氛围灯异常闪烁 | S0(无伤害) | E4(高频) | C0(完全可控) | QM |
你看,同样是功能失效,ASIL等级可以差出好几个级别。这就是HARA的意义——把有限的开发资源,花在最需要安全措施的地方。
3. 安全目标定义:把危险变成要求
HARA分析做完,你手里会有一堆危险事件和对应的ASIL等级。下一步,就是把每个危险事件转化成一个「安全目标」。安全目标说白了就是一句话:系统不能做什么,或者必须做什么。
举个例子:
- 危险事件:车辆在高速行驶中突然失去动力
- 安全目标:车辆在行驶过程中,不得非预期地失去驱动力(ASIL D)
安全目标有几个关键属性:
- 唯一性:每个安全目标只对应一个危险事件
- 可验证:能不能通过测试或分析来确认它被满足了?
- ASIL等级:继承自对应的危险事件
- FTTI(容错时间间隔):从失效发生到危险发生,系统有多少时间反应
FTTI这个东西,很多人容易忽略。我建议你在定义安全目标时,就把FTTI写进去。比如「非预期加速必须在100ms内被检测并抑制」。没有这个时间约束,后面的安全机制设计就没法做。
4. 功能安全概念:把目标变成方案
安全目标定义好了,接下来就是功能安全概念(Functional Safety Concept, FSC)。这一步的任务是:把每个安全目标,分解成具体的安全机制和功能要求。
功能安全概念通常包含:
- 安全机制:用什么方法检测和应对失效?比如冗余、自检、降级模式
- 故障响应:检测到故障后,系统做什么?报警、降级、还是安全停车?
- ASIL分解:如果一个安全目标是ASIL D,能不能拆成两个ASIL C的子系统?
- 安全状态:系统进入什么状态才算安全?
我举个例子。假设安全目标是「转向系统不得非预期丧失助力」,ASIL C。功能安全概念可以这样设计:
- 主助力控制器失效时,备用控制器接管(冗余设计)
- 如果两个控制器都失效,系统进入机械直连模式(降级模式)
- 仪表盘点亮黄色警告灯,提示驾驶员(故障响应)
你看,一个安全目标,可以分解出好几个安全机制。每个机制都有自己的ASIL等级、触发条件和响应时间。
概念阶段知识体系总览
下面这张图,把概念阶段的四个步骤和它们之间的关系画清楚了。你可以把它当作一个检查清单,做每一步时都回头看看,有没有遗漏。
概念阶段这四个步骤,每一步都环环相扣。项目定义不清,HARA就找不到真正的危险;HARA做得糙,安全目标就是拍脑袋;安全目标没定好,功能安全概念就是空中楼阁。嗯,说白了,地基打不牢,后面盖再高的楼也白搭。
我个人习惯在概念阶段结束时,组织一次跨部门评审。把项目定义、HARA报告、安全目标列表和功能安全概念文档摆在一起,让系统、硬件、软件、测试、质量的人一起过一遍。你想想看,这时候发现问题,改起来成本最低。等代码写完了再改?那叫救火。