20、铁路控制系统的形式化验证与半通用验证方法

铁路控制系统的形式化验证与半通用验证方法

1. 铁路系统的整体形式化证明

铁路控制系统的环境模型是验证的关键要素,确保其正确性并揭示真实系统的所有可能行为至关重要。通过交叉阅读、中间引理验证、活性检查和特定场景探索等方式对整个环境模型进行了验证。

在进行形式化验证时,将设计的模型(软件、环境和属性)用从项目数据库中提取的实际轨道数据进行实例化,这些数据描述了轨道对象及其连接。随后,对3个虚拟模型和8个实际实例化模型进行了形式化验证,这些模型的大小和复杂度各异,涵盖了地铁线路的所有相关轨道配置。

在应用结果方面,在实际和简单布局中都发现了许多反例。这些反例不仅重现了模型中已知的问题,还发现了一些新的复杂(但可能存在)的不安全场景。并非所有识别出的场景都对应软件中的错误,主要有以下三种可能的原因:
- 一些场景被供应商确认为错误,会对代码或系统规范进行更改以纠正。
- 一些场景显示简单布局中数据缺乏约束,而实际布局中没有。可以为布局数据添加更多约束,以避免在未来项目中遇到这些问题。
- 一些场景涉及不同子系统同时出现缺陷,伴有通信延迟或消息丢失。供应商认为这些场景不太现实,因为其发生概率足够低。

这种方法被认为是对目标软件进行系统级安全属性验证的一次有前景且成功的尝试。除了发现传统验证方法忽略的复杂错误外,该方法还识别并消除了一些可能导致系统过度约束的隐含假设。同时,它有助于增进对所研究系统和软件的理解,加强系统和软件验证团队之间的协作。

然而,这项研究也存在一些局限性和挑战。在这类应用中,常见的主要障碍是在探索实际布局数据时出现状态空间爆炸问题。一种解决方案是引入代表小而复杂配置的简单布局,但挑战在于找到足够详细的模型和抽象模型之间的良好平衡。另一种解决方案是使用分解和抽象来降低软件模型的复杂性,目前还在考虑其他优化方法,主要集中在证明过程上。

另一个因系统复杂性而出现的困难是反例分析。系统概念和软件变量的结合使得难以确定导致不良行为的原因。目前正在开发一种图形可视化工具,以使分析不那么繁琐,并使场景展示更加容易。

2. 铁路控制系统的形式化验证概述

铁路控制系统(如联锁系统)安全关键且复杂,因此需要严格验证以确保安全可靠运行。形式方法为这类验证活动提供了经济高效且增强安全性的手段,许多形式方法(如Alloy、Petri网、B方法等)被广泛用于铁路控制系统的验证,并且这些方法也被CENELEC标准推荐。

传统上,安全关键信号系统及其相关工具和规范根据其应用领域的通用性进行分类,从高到低依次为通用产品(GP)、通用应用(GA)和特定应用(SA)。这里主要关注GA和SA的形式化验证。

GA是一组针对具有共同信号原则的铁路控制系统家族的通用形式规范,具体包括:
- 对象模型(OM):定义了模型本体,包括物理对象(如信号、轨道电路和道岔)和虚拟对象(如路线和保护区)的类声明,以及它们的输入、输出、内部状态和静态关系。
- 通用设计规范(GDS):仅在代码生成项目中相关,规定了系统各组件的运行方式,具体通过定义内部状态更新的时间一阶逻辑表达式来实现。结合配置数据和适当的执行模型,该规范应足够精确以允许生成可执行代码。
- 通用安全规范(GSS):规定了静态约束以及从这些约束得出的静态和动态要求,由有限数量的一阶时间逻辑公式组成。

SA是与GA和一些兼容配置数据组合相关联的单个系统,大多数信号项目的验证和确认工作都在这个级别进行。

计算机化铁路控制系统可以被视为软件产品线(SPL)。SPL是一组相似的软件产品,家族成员之间的可变性通常通过一组可选元素或功能来表达。在铁路行业中,SPL工程原则已被应用于管理机车车辆的可变性等方面。一个给定GA对应的计算机化系统家族可以被视为一个SPL,每个与GA相关联的SA通常通过家族范围的GDS和联锁特定的配置数据自动获得。

从商业角度来看,对整个GA进行形式验证(即验证从GDS生成的任何可执行代码是否满足从GSS实例化的相应要求)具有吸引力,因为它可以节省成本和时间,增加对GDS质量的信心,并便于调试和验证GSS。然而,这也带来了计算挑战。一方面,在没有任何布局先验假设的情况下,GA原则上代表了无限数量的SA,因为可能的配置数量是无限的,这就面临着对无限多个系统进行GSS验证的问题。另一方面,即使只考虑GA的有限子家族,其成员数量通常也非常大,系统数量通常与可选配置组件的数量呈指数关系,因此简单的逐个验证SA的方法在大多数情况下会失败。

为了克服这些困难,SPL社区提出了将SPL作为一个整体进行分析的替代验证方法,其中一些方法围绕使用特征变量来创建和分析所研究SPL的元产品和元规范。下面将详细介绍一种基于此概念的半通用验证(HGV)方法。

3. 相关形式方法调查
  • Alloy :可以支持GA和SA两种应用类型,带有用于建模和分析复杂系统(如铁路系统)的工具集。Alloy分析器工具提供模型的图形表示,允许可视化系统行为并识别潜在问题。一旦在关系逻辑中指定了约束和断言,Alloy分析器会找到并可视化满足约束的有效实例以及断言的反例。该语言已用于建模联锁系统和铁路案例研究,但它主要不是为代码生成或验证固定的可执行代码而开发的,而是用于测试设计、分析和验证(可能是非确定性的)规范,并且对实时建模和复杂状态转换的支持有限。
  • Petri网 :基于图形式的转换系统图形表示,是一种数学建模技术,可用于模拟系统行为以识别潜在问题,也可用于可视化需求反例等问题,有助于识别设计缺陷和理解需求未满足的原因。Petri网已应用于铁路系统,但随着系统复杂性和规模的增加,可能会变得难以理解。
  • B和Event - B :基于定理证明和模型检查,可与Atelier B、Rodin和ProB等工具结合使用,这些工具对模型的规范、验证和动画很有用,支持系统结构、执行跟踪、行为动画的图形可视化以及错误和不一致性的识别。但它们缺乏对实时和并发系统的支持,并且形式验证可能需要同时使用多个工具,这可能需要耗费时间的配置工作。
4. SPL的形式验证与Prover iLock工具

形式方法已在多个上下文中用于SPL的分析,这里关注基于配置提升(也称为可变性编码)的特定形式SPL分析方法。对于SPL的每个可选功能,会向代码库和规范中添加一个自由布尔变量(特征变量),其语义是如果相应功能存在于某个可能的产品中,其值为True。最终结果是一个能够同时模拟SPL所有产品的元产品,通过对元产品进行形式验证,实际上就验证了SPL的所有产品。

Prover开发了专门用于设计、测试、验证和可视化铁路控制系统的Prover iLock工具,该工具使用PiSPEC语言,这是一种基于多排序一阶逻辑并补充了离散时间概念的面向对象的领域特定语言。Prover iLock会自动分析PiSPEC模型,并使用各种证明策略(如模型检查)验证系统是否满足其安全要求。通常在单个系统(SA)级别进行验证和模拟。

GA捕获了一组信号原则,并作为Prover iLock包实现。SA则在Prover iLock项目中开发,代表单个控制系统。最常见的SA配置设置是根据示意图在布局编辑器中绘制铁路站场,并从配置文件中读取无法根据地理信息计算的任何关系和参数。

5. 半通用验证(HGV)方法

HGV方法的输入是一个GA(记为GAi,包括OMi、GDSi和GSSi)以及一些配置数据Ci。该方法的核心是将给定输入转换为新的GA(GAo)和新的配置数据(Co)的三步过程:
1. 引入新的“潜在”对象类 :向OM中引入新的“潜在”对象类,每个潜在对象类继承OMi中已存在的某个对象类的属性,并额外有一个特殊的布尔特征变量Exists。该变量的值为True当且仅当其所属对象实例存在于系统中。在形式验证期间,Exists变量在初始时间步是自由的,但随后在时间上被强制为常量。
2. 调整模型规范 :将OM、GDS和GSS与前两步引入的修改对齐,通过将GA中任何表达式(指定义静态关系(OM)、内部状态(GDS)和需求(GSS)的时间一阶逻辑表达式)中出现的任何量化范围限制为存在的对象来实现。
3. 替换对象实例 :将Ci中一些(用户指定的)对象实例替换为相应的潜在对象实例。

HGV方法的基本思想是,验证通过此过程得到的SA等同于验证它所编码的系统集合。原则上,该方法适用于任何有限的配置家族,但如果家族成员之间的轨道布局差异很大,在实践中可能难以制定有效的配置约束。此外,如果向模型中添加大量特征变量,验证将变得计算不可行。

此外,还可以向GA中添加涉及Exists变量的新静态(即与时间无关)约束,用于指定有效的配置,通过禁止某些对象组合存在来实现。结合这些约束的反例可视化,它可以为SA配置提供实时、用户友好的支持。同样,添加可以从约束中正式验证得出的新静态需求也是有用的。

以下是HGV方法的流程示意图:

graph LR
    A[输入GAi和Ci] --> B[引入新的“潜在”对象类]
    B --> C[调整OM、GDS和GSS]
    C --> D[替换对象实例]
    D --> E[得到GAo和Co]
    E --> F[验证SA]

总之,HGV方法为铁路控制系统的形式验证提供了一种平衡的方法,能够在一次计算中验证从同一GDS派生的广泛系统集合,同时保持可行性。它还突出了在铁路控制系统建模和验证中实施SPL分析的潜在好处,包括增强配置数据生成过程和确保GDS和通用安全规范的正确性。通过使用Prover iLock工具的原型实现,证明了HGV方法的有效性。

铁路控制系统的形式化验证与半通用验证方法

6. HGV方法的优势与应用场景

HGV方法在铁路控制系统的形式验证中具有显著优势,以下是对其优势和应用场景的详细分析:

6.1 HGV方法的优势
  • 高效验证 :能够在一次计算中验证从同一GDS派生的大量系统,避免了逐个验证SA的繁琐过程,大大节省了时间和成本。
  • 增强信心 :有助于增加对GDS和GSS正确性的信心,通过验证整个GA,可以更全面地发现潜在问题,提高系统的安全性和可靠性。
  • 支持配置数据生成 :在配置数据生成过程中提供支持,包括自动验证约束一致性和在手动铁路站场布局规划时提供交互式反馈,提高配置数据的质量。
6.2 应用场景
应用场景 描述
新系统开发 在开发新的铁路控制系统时,使用HGV方法可以对整个GA进行验证,确保系统从设计阶段就符合安全要求。
系统升级 当对现有铁路控制系统进行升级时,HGV方法可以验证升级后的系统是否仍然满足GSS的要求,减少升级带来的风险。
配置数据验证 在生成或修改配置数据时,利用HGV方法验证配置数据的一致性和正确性,避免因配置错误导致的系统故障。
7. HGV方法的挑战与解决方案

尽管HGV方法具有诸多优势,但在实际应用中也面临一些挑战,以下是对这些挑战及相应解决方案的讨论:

7.1 挑战
  • 状态空间爆炸 :在探索实际布局数据时,可能会出现状态空间爆炸的问题,导致验证过程变得计算不可行。
  • 反例分析困难 :由于系统概念和软件变量的结合,识别导致不良行为的原因变得困难,增加了反例分析的难度。
7.2 解决方案
  • 引入简单布局 :为了解决状态空间爆炸的问题,可以引入代表小而复杂配置的简单布局,找到足够详细的模型和抽象模型之间的良好平衡。
  • 使用分解和抽象 :通过分解和抽象软件模型,降低其复杂性,减少验证所需的计算资源。
  • 开发可视化工具 :为了简化反例分析过程,开发图形可视化工具,使分析更加直观和高效。
8. 总结与展望

HGV方法为铁路控制系统的形式验证提供了一种创新的解决方案,通过应用软件产品线原则,实现了对广泛系统的高效验证。该方法不仅能够发现复杂的错误,还能增强对系统和软件的理解,促进系统和软件验证团队之间的协作。

然而,HGV方法仍然面临一些挑战,如状态空间爆炸和反例分析困难等。未来的研究可以进一步探索优化方法,如改进模型抽象技术、开发更高效的验证算法等,以提高HGV方法的性能和实用性。

同时,随着铁路控制系统的不断发展和复杂化,形式验证的需求也将不断增加。HGV方法有望在更多的铁路项目中得到应用,为保障铁路系统的安全运行发挥重要作用。

以下是HGV方法在实际应用中的一个简单示例流程:

graph LR
    A[确定GA和配置数据] --> B[应用HGV方法进行转换]
    B --> C[验证转换后的SA]
    C --> D{是否通过验证}
    D -- 是 --> E[系统符合要求]
    D -- 否 --> F[分析反例并修改]
    F --> B

通过以上流程,可以确保铁路控制系统在设计和配置过程中满足安全要求,提高系统的可靠性和安全性。

本研究基于扩展卡尔曼滤波(EKF)方法,构建了一套用于航天器姿态轨道协同控制的仿真系统。该系统采用参数化编程设计,具备清晰的逻辑结构和详细的代码注释,便于用户根据具体需求调整参数。所提供的案例数据可直接在MATLAB环境中运行,无需额外预处理步骤,适用于计算机科学、电子信息工程及数学等相关专业学生的课程设计、综合实践或毕业课题。 在航天工程实践中,精确的姿态轨道控制是保障深空探测、卫星组网及空间设施建设等任务成功实施的基础。扩展卡尔曼滤波作为一种适用于非线性动态系统的状态估计算法,能够有效处理系统模型中的不确定性测量噪声,因此在航天器耦合控制领域具有重要应用价值。本研究实现的系统通过模块化设计,支持用户针对不同航天器平台或任务场景进行灵活配置,例如卫星轨道维持、飞行器交会对接或地外天体定点着陆等控制问题。 为提升系统的易用性教学适用性,代码中关键算法步骤均附有说明性注释,有助于用户理解滤波器的初始化、状态预测、观测更新等核心流程。同时,系统兼容多个MATLAB版本(包括2014a、2019b及2024b),可适应不同的软件环境。通过实际操作该仿真系统,学生不仅能够深化对航天动力学控制理论的认识,还可培养工程编程能力实际问题分析技能,为后续从事相关技术研究或工程开发奠定基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值