17、嵌入式系统可靠性构建与软件故障预测模型

嵌入式系统可靠性构建与软件故障预测模型

1. 嵌入式系统可靠性构建方法

1.1 集成与分解流程

在嵌入式系统的构建过程中,反馈机制会引导开发者回到分解和设计阶段。集成基于三个同心电路:首先分析属于第 m 个组件的所有事件,接着关注属于第 n 级的所有组件,之后系统才能进入更高一级。当达到最高分解级别时,该过程终止。

1.2 工具实现

为了实现上述方法,开发了一款工具。该工具提供了接口和管理功能,允许用户根据自身需求对系统进行详细分解。在集成和验证过程中,通过与基于 Astra 的故障树分析(FTA)的接口完成必要的故障树分析。Astra 是高级软件可靠性分析工具集的缩写,目前计划将此方法作为独立工具纳入 Astra 技术体系。

1.3 案例研究

1.3.1 计算机辅助制动系统(CAB)

CAB 系统有定量和定性的安全要求。定性要求系统架构具有容错性,定量要求完全失去制动(即顶事件)的概率每小时小于 3 x 10 - 7。设计分解部分展示了 CAB 仅提供制动功能,且与驾驶员需求成比例。通过分析,可将“完全缺乏制动”的功能故障模式追溯到基本事件,甚至分解到操作系统级别,但在某些特殊情况下无法进一步分解,也无法提供可靠性数据。

以下是 CAB 案例研究的部分表格层次结构:
| Effects | Causes |
| — | — |
| Complete_Lack_of_Breaking.Brake_Function | V_.Sens_in.Sens ∨ O_.Sens_in.Sens ∨ (V_.FN_RO.cab ∧ V_.FO_RN.cab) ∨ (O_.FN_RO.cab ∧ O_.FO_RN.cab) |
| O_.FN_RO.cab | O_.Output.Mod1 ∨ O_.Power_supply.PS ∨ V_.Diag_1.Controller ∨ V_.Busses.2B ∨ O_.Diag_1.Controller ∨ O_.Busses.2B |
| V_.Diag_1.Controller | V_.Diag_1.Ch1 ∧ V_.Diag_1.Ch2 ∨ V_.Diag_1.Ch1 ∧ V_.Diag_1.Ch3 ∨ V_.Diag_1.Ch1 ∧ V_.Diag_1.Ch2 |

1.3.2 燃油控制器

燃油控制器用于管理通过五个阀门的恒定流量,由电子控制器(EC)控制。软件通过状态转换图描述,提出了容错架构。系统在“cva_fails”或“bva_fails_closed”事件发生时进入 BVB_CVB 状态,事件逻辑如下:
- cva_fails = (ESS_L ∧ CV0_L ∨ ESS_H ∧ ¬ CV0_H) ∧ 0.5sec_timeout
- bva_fails_closed = ¬BVA0 ∧ 0.5sec_timeout

状态转换图如下:

stateDiagram-v2
    [*] --> IDLE
    IDLE --> BVA_CVB : cva_fails or bva_fails_closed
    IDLE --> BVB_CVB : cva_fails or bva_fails_closed
    IDLE --> BVA_CVA : ...
    BVA_CVB --> [*] : stop
    BVB_CVB --> [*] : stop
    BVA_CVA --> [*] : stop

1.4 状态分析与原因查找

在状态转换图中,查找原因可从两个方面进行:
- 阀门 BVA 关闭可能是因为进行了不应该进行的转换(“commission”)。
- 阀门 BVA 保持关闭可能是因为应该进行的转换未进行(“omission”)。

该方法会为每个状态引入逻辑变量,如“C_inStateBVA_CVA”,并将其附加到适当的原因上。

2. 软件可靠性分析模型

2.1 非齐次泊松模型

一些知名的软件可靠性增长模型基于非齐次泊松过程(NHPP),其中泊松参数是时间的函数。例如:
- Goel - Okumoto 模型:µ(t) = a(1 - e - bt),a ≥ 0,b > 0
- Musa - Okumoto 模型:µ(t) = (1 / θ) log(λθt + 1)

这两个模型的主要区别在于 t → ∞ 时 µ(t) 的行为,前者属于有限类别模型,后者属于无限类别模型。Musa 基本执行时间模型与 Goel - Okumoto 模型具有相同的均值函数,但基于实际执行时间和不同的假设。

NHPP 模型专门为时间间隔故障数据设计,但也可应用于每个时间段的故障数据。

2.2 复合泊松模型

复合泊松过程(CPP)被提出作为软件可靠性模型。与 NHPP 模型不同,CPP 的均值函数与经过的时间成正比,因此具有简单的分析计算和估计程序。CPP 用于模拟分组故障的产生,分组故障在给定时间间隔内的到达遵循泊松分布,每组中的故障数量遵循给定的分布。

一个 CPP 由 M 个独立同分布的随机变量 Xi 的和给出,其中 M 遵循泊松分布。其分布函数 FY(x) 为:
[FY(x) = \sum_{m = 0}^{\infty} \frac{e^{-\lambda t} (\lambda t)^m}{m!} [GX(x)]^{m*}]

随机变量 N(t) 遵循 CPP 的概率为:
[pN(N(t) = n) = \sum_{m = 0}^{\infty} \frac{e^{-\lambda t} (\lambda t)^m}{m!} Pr{\sum_{i = 1}^{M} Xi = n | M = m}]

其概率生成函数 fN(z, t) 为:
[fN(z, t) = e^{-\lambda t} e^{\lambda t g(x)}]

其中 g(x) 是复合随机变量的概率生成函数。如果复合概率在零处截断(即 pX(x = 0) = 0),则上述求和扩展到 m。在 [10] 中提出的复合分布是几何分布(GD):
[PX(x) = r (1 - r)^{x - 1}, x = 1, 2, 3, \cdots]

通常使用预测有效性来比较软件可靠性模型。假设在时间 ttot 内产生了 ntot 个故障,使用直到时间 tpast ≤ ttot 的故障数据来估计均值函数的参数,使得 µ(tpast) = npast,然后用估计的参数值替换 µ(t) 中的参数,得到直到 ttot 的故障数估计值 ˆµ(ttot)。

在软件故障数据存在离散性的情况下,提出使用样本的众数来估计零截断泊松分布的参数,因为该估计器对离散性不太敏感。考虑的样本数据包括凹形、S 形和两阶段曲线,通过不同数据集的结果有助于选择合适的模型和估计方法。

3. 嵌入式系统可靠性构建方法的优势与应用

3.1 方法优势

该嵌入式系统可靠性构建方法结合了多种经典的安全和可靠性分析技术,以确保结果的一致性,并有助于更好地理解和验证系统的可靠性与安全特性。它紧密结合经典的 V 生命周期,验证部分主要通过对(子)系统拓扑结构连续应用故障树分析来完成。若局部结果不满足可靠性或安全的最低条件,则需重新设计组件或其所属层,并再次进行相关验证。

此方法还具有以下优势:
- 多技术适用性 :遵循特定形式,可在不同的分解阶段应用不同的安全分析技术。
- 软件故障分析 :故障树分析的非定量结果可应用于软件故障,实现嵌入式系统的综合分析。软件组件以状态转换图的形式管理,便于自动化故障树分析逻辑部分的输入。
- 自动化优势 :应用于复杂的实际系统时,会生成大量难以手动管理的表格,而开发的工具能自动化处理这些任务,通过强大的管理程序处理生成的效果和表格,并控制潜在事件的创建。该工具与拓扑层次结构的紧密联系,使其能够自动识别事件的超集,并提出和控制这些事件。

3.2 应用流程

以下是该方法在嵌入式系统中的应用流程:
1. 系统分解 :使用工具根据需求对系统进行详细分解。
2. 集成与验证 :在集成和验证过程中,通过与基于 Astra 的故障树分析接口进行必要的故障树分析。
3. 结果评估 :对故障树分析的结果进行评估,若局部结果不满足可靠性或安全的最低条件,则返回步骤 1 重新设计组件或其所属层,并再次进行相关验证。
4. 持续优化 :不断重复上述步骤,直到系统满足可靠性和安全要求。

3.3 应用案例总结

通过计算机辅助制动系统(CAB)和燃油控制器两个案例研究,展示了该方法在实际应用中的有效性:
| 案例 | 系统要求 | 分析过程 | 结果 |
| — | — | — | — |
| CAB 系统 | 定性要求系统架构容错,定量要求完全失去制动概率每小时小于 3 x 10 - 7 | 设计分解展示制动功能与驾驶员需求成比例,将“完全缺乏制动”故障模式追溯到基本事件 | 可分析到操作系统级别,但部分情况无法进一步分解和提供可靠性数据 |
| 燃油控制器 | 管理通过五个阀门的恒定流量 | 软件通过状态转换图描述,提出容错架构,分析事件逻辑 | 明确系统在不同事件发生时的状态转换 |

4. 软件可靠性分析模型的比较与选择

4.1 模型比较

非齐次泊松模型(NHPP)和复合泊松模型(CPP)在软件可靠性分析中各有特点,以下是它们的比较:
| 模型类型 | 均值函数特点 | 适用数据类型 | 分析计算难度 |
| — | — | — | — |
| NHPP 模型 | 泊松参数是时间的函数,不同模型在 t → ∞ 时 µ(t) 行为不同 | 专门为时间间隔故障数据设计,也可用于每个时间段的故障数据 | 分析计算相对复杂 |
| CPP 模型 | 均值函数与经过的时间成正比 | 适用于分组故障数据,分组故障在给定时间间隔内的到达遵循泊松分布 | 分析计算和估计程序简单 |

4.2 模型选择

在选择软件可靠性分析模型时,需要考虑以下因素:
- 数据类型 :如果数据是时间间隔故障数据,NHPP 模型可能更合适;如果是分组故障数据,CPP 模型可能更适用。
- 分析难度 :若希望进行简单的分析计算和估计程序,CPP 模型是较好的选择;若需要更复杂的时间相关分析,NHPP 模型可能更符合需求。
- 数据离散性 :当软件故障数据存在离散性时,使用样本众数估计零截断泊松分布参数的 CPP 模型可能更具优势。

4.3 选择流程

以下是选择软件可靠性分析模型的流程:

graph LR
    A[确定数据类型] --> B{是否为分组故障数据}
    B -- 是 --> C[考虑 CPP 模型]
    B -- 否 --> D[考虑 NHPP 模型]
    C --> E{数据是否存在离散性}
    E -- 是 --> F[使用样本众数估计参数的 CPP 模型]
    E -- 否 --> G[普通 CPP 模型]
    D --> H{是否需要复杂时间相关分析}
    H -- 是 --> I[选择合适的 NHPP 模型]
    H -- 否 --> J[根据其他需求选择模型]

5. 总结

本文介绍了嵌入式系统可靠性构建方法和软件可靠性分析模型。嵌入式系统可靠性构建方法通过结合多种经典分析技术,利用工具进行系统分解和验证,在实际案例中展示了其有效性和优势。软件可靠性分析模型包括非齐次泊松模型和复合泊松模型,各有特点和适用场景。在实际应用中,应根据数据类型、分析难度和数据离散性等因素选择合适的模型。通过对这些方法和模型的研究和应用,可以提高嵌入式系统的可靠性和软件的可靠性,为相关领域的发展提供有力支持。

本项目采用C++编程语言结合ROS框架构建了完整的双机械臂控制系统,实现了Gazebo仿真环境下的协同运动模拟,并完成了两台实体UR10工业机器人的联动控制。该毕业设计在答辩环节获得98分的优异成绩,所有程序代码均通过系统性调试验证,保证可直接部署运行。 系统架构包含三个核心模块:基于ROS通信架构的双臂协调控制器、Gazebo物理引擎下的动力学仿真环境、以及真实UR10机器人的硬件接口层。在仿真验证阶段,开发了双臂碰撞检测算法轨迹规划模块,通过ROS控制包实现了末端执行器的同步轨迹跟踪。硬件集成方面,建立了基于TCP/IP协议的实时通信链路,解决了双机数据同步运动指令分发等关键技术问题。 本资源适用于自动化、机械电子、人工智能等专业方向的课程实践,可作为高年级课程设计、毕业课题的重要参考案例。系统采用模块化设计理念,控制核心硬件接口分离架构便于功能扩展,具备工程实践能力的学习者可在现有框架基础上进行二次开发,例如集成视觉感知模块或优化运动规划算法。 项目文档详细记录了环境配置流程、参数调试方法实验验证数据,特别说明了双机协同作业时的时序同步解决方案。所有功能模块均提供完整的API接口说明,便于使用者快速理解系统架构并进行定制化修改。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值