实务 IV · 功能安全与可靠性
层次:业界核心、学校极少讲 | 本页只讲概念框架。真实项目的安全设计与认证必须依据现行标准、由有资质人员执行,本课不构成任何工程或认证指导。 当控制系统失效会导致人员伤亡、环境破坏或重大财产损失时,"性能好"就不再是首要问题。功能安全是一套系统化的方法,用来回答:这个系统失效的可能性有多大?可以接受吗?如何证明? 它的方法论价值远超自动化领域。
一、核心区分:安全 ≠ 可靠
这是本页最重要的概念区分:
- 可靠性(reliability):系统持续正常工作的能力(不停机);
- 安全性(safety):系统不造成伤害的能力。
二者常常冲突。一台设备检测到异常后立即停机,是安全的(不会伤人)但不可靠的(生产中断)。
由此有两类失效:
| 含义 | 后果 | |
|---|---|---|
| 安全失效 | 系统失效但进入安全状态(如停机) | 损失生产,不伤人 |
| 危险失效 | 系统失效且丧失保护功能 | 可能伤人 |
功能安全的核心目标是把"危险失效"的概率压到可接受水平,并接受为此付出的可用性代价。
"故障导向安全(fail-safe)"是基本设计原则:失效时应自动进入安全状态。经典例子——
- 电磁制动器设计成断电抱闸(而非通电抱闸),断电时自动刹住;
- 安全回路用常闭触点串联,断线即触发停机;
- 第十三页的 4–20 mA 活零点同样是这个思想:断线(0 mA)可与真实零值(4 mA)区分。
二、风险与完整性等级
风险 = 危害发生的概率 × 后果的严重程度。
安全生命周期的第一步是危害与风险分析(HAZOP、FMEA、故障树等方法),识别可能的危害、评估风险,再确定需要多大程度的风险降低。
安全完整性等级(SIL):按要求的风险降低量分级(SIL 1 至 SIL 4,SIL 4 最严)。对低要求模式,指标是要求时危险失效概率(PFD):
每提高一级,要求的失效概率降低一个数量级,而成本与复杂度显著上升。
相关标准体系(各行业有专门版本):IEC 61508(通用基础)、IEC 61511(过程工业)、ISO 26262(汽车)、IEC 62061 / ISO 13849(机械)、DO-178C(航空软件)。具体等级判定与认证必须依据现行标准原文与认证机构要求。
三、达成安全的技术手段
① 冗余与表决:
- 1oo2(二取一):任一通道要求即动作——提高安全性(不易漏动),但降低可用性(易误动);
- 2oo2:需两通道一致才动作——提高可用性,降低安全性;
- 2oo3(三取二):兼顾两者,是高完整性系统的常用结构(航空、核电、高铁)。
这三个结构清晰地展示了安全与可用性的权衡——没有免费的午餐。
② 诊断覆盖率(DC):系统能自动检测出多大比例的危险失效。未被检测到的危险失效最可怕——它潜伏着,直到需要保护时才暴露。因此有周期性检验测试来发现潜伏失效。
③ 避免共因失效:冗余通道若因同一原因同时失效,冗余就失去意义(共用电源、共用软件缺陷、同一批次元件、同一环境应力)。解法是多样性(diversity):不同硬件、不同软件实现、不同供应商。共因失效是冗余系统最主要的残余风险,\(\beta\) 因子模型用来量化它。
④ 独立的保护层:安全仪表系统(SIS)应独立于基本过程控制系统(BPCS)——不能让同一个控制器既做控制又做保护,否则它自己失效时两者一起失效。"保护层分析(LOPA)"就是评估各层独立保护的有效性。
四、软件的特殊性
硬件失效多是随机的(可用概率描述、可用冗余对抗);软件失效是系统性的——同样的输入必然重现同样的错误。复制一份相同的软件做冗余,对系统性失效毫无帮助。
因此安全相关软件依靠过程与验证而非概率:
- 严格的开发流程与文档、需求可追溯;
- 编码规范(如汽车行业的 MISRA C),禁用动态内存分配、递归、无界循环等不确定构造;
- 高覆盖率测试(语句/分支/MC-DC 覆盖);
- 形式化方法(在最高等级中被推荐);
- 工具链本身也需要资质认证。
这就是为什么安全关键软件的开发效率远低于普通软件——大量工作在于证明它是对的,而非让它工作。
五、可靠性工程的基本量
- 失效率 \(\lambda\) 与 MTBF \(= 1/\lambda\)(恒定失效率假设下);
- 浴盆曲线:早期失效(制造缺陷,用老化筛选剔除)→ 随机失效期 → 耗损期。🔗 微电子站第十四页讲的是同一条曲线;
- 可用性 \(= \dfrac{\mathrm{MTBF}}{\mathrm{MTBF}+\mathrm{MTTR}}\)——注意修复时间 MTTR 与失效率同等重要。这解释了为什么工业设备极重视可诊断性与可维护性:能快速定位并更换的设计,可用性优于故障率更低但难修的设计。
六、方法论价值:超出自动化的启发
功能安全的思维方式值得任何工程领域借鉴:
- 明确定义"安全状态",并让系统在失效时自动趋向它;
- 区分随机失效与系统性失效,用不同手段对付(冗余 vs 流程);
- 量化风险而非追求"绝对安全"——绝对安全不存在,工程的任务是把风险降到与后果相称的水平;
- 警惕共因:看似独立的冗余可能共享隐藏的依赖。这条在软件架构、金融风险、供应链管理中同样适用;
- 可诊断性是可用性的一半。
特别值得强调第 3 条:功能安全承认风险不可能归零,转而要求它被量化、被论证、被接受。 这种"用可验证的论证代替绝对保证"的姿态,是成熟工程学科的标志——它与第五页的水床效应、微电子站的物理极限属于同一种智识成熟度:知道什么做不到,并据此设计。
七、要点
- 安全 ≠ 可靠,二者常冲突;核心是压低危险失效概率;
- 故障导向安全是基本设计原则(断电抱闸、常闭回路、活零点);
- SIL 按风险降低量分级,每级差一个数量级;
- 1oo2 / 2oo2 / 2oo3 清晰展示安全与可用性的权衡;
- 共因失效是冗余的最大敌人,多样性是对策;
- 软件失效是系统性的,靠流程与验证而非冗余;
- 量化风险而非追求绝对安全——这是本页最有普适价值的方法论。
线三结束。下一线进入研究生专业化:当线性、无约束的假设不再成立时,控制理论如何扩展。从非线性控制开始。