22、移动闭塞列车控制系统的建模、可视化与验证

移动闭塞列车控制系统的建模、可视化与验证

1 建模方法

1.1 验证技术:证明至关重要

形式模型的验证有三种方式:
1. 形式证明
2. 显式模型检查
3. 符号模型检查

虽然模型检查在验证联锁系统的具体实例时具有可扩展性,但对于移动闭塞系统而言,其可扩展性不足。这是因为移动闭塞系统需要更精确地对列车位置进行建模,从而导致需要验证的状态空间大幅增加。抛开可扩展性问题,理想情况下,我们希望建立一个与拓扑结构无关的安全案例,而这只能通过证明来实现。因此,证明对于确保移动闭塞系统以及一般安全关键系统的安全性至关重要。

1.2 用模型检查辅助证明

证明很少能完全自动进行,并且在证明过程或模型属性的表述中很容易出错。即使是经验丰富的形式方法从业者,也需要花费时间分析失败的证明,以确定是模型需要修改,还是证明方式需要调整。

因此,模型检查是一种很好的辅助手段,可以自动检查系统的小实例并快速发现问题。如果模型检查器发现错误,我们就知道需要修改模型,并且可以获得一个反例来诊断问题。

1.3 结合证明与动画

进行数学证明时,证明所依据的公理必须是一致的,否则任何结论都可以被证明,证明也就失去了意义。

在传统的软件B方法中,公理(即B方法中的PROPERTIES子句)的不一致性最终会在系统实现或数据验证过程中被发现。虽然这种发现可能较晚且成本较高,但至少问题能够被揭示出来。然而,在系统建模中,从高层规范到具体实现不一定存在细化链,因此公理化中的不一致性可能根本无法被检测到。

因此,特别是在系统建模中,动画对于确保公理的一致性至关重要。例如,像ProB这样的动画工具会在初始设置阶段检查公理,然后再进行首次动画步骤。根据经验,这种检查在学术和工业模型中都发现了许多公理中的不一致性。

动画也是模型检查的良好补充。模型检查可能会给人带来错误的信心(当模型检查器过快报告模型正确时,我们应该保持怀疑),并且它只会查找我们预先想到的特定错误。而动画工具允许用户交互式地探索模型的行为,从而检查模型的动态是否符合预期,并常常能发现我们之前没有想到的问题。

1.4 结合证明、动画和模型检查的挑战

结合证明和动画也面临着相当大的挑战。有助于证明的公式(例如,对大域或无限域的全称量化)可能会使动画变得困难或无法进行。不过,到目前为止,我们总能克服这些问题。可以将复杂的公式移到定理(即ASSERTIONS)部分,这些部分在常量设置阶段不会被检查。我们还添加了一个功能,用“prob - ignore”编译指示标记某些属性,ProB动画工具会跳过这些属性,但会将其标记为“未完全检查”。因此,我们仍需使用该工具对这些属性在有限参数子集上进行验证。根据经验,这类“困难”属性数量很少。

形式方法社区曾经就规范是否应该可执行存在相当大的争论。虽然有些观点指出了证明和执行之间的矛盾,但其中一些例子和论点与命令式或函数式语言相关,而与ProB等工具的约束逻辑编程基础无关。例如,ProB可以轻松执行一些被认为“不可执行”的示例。

有时可能难以编写一个既适合证明又适合动画的自然模型。例如,证明模型可能会使用无限或非常大的域(如列车位置),这意味着模型本身可能无法进行动画演示,但我们通常可以通过提供模型的实例或细化来缩小动画的规模。

2 移动闭塞模型的原理

2.1 模型范围

该模型的目标是建立欧洲列车控制系统(ETCS)全移动闭塞列车控制系统的安全原则。我们的目标不是图中混合3级的情况,即轨道区段被划分为固定大小和位置的虚拟子区段。我们旨在分析全移动闭塞系统,其中没有可分配给列车的固定区域粒度。同时,我们也考虑了轨道旁列车检测设备(TTDs)的可能存在,这些设备可以检测列车在某些固定轨道区段的存在。我们假设轨道侧系统(TrackSide)涵盖了列车保护和路线保护功能,但不建模具体路线。

2.2 寻找关键属性

对系统进行形式证明通常依赖于找到并表述系统的某些关键属性。这些关键属性必须足够强大以确保系统的安全性,同时又要足够弱以便能够被证明。这类证明通常采用归纳法:
1. 我们必须证明属性在初始时成立。
2. 我们必须证明当属性在某个时间点成立时,在任何可能的下一个事件之后它仍然成立。

满足这两个条件的属性被称为归纳属性。需要注意的是,典型的安全属性本身通常不满足第二个要求,因此不是归纳属性。例如,在时间t时两列火车没有碰撞,并不能保证它们随后不会立即碰撞。

2.3 关键概念解释

2.3.1 列车保护区域(trainPZ)

建模的核心是列车保护区域(trainPZ)的概念。每列列车,无论是否注册,都有一个关联的trainPZ。不过,这是一个虚拟的证明概念,轨道侧系统并不直接知道列车的trainPZ。轨道侧系统只知道注册列车的存在,而不清楚未注册列车的数量。

trainPZ始终包含关联列车在轨道上的物理位置,这通过以下安全不变式来体现:
| 不变式 | 描述 |
| — | — |
| @safetyPZ
∀t1, t2.t1 ∈activeTrains ∧t2 ∈activeTrains ∧t1 ̸= t2 ⇒ trainPZ(t1) ∩trainPZ(t2) = ∅ | 所有列车的trainPZ两两不相交 |
| @trainPZ_safe_rear
∀tr.tr ∈activeTrains ⇒trainPZ rear(tr) ≤train rear(tr) | trainPZ的后部位置不超过列车的后部位置 |
| @trainPZ_safe_front
∀tr.tr ∈activeTrains ⇒train front(tr) ≤trainPZ front(tr) | 列车的前部位置不超过trainPZ的前部位置 |

trainPZ不仅涵盖列车的当前位置,还包括列车在未来可能进行的所有受控或不受控移动,而无需列车与轨道侧系统进行进一步通信。这些移动包括:
1. 由于加速、减速或坡度导致的列车长度变化
2. 列车的后退和前进
3. 向移动授权(ma)的受控前进

证明模型假设列车永远不会离开其trainPZ,同时允许列车在trainPZ内自由移动。模型对列车在trainPZ内的可能移动做了一些假设,例如假设列车的后退和前进距离有一个最大值。这些假设对于处理轨道旁列车检测设备非常重要,轨道侧系统可以利用这些假设推断trainPZ的上下界。

对于注册列车,trainPZ的变化情况如下:
1. 注册列车的trainPZ可以在前端扩展,这对应于列车接收到移动授权(ma)。
2. 当列车前进时,注册列车的trainPZ在后端缩小。模型中包含一个常量RollbackDistance,表示“最大后退距离”,模型确保列车的后部位置始终在trainPZ后部的该距离范围内。

2.3.2 轨道侧保护区域(regPZ)

另一个重要概念是轨道侧为每列注册列车设置的保护区域regPZ。这是一个由轨道侧系统管理和知晓的区域,它完全覆盖关联列车的trainPZ,而不仅仅是列车的当前位置。

regPZ分为两部分:
1. 非独占区域(nea):列车可以在该区域以自身“风险”移动,该区域不能保证没有其他列车。这个概念涵盖了目视(On - Sight)和员工负责(StaffResponsible)模式。该区域对于列车的拆分或合并以及列车注册后处理可能存在的未注册列车靠近情况是必要的。
2. 全监督区域(FS):列车可以在该区域向前移动而不会遇到其他列车或障碍物。

regPZ始终非空,并且必须完全覆盖关联注册列车的trainPZ。FS部分可以为空,nea部分至少包含一个“测量单位”,这使得两列注册列车可以合并。

regPZ可以在后端缩小,例如根据TTD空闲信息或列车位置报告。模型要求证明这种缩小仍然能够安全地覆盖列车的trainPZ。regPZ也可以在前端扩展,扩展方式可以是nea或FS方式。此外,还有一些事件允许在regPZ内扩展注册列车的trainPZ,这些事件对应于列车从轨道侧系统接收到移动授权。

2.3.3 未注册列车的保护区域(niPZ)

另一个重要概念是非识别保护区域niPZ。这些区域由轨道侧系统管理,用于处理未注册列车或其他障碍物。轨道侧系统通过不变式知道,轨道上任何未被niPZ覆盖的部分都没有未注册列车。结合regPZ区域,轨道侧系统可以安全地检测轨道的空闲部分,并且除非发出移动授权,这些区域将保持空闲。

2.4 主要挑战:在存在延迟的情况下证明不变式的保持

我们首先关注轨道侧系统在接收到新信息时对区域后端的缩小操作。这些信息可以来自TTD或列车。后端的缩小对应于列车向前移动,我们可以释放关联区域(niPZ或regPZ)的后端。

在我们的方法中,延迟的实际持续时间并不重要,只要信息仍然可以安全应用:
1. 如果信息仍然适用,我们只需缩小niPZ和regPZ的后端。
2. 如果信息不再适用,则将其丢弃。

为了决定信息是否仍然适用并证明区域缩小的安全性,我们采用以下方法:
1. 当发生像TTD空闲或发送列车位置报告(TPR)这样的物理事件时,模型执行一个“虚拟”事件,将现有区域(regPZ或niPZ)标记为可安全缩小。
2. 模型的不变式确保,只要消息在传输中且受影响的区域未被修改,潜在的缩小操作仍然是安全的。
3. 当TTD空闲或TPR报告到达时,轨道侧系统可以安全地缩小未被修改的受影响区域。该事件的保护条件中包含一个检查,以确保区域是安全的。后续对该事件的实现(即细化)必须证明该保护条件成立,该保护条件实际上是确保任何实现安全性的条件的文档。在实践中,可以通过记录区域上次更改的时间以及为TTD空闲和TPR事件设置时间戳等方式来满足该保护条件。

综上所述,轨道侧系统的安全实现需要确保TTD空闲或TPR事件在受影响区域上次更改之后实际发生。

下面是一个简单的mermaid流程图,展示了轨道侧系统处理信息和区域缩小的过程:

graph LR
    A[物理事件发生] --> B[执行虚拟事件标记区域可缩小]
    B --> C{消息传输中且区域未修改?}
    C -- 是 --> D[消息到达,检查区域安全并缩小]
    C -- 否 --> E[丢弃信息]

通过以上的建模方法和关键概念,我们可以更好地理解和分析移动闭塞列车控制系统的安全性。

2.5 关键概念的相互关系

为了更清晰地理解移动闭塞模型,我们需要明确各个关键概念之间的相互关系。以下是这些关键概念之间的主要联系:
- trainPZ与regPZ :regPZ完全覆盖trainPZ,这是确保列车安全运行的重要保障。当trainPZ发生变化时,regPZ需要相应地进行调整,以保证始终覆盖trainPZ。例如,当列车接收到移动授权(ma)导致trainPZ前端扩展时,regPZ也可能需要在前端进行扩展。
- trainPZ与niPZ :niPZ用于处理未注册列车或其他障碍物,而trainPZ是针对已注册列车的保护区域。轨道侧系统需要综合考虑这两个区域,以确保整个轨道的安全。如果niPZ覆盖的区域与trainPZ有重叠,可能会导致安全问题,因此需要通过不变式来保证它们之间的合理关系。
- regPZ与niPZ :轨道侧系统通过这两个区域来检测轨道的空闲部分。regPZ针对注册列车,niPZ针对未注册列车或障碍物。只有当轨道既不在regPZ范围内,也不在niPZ范围内时,才能确定该部分轨道是真正空闲的。

下面的表格总结了这些关键概念之间的关系:
| 概念关系 | 描述 |
| — | — |
| trainPZ与regPZ | regPZ完全覆盖trainPZ,trainPZ变化时regPZ需相应调整 |
| trainPZ与niPZ | 需保证两者无不合理重叠,确保轨道安全 |
| regPZ与niPZ | 共同用于检测轨道空闲部分,两者范围外的轨道为空闲 |

2.6 模型的动态变化分析

移动闭塞模型是一个动态的系统,列车的运行状态、轨道侧系统接收到的信息等都会不断变化。我们需要对模型的动态变化进行分析,以确保系统在各种情况下都能保持安全。
- 列车移动对区域的影响 :列车的前进或后退会导致trainPZ和regPZ的变化。当列车前进时,trainPZ后端可能缩小,regPZ也可能相应缩小;当列车接收到ma时,trainPZ前端可能扩展,regPZ也可能扩展。
- 信息延迟对区域调整的影响 :如前面所述,信息延迟可能会影响轨道侧系统对区域的调整。但通过我们的方法,只要信息仍然适用,就可以安全地进行区域缩小操作。例如,即使TTD空闲信息延迟到达,只要在消息传输过程中受影响区域未被修改,就可以安全地缩小regPZ。
- 列车注册与注销的影响 :当列车注册时,会为其创建trainPZ和regPZ;当列车注销时,需要相应地释放这些区域。这一过程需要确保系统的安全性和一致性。

下面是一个mermaid流程图,展示了列车移动对区域的影响:

graph LR
    A[列车前进] --> B{trainPZ后端缩小?}
    B -- 是 --> C[regPZ后端相应缩小]
    B -- 否 --> D[保持regPZ不变]
    E[列车接收ma] --> F{trainPZ前端扩展?}
    F -- 是 --> G[regPZ前端相应扩展]
    F -- 否 --> H[保持regPZ不变]

3 总结

移动闭塞列车控制系统的建模、可视化与验证是一个复杂但重要的过程。通过采用合适的建模方法,如结合证明、模型检查和动画,我们可以更好地确保系统的安全性。在移动闭塞模型中,关键概念如trainPZ、regPZ和niPZ的定义和相互关系对于系统的安全分析至关重要。同时,处理信息延迟和区域调整等动态变化也是保证系统安全运行的关键。

在未来的研究和实践中,我们可以进一步优化这些建模方法和关键概念,以适应更复杂的列车运行场景。例如,可以考虑更多的列车行为和轨道条件,提高模型的准确性和实用性。此外,还可以探索如何更好地结合不同的验证技术,提高验证的效率和可靠性。

通过不断地改进和完善移动闭塞模型,我们可以为列车控制系统的安全运行提供更有力的保障,推动铁路运输行业的发展。

(Kriging_NSGA2)克里金模型结合多目标遗传算法求最优因变量及对应的最佳自变量组合研究(Matlab代码实现)内容概要:本文介绍了克里金模型(Kriging)多目标遗传算法NSGA-II相结合的方法,用于求解最优因变量及其对应的最佳自变量组合,并提供了完整的Matlab代码实现。该方法首先利用克里金模型构建高精度的代理模型,逼近复杂的非线性系统响应,减少计算成本;随后结合NSGA-II算法进行多目标优化,搜索帕累托前沿解集,从而获得多个最优折衷方案。文中详细阐述了代理模型构建、算法集成流程及参数设置,适用于工程设计、参数反演等复杂优化问题。此外,文档还展示了该方法在SCI一区论文中的复现应用,体现了其科学性实用性。; 适合人群:具备一定Matlab编程基础,熟悉优化算法和数值建模的研究生、科研人员及工程技术人员,尤其适合从事仿真优化、实验设计、代理模型研究的相关领域工作者。; 使用场景及目标:①解决高计算成本的多目标优化问题,通过代理模型降低仿真次数;②在无法解析求导或函数高度非线性的情况下寻找最优变量组合;③复现SCI高水平论文中的优化方法,提升科研可信度效率;④应用于工程设计、能源系统调度、智能制造等需参数优化的实际场景。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现过程,重点关注克里金模型的构建步骤NSGA-II的集成方式,建议自行调整测试函数或实际案例验证算法性能,并配合YALMIP等工具包扩展优化求解能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值