张程 陈付龙 刘超 齐学梅
摘 要:信息物理融合系统(CPS)涉及多种计算模型的集成和协同工作,针对CPS设计方法不统一、重塑性差、复杂度高、难以协同建模验证等问题,提出一種结构化、可描述行为的异元组件模型。首先,用统一组件建模方法进行建模,解决模型不开放问题;然后,用可扩展标记语言(XML)规范描述各类组件,解决不同计算模型描述语言不一致和不可扩展问题;最后,用多级开放组件模型的协同仿真验证方式进行仿真验证,解决验证的不可协同问题。通过通用组件建模方法、XML组件规范描述语言以及验证工具平台XModel对医用恒温箱进行了建模、描述和仿真。医用恒温箱的案例表明,这种模型驱动建立可重塑异元组件并确认其设计正确性的过程,支持信息物理协同设计和边构建边纠正,可避免在系统实现过程中发现问题时再进行反复修改。
关键词:信息物理融合系统;组件;可扩展标记语言;XModel;开放模型;协同仿真
中图分类号: TP391.9计算机仿真
文献标志码:A
Abstract: Cyber Physical System (CPS) involves the integration and collaboration of various computing models. Concerning the problems of inconsistent CPS design methods, poor plasticity, high complexity and difficulty in collaborative modeling and verification, a structured and descriptive heterogeneous component model was proposed. Firstly, the model was constructed by a unified component modeling method to solve the problem that the model was not open. Then, eXtensible Markup Language (XML) was used to realize the standard description of all kinds of components to resolve the inconsistency and non-extensibility of different computing model description languages. Finally, the collaborative simulation verification method of multi-level open component model was used to realize the simulation verification to solve the non-collaboration problem of verification. The medical thermostat was modeled, described and simulated by the general component modeling method, the XML component standard description language and the verification tool platform XModel. The case of medical thermostat shows that, the proposed model-driven process of building reconfigurable heterogeneous components and confirming their design correctness supports the collaborative design of cyber physics and the correction while constructing, avoiding repeated modifications when problems are found in the process of system implementation.
Key words: Cyber Physical System (CPS); component; eXtensible Markup Language (XML); XModel; open model; collaborative simulation
0 引言
专用信息处理的嵌入式系统[1]是包含了集成计算、通信与控制的新一代多维智能系统,是信息物理融合系统(Cyber Physical System, CPS)[2]的核心技术之一,广泛应用于工业、航空、医药、交通机器人等领域。自2005年CPS被提出至今,各国科研人员和学者从CPS的理论方法、系统设计及具体实现等不同层面进行探讨和研究,各自提出了对CPS概念的理解。本文对CPS的理解是CPS强调用户空间、信息空间与物理空间的感知、传输、处理和控制过程,突出对物理空间的实时、动态的信息控制与信息服务的特点,构成了一个能通过计算进程和物理进程相互影响的反馈循环,实现人、机、物世界的密切互动,如图1所示。CPS组成复杂、功能多变[3],需要与通信、传感、控制及物理等组件协同设计,使系统开发变得难以把握,高效的协同设计方法成为迫切的需求和紧要的任务。
一个完整的CPS涉及到人、机、物等异构单元的协同工作,不只是一个单独运作的装置,它的异元组件主要是体现在三个方面:一是CPS软件组件和硬件组件,其分析、设计、编码、测试方法存在显著差异;二是CPS组件与传感、控制、通信、物理等组件的功能特点、计算模型(连续、离散)、描述(文本、图形)和验证(形式化验证、仿真、测试)方法不一致,难以协同设计;三是CPS组件在不同的应用环境中所采用的种类、型号、连接形式迥然不同,规模差异较大,设计时需要较好的可重塑性。
当系统复杂到一定程度,如果直接编程设计,会增加系统出错甚至失败的可能性。鉴于CPS异元组件协同设计是一项复杂的工作,为达到系统执行效果好、代价小和可靠性高的要求,設计需在能完成设计周期的描述方式下提高系统的开发质量和效率。因此CPS各类组件协同设计的第一步应该是建立系统的模型,即抽象地描述系统,其内容主要包括三点:1)将需求分析转化为可重塑、可验证和可视化的系统实现,便于验证所设计的系统是否满足需求分析的要求,也便于理解和修改设计;2)表示系统的结构和行为;3)表示系统的非功能约束条件。CPS的可重塑异元协同设计,包括设计人员之间的合作和不同模型子组件(软件、硬件、传感、控制、通信以及物理子组件)之间的协同设计,是一个亟待解决的难题。解决这类复杂问题最有效的方法之一就是分层和协同建模理论[4],紧密结合嵌入式系工作的外部物理环境要素,将复杂问题分为多个子问题逐一解决。分层协同建模就是对多计算模型的复杂系统进行分层,把要设计的系统结构和系统行为联系起来,并对体系结构进行可视化控制,从而发现需求并更好地解决问题。另外,系统设计还遵循一个规律:越早验证、越早发现问题,付出的代价越小。有效的系统模型和描述规范有利于分工设计与专业化产生,有利于协同验证,边构建边纠正,从而节省设计和生产成本。
1 相关工作
国内外学者对嵌入式系统、CPS的设计方法也作出了探索性的研究。传统的嵌入式系统建模方法的分类如下:1)按照是否支持形式化,可分为形式化和非形式化方法。常见的非形式化方法有:语言Petri Nets[5-8]、统一建模语言(Unified Modeling Language, UML)[9-10]、有限状态机(Finite State Machine, FSM)、前馈神经网络(Feedforward Neural Network, FNN)[11]等。Petri Nets的局限性在于,系统复杂度的增长会快速导致系统的不可理解性。由于缺乏对并发性和层次性的显式支持,对于复杂的系统,FSM可能出现“状态爆炸”和“迁移膨胀”现象。UML和FNN基本上能描述系统的功能属性,可通过仿真来验证系统的正确性,但对非功能属性的描述能力有限,且不利于通过数学方法来严格验证。2)按照建模对象的组成元素分类,可分为基于过程、基于任务、基于组件的方法。基于组件的方法又包括面向对象(如实时UML)、面向中间件(如公共对象请求代理结构(Common Object Request Broker Architecture, COBRA)、EJB(Enterprise Java Beans)、分布式组件对象模型(Distributed Component Object Model, DCOM)、组件对象模型(Component Object Model, COM)等商业规范)、面向角色[12]、面向领域、面向资源等技术。3)按照系统描述的视图分类,可分为面向状态(如FSM和Petri Nets)、面向活动(如数据流图和控制流图)、面向结构(如构件连接图)、面向数据(如实体关系图和Jackson图)和异构的模型(如控制/数据流图)。4)按照开发方法分类,有Top-Down(如Simulink、规范与描述语言(Specification and Description Language, SDL)、StateCharts等)、Bottom-Up(如硬件描述语言(Hardware Description Language, HDL)、UML、接口描述语言(Interface Description Language, IDL)、高级分布式语言(Advanced Distributed Language, ADL)、Modelica等)两种方法。前者适于系统的需求分析和高层体系结构描述以及系统评价,后者适于系统底层体系结构的描述、设计和验证。
这些方法在以往的传统系统设计中发挥了重要作用,但在面向CPS协同设计中则面临新的问题和难以克服的困难。面向CPS,不同于通常纯粹的软件或硬件系统,而是软件、硬件、传感、控制、通信、物理系统综合在一起的[13-15]系统,有些功能既可以用软件实现,也可以通过硬件实现,还可以用物理设备完成。另外,嵌入式系统设计所面临的挑战不仅涉及到计算机软件和硬件,也会涉及到许多非计算机工程中的问题,诸如机械尺寸、功耗和制造成本问题等。即使是计算机工程方面的问题,大部分系统在实时性、可靠性和多速率等问题方面也都有特别要求。随着应用需求的日益增长,CPS功能变强大,系统体系结构变复杂,对系统的要求更苛刻。
研究者们逐渐意识到了面向信息物理融合的异元嵌入式系统协同建模与验证的重要性。离散事件系统规范(Discrete Event System Specification, DEVS)是Zeigler等[16]在研究一般系统论的基础上创建的一种离散事件系统仿真理论,具有简洁的操作语义,并且与真实系统存在简单的对应关系;但DEVS是一种贫语义的系统描述,其优势在于对系统的组成结构、通信机制、时间概念的支持,其劣势在于缺少信息机制、时间概念的支持,也缺乏对于系统行为的描述,模型结构的开放性低,且其抽象的数学描述离具体的系统建模尚存在很大的差距。刘晨等[17]将StateCharts嵌入到DEVS,利用StateCharts适于建立系统的行为模型、描述状态的转换规律等特点,实现两者的优势互补,可以建立起简洁、直观的系统模型,该方法可以有效地提高系统的设计效率,完成高层建模到底层代码实现的自动映射。此外,Modelica在其迅速发展的同时受到工业界的高度关注,众多相关行业的顶尖企业纷纷推出支持计划。在Modelica[18]的支持下,Taha等[19]在完成Acumen项目的同时,提出了混合系统的建模和验证方法,采用连续函数对连续系统建模,并进行离散化仿真,目前Taha团队正致力于扩展其行为描述能力,但通信功能方面还没有实现。在具体应用领域方面,Parolini等[20]提出了面向控制的模型,采用计算网络和热量网络构造系统模型,实现了对数据中心能量效率的有效控制;Saber等[21]则将信息物理能量系统分为随机模型、智能动态负载均衡模型和灵巧网格模型,包含能量、可网格化车辆和热量单元,实现能量可重用和利用率最大化;Saeedloei等[22]则强调了编程模型的重要性,并用协同诱导、限制因数和协同迂回通信等方法对CPS进行逻辑编程,实现了对反应器温度控制系统的形式化建模和验证;赵俊华等[23]则利用微分代数方程组、有穷自动机、随机过程、排队论等数学工具,建立电力CPS的静态与动态模型。此外,马华东等[24]从体系结构角度研究了模型及互联机制,为以嵌入式系统为核心的CPS乃至信息物理融合应用系统提供了一定的理论和技术支持。
综合以上分析,针对目前CPS协同设计所面临的困难,尤其是CPS设计过程中的模型选择、模型描述、验证和设计的自动生成,以及其对计算性能和协同设计的需求,本文从体系结构的角度,构建基于组件(构件)的嵌入式系统模型(组态模型),为嵌入式应用系统的软件系统和硬件系统提供一个相对统一的实现途径,为嵌入式应用系统提供抽象的并可用于设计的传感、控制、通信和物理验证模型,从而有效解决了CPS组件协同设计中遇到的模型不开放、描述不一致、协同验证难以自动化等问题,并探索协同设计平台构建和代码生成自动化等问题。
2 通用组件建模方法
2.1 通用组件建模方法定义
CPS组成元素可以是物理设备(如感知器、路由器、处理器、控制器等)、人、甚至小部件(如电子元件、小集成电路、软件模块等)。CPS的组成元素具有复杂性、多样性,为有效表示CPS中所有的组成元素,统称这些元素为CPS组件。在通用建模方法中CPS组件的定义是指构成CPS的具有特定属性、组成结构和行为方法的对象,且对象之间可进行相互连接、协同完成特定的工作。CPS组件基本结构如图2所示。CPS组件基本结构的定义如下:
上述已定义了CPS基本结构元素,根据组件端口的不同功能进行分类,输入端口型I、输出端口型O以及输入输出端口型IO。CPS中元素有两种角色,组件和子组件。
一个组件可以不是一个简单客体,它可以由其他组件组成,但是为了区分组件内部包含的组件,赋予组件内部的组件新的定义名称为子组件。换言之,CPS中元素具有双重身份,既是组件,又是子组件。
组件既可以是由子组件组成的复杂结构的客体,也可以不含任何子组件。对此,产生新的概念,即复合组件和原子组件。复合组件和原子组件都是CPS组件,区分两者的依据是组件内部是否存在其他子组件。举一个简单例子,如半加器。半加器可看作一个复合组件,它由一个异或门和一个与门组成,即这两个子组件组成。对CPS组件概念的理解,可认为一个CPS本身就是一个组件,其内部结构就是多个组件构成。考虑在文中用组件建模方法描述一个大型复杂的CPS难以实现,CPS的建模采用通用组件建模方法。对此,给出一个简洁的CPS组件结构图表示CPS的建模方式,如图3所示。同时,对CPS 组件结构图也进行描述,表达式如下:
2.2 组件建模方法分析
2.1节已定义了CPS组件基本结构和组件建模描述的模式,本节将分析和总结组件建模方法的优劣。
本文提出的组件建模方法具有以下优势:
1)CPS具有复杂性、多样性。随着需求的增大,规模也逐渐变庞大、功能更具复杂性,那么组件方法建模CPS的过程中,忽略冗余的信息,精炼地提取并描述CPS中组件的关键信息,有利于降低CPS建模的复杂性。
2)至今已有许多研究人员针对信息物理融合建模提出了很多建模的方法,但都有各自的缺陷,如:层次模型可以直观地将CPS以层次划分并表示每层的主要功能;但是没有很好对每层进行细化。本文的CPS组件,可以灵活地嵌套在层次模型中,且已能够详细化每层的结构和功能。又如:形式化模型,通过数学形式验证;但无法刻画出CPS结构,造成可读性差和难理解。组件建模方式不仅通过行为属性来使用形式化方式,而且通过组件与组件之间的组合,达到验证的效果。总而言之,组件建模的使用具有灵活性,其功能也更加强大。
3)通过本文的CPS组件定义可看出,将CPS组件化也就是对象化,组件都有各个ID、结构以及行为,这很符合现实情况。无论是人或物,都具有自己的组成结构,会对外界刺激作出特定反应。因此,组件建模方式也更具真实性。
4)本文CPS建模采用二层模式,这样有利于提高其可读性。人的思维习惯是从简单到复杂,如果直接给予一整个CPS结构,这种方式会具有可行性差、可读性差的问题。
组件建模方法具备上述优点,但也存在以下问题:
1)复杂、庞大的CPS在建模时可采用形式化嵌套在内,但是众多组件之间应该怎样有效地组合才真正达到合理的仿真效果?
2)采用两层模式建模,势必会产生大量的描述文件。这些文件该如何存储、如何调用,让整个系统在运行时达到一个最佳状态?
3)组件建摸方式并没有考略到安全性的问题,采用什么样的方式,将建立安全方式运用在组件建模方法中?
3 XML组件描述规范、解析及仿真
本节具体介绍XML组件描述规范,描述规范的解析器及仿真流程。
3.1 XML组件规范描述语义
根据组件定义,描述方式采用可扩展标记语言(eXtensible Markup Language, XML)描述。XML描述規范具有以下特定特征:
1)每一个CPS组件描述文件(Docment)包含三个部分:描述文件声明(Declaration)、组件定义(Component)以及文件注释。
2)注释的格式以“〈!”开始,以“〉”结束;描述文件声明包含XML版本声明(Version)、编码声明(Encoding)、外部定义的Schema文件存在性声明(Standlone)。
3)描述文件中包含一个或若干组件,组件以〈component〉开始、〈/component〉结束的标记对定义。
4)每一组件都有着自己的组件名称(ID),以便于与其他组件区分。组件包含两个部分:组件结构(Structure)和组件行为(Behavior),如表1所示。组件行为数据化和信息化,产生若干具有特性的数据元素,经过一系列的数据存储、数据计算处理和计算优化,再通过一系列专用的软件将真实物理世界的客体虚拟地显示于计算机的显示设备。
XML提供了一种描述结构化方法,主要用于存储数据、控制数据、显示数据以及外观。XML与超文本标记语言(HyperText Markup Language, HTML)不同之处在于,它的标记是用于定义数据本身的结构和数据类型。每个元素封装可能十分简单也可能十分复杂的数据,对此可定义一组无限制的XML标记来描绘数据元素。比如定义一些XML标记来描述订单中的数据,如价格、税收、发货地址、账单地址以及发货的方式。此外,XML是一种简单、与平台无关、并被广泛采用的标准,使集成来自不同源的数据成为可能。XML具有可扩展性、可兼容性和可读性的特点,是一种适合描述信息物理融合世界的语言。信息物理融合世界包括三个主体部分:人、物,以及使两者或者与其自身产生联系的网络。三者看似属于不同范畴,但是它们还是具备一些共同特征,如结构属性和行为属性。无论是人,还是物理客体和网络,都有其自身的组成结构,只是组成的原子不同。同时,它们都能对来自信息物理融合世界中的刺激因子产生反应,从而产生某些特定的行为方式。对此,在XML组件规范描述语言描述组件过程中,将整个组件划分为结构和行为两个部分,如表2所示,组件结构规范中定义了端口集、子组件集合、连接器集合和属性集合。
端口集(Ports)主要作用是传递信息,它有一系列的输入端口集(Inports)、输出端口集(Outputs)以及输入输出端口集(Inoutputs)。输入端口用来接收来自外界或连接器的输入信号,输出端口用来为连接器产生输出信号,输入输出端口则具备两者的功能。考虑到信息物理融合世界中不同客体有着不同的端口集合,即使在同一客体中也存在不同的端口集合,且相互传递的信息数据类型存在多样性,定义端口ID用于识别不同端口,端口Type决定了此端口所传递的数据类型(字节型、字符型、布尔型、整型等)。组件是由其内部具有一定数量的子组件集(Subcomponents)且按照一定的排列结构所组成。同样采用标记ID的方式区别不同的子组件,其标签对(label)中的属性component是为说明此子组件是属于某一组件。XModel建模仿真验证平台采用图形化和XML文本化编辑方式,对此需要视图属性(View)记录子组件在图形化界面显示的位置、尺寸、图片等。信息物理融合世界特别强调用户空间、信息空间与物理空间的信息传输,根据此特点需要定义连接器集(Connectors)用于连接不同组件及组件的内部各个子组件。组件行为描述规范中,定义了状态机行为(mealy状态机和Moore状态机),状态机具体的计算行为如表3所示。
3.2 XML组件描述语言解析和仿真
定义XML组件描述语言规范,但计算机本身并不能理解XML文件的内容。类似计算机所使用的高级语言,XML更接近于人类能够理解的自然语言,但计算机却不能识别。为解决此问题,产生了高级语言编译器将高级语言编辑的程序文件转化为计算机能识别的二进制文件。
为了能识别XML文件的内容,同样要建立XML编译器来解析XML文件,编译过程需要经过词法分析、语法分析和语义分析。通过编译后,对整个项目进行仿真,仿真流程如图4所示。
4 案例分析
对医用恒温箱模型化,并在XModel建模仿真平台上进行验证。
4.1 模型定义
医用恒温箱,主要用于药品、试剂储存运输,疫苗、血液冷藏保温,透析液加温和生理盐水加温等。实际中医用恒温箱的内部结构比较复杂,在模型化时将简化其内部结构,建立能够体现医用恒温箱工作方式的组件模型,如图5所示。
由图5可知,医用恒温箱组件的内部结构情况,包括温度传感器组件、温度控制器组件以及显示组件。医用恒温箱组件的温度传感器组件的作用是感知恒温箱内的温度,起到一定的监视作用。图5中说明温度传感器组件是复合组件,其中包括噪声组件和累加器组件。温度控制器组件是原子组件,不具备结构属性,仅有行为属性,通过行为状态机控制恒温箱中的温度,使其保持在允许温度范围内。显示组件的作用就是显示温度变化的波形图,可以更加直观地看到恒温箱中温度变化情况。
4.2 分析与验证
整个仿真过程,从温度传感器组件开始产生温度初始值Tinitial,将产生的数据传送到温度控制器中。温度控制器的行为属性是状态机,如图5所示,可知此状态机是由加热状态(Heating State)、冷却状态(Cooling State)以及四个条件转化(Transition)组成。初始状态定义为加热状态,假设接收的采集数据是5.5℃,明显超过恒温箱定义的温度上限(HeatingOnThershold),根据状态转化的条件判断,当前的加热状态将转化为冷却状态,并且在转移的过程中输出当前温度值和冷却变化率(表示下一步将进行冷却操作)。从温度控制器组件中输出的数据,将传递到温度传感器组件。噪声组件和累加器组件是它的重要组成部分,在现实情况中,恒温箱的中温度一定受到外界因素的干扰,产生内部温度的波动。正因为考虑到这种情况,才有噪声组件的设计。将当前温度值和逐渐产生的噪声值传递到累加组件中进行累加操作,产生新的温度值。
在开发的验证工具平台Xmodel上对医用恒温箱模型进行仿真验证,结果如图6所示,一系列温度值都保持在恒定的温度范围内,验证了本文的CPS协同设计方法的有效性。
5 结语
本文采用CPS的通用组件建模方法建立医用恒温箱模型,并在设计的仿真平台XModel上运行验证,达到了一定的预期效果。但XModel的組件库还是处于一个初期阶段,软件平台的功能不是很完善。对此,在后期工作中,希望不断进行研究和实验,扩充组件库,完善XModel建模仿真验证平台。
参考文献 (References)
[1] MARWEDEL P. Embedded Systems Design: Embedded Systems Foundations of Cyber-Physical Systems [M]. 2nd ed. Berlin: Springer, 2011: 3-10.
[2] 何积丰.信息物理融合系统[J].中国计算机学会通讯,2010,6(1):25-29.(HE J F. Cyber-physical systems [J]. Communications of the China Computer Federation, 2010, 6(1): 25-29.)
[3] SHA L, MESEGUER J. Design of complex cyber physical systems with formalized architectural patterns [M]// WIRSING M, BANATRE J P, HLZL M, et al. Software-Intensive Systems and New Computing Paradigms, LNCS 5380. Berlin: Springer, 2008: 92-100.
[4] YU Z B, JIN H, GOSWAMI N, et al. Hierarchically characterizing CUDA program behavior [C]// Proceedings of the 2011 IEEE International Symposium on Workload Characterization. Washington, DC: IEEE Computer Society, 2011: 76.
[18] 赵建军,丁建完,周凡利,等.Modelica语言及其多领域统一建模与仿真机理[J].系统仿真学报,2006,18(S2):570-573.(ZHAO J J, DING J W, ZHOU F L, et al. Modelica and its mechanism of multi-domain unified modeling and simulation [J]. Journal of System Simulation, 2006, 18 (S2): 570-573.)
[19] TAHA W, BRAUNER P, ZENG Y F, et al. A core language for executable models of cyber-physical systems [C]// Proceedings of the 2012 32nd International Conference on Distributed Computing Systems Workshops. Washington, DC: IEEE Computer Society, 2012: 303-308.
[20] PAROLINI L, SINOPOLI B, KROGH B H, et al. A cyber-physical systems approach to data center modeling and control for energy efficiency [J]. Proceedings of the IEEE, 2012, 100(1): 254-268.
[21] SABER A Y, VENAYAGAMORTHY G K. Efficient utilization of renewable energy sources by gridable vehicles in cyber-physical energy systems [J]. IEEE Systems Journal, 2010, 4(3) :285-294.
[22] SAEEDLOEI N, GUPTA G. A logic-based modeling and verification of CPS [J]. ACM SIGBED Review — Work-in-Progress (WiP) Session of the 2nd International Conference on Cyber Physical Systems, 2011, 8(2): 31-34.
[23] 赵俊华,文福拴,薛禹胜,等.电力信息物理融合系统的建模分析与控制研究框架[J].电力系统自动化,2011,35(16):1-8.(ZHAO J H, WEN F S, XUE Y S, et al. Modeling analysis and control research framework of cyber physical power systems [J]. Automation of Electric Power Systems, 2011, 35(16): 1-8.)
[24] 馬华东,宋宇宁,于帅洋.物联网体系结构模型与互连机理[J].中国科学:信息科学,2013,43(10):1183-1197.(MA H D, SONG Y N, YU S Y. The research of IoT architecture model and internetworking mechanism [J]. SCIENTIA SINICA Informationis, 2013, 43(10): 1183-1197.)