2. 软件安全需求规格编写与追溯矩阵建立
任务定义
针对一个具体的车辆功能——电动助力转向(EPS)系统,完成危害分析与风险评估(HARA)。目标是在系统定义的基础上,识别整车层面可能发生的危害事件,评估其严重度(S)、暴露概率(E)和可控性(C),确定ASIL等级与安全目标,为后续功能安全需求开发提供输入。
系统定义(输入)
EPS系统功能:根据方向盘扭矩输入和车速信号,提供助力扭矩以辅助驾驶员转向。系统包含:扭矩传感器、电子控制单元(ECU)、助力电机、减速机构。系统边界:与车辆前轮转向机构机械连接,与整车CAN总线通信获取车速信号。
HARA实施步骤
HARA按以下流程执行:① 功能定义 → ② 危害识别(运行场景+故障模式) → ③ 危害事件定义 → ④ 参数评级(S/E/C) → ⑤ 确定ASIL与安全目标。本案例聚焦于EPS系统在整车层面的危害事件分析。
危害识别与评级
针对EPS系统的主要功能失效模式,结合典型运行场景,识别出以下危害事件并完成评级。评级依据ISO 26262-3:2018表1、表2、表3的判定准则。
| ID | 功能失效模式 | 运行场景 | 危害事件描述 | S | E | C | ASIL |
|---|---|---|---|---|---|---|---|
| H-01 | 非预期助力(电机意外输出大扭矩) | 高速公路行驶(车速100km/h) | 车辆突然自行转向,驾驶员无法控制车辆方向,导致车辆偏离车道甚至侧翻 | 3 | 3 | 3 | ASIL D |
| H-02 | 助力丧失(电机无输出) | 城市低速转弯(车速20km/h) | 转向突然变重,驾驶员需施加远大于正常的力才能转动方向盘,可能无法完成避让 | 2 | 3 | 2 | ASIL B |
| H-03 | 助力反向(电机输出与需求方向相反) | 停车场低速 maneuvering(车速5km/h) | 驾驶员向左打方向,车轮却向右转,车辆与相邻车辆或障碍物碰撞 | 3 | 2 | 2 | ASIL C |
| H-04 | 扭矩传感器信号漂移(输出值偏差>30%) | 乡村道路中速行驶(车速60km/h) | 助力大小与驾驶员意图不符,车辆行驶轨迹偏移,驾驶员修正时车辆反应过度 | 2 | 3 | 2 | ASIL B |
安全目标定义
根据上述危害事件的ASIL等级,制定对应的安全目标(SG),安全目标的ASIL等级取其所覆盖危害事件的最高等级:
| 安全目标ID | 安全目标内容 | ASIL | 关联危害事件 |
|---|---|---|---|
| SG-01 | 防止EPS系统产生非预期的助力扭矩输出 | ASIL D | H-01 |
| SG-02 | 确保在助力丧失时,系统能够提供清晰的故障提示,且车辆保持可控的机械转向能力 | ASIL B | H-02 |
| SG-03 | 防止EPS系统输出与驾驶员需求方向相反的助力扭矩 | ASIL C | H-03 |
| SG-04 | 确保扭矩传感器信号误差在安全范围内,超出时系统进入安全状态 | ASIL B | H-04 |
HARA分析流程与结果映射
// HARA分析 - 危害分析与风险评估
// 目标:识别危害事件并确定ASIL等级
// 1. 定义车辆运行场景
typedef enum {
SCENE_HIGHWAY_CRUISE, // 高速公路巡航
SCENE_CITY_INTERSECTION, // 城市交叉路口
SCENE_PARKING_MANEUVER, // 停车操作
SCENE_RAINY_NIGHT, // 雨夜行驶
SCENE_EMERGENCY_BRAKE // 紧急制动
} OperatingScene;
// 2. 危害事件定义结构
typedef struct {
char* malfunction; // 功能异常描述
char* hazard; // 危害描述
OperatingScene scene; // 运行场景
int controllability; // 可控性 C0-C3
int severity; // 严重度 S0-S3
int exposure; // 暴露率 E0-E4
int asil_level; // 计算出的ASIL等级
} HazardEvent;
// 3. ASIL等级计算函数
int calculate_asil(int severity, int exposure, int controllability) {
// 根据ISO 26262-3 表1确定ASIL等级
// 简化映射表
if (severity == 0 || exposure == 0 || controllability == 0)
return 0; // QM
if (severity == 3 && exposure >= 3 && controllability >= 2)
return 4; // ASIL D
if (severity == 3 && exposure >= 2 && controllability >= 1)
return 3; // ASIL C
if (severity == 2 && exposure >= 3 && controllability >= 2)
return 3; // ASIL C
if (severity == 2 && exposure >= 2 && controllability >= 1)
return 2; // ASIL B
if (severity == 1 && exposure >= 3 && controllability >= 2)
return 2; // ASIL B
if (severity == 1 && exposure >= 2 && controllability >= 1)
return 1; // ASIL A
return 0; // QM
}
// 4. 执行HARA分析的示例
void perform_hara_analysis(void) {
// 示例危害事件:EPS(电动助力转向)系统故障
HazardEvent event1 = {
"转向助力突然丧失",
"车辆偏离车道,与对向车辆碰撞",
SCENE_HIGHWAY_CRUISE,
3, // C3: 不可控
3, // S3: 生命威胁
3, // E3: 中高暴露
0
};
event1.asil_level = calculate_asil(event1.severity,
event1.exposure,
event1.controllability);
// 输出结果
// 预期:ASIL D (S3+E3+C3)
// 示例2:雨夜停车辅助系统误报
HazardEvent event2 = {
"停车辅助误报障碍物",
"驾驶员误操作,轻微刮擦",
SCENE_PARKING_MANEUVER,
1, // C1: 简单可控
1, // S1: 轻伤
2, // E2: 低暴露
0
};
event2.asil_level = calculate_asil(event2.severity,
event2.exposure,
event2.controllability);
// 预期:QM或ASIL A
}
验证方法与判定标准
验证方法:将上述HARA分析结果(危害事件表、S/E/C评级、ASIL等级、安全目标)提交给功能安全评审组进行专家评审。评审组由系统工程师、功能安全经理、整车安全工程师组成。
判定标准:
- 每个危害事件均明确关联至少一个具体的功能失效模式和运行场景;
- S/E/C评级结果与ISO 26262-3:2018表1~表3中的场景描述一致,无矛盾;
- 每个危害事件均被至少一个安全目标覆盖,且安全目标的ASIL不低于其所覆盖危害事件的最高ASIL;
- 评审组对评级结果和安全目标无重大异议,或异议项已闭环处理。
通过以上评审即判定HARA分析合格,输出物可作为下一阶段功能安全概念(FSC)的输入。