浅谈基于UML的城轨列车超速防护系统建模_PHP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:关于php的职业分析--如何成为一名优秀的phper
最近经常有朋友跟我讲,很想来学习php,但又不敢来学,为什么?说是有人跟他讲,php没前途,程序员一大把,php程序员日益呈现白菜价趋势。我对我的朋友讲:只要你有技术过硬的信心,你完全可以按照自己的职业规划前行。 不错,现在的php程序员很多,但这个群

摘要:分析I-Logix公司的Rhapsody软件的主要特性在Rhapsody开发环境下对北京地铁1号线的ATP系统车载设备进行UML建模,并介绍系统级调试功能。

统一建模语言UML(UnifiedModelingLanguage)是迄今为止最好的面向对象的统一建模语言,它取代了以往各种面向对象表示法,可以全面、细致地同时描叙业务和软件系统,实现软件开发全生命周期建模的无缝统一。UML与OOAD(面向对象分析和设计)工具的结合,更使软件工程思想的实现往前走了一大步。

美国I-Logix公司的Rhapsody是一种基于UML2.0的面向嵌入式应用开发的集成可视化环境,它为嵌入式软件的开发提供了一个“四化”的支撑平台,即可视化、工程化、自动化和团队化。Rhapsody正在迅速成为国防/航空航天领域首选的MDD(模型驱动开发,ModelDrivenDevelopment)开发环境,在一系列项目中(如FutureCombatSystems(FCS)andF22等)被作为主要开发工具来使用。

列车自动防护系统(ATP系统)是城市轨道交通运行控制系统的组成部分之一。它主要保证提供速度限制信息以保持列车间的安全间隔,使列车在符合限制速度的标准下运行。ATP车载设备是列车自动防护系统的一个重要组成部分,负责完成ATP车载部分的功能。北京地铁1号线所采用的LCF100DT型车载设备是保证列车运行安全、提高运输能力的地铁信号专用技术的行车安全控制设备。本文首先介绍了Rhapsody的主要特性———实时框架,然后分析了ATP系统的工作原理,并在Rhapsody基础上对北京地铁1号线的ATP系统车载设备软件系统进行建模,最后分析了系统级调试功能。

1 Rhapsody框架特性

Rhapsody的实时框架是一个垂直框架,嵌入式和实时应用专门选择和优化的设计模板,实现了用于内务处理(如状态机的实现、容器类的实现等)代码的重写,实时框架使得设计的模型与操作系统无关,通过实时框架,应用程序可以方便地从一个实时操作系统移植到其他的操作系统。

实时框架包含4个主要部分,如图1所示。对象执行框架提供UML模型执行的基本结构管理线程状态机的执行,对象间关联模式管理对象间的一对多、多对多关系,抽象操作系统与框架自身和实时操作系统无关,便于框架的移植动画,调试框架可以使用户进行基于模型的调试,如基于状态图的断点设置、捕捉不同对象间消息映射等。下面分析对象执行框架中的主要元素。

2 自动超速防护系统

2.1 自动超速防护系统概要

ATP(AutomaticTrainProtection,列车自动防护系统)具有超速防护、零速度检测和车门限制等功能,提供速度限制信息,以保持列车间的安全间隔,使列车在符合限制速度的标准下运行。超速防护车载设备是列车超速防护系统的一个重要组成部分,它是依据从ATP地面设备接收到的列车运行控制命令,对列车进行实时速度监督的一种安全保障设备。

2.2 北京地铁1号线ATP系统

ATP子系统实现所需的设备包括地面设备和车载设备。地面设备主要由集中设置的地面轨道电路FS2500无绝缘轨道电路构成,由发送器、接收器、码发生器及调谐单元组成;其发码由微机联锁设备及控制中心控制,以保证安全追踪间隔及临时限速等。车载设备的功能由地面信息接收部分、测速部分、速度比较控制部分等完成,当列车运行速度超过允许速度时,自动完成减速控制,车载设备由以微处理器为基础的安全子系统和非安全子系统、速度表、天线及装在不同轴上的测速电机组成。

ATP系统的功能包括:在设置区间闭塞分区时,保证列车追踪运行时的最小安全间隔,防止列车尾追事故;列车按线路最大允许安全速度运行,防止列车超速运行;确保所排进路正确、安全;确保提供车门正确开闭条件;区间临时限速。

2.3 利用软件Rhapsody对ATP(车载设备)建模

为了使系统软件具有较高的可靠性、可维护性,结构化、模块化是系统软件设计的关键,软件模块的划分应尽量明确、相对独立,入口参数、出口参数意义范围明确。软件Rhapsody只支持英文环境,图中英文都有相应的解释。

2.3.1 需求分析

需求分析就是明确从外围系统的角度,要求列车运行控制仿真系统提供什么功能。在以往的需求分析中,始终没有一种合适的工具来保证系统需求的完整表达,所以直接导致了系统在完成后的检测中发现与真实情况不符。

在分析阶段引入全面支持UML的Rhapsody这个有效的形式化工具,以完整的、无歧义的语言表达上述功能需求,减少了设计人员的理解偏差,简化了开发过程中的交流。

图2为本案例的用例图,该图形象地表示了各个对象和用例之间的关系。driver(司机)启动是否进行ATP的操作,一旦启动ATP超速防护系统,ATPdevice(ATP车载设备)就处于超速防护状态,接受目标速度和实时运行速度,进行比较;如果司机按照允许速度操纵列车,速度监督设备不干预司机的正常操作。当司机违章操作或列车运行超过允许速度时,ATP车载设备将自动实施制动。其中,车载设备主要实现以下几个功能:initialtrain(自检并初始化车载设备),acquireactualspeed(获得实际速度),acquireactualspeed(获得列车实际运行的实时速度),acquirelmiitedspeed(获得允许速度,即入口区段的列车速度),acquiregoalspeed(获得出口区段的目标速度),protectspeed(对列车运行进行速度防护及监督),announceemergency(超速告警),braketrain(当发现列车超过允许速度,强行制动列车),司机要实现的功能是:brakebyhuman(人工制动)以及activitateATP(模式开关的选择和司控开关状态的采集)。

2.3.2 类的划分和处理

由功能需求分析确定,利用面向对象设计思想,将各个部分用对象来描述,将具有一定属性和操作的对象聚集成类的表现形式。从逻辑上看,一个对象是独立存在的模块,从外界来看,只需要了解它具有哪些功能,至于如何实现这些功能对外界都是屏蔽的。系统中的各个对象通过消息激活机制被动态联系在一起,并可利用面向对象建模中类的继承性,简化类和对象的生成。如果不同的类有共同的属性和方法,依据类的层次把这些共同性概括为总类。

图3为本系统的对象模型图。

北京地铁1号线使用的控制方式是分级速度控制方式的出口检查方式:在一个闭塞分区中,只按照一种允许速度判断列车是否超速,并且要求司机在闭塞分区内将列车运行降低到目标速度,设备在闭塞分区出口检查列车运行速度,这个过程主要通过ProtectSpee(防护速度)类来实现。列车的允许速度为该区段的入口速度,机车信号显示器给出目标速度。本区段的目标速度就是下个闭塞分区的允许速度,各种速度的获得是在SignalConditionIn(信号输入)中实现的,另外还设立了DriverCommand(驾驶命令)类以及BrakeControlle(制动控制)类来完成ATP启动列车制动的动作。各个类中的函数及其事件在这里就不再详细描述。

2.3.3 状态图分析

UML编程过程是在状态图中定义的,由于状态图的表达性和可伸缩性都很好,UML用它们作为正式的FSM(有限状态机)表示。有限状态机是由已存在的条件(称为“状态”)的有限集定义的机器,同样也是状态间因事物触发的状态转移有限集。本案例的行为是通过各个类的状态和转换关系进行定义的,为了使状态图不趋于复杂化,并方便以后的更精确化,我们将各个类分配状态图。在这里,我们将主要类———ProtectSpeed(防护速度类)进行讨论(见图4),包括CompareSpeed(防护区段内列车速度控制在允许速度之下)、GetdownActualSpeed(保证列车在区段出口时速度降低到目标速度)、RefreshActualSpeed(不断得到列车实际运行速度)。

比如,在RefreshActualSpeed(刷新实际速度)中需要获得处理好的数字速度,在该状态中加入Actual-Speed=SignalConditionerIn->GetActualSpeed(),这样就可以从SignalConditionIn(信号输入)中得到最大列车实际运行速度。

在CompareSpeed(速度比较)中对得到的实际速度和最大允许速度比较,若超出规则进入制动状态,状态图进入BrakeController(制动控制)的状态图中。

2.4 代码生成及系统级调试

当以上设计完成时,我们能够产生代码并测试系统模型。我们需要用Component组件来告诉Rhapsody产生什么样的环境。通常我们使用的是Microsoft环境(Windows操作系统和VisualC++编译器),这样Rhapsody可以产生VisualC++6.0和基于VxWorks的C++程序。

Rhapsody通过动态化状态图和顺序图促进了建模级的调试。用户可以在一个“面向对象”尺度上(操作调用,单个事件处理,整个事件队列)单步调试应用,并可以观察状态图的影响(如活动图的变化)。Rhapsody提供了3种不同层次的动画控制指令(在conf iguration中进行设置添加)。第1种是none,即要生成的是可发布的代码;第2种是tracing,它能够随着执行过程在主机的标准输出设备上显示文本的执行跟踪信息,第3个层次是anmiation(图形动画),以动画形式进行演示。

Rhapsody代码在目标机上运行的同时,运行情况动态反馈到设计模型中来,例如基于状态图的断点设置、在顺序图上捕捉不同对象之间的消息映射等。在进行设计级调试的同时,与代码级调试工具联合调试。Rhapsody通过模型级/代码级联合调试、验证,能够直观地尽早发现系统的设计错误或缺陷,从而较早地确定或降低项目风险。

另外,Rhapsody可以生成高质量的中文文档,可以生成软件应用所需的框架结构、运行库、编译文件、通讯方式、实施策略等。而且模型和代码的一致性更保证了文档和代码的一致性,为我们顺利地完成开发、后期经验的累积提供了很好的平台。可以通过定制模板,生成适合具体工作要求的文档。

3 结论

通过对北京地铁1号线的UML建模,可以缩短车载设备软件的开发周期。本文针对北京地铁1号线的LCF-100DT型车载设备进行UML建模,利用了Rhapsody这个基于UML语言的开发环境,UML的状态机模型与车载设备极好地对应,且便于借助CASE工具实现代码自动生成,能够极大地提高车载设备软件的开发效率和项目可管理性。Rhapsody采用基于模型的开发方式,为系统的开发提供了清晰的结构以及可复用的软件模块,能够切实提高实时软件的开发效率和可维护性,并可在系统级进行调试,从而提高系统的可靠性和实时性。Rhapsody提供了一个完整的用于复杂实时嵌入式的应用软件,是从分析、设计一直到代码实现和软件测试的开发环境。

 

分享:浅谈PHP 的八卦两则
PHP5.3 的正式发布,又重新关注起其语言本身。细心的朋友可能发现,PHP5.3 增加了 goto 语句,这在结构化语言今天似乎是有点不可思议的事情。 按照官方的说法,其实这和我们传统理解的 goto 还是有所差别。PHP 5.3 中的 goto 语句只能在脚本文件以及上下文中

来源:模板无忧//所属分类:PHP教程/更新时间:2009-10-01
相关PHP教程