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

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

3天内不再提示

形式化建模(一)

上海控安 来源:上海控安 作者:上海控安 2022-10-21 13:48 次阅读

作者 |郑寒月上海控安可信软件创新研究院工程师

版块 |鉴源论坛 · 观模

01什么是建模

对系统进行建模是一个采用表格化、图形化、公式化的方式,将系统的构成及其构成间的关系呈现给人们的一种技术方法,也就是将系统进行抽象化处理的过程。对系统的抽象可以从多个层面进行,即可以从多维度进行建模。在建模过程中,系统逐渐实现无歧义化的过程。

数据层面的建模通常在数据流的基础上进行。数据流是一组有序、有起点和终点的数据序列。数据流图(Data Flow Diagram)描述数据如何在软件功能模块之间“流动”,主要从功能之间的数据信息传递关系层面来刻画系统,可对系统功能进行层次化的组合描述。其主要描述对象为:处理数据的功能(Process),数据资源的集合(Data Store)和数据的流动(Data Flow)。

另一种常用的建模方式是使用有限状态机(Finite-state Machine)进行建模。状态机模型中包含四个基本要素,分别为现态、条件、动作和次态。现态指当前周期所处的状态。条件指当某个状态满足一定条件时,会触发一次动作,或执行一次迁移。动作执行完毕后,可以迁移到新的状态,或者保持原状态。次态指基于当前所处状态,条件满足后需要迁往的新状态。若基于状态机模型进行模拟仿真,需首先通过输入端口确定现态,执行一次动作后判断现态的所有迁移条件是否满足,若满足迁移条件则发生跳转,若不满足则仍保持现态,同时传出输出变量;若满足迁移条件则发生跳转,并执行一次动作。

下面给出一个状态机建模的实例。

在轨道交通领域,由于惯性,每次停车可能发生车轮与轨道的“打滑”,使得软件记录的车轮运行圈数和实际运行圈数不一致,累计以后容易导致错误计算。为确保安全,需要监控打滑的距离等数值,计算一个补偿数值,使得车轮实际运行圈数与计算值一致。对于如表1所示的描述进行状态机建模,可知空转补偿状态有COASTING、BRAKING、SLIDING、SKIDDING等四个状态,关注列车车轮打滑监控模块,抽取出状态和迁移条件进行状态机建模。状态机建模结果如图1所示,其中COASTING、BRAKING、SLIDING、SKIDDING为状态,箭头表示迁移,迁移条件表示在迁移箭头上,数字代表迁移条件数量。

pYYBAGNSMSOAIJ1CAABszTrtqBo369.png

表1打滑补偿

pYYBAGNSMZaAHakpAAFo9OiWuFM759.png

图1状态机建模结果

02什么是形式化建模

形式化方法(Formal Method)是一种基于数学基础,经过严格的数学证明的分析技术的应用方法,常用于软件和硬件系统的描述、开发和验证过程中。形式化建模则将形式化方法应用于建模过程中,它以无歧义的形式化规格说明语言为基础,使用精确定义的形式语言进行系统功能的描述,利用一些已知特性的数学抽象来为目标软件系统的状态特征和行为特征构造模型,从而完成形式化建模过程。形式化模型应介于程序设计语言和高层需求之间,具有精确、无歧义的特点,但并不呈现过多细节。

一些经典的形式化语言,如Z语言、B语言、Event-B语言、VDM等均具有各自的形式语义,使用形式化语言遵循建模规范得到的形式化模型可以对系统进行精确描述,便于进行后续的形式化分析和验证。

03航空发动机控制软件建模实例

因为安全攸关领域嵌入式控制软件研制具有领域专家参与度高、功能安全性要求高、规范与标准约束严格等特点,所以为符合研制要求,保证系统安全,形式化建模广泛运用于航空航天、轨道交通等安全攸关领域。

接下来将以航空发动机控制系统为例,介绍形式化建模在工程上的运用。

航空发动机控制软件是实时嵌入式软件,运行于电子控制器平台(EEC)中实现发动机的运行控制,主要功能是按照飞机的指令实现发动机的启动、停车、推力控制、限制保护、作动部件控制、故障诊断及处理等。

通过系统调研,可以提取出航空发动机控制系统的如下特征:

(1)控制软件输入为各传感器变量。

(2)控制软件的输出为经过复杂算法计算之后的数值结果,通过计算的方式实现控制行为。

(3)控制软件的基本时间单元为周期。因为实时性的要求,控制算法需要在给定周期内完成相应的算法计算。整个系统中有两个周期概念,按照执行功能的实时性分为了大闭环周期和小闭环周期,大闭环的周期值是小闭环周期的固定倍数。

(4)控制软件的核心是控制规律,控制软件在特定的状态下有其固有的控制规律。

(5)控制软件的主导因素是其当前所处的状态。系统在整个生命周期内在不同的状态下执行不同的控制算法,具体调用的控制算法种类及其执行顺序由当前时刻其所处的状态决定。特别地,在每个周期的计算任务完成后,系统会检测是否满足状态迁移条件。当且仅当满足迁移条件时,系统的状态会发生迁移。

因此,在建模过程中可以将航空发动机控制软件视为一个以周期为基本时间单元驱动的具有多个不同发动机状态的控制系统。在发动机处于每个特定状态时,它可以根据设定的时间周期,完成模式内具体的采样、计算任务和控制行为,并判断给定的条件,完成可能的状态切换或继续处于当前状态的判定。

由于传统的形式化语言学习成本高、难以用于描述上述航空发动机控制系统特征等原因,本例采用了航空领域适用的具有以计算任务为核心、以模式为基础、以周期为基本时间单元、按重要程度划分层级等特征的形式化建模语言AEDL进行模型构建。

遵循AEDL语义,使用AEDL语法构建的航空发动机控制系统模型具有模式流、计算任务、数据字典等三个部分,分别对系统状态转换、系统计算执行和系统变量进行了精确描述。

通过状态转换部分模型,可以对航空发动机的行为模式进行抽象,如图2所示。

pYYBAGNSMiWAX0guAAIJuR94Xxs696.png

图2航空发动机控制系统状态转换

顶层的状态代表航空发动机控制系统可能处于的状态,箭头的方向从现态指向可进行迁移的次态,迁移条件对迁移是否合法进行了限制。状态转换图可以描述航空发动机控制系统的整体行为,通过相应的状态转换图进行研究,可以理解系统行为,分析出系统的部分特征。如:

(1)当前航空发动机系统具有10个合法模式;

(2)模式转换需满足相应的条件;

(3)所有的模式均有可以到达的途径;

(4)模式间的迁移条件可能由多个表达式组合而成;

......

具有经验的工程师可以根据状态模型快速判断出系统状态是否存在问题。比如,如图3所示的初始模式转换,飞行控制人员可能根据其专业知识,认定“初始模式”不应该以当前条件直接转换到“慢车以上模式”。任何一个模式,都不应该同时满足向两个及以上模式转换的条件,否则意味着系统可能会出现不确定性,发生模式的随意转换。

poYBAGNSMmiAJfPdAAA_6FqUQxE265.png

图3初始模式转换

该形式化建模案例体现了航空发动机控制系统周期控制、具有模式状态迁移、以计算任务为主等行为特征。基于形式化模型的分析验证,我们将在后续文章中作更为深入和系统化的讨论。

参考文献:

[1] EN50128、DO-333等工业标准.

[2] 王政, 嵌入式周期控制系统的建模与分析, 2012, 华东师范大学.

[3] Spivey, J.M., The Z notation: a reference manual. International, 1990. 15(2-3): p. 253-255.

[4] 蔡喁, 形式化方法在民机机载软件中的应用及适航考虑.

[5]Abrial, J.R., Abrial, J.-R.: Modeling in Event-B: System and Software Engineering. 2010: DBLP. 428-430.

[6]Miao, W. and S. Liu, A Formal Engineering Framework for Service-Based Software Modeling. IEEE Transactions on Services Computing, 2013. 6(4): p. 536-550.

审核编辑 黄昊宇

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

    关注

    1

    文章

    280

    浏览量

    60500
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27165
收藏 人收藏

    评论

    相关推荐

    基于AUTOSAR的TTCAN通信协议的形式化建模与分析

    本文针对AUTOSAR的TTCAN协议进行研究,并用Timed CSP(Timed Communication Sequential Processes)形式化语言对其进行建模,通过LTL
    的头像 发表于 12-30 13:23 2254次阅读
    基于AUTOSAR的TTCAN通信协议的<b class='flag-5'>形式化</b><b class='flag-5'>建模</b>与分析

    Agent系统软件体系结构形式化建模方法

    基于Agent技术为复杂分布式问题提供了求解方法。软件体系结构是控制软件复杂性、提高软件系统质量、支持软件开发和复用的重要手段之一。软件体系结构设计可用于描述Agent与Agen
    发表于 04-22 09:38 35次下载

    AHB片上系统总线的建模与验证

    如何有效的对SoC 设计进行验证已经成为缩短设计周期的关键问题。针对这个问题,本文提出一种形式化建模与验证方法,对片上系统AMBA 工业总线规范的AHB 总线协议进行形式
    发表于 11-30 15:29 9次下载

    网络管理服务行为建模与实现

    基于服务的软件开发方法,围绕网络管理服务系统形式化建模,通过对网管服务活动建模,实现了一个基于服务的网络管理系统。提出的网络管理服务系统建模方法可以较好的实现
    发表于 12-25 16:27 15次下载

    基于改进的OpenID Connect协议的安全性

    技术,对其进行改进,重点关注改进后协议的秘密性和认证性;其次基于符号模型,应用应用PI演算对改进的OpenID Connect协议进行形式化建模;然后为验证改进后协议的认证性和秘密性,分别使用非单射性和query对认证性和秘密性进行建模
    发表于 12-03 09:35 0次下载
    基于改进的OpenID Connect协议的安全性

    基于几何代数的高阶逻辑形式化建模

    计算和建模分析的传统方法,如数值计算方法和符号方法等,都存在计算不精确或者不完备等问题,高阶逻辑定理证明是验证系统正确的一种严密的形式化方法.在高阶逻辑证明工具HOL-Light中建立了几何代数系统的形式化模型,主要包
    发表于 01-16 18:09 0次下载

    面向航天嵌入式的形式化建模

    航天嵌入式软件是航天型号任务成败的关键之一.航天嵌入式软件是一种周期性、多模式的软件.软件的每个模式表示系统处于一定的状态,并进行相应的复杂计算.因此,提出了一种名为SPARDL的形式化建模方法
    发表于 02-06 16:25 1次下载

    自适应软件动态过程时间特性建模

    压力,增强自身容错和应对变化的能力,现已成为软件工程领域的热点研究问题。 为提高自适应软件的可靠性,需对自适应软件的动态过程进行形式化建模和分析。基于此,国内外学者针对自适应软件的形式化方法开展了大量研究,能够较好地支持自适应逻
    发表于 04-19 14:41 0次下载
    自适应软件动态过程时间特性<b class='flag-5'>建模</b>

    CAN总线通信性能的仿真分析研究

    进行了形式化建模。通过此仿真模型,分析了CAN总线通信系统中负载率的变化对网络吞吐量、平均信息时延、通信冲突率、网络利用率、网络效率以及负载完成率的影响。
    发表于 06-13 15:20 2869次阅读
    CAN总线通信性能的仿真分析研究

    基于代币智能合约整数溢出漏洞的建模与验证

    针对代币智能合约的安全问题,提岀一种基于代币智能合约整数溢岀漏洞的形式化建模与验证方法。分析现有 The dao和BEC等漏洞攻击事件,定义代币智能合约的安全属性,通过引入全局变量和数值比较
    发表于 03-19 16:00 16次下载
    基于代币智能合约整数溢出漏洞的<b class='flag-5'>建模</b>与验证

    鉴源论坛 · 观模丨基于AUTOSAR的TTCAN通信协议的形式化建模与分析

    本文针对AUTOSAR的TTCAN协议进行研究,并用Timed CSP(Timed Communication Sequential Processes)形式化语言对其进行建模,通过LTL
    的头像 发表于 01-04 16:12 787次阅读
    鉴源论坛 · 观模丨基于AUTOSAR的TTCAN通信协议的<b class='flag-5'>形式化</b><b class='flag-5'>建模</b>与分析

    Stimulus—需求形式化建模和分析工具

    Stimulus是法国达索公司产品,其目的是通过需求建模分析来验证需求的正确性。Stimulus的核心理念是运用“自然语言”对功能性需求进行建模,并通过仿真来查找需求中的缺陷,例如需求一致性、不二
    的头像 发表于 02-11 09:46 665次阅读
    Stimulus—需求<b class='flag-5'>形式化</b><b class='flag-5'>建模</b>和分析工具

    Stimulus—需求形式化建模和分析工具

    Stimulus是法国达索公司产品,其目的是通过需求建模分析来验证需求的正确性。Stimulus的核心理念是运用“自然语言”对功能性需求进行建模,并通过仿真来查找需求中的缺陷,例如需求一致性、不二
    的头像 发表于 02-11 10:07 440次阅读
    Stimulus—需求<b class='flag-5'>形式化</b><b class='flag-5'>建模</b>和分析工具

    关于贝叶斯概念进行形式化建模和推理

    在统计学中,通常不会明确地为所有的现有经验附加条件,因为它是可以假设的。出于这个原因,在本书中,我们不会在这种情况下单独增加变量。然而在贝叶斯分析中,我们必须记住,我们对这个世界的理解总是以自己在这个世界上的经验为条件的。
    的头像 发表于 10-18 10:51 246次阅读
    关于贝叶斯概念进行<b class='flag-5'>形式化</b>的<b class='flag-5'>建模</b>和推理

    Stimulus—需求形式化建模和验证工具

    Stimulus是法国达索公司产品,其目的是通过需求建模分析来验证需求的正确性。Stimulus的核心理念是运用“自然语言”对功能性需求进行建模,并通过仿真来查找需求中的缺陷,例如需求一致性、不二
    的头像 发表于 12-12 16:00 206次阅读
    Stimulus—需求<b class='flag-5'>形式化</b><b class='flag-5'>建模</b>和验证工具