0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

形式化方法的工业应用:轨交领域

上海控安 来源:上海控安 作者:上海控安 2023-08-08 15:20 次阅读

作者 |王依玲上海控安可信软件创新研究院系统建模组

版块 |鉴源论坛 · 观模

社群 |添加微信号TICPShanghai”加入“上海控安51fusa安全社区”

引言:前面几期文章介绍了形式化方法的发展历史和具体技术,并从整体的角度介绍了形式化方法的工程化。本文将聚焦于轨交领域,从领域专用的需求撰写与分析工具Prema入手,介绍形式化方法在工业中的实际应用。

01

背 景

随着城市日新月异的发展,轨道交通的建设与分布越来越成为城市交通便捷、经济发达的重要标志。“十三五”时期,城市轨道交通运营里程已达 6600 公里,预计到 2025 年,超大城市的轨道站点 800 米半径覆盖通勤比例将不小于 30%。轨道交通的控制软件决定了系统运行的安全性,如果控制软件没有按照预期方式运行,则存在引发财产损失和人员伤亡的可能性。因此轨道交通控制软件的质量安全攸关,国家也对此出台了严格的安全标准。

在轨道交通领域中,列车自动控制系统 (Automatic Train Control,ATC)系统包括三部分,ATP(Automatic Train Protection,列车自动防护系统),ATO(Automatic Train Operation, 列车自动运行系统),和 ATS(Automatic Train Supervision,列车自动监控系统),它通过自动地防止列车司机的失误来提供高水平的列车安全。如图1所示,ATO 是控制列车自动运行的系统,由车载设备和地面设备组成;ATP是为了确保列车一旦超过规定速度,立即施行制动的系统,它也是由车载设备和地面设备所组成;ATS 系统是为了完成对列车的自动监控的系统,它由控制中心、车站、车场以及车载设备组成。三者的关系是,ATO 系统在 ATP 系统的保护下,根据ATS 的指令实现列车运行的自动驾驶、速度的自动调整和列车车门的自动控制。

wKgaomTR7MyAAUYSAAA_r-8O6b0762.jpg

图1列车自动控制系统结构

需求分析是软件设计的基础,是软件开发活动中最为关键最早开始的环节。需求文档中包含着列车控制系统的功能描述,可以通过对列车控制系统需求进行分析,发现需求中系统的功能描述错误。经过长期的研究和实践,学术界和工业界都意识到从需求阶段开始对列车控制系统的功能需求进行检查的必要性。然而目前的工业界中,人工检查自然语言描述的列车控制系统需求不但低效,而且无法确保功能需求的正确性。

02

形式化建模方法概述

采用自然语言进行需求描述会存在二义性,所以某些对撰写者来说清晰无误的表述,完全可能被其他人理解成其他意思。导致不同的开发者对相同的需求和设计产生模棱两可的理解,从而导致开发效率的降低。为了避免这种情况的发生,我们采用标准的形式来描述需求和设计。这种标准形式一般以数学语言为基础。这种标准化的描述规范就构成了形式化方法的基础。

形式化方法是建立在数学基础上的针对数字化系统进行规格说明撰写、软件开发、软件验证的技术。它的数学基础包括形式逻辑,离散数学和机器可识别语言。形式化模型是一种无二义性的用数学语法和语义刻画的模型,是一种对软件诸多方面的抽象表达形式,用于后续的分析、仿真和代码生成(在有些条件下,直接从模型生成代码可能无法实现)。应用形式化方法的基础是对即将开发的软件建立一个形式化模型。

形式化方法包含两项主要分支,形式化规格说明技术和形式化验证技术,而形式化验证技术又分为定理证明和模型检查两个分支,如图2所示。

wKgZomTR7M2AUY1rAADRCmD4U8I807.jpg

图2 形式方法的构成

在学术界和工业界,学者和工程人员为了保证列车安全运行,主要有从以下方面对轨道交通控制系统的研究:形式化需求描述、建立模型和验证、对系统进行仿真。这三者并不是孤立的,经常结合在一起研究,如利用形式化方法对系统的需求进行描述,然后建立模型、分析验证。

为了实现采用形式化方法保障轨道交通控制系统安全的目的,我们提出了一种针对轨道交通控制系统的需求建模形式化工程方法,并开发了一个集需求撰写及分析功能于一体的工具Prema(Precise Requirements Editing, Modeling and Analysis 精确需求撰写,建模与分析)用于辅助形式化工程方法的应用。

03

轨交领域解决方案Prema

Prema对形式化技术的应用主要包含两个方面,形式化需求规格说明和模型检查。为了可以对需求进行形式化描述,我们提出了适配轨道交通领域的CASDL语言。对形式化语言描述的系统需求进行需求建模后,可以在需求模型中验证布尔表达式描述的约束性质是否成立。

Prema工具界面运行主界面图如下图3所示,图中主要分为左边部分的编辑栏和右边部分的展示栏。用户可以在左边撰写需求,同时在右边区域实时显示最终生成的文档样式,在编辑区域上方还有一些快捷工具以供用户撰写需求。

wKgaomTR7M2AGoPuAAFinnDPKP8532.jpg

图3 Prema工具界面

3.1 形式化需求规格说明

用户在左侧编辑栏用CASDL语言撰写形式化需求,以下对CASDL语言规范进行简单介绍。

由于轨道交通领域的控制系统通常周期性运行,CASDL中的cycle有着用于表示目前系统的运行进行到了哪一个周期的特殊含义,其语法可以表示为如下形式:

● md :: = (cycle, Block, DefBlock, DataDictionary)

● Block :: = (identifier, Precondition, initial, State, Transition)

● DefBlock :: = (name, identifier, Tasks)

● Tasks :: = CFG

● Transition ::= (Source, Target, Condition, Action)

● DataDictionary ::= (V)

CASDL包含4个部分。Block部分描述的是系统状态迁移情况,在Block里由唯一的identifier来对它进行标识,Precondition用于判断系统状态迁移的条件是否满足,initial用于表示系统状态迁移前的值,State中存储了所有发生了状态值改变的变量值,Transaction描述了状态转换的具体过程,描述该过程的结构也在上述中被表述出来。其中,Source和Target分别代表状态改变前的值和状态改变后的值,Condition里记录的是发生状态迁移的需要满足的条件集合,最后一项Action则记录了该状态转换过程如何发生。

DefBlock描述的是计算模块,它包含了模块名称name,唯一的标识identifier,以及由控制流组成的计算任务Tasks。

Dictionary里记录了在需求文档建模过程中出现的变量。

如图4所示为用CASDL书写的示例,该例子中红色部分表示的是展示状态迁移情况的Block部分,它没有返回值,只更改状态变量的取值,使系统所处的状态发生改变,即状态迁移。其中State后跟随的(k-1)表示第k-1个周期。黄色部分展示的是描述计算任务的defBlock部分。

wKgZomTR7M2APHNsAADQZty3AAk667.jpg

图4 Block与DefBlock示例

CASDL同样定义了一些表达式用于描述DefBlock中面向计算的任务的计算过程,表达式的语法如下所示:

● SExpr :: = Const | Var | f(n)(SExpr)

●BTerm :: = True | False | p(n)(SExpr)

● IExpr :: = (after | duration)(BTerm,SExpr)

●BExpr :: = BTerm | ¬BExpr | BExpr∨BExpr | BExpr∧BExpr

其中,语句表达式由一个常量,一个变量或者多个语句表达式组成,布尔变量的取值为True或False或者从状态表达式的值推导而来。间隔表达式主要用于描述与时间有关的需求片段,比如在某个时间段或者在某个时间段后值为布尔值或者是某个语句表达式的计算值。而布尔表达式则由布尔值,布尔值的非值,或值或者与值组成。

同时CASDL也定义了几种语句结构:

● stmts :: = pStmt | cStmt

●pStmt :: = aStmt | skip

●aStmt :: = x := SExpr

●cStmt :: = stmts | if BExpr then stmts else stmts

语句集合包含复合语句或者是单独的语句,其中pStmt由赋值语句或者skip语句组成,赋值语句可以表示为一个变量被赋予了一个表达式的值,而复合语句由语句集合构成或者由一个选择语句结构构成。

总体来说,CASDL与工程师的使用习惯相符合,学习和理解成本很低, 这种类python的语言容易令人接受,不过其语义与python仍有不同,如k在CASDL中是一个特殊的字母,它代表了系统运行的周期。

3.2 模型检查

在需求撰写完成后,Prema工具提供静态分析、状态机模拟执行、需求性质验证等功能用于验证撰写需求的正确性。需求性质验证即模型检查。

需求性质验证是在需求检查无语法错误后,对需求模型进行诸如不变式或者可达性之类的验证。其主要目的在于分析有影响关系的某些变量之间发生了变化,是否一定会影响到相关变量的变化,这对于理解和分析需求逻辑关系有着至关重要的作用。性质验证的流程图如图5所示:

wKgaomTR7M6AUwzoAADFGdXUQgA894.jpg

图5 性质验证流程图

Prema性质验证界面如图6所示,用户可选择之前使用过的配置选项,也可以重新选择。在该验证界面中,用户选择需要验证哪些需求条目,选择完毕后,单击Go按钮会生成完整的验证界面。

wKgZomTR7M6AGNUtAAGz1FA4kgI370.jpg

图6 性质验证界面示意图

工具会根据用户所选择的需求条目生成变量关系图,提醒需求工程师该需求条目所描述的内容,同时也避免错误地勾选了需求条目。在确定选取了正确的需求条目后,在性质撰写区撰写所需要验证的性质,目前验证的性质仅支持布尔表达式。填写完初始状态(可以不填)和性质后,可以点击check按钮来验证所填写的性质是否是布尔表达式。

用户选取了所要验证的需求条目和性质,单击Verify按钮后,界面展示验证结果。需求工程师可根据反馈的信息查看需求是否满足了性质,如果没有满足性质,则会给出不满足该性质时的反例。

通过使用Prema工具,能够有效消除需求语句的模糊性和二义性,并保证需求的正确性。

04

总 结

近年来通过不断地努力,形式化方法不仅仅在学术界取得很大的发展,同样在工业界也已得到大量的应用。形式化方法首先需要定义领域相关的需求描述语言,这种语言可以完全覆盖该领域中的所有需求特征。其次通过建立的描述语言来刻画和描述需求模型,并提供与之配套的算法来对需求模型进行分析与验证。由于轨道交通领域对于控制系统有着严格要求,这为形式化方法的应用提供了前提。在未来,形式化方法将更好地与工业实践结合,为工业安全保驾护航。

主要参考文献:

[1] 光明网. 《“十四五”全国城市基础设施建设规划》印发[EB/OL].(2022-08-03)[2022-8-16].

[2] 王秀超.列车控制系统需求文档的模型抽取与分析[D].贵阳:贵州大学,2017

[3] 韦群,王钰.软件缺陷及其对软件可靠性的影响分析[J].计算机应用与软件.2011, 28(1):145-149.

[4] 包丹珠.轨道交通系统需求分析与一致性测试[D].上海:华东师范大学, 2016

[5] 刘阳.面向轨道交通控制系统的需求模型分析与验证[D].上海:华东师范大学,2017

[6] 郑寒月.面向轨道交通控制领域的基于需求的测试用例自动生成方法研究[D].上海:华东师范大学,2021

[7] Huang Y , Feng J , Zheng H ,et al.Prema: A Tool for Precise Requirements Editing, Modeling and Analysis[J]. 2019.DOI:10.1109/ASE.2019.00128.

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    EtherCAT转CANopen网关在工业领域的应用方法

    CANopen网关在工业领域的应用方法: 1.确定需求:在应用EtherCAT转CANopen网关之前,需要明确具体的需求。例如,需要连接哪些设备、需要实现什么功能、传输什么数据等。 2.选择合适的网关
    发表于 01-31 14:54

    EtherCAT转CANopen网关在工业领域的应用方法

    工业领域中,EtherCAT转CANopen网关是一种重要的通讯设备,它能够实现EtherCAT协议与CANopen协议之间的转换,从而让不同的设备之间能够进行通讯。
    的头像 发表于 01-31 14:44 144次阅读

    分布式IO工业自动数据采集与分析的核心

    随着工业自动技术的不断发展,分布式IO在工业自动领域的应用越来越广泛。作为一种先进的控制技术,分布式IO能够实现设备的分布式控制和监测,
    发表于 12-28 14:47

    WT2003H MP3音乐解码语音芯片IC:适应不同应用产品领域的封装形式

    随着科技的不断发展,电子设备的应用领域越来越广泛,从消费电子产品到工业控制领域,都需要使用各种不同的芯片来满足不同的功能需求。在这个背景下,WT2003HMP3音乐解码语音芯片IC以其SOP16
    的头像 发表于 12-21 08:46 204次阅读
    WT2003H MP3音乐解码语音芯片IC:适应不同应用产品<b class='flag-5'>领域</b>的封装<b class='flag-5'>形式</b>

    陶哲轩用 AI 形式化的证明究竟是什么?一文看懂 PFR 猜想的前世今生

    宣布:对多项式 Freiman-Ruzsa 猜想(PFR)的证明进行形式化的 Lean4 项目成功完成,并且耗时仅三周时间,其依赖图的全部节点都带上了「可爱的绿色阴影」。 Lean 编译器也报告该猜想符合标准公理,可以说这是计算机和 AI 辅助证明的一项巨大成功。
    的头像 发表于 12-10 21:45 421次阅读
    陶哲轩用 AI <b class='flag-5'>形式化</b>的证明究竟是什么?一文看懂 PFR 猜想的前世今生

    请问运放的是什么意思?

    运放的是什么意思?
    发表于 11-27 07:14

    AD8226输出不能是什么原因?

    近期做了一款AD8226仪表放大(的),如图5V单电源供电。我差分1mv输入,频率1khz,放大1000倍,波形是正常的。当我逐渐增大输入电压后,芯片最大输出只能到2.8V这样就失真了,不论
    发表于 11-20 07:38

    形式验证及其在芯片工程中的应用

    形式验证不仅仅是芯片领域中的一个概念。正如文章开头提到过,形式验证强调使用严格的数学推理和形式化技术,以确保系统的行为是否符合预期的性质和规格。
    的头像 发表于 10-20 10:46 473次阅读

    工业自动领域,如何选择就业方向。

    电源电气电机自动工业控制
    学习电子知识
    发布于 :2023年09月12日 20:20:01

    EDA形式化验证漫谈:仿真之外,验证之内

    “在未来五年内仿真将逐渐被淘汰,仅用于子系统和系统级验证。与此同时,形式化验证方法已经开始处理一些系统级任务。随着技术发展,更多Formal相关的商业标准化会推出。” Intel fellow
    的头像 发表于 09-01 09:10 952次阅读

    形式化方法工业应用:航空领域

    本文主要探讨了形式化方法在航空领域中的工业应用。航空领域作为安全攸关领域,其机载系统软件的开发有
    的头像 发表于 08-21 15:45 698次阅读
    <b class='flag-5'>形式化</b><b class='flag-5'>方法</b>的<b class='flag-5'>工业</b>应用:航空<b class='flag-5'>领域</b>

    AI视觉检测在工业领域的应用

    、判断和检测生产线上的各种产品,保证产品的质量和一致性。与传统的视觉检测方法相比,工业AI视觉检测系统具有如下几个显著优点: 1.高效性:工业AI视觉检测系统可以实现自动检测,大大提
    发表于 06-15 16:21

    工业机器人应用的五大领域

    工业机器人是广泛用于工业领域的多关节机械手或多自由度的机器装置,具有一定的自动性,可依靠自身的动力能源和控制能力实现各种工业加工制造功能。工业
    的头像 发表于 06-12 17:07 4398次阅读

    基于形式验证的高效RISC-V处理器验证方法

    随着RISC-V处理器的快速发展,如何保证其正确性成为了一个重要的问题。传统的测试方法只能覆盖一部分错误情况,而且无法完全保证处理器的正确性。因此,基于形式验证的方法成为了一个非常有前途的方法
    的头像 发表于 06-02 10:35 1026次阅读

    TB5128FTG驱动芯片在工业自动中的应用

    摘要: 本论文将探讨TB5128FTG驱动芯片在工业自动领域中的应用。工业自动是现代工业生产
    发表于 05-30 15:14