




已阅读5页,还剩51页未读, 继续免费阅读
(控制理论与控制工程专业论文)递阶分布控制系统设计软件的开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文针对复杂实时控制系统的设计与实现,以智能机械手控制系统为实例,给出一种 基于实时控制系统r c s ( r e a l t i m ec o n t r o ls y s t e m ,简称r c s ) 模块的递阶分布控制系统结 构;提出基于任务分解的复杂控制系统的分析与设计方法;提出用状态转换图描述控制任 务的实现流程,并由状态表将状态转换图转化为计算机能够处理的程序设计语言( 如c + + ) ,以此实现整个控制任务。 为了帮助工程人员设计与实现复杂控制系统并提高开发效率,本文设计开发一种递阶 分布实时控制系统设计软件,并对其总体设计思想和具体实现方法作了研究。整个设计软 件充分利用j a v a 语言编写图形用户界面( g u t ) 的功能来开发图形化的设计平台与诊断工 具,使用户能够借助图形直观而且灵活地构建整个控制系统的结构,并易于操作。 另外,本文研究了用c + + 程序设计语言进行递阶分布控制系统设计软件库的开发, 包括r c s 模块和系统通讯工具。基于类的概念与特征以及应用程序编程接口( a p i ) 的优点, 提出用抽象类实现设计软件库元件,如控制模块( r c s 模块) 类和通讯类( 中性消息语言 n m l ( n e u t r a lm e s s a g el a n g u a g e ,简称n m l ) 和通讯管理系统c m s ( c o m m u n i c a t i o n m a n a g e m e n ts y s t e m ,简称c m s ) ) ,封装了控制系统应用程序底层的工作细节并提供了高 层接口,从而使控制模块之间接口简单,便于用户掌握和使用,使开发出的控制系统具有 很好的扩展性和重用性。 除了上述几个问题,本文还讲述了自动生成控制系统应用程序框架的代码生成器的实 现思路,最后设想用递阶分布控制方法设计自动化公路系统,并利用递阶分布控制系统设 计软件开发这样的复杂系统。 关键词:递阶分布控制r c s 模块n m l 任务分解状态转换图 a b s t r a c t a i m i n g a tt h e d e s i g na n di m p l e m e n t a t i o no f t h ec o m p l e x r e a l t i m ec o n t r o ls y s t e m , t h et h e s i s t a k e s e x a m p l ef o r t h e i n t e l l i g e n tm a n i p u l a t o r , g i v i n g as t r u c t u r eo ft h eh i e r a r c h i c a la n d d i s t r i b u t e dc o n t r o ls y s t e m ( h d c s ) b a s e do nt h er e a l t i m ec o n t r o ls y s t e m ( r c s ) m o d u l e , a d v a n c i n gt h ea n a l y s i sa n dd e s i g nm e t h o db a s e do nt h et a s kd e c o m p o s i t i o nf o rt h ec o m p l e x c o n t r o ls y s t e m ,a n dr a i s i n gt ou s et h es t a t et r a n s i t i o nd i a g r a m st od e s c r i b et h ew o r kf l o wo f e v e r y c o n t r o lt a s k b e s i d e s , t h et h e s i si l l u s t r a t e sh o wt or e a l i z et h es t a t et r a n s i t i o nd i a g r a m sb yt h es t a t e t a b l e s 器l es t a t et a b l e sc o n v e r tt h es t a t et r a n s i t i o nd i a g r a m si n t oc o m p u t e r l a n g u a g e ,l i k ec + + ,s o a st oc o m p l e t et h ec o n t r o lt a s k t o h e i pt h ed e s i g n e r t od e s i g na n d i m p l e m e n t t h ec o m p l e xc o n t r o ls y s t e ma n de n h a n c et h e d e v e l o p m e n te f f f i c i e n c y , t h et h e s i sd e s i g n st od e v e l o pad e s i g ns o f i m 黼f o rt h eh d c sa n d r e s e a r c h e st h ed e s i g ni d e aa n di m p l e m e n t a t i o n 舀科o fi t t h ed e s i g ns o f t w a r et a k e sa na d v a n t a g e o ft h eg u if e a t u r eo fj a v ap r o g r a m m i n gl a n g n a ;et od e v e l o pt h eg r a p h i c a ld e s i g np l a t f o r ma n d d i a g n o s i st o o l , m a k i n g u s e rb u i l dt h es t m c t u r eo f c o n t r o ls y s t e md i r e c t l ya n df l e x i b l y ,a n du s et h e s o f t w a r et o o le a s i l y o nt h eo t h e rh a n d , t h et h e s i ss t u d i e st od e v e l o pt h ed e s i g ns o f t w a r el i b r a r yf o rt h eh d c s w i t hc + + p r o g r a m m i n gl a n g u a g e ,i n c l u d i n gr c sm o d u l ea n dc o m m u n i c a t i o nt o o lo fc o n t r o l s y s t e m m o r e o v e r , b a s e do nt h ec o n c e p ta n dp r o p e r t i e so f c l a s sa n dt h em e r i t so fa p p l i c a t i o n p r o g r a m m i n gi n t e r f a c e ( a p i ) , t h et h e s i sp u t sf o r w a r d st ou s e t h ea b s t r a c tc l a s st or e a l i z et h e e l e m e n t so ft h ed e s i g ns o f t w a r el i b r a r y , s u c ha st h ec o n t r o lm o d u l e ( r c sm o d u l e ) c l a s sa n dt h e c o m m u n i c a t i o n c l a s s e s ( n e u t r a lm e s s a g el a n g u a g e a n dc o m m u n i c a t i o n m a n a g e m e n t s y s t e m ) ,e n c a p s u l a t i n gt h eb o a o m d e t a i l so ft h ea p p l i c a t i o na n dp r o v i d i n gt h et o pi n t e r f a c ef o r u s e r ,a sl e a d st ot i l ei n t e r f a c eb e t w e e nm o d u l e sb es i m p l ea n dm a k 姻n s e r m a s t e ra n du s et h e m c o n v e n i e n t l y w h a t s l 珏。璋t h ec o n t r o ls y s t e md e v e l o p e db yt h ed e s i g n 镉m 犯h a sg o o d e x p a n s i b i l i t ya n dr e u s a b i l i t y f u t h e r m o r e ,t h et h e s i sn a r r a t e st h ei m p l e m e n t a t i o nw a yo f t h ec o d eg e n e r a t o r f i n a l l y , t h e t h e s i sa s s u m e st od e s i g nt h ea u t o m a t e dh i g h w a ys y s t e mb yt h eh i e r a r c h i c a la n dd i s t r i b u t e d c o n t r o lm e t h o d ,a n d d e v e l o ps u c hc o m p l e xs y s t e m w i t ht h ed e s i g ns o f t w a r ef o rt h eh d c s k e y w o r d s :h i e r a r c h i c a la n dd i s t r i b u t e dc o n t r o l ;r c sm o d u l e ;n m l ; t a s kd e c o m p o s i t i o n ;s t a t et r a n s i t i o nd i a g r a m ; 昆明理工大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下( 或 我个人) 进行研究工佟所取键的成聚。除文中已经注明零| 用的蠹容外, 本论文不含任何其他个人或集体已经发表蠛撰写过的研究成果。对本 文的研究做出燕要贡献的个人和集体,均融在论文中作了明确的说明 并表示了谢意。本声明的法律结果瞻本人承担。 学位论文作者签名:旃蠢率 日期:2 0 0 3 年3 月1 日 第1 章绪论 第l 章绪论 随着计算机技术与网络技术在工厂企业中的不断渗透,工业自动化程度日趋提高,控 制系统也变得越来越复杂,传统的分立的控制算法如滞后补偿、p i d 控制、最优控制、反 馈线性化、自适应控制、鲁棒控制、模糊控制以及神经网络等已不再满足人们对工厂自动 化与智能化不断提高的要求,而需要更复杂的控制算法或上述几种算法的“混合”算法以 实现对复杂系统的控制。长期以来,很多研究人员一直在努力寻求一种设计与实现复杂控 制系统的更有效的方法,实践证明,递阶分布控制系统h d c s ( h i e r a r c h i c a la n d d i s t r i b u t e d c o n t r o ls y s t e m , 简称h d c s ) 是实现复杂大系统的理想方案,而且在工业控制中得到了广 泛的应用。 h d c s 将一个复杂的难以实现的控制系统分解为若干个简单的而且容易实现的子系统 以协作完成整个控制任务。然而,设计与实现复杂的h d c s 并不是一件简单的事情,原因 在于以下几个方面:第一,不同的子系统可能在物理上是分布的,并且可能运行于不同的 计算机操作平台,所以需要开发一种高效的不依赖于操作系统的通迅工具以实现跨平台通 讯,这实际上是一个如何在现有分散、低层次的通信网络基础上实现异构网络、异种机多 协议远程互连的问题,而且还要满足某些行业对实时性的要求。第二,由于工厂的复杂性 和规模的不断增加与扩大,我们希望系统具有很好的可扩充性与可移植性。换句话说,就 是对原来设计好的系统只做少量局部修改( 如增加或减少子系统) 就能达到新的控制要求, 而不需要重新设计整个控制系统;或者将设计好的控制系统拿到不同的计算机平台使用时 不需重新编写其应用程序,而只需重新编译就可以运行了。第三,为了提高系统的可维护 性,还需要更好的可视化界面以辅助工程人员开发与维护控制系统。因此,人们越来越需 要一种设计与实现复杂h d c s 的软件工具,以辅助工程设计者开发复杂控制系统并减轻工 作负担。 本文针对上述问题,提出了一种基于任务分解的i - i d c s 的设计与实现方法,主要研究 了在多任务环境( m i c r o s o f tw m d o w s 操作系统) 下开发h d c s 设计软件的总体设计思想与 具体实现方法,分以下几章展开论述: 第2 章主要介绍了基于r c s 模块的h d c s 结构,详细描述了r c s 模块的特征及其工 作过程,以及如何利用面向对象技术实现r c s 模块,最后给出一个由r c s 模块构成的递 阶分布控制系统应用实例。 第3 章叙述了h d c s 通讯的实现,主要介绍了i - i d c s 的通讯工具中性消息语言n m l 和通讯管理系统c m s ,并详细描述了n m l 的通讯模式、读写操作过程及其对应的操作函 数,最后对n m l 配置文件的结构、内容以及功能作了说明。 第4 章提出了基于任务分解思想设计h d c s 的方法,详细阐述了如何借助状态转换图 和状态表实现h d c s 。并以智能机械手控制系统为实例,说明设计h d c s 的步骤以及如何 利用状态转换图和状态表实现控制任务。 第5 章说明了h d c s 设计软件的功能特点,并对其开发工具j a v a 和c + + 程序设计语 墨! 茎堡鉴 i 言作了筒荜介绍,丽舞讲述7 代粥生成器的特点凝其实瑶原理。最后介绍了实现代码鸯动 编译翡m a k e f i l e 文件菠其糯关知谈。 筹6 章提出了遴除分枣按剁方法在鸯动能公路系统串蕊疲莠l 设想,并绘如j l | 翅h d c s 设计较转汗发这静复杂控制系统熬一转投毒 方案。最蓐对这个验段熬学习以及姆来约王作 爨振捧7 总结。 2 第2 章基于r c s 模块的递阶分布控制系统 第2 章基于r c s 模块的递阶分布控制系统 麓着工鼗现代纯豹发展,生产蔑耩不断扩大,生产工艺翻趋复杂,对实现生产过程自 动控制的系统提出了更高的要求,不但要求系统有优越的控制性能、良好的性能价格比、 蠹努懿霹维护瞧,还癸求系绕爨煮毫甏靠往、灵活嚣构成方式释黉荔静操作方法。丙虢往 的模拟仪表控制系统和计算机赢接数字控制系统很难阍时满足这些要求,因而必须寻找更 舂效戆装割系缝。丈蓉绫毽论诞臻,遂酚分鸯蔑按裁怒实甏大系统稼会控裁静理想方案。 2 1 递阶分布控制 现代工业避程对控制系统的要求已不局限于能实现自动控制,还要求工业过程能长期 在最镁状态下避嚣。对一令援模宠大、绻褐复杂、功熊综会、瓣素众多鹃王鬏大系绕,要 解决的不是一个局部蠛优化问瓤,而怒一个整体的总目标函数煨优化问题,即所谓生产过 程的综台自动他闯题。总体的琏标函数不但包括产量、震量等攒掭,逐寇摄戆艇、感零、 污染等各种指标,这些指标反映着技术、经济、环境簪各方面的要求。整体的最优化研分 成动态最优化和静态最忧化两个方匿。动态最健化解决生产进磐过程瓣最优化,静态最爨 化刚解决生产纳规划、组织、决策、管理的最优化。如果把动淼最优化称为“在线”墩优 化,那么静态墩优化可以称作“离线”最优化。显然,对一个复杂的大系统进行直接多匿 标最谯纯控制麓缀酲鼹酌,实际上凡乎不可能实现。 为了实现工程大系统的最优化控制,大系统控制理论引入了“分解”和“协调”的设 诗琢黧,蕊谓分解,藏楚在设谛过程串,将高输对象大系统划分为若于个低骱小系统,并 解除小系统之间的耦合,使它们之间相甄独立,以便使用一般最优控制理论设计局部控制 器,分舅# 攘裁务令夺系统,整乏最撬豫。系统秘分解毯话数学模鍪静分解帮蕃标蘧数约分 解两个内容。所谓协调,就是农局部最优化的基础上考虑各子系统之间的相互影响和相豆 翳合箨耀,设谤貉邂控糕器,搜蚤犀嫠控裁器乏耀臻溪越来,遮登 整个系统豹袋撬铯。这 种采用熊中和分散相结合的控制系统,每个控制器所处理的信息比集中控制时大大减少, 从丽篱纯了控制器的铭搦。 递阶分布控制的方絮被认为是目前嶷现大系统综台控制的理想方案。递阶控制还有几 种不同憋形式。分层控锩是一秘按控制经务进符分解的缝梭方繁,它恕控制任务分戚a 令 不同的滕次,由备层控制器分别完成,下层任务的目标瀚数接袋上层控制器决策的影响; 分级控制是种按对象绒构进行分解黝结构方案,它把对象趔分成若予个子系绫,壶务羼 都控籁精完成现场控制任务,协调控铡游通过控黼凡阶递阶控常4 器完成局部控制器之间的 协调;分段控制则是按控制过程的时序进行分解的结梅方案,它把控制过程分成几段,在 簿段l l 于澜内由不阉酌控翩器完藏对现场的控涮,协调切换器刚援衔接条件迸行备段控制器 的切换擦制。实际上三种控制形式的划分并不是绝对的,在一个工程大系统的控制结构中, 张茬蘑辩其存三耱控裁形式。鹜2 i 绘疆了一种典型静控铡结辛匐。从结构图上蓉,它同对 第2 鼙基子r c s 摸块辨遴黔势毒控糖系缝 舆有分级和分层两种形式,而实际上直接控制器往往在不同时蠹6 有举同形式,由上膳递阶 控制器控制街抉时间,象这种同时其有多种递阶控翻形斌的控翻结构,被称作递阶分缀分 布式控制。 递阶分帮控黼静特熹胃慈维必;1 ) 采用分级分鑫式控裁,减少了茬患黄辕畿,降低了 对上级计算梳的要求,靛系统静痰霜程垮较为甍单。 2 ) 采用携理土分数静结秘,每台基本控铡器只控制少 豢豹回路,毂镬发生数辕,影赡瑟巍毖较夺,爨露从 根本上改善。y 系统的可靠性。3 ) 各煮计算枫一计算机 之间的遐痿悉统,实现了综合控刿。两鼠使鬃缆扩腰 容易,便于明户分期投资、逐步扩建。4 ) 各有多功能 集中型的人机接口,可以存取并能以多种画砸显示全 部过程交嚣、控制变量及其它参数,并w 直接操作远 程基本控制器,实现了集中监视和集中操作。5 ) 管理 计算机通过高速数据通遵,赢接与过程相联结,完成 难产计划、管理、决策的最优化,从而实现了整个生 产过程的最仇化自动控制。 2 + 2 基手r c s 模块的h d c s 结构 豳2 犬系绒控制的一种典型结构 黧 l 嗵鲤箩 挲多逝鸯鸯鎏澎 f 模城2 l 婴进程l模块。r c s 避程k l, 苓( 审 卜一宁h 圈2 2r c s 模块瓣穗惠滚楼型 a l l 2 3 蒸于r c s 榛块静糟c s 的靖掏 基予r c s 模块的h d c s 的设讣与实现以对任务进譬亍分解为基础,将一个复杂的任务 分解成若干个由不同的予系统分时执行的子任务,从而达至控制目的。经过任务分解得到 的控制系统包含不同的予系统( r c s 模块) ,它们分层地分布予由多个计算机( 具有相同 戏不同操作平台) 组成的系统。由r c s 模块构成的控制系统不受限于模块的物理分布,由 通讯管理系统c m s ( c o m m u n i c a t i o n m a n a g e m e ms y s t e m ,简称c m s ) 和中性消息语占n m l ( n e u t r a lm e s s a g e l a n g u a g e ,简称n m l ) ( c m s 和n m l 见第3 章) 负责完成模块之间的 通讯,使各模块能够运行于不同的搽作系统平台并彼此通信,这就允许跨平台逢接多个模 4 第2 章基于r c s 模块豹递阶分布控制系统 块,实壤氡含强豢数毽子系统瓣复杂递除分毒羧测系绞。 r c s 模块戆h d c s 的基本组成,宦的信息流模型如图2 2 所示,其构成的h d c s 结 拇如图2 3 所黎。每个r c s 模块郡畜命令缓 孛嚣和状态缓挣器,也可以蠢父模块与子模块。 通常。父模块通过读予模块的状态缓冲器来获褥子模块的状态,通过对子模块的命令缓冲 器进行写以向予模块发送命令。如图2 3 所示,最顶屡酌模块l 通过愈令缓冲器向其予模 块2 和3 发送命令;同时,模块2 和模块3 将其状态缓冲器中的状态信惠反馈给模块1 。 在h d c s 中,常常将一个r c s 模块称为一个控制节点,每个控制节点以此同样的方斌_ i 作,操作人员w 遥过操作界面翔顶层模浃发送命令,然后经过任务努辩,向各予模块发送 命令以协作完成整个任努。 2 3r c s 模块 2 3 r c s 模块的z 作过穰 r c s 模块的工作过程如图2 4 所示,可叙述如下:系统应用程序的生循环在每个循弼= 周期首先谣蔫按谁l 器荫数( c o n t r o l l c 目r o ) 。控稍器函数麓醚谲蘑其它实躐控箭算法的成爱函 数,如预处理函数( p r ep r o c e s s 0 ) 、决策黼数( d e c i s i o n _ p r o c e s s ( ) ) 和厢处理函数 ( p o s t _ p r o c e s s ( ) ) 。联憝理瀚数在决策函数 之前被调用,擞要实现简单的变换、采集传感 器数撵、读取麓瓒输入倍患等等,宙予它羲嚣 圭 的操作与具体的应用系统密切相关,所以一般 是虚逶数,瘸户霹遥遨菱载憩瓣数绽髯其实臻 代码,以满足黑体应用系统的滞要;厨处理函 数在狭綮函数乏矮被调溺,与羧处理爵数类似, 主要作些简单的变换、输出处理好的和辅助 的燕息;决策瀚数根掇当翦毂禽令类型调用捆 应的命令函数以实现控制。 2 。3 。2r c s 模块的实凌及其成爨 1 1 1 2 4r c s 攘捷的王穗过穗 由前边讨论可知,骥实现h d c s ,貔们器要的是控制模块( r c s 模块) 本身和它们之 闻的通讯工其,它彳f 强 剿是h d c s 设计软件库的基本元件。 r c s 模块豳c + + 语言实现,它充分利用了这种编程语言面向对象的特性,包括类、 继承往和虚函数。同时,蟊每对象的程序设计方法增藤了软静鹣哥扩充往和可熏用往、浚 善提高了程序员的生产能力并降低了软件的复杂性和维护开销。c + 十类不仅封装了袭征 瓣象特缝豹成爨燮量,鲡采样数覆或憝灌数掭等等,还毪括辩藏受变爨进行操作静盛爨遗 数。在h d c s 威用程序中,成员函数常常包含些推理决策函数。继承性使用户可以山基 类派玺凝类,麸嚣毫效堍产生一令聚售据蘸毒豢类残员又包揍赣类成贯戆羝结秘。 每个r c s 模块都题基类n m l _ m o d u l e 的继承类。n m lm o d u l e 类有肉己的成员 e 釜! 差萎主墼! 整塞釜塑鳖丝篓型薹鉴 + 一一 变量与成员酌数,包括模块问进行通讯的所有工具以及b d c s 应用程序常用蓟的过程处理 函数和数据变量。n m l类的主要成熊列举如下:_module 1 ) v o i dc o n t r o l l e r ( ) ;控翩器晒数 此酗数在应粥程序燕循环的每个周精都要被调丽,主要用l i 盂调用其它实现控制算法的 函数,翔预处理函数、决策黼数和露处联萄羧。这个函数静代码已淼h d c s 设计软件库率 实现,稔亭受不需对函数捧本身迸嚣编程。 2 ) v i r t u a lv o l dp r ep r o c e s s ( ) # 羲楚理丞数 憩爱数生要耀予在臻涮、译估鸯佟斑决策之兹,接收辕八穰息并对其佟一些蓑攀熬转 挠( 熟黠传感器数摄进簿a d 转换) ,嚣虽在系统嚣要孵可读取毒| 蠡助输入镕患。在寝建程 序豹每令循环胃期,不篱当藏豹命令与状态如弼都要运镗这个邈数,恧且在一般情况下, 这个透数执行的操捧依赖于具体应用系统,用户可以逶过重载此函数编写具体的应用系统 实现代码。 3 ) v i r t u a lv o i dp o s tp 舯c e s s ( ) :后处理函数 此函数在决策函数乏后被调用。与预处理函数类似,主要作一些简单的转换( 如d a 转换) 、保存数据、向外设输出处理好的数据或辘助输出消息。不臀当前的命令与状态如 何都要运行这个函数,而且在一般情况下,这个函数执行的搡干誊与其体应用系统相关,用 户可根攒实际的应用系统编写其实现代码。 哇) v i r t u a lv o i dd e c i s i o n ( ) ;决策函数 j l :醋数在预簸璜函数之后p r 、o 后c e 簸s 理s 黼数之前被谪厝。它主要程攒当前命令类垄调用命 令函数。命令函数愚实璇与给定的命令躐任务蚕求对应静控镧藓法鲻数,挨旬话说,就楚 控审l 模块稷据不闰静任务命令调孺不溺豹命令霹数,执行不嗣静操祚。铡翔,在謇秘幸乏公 路系统( 冤第6 章) 孛,交递王兵瓣刍瑶速与泼交车遂 壬务努裂崮嚣令不嗣斡丞数完成。 另终,决策邀数一般由s w i t c h 器甸实现,霉令澉对应苓网熬念令弗穗题与其黠应熬 愈令运数。 器) i n ta d d s u b o r d i n a t e ( r c sc m dc h a n n e l + , r c 邸t a tc h a n n e l ) : 建立信道爨数 此函数常在r c s 模块的 句遗函数中被调用,用于设暨模块测( 上下缴模块之间) 的通 讯信道,即指定哪个模块访问哪个模块的命令缓冲器与状态缓冲器,从瓶使得上级模块可 以向指定的下级模块发送命令或接收下级模块反馈的状态信息。这个函数返回下级模块的 标识号i d 。在h d c s 中,每个下级模块都有唯一的标识号,调用发送命令函数时会用到。 除此之外,此函数还分配了存放各下级模块状态信息的存储区数组( 因为一个上级模块可 能有多个下级模块) ,i d 就怒下级模块的状态信息在存储区存放的位置索引。 6 ) v o i ds e n d c o m m a u d ( r c sc m d _ m s g ,i n ts u b o r d i n a t en u m b e r ) :发送命令函数。 此函数将第一个参数指定的命令发送给第二个参数指定的下级模块,这个下级模块蹙 位于控秘系统中较低层的r c s 模决。每发送一条新命令,命令的序剜号就会加,而且会 谈鬟n e wc o m m a n d 标志。 第2 章基于r c s 模块的递阶分布控制系统 7 ) v o i dm o d i f y c o m m a n d ( r c sc m dm s g + 。i n ts u b o r d i n a t e :修改命令函数_number) 此函数同发送命令函数一样,也是将第一个参数指定的命令发送给第二个参数指定的 下级模块,但是命令序列号不加一而保持不变,下级模块也不会把这条命令看作新命令, 只是用新的参数继续执行老命令。 为了说明起见,我们以智能交通工具( 见第6 章) 为例,假设驾驶模块正在执行跟踪 命令( 这个命令使交通工具保持最优速度) 时最优速度o p t s p c e d 改变了,于是操纵模块不 用s e n d c o m m a n d 函数发送新的跟踪命令,而是调用m o d i f y c o m m a n d 函数发送新的o p t s p e e d 命令。 8 ) v o i ds e t c m d c h a n n e i ( r c s _ c m d _ c h a n n e l + ) :建立命令信道函数 此函数在r c s 模块的构造函数中被调用,用于设置模块自身的命令通讯信道,以在每 个周期检查是否有命令。r c s 模块可以通过此信道向给定的模块发送命令。 9 ) v o i ds e t s t a t c h a n n e i ( r c s _ s t a t _ c h a n n e l , r c s _ s t a t _ m s g ) : 建立状态信道函数 此函数在r c s 模块的构造函数中被调用,用于设置模块的状态通讯信道,并给出每个 周期要向上级模块发送的状态信息地址。 1 0 ) i n ts t a t e _ m a t c h ( i n ts t a t e ,i n t 啪d 订:状态匹配函数 此函数在状态表( 见第4 章) 中使用,当前状态与函数的第一个参数相等并且第二个 参数值假设为非零时返回一个非零整数,否则返回零。 11 ) v o i ds t a t e n e x t ( i n t 朋啦) l 状态转换函数 此函数在状态表中使用,当状态转换条件满足时,用以实现状态转换。 1 2 ) i n ts t a t u s :状态变量 此变量说明模块当前的运行状态并通知监视器或父模块。一般为以下几种常量: r c s _ e x e c ( 正在执行) 、r c sd o n e ( 己完成) 、r c se r r o r ( 运行出错) 。 1 3 ) r c s _ c m d 命令消息指针_ m s g c o m m a n d i n d a t a : 当接收到命令时,此变量指向存放命令的存储区。在应用程序的每个循环周期,r c s 模块的决策函数都要检查这个存储区,并根据接收到的命令调用正确的命令函数,而接收 到的命令将作为命令函数的一个参数。 1 4 ) r c s - s t a t _ m s g * s t a t u s l n d a t a :输入状态消息指针 此变量是接收到的状态消息的指针,它指向存放下级模块状态信息的存储区数组,下 级模块的标识号就是状态信息数据在存储区的位置索引。 1 5 ) r c s _ s t a t _ m s g s t a t u s o u t d a t a :输出状态消息指针 此变量是发送状态消息指针,指向将要送给监视器或上级模块的状态消息缓冲区。 以上所列只是n m l _ m o d u l e 类的基本成员,这些也是大多数r c s 模块最常用到的 函数与变量。例如,控制器在应用程序的每个循环周期都要进行传感器数据处理,然后根 据采集到的数据采取正确的行动( 控制算法) ,最后保存数据并与其它r c s 模块共享数据, 并输出处理好的数据到执行器或其它执行装置以实现控制,这些就是预处理函数、决策函 第2 肇基手r c s 摸块的遵黔分糖控制系绕 数和后籁蓬醋数的俸用。除藏敬井,每个r c s 模块都簧与其父模块或予模块建立遴讯信遴, 接收上级命令并淘箕发送状态信息,舔辩簧淘下缀发送余令并读其状态愤惠,黢北, n m lm o d u l e 类还提供了月予逶信静丞数与突爨,拯残爨嚣数a d d s u b o r d u m t e ( ) 、 s e t c m d c h a n n e l ,以及成员变量c o m m a n d i n d a t a 、 s t a t u s l n d a t a 、s t a t u s o u t d a t a 等等。爨以说,n m lm o d u l e 类既提供了过程处理弱数, 又提供了通讯工具,用户通过继承n i v i lm o d u l e 类大大降低了开发h d c s 的难度,并 缀短了开发周期。 2 3 3 应用实例 圈2 5 所示为基于r c s 模块的智能机械手 h d c s 结构,此系统由四个模块分三层构成。e m o v e 朦接受在指定位麓用某种刀篡执行任务( 如钻孔、 打槽等) 的命令;这个任务被分解成选择刀其和位 麓移动两个子任务,分剐由t o o l 模块和p r i m 模块完 成;p r i m 模浃又将大的位置移动分解成小盼蔽增蠢 逐步暹遥的靛鼍移动,并将筑定酌增量位移命令送 给s e r v o 模块;s e r v o 模块将谲整控制宅梳豹运行输 出,傻实际经譬尽哥黪黪裾选跟踪竣定挝譬。蚕2 5 餐艟壤摊手h 瞄结掬 h d c s 设诗较终提供7 缀努憋入壤交互器瑟,设计纛可以氆粒臻形炙嚣蛙 奄建揆卷4 系 缓结梅。除此之终,宅能够爨动生成整令控划系统豹应建程序撂架,露设 卡者只露媾加少 爨依簸予应慰系绞的程序代娼。下嚣以h d c s 设计软件自动生成的e m o v e 模块豹代璐为铡 说明如何通过继承n m l 类实现具体应用鬟统的模块。_ m o d u l e r c s 在c + + 头文件e m o v e h p p 中定义u w n o v e 模块类e m o v em o d u l e 的代码如下: c l a s se m o v em o d u l e :p u b li cn l 儿m o d u l e p u b t i c : 梅造器 e m o v 8 m o d u l e ( i n t i sb a s ec l a s s = 0 ) ; 重载威函数 v i r t u a lv o i dp r e _ p r o c e s s0 : 预处理函数 v i r t u a lv o i dd e c i s l 0 n _ p r o c e s s 0 : 决策函数 v i r t u a lv o i dp o s t _ p r o c e s s ( ) ; 后处理函数 v i r t u a lv o i di n i t i a l i z e _ n m l0 : 命令函数 v i r t u a lv o i di n i t ( e m o v ei n i t 宰) : 启动命令函数 v i r t u a lv o i dh a l t ( 聃o v eh a l t 枣) : 停止命令函数 v i r t u a lv o i dc h a n g et 0 0 l ( e m o v ec h a n g u 0 0 l ) :换刀具命令函数 v i r t u a lv o i dg 甜o ( e 矾d v e g o t o ) : 指定操作位鬻命令函数 褫械装霹游患变量 8 第2 章基于r c s 模块的递阶分布控制系统 e m o v es t a t u s * e m o v e _ s t a t u s :e m o v e 模块状态指针 i n tp r i ms u b n u m : p r i m _ s t a t u s * p r i m _ s t a t u s : p r i m 模块状态指针 i n tt o o l s u b n u m : t o o l _ s t a t u s * t o o l s t a t u s :t o o l 模块状态指针 p r i v a t e : 设计者添加的应用系统变量与函数 ) 由上可见,e m o v em o d u l e 类是n m l m o d u l e 类的继承类,它包含成员函数 p r e _ p r o c e s s ( ) 、d e c i s i o n _ p r o c e s s 0 和p o s t _ p r o c e s s ( ) ,用户也可以添加依赖 于具体应用系统的私有成员函数与成员变量。 r c s 模块的构造器函数用于分配存储区并初始化变量。1 日i i o v c 模块的构造器创建了r c s 模块对象,初始化模块间通讯信道。在c + + 源文件e m o v e c p p 中它的构造器实现代码如 下: 构造器 e m o v e _ m o d u l e :e m o v e _ m o d u l e ( ) f 初始化e m o v e 模块通讯信道 s e t e r r o r l o g c h a n n e l ( n e wn m l ( n m l e r r o r f o r m a t ,。e r r l o g ,e m o v e ”, r c s e x n m l ) ) : s e t c m d c h a n n e l ( n e wr c s c m dc h a n n e l ( e m o v e f o r m a t ,”e m o v e _ c m d 。,e m o v e ”, r c s _ e x n m l ) ) : e m o v e _ s t a t u s = n e we m 0 v e _ s t a t u s ( ) : s e t s t a t c h a n n e l ( n e wr c s _ s t a t _ c h a n n e l ( e m o v e f o r m a t ,”e m o v es t s ”,”e m o v e ”, “r c s e x n m l ) ,e m o v e _ s t a t u s ) : 建立与p r i m 模块的通讯信道 p r i ms u bn u m = a d d s u b o r d i n a t e ( n e wr c s c m d c h a n n e l ( p r i m f o r m a t ,p r i m _ c m d ,e m o v e ”,r c s _ e x n m l ”) , n e wr c s _ s t a t _ c h a n n e l ( p r i m f o r m a t ,”p r i m _ s t s ”,e m o v e ”,r c s e x n m l ”) ) : p r i m _ s t a t u s = ( p r i m _ s t a t u s 引s t a t u s l n d a t a p r i m _ s u b n u m : 建立与t o o l 模块的通讯信道 t o o 一s u b h u m = a d d s u b o r d i n a t e ( n e wr c s c m dc h a n n e l ( t o o l f o r m a t ,”t o o l c m d ,e m o v e ,4 r c s e x n m l ”) , n e wr c s _ s t a t _ c h a n n e l ( t o o l f o r m a t ,t o o l s i s ”,”e m o v e ,”r c s e x n m l ”) ) : t o o l s t a t u s = ( t o o l _ s t a t u s 木)s t a t u s i n d a t a t o o l s u b a u m : ) 只要有非零命令,应用程序的每个循环周期都会调用决策函数,e m o v e 模块的决策函 数实现代码如下: v o i de m o v e _ m o d u l e :d e c i s i o n _ p r o c e s s 0 s w it c h ( c o m m a n d l n d a t a 一 t y p e ) ( 根据命令调用命令函数 9 第2 章萎学r c s 装块缒遂狳势稚控雠系绫 c a s ee m o v e _ i n l l 卫p e : i n i t ( ( m o v e _ i n i t 术) c o r m n a n d l n d a t a ) :命令函数 b r e a k : c a s ee m o v e _ h a l tt y p e : a l t ( ( e m o v eh a l t ,# ) c o m m a n d l n d a t a ) :命令函数 b r e a k : c s s ee m o v h a n g e _ t o o l _ t y p e : c h a n g e _ t o o l ( ( e m o v e c h a n g e _ t o o l ) c o m m a n d l n d a t a ) ;命令函数 b r e a k : c a s ee m o v eg o t ot y p e : g o t o ( ( e m o v e _ g o t o 掌) c o m m n d l n d a t 茹:命令通数 b r e a k ; d e f a u l t : l o g e r r o r ( ”t h ec o m m a n d di sn o tr e c o g n i z e d 。”。c o m m a n d l n d a t a - t y p e ) : b r e a k : ) e m o v e 模块的预处理函数实现代码如下: v o i de m o v em o d u l e :p r e _ p r o c e s s ( ) 用户根据具体应用系统添加此爨数实现代码 e m o v e 模块的后处瑷函数实糯代码如下: v o i de m o v em o d u l e :p o s t _ p r o c e s s ( ) f 后处理幽数代码,以下为用户添加 e m o v e s t a t u s 一 p o s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- umo考试题目及答案
- 2025年奥数阿尔法题目及答案
- 安全培训的评价内容课件
- 火车过隧道考试题及答案
- 2025年综掘司机考试试题及答案
- 2025年二次加工材相关板材项目合作计划书
- 工程内账会计方案(3篇)
- 工程类公司绩效方案(3篇)
- 2025年高端煤机装备项目建议书
- 2025年计算机控制试卷及答案
- 医院感染管理制度培训
- 【MOOC】研究生学术规范与学术诚信-南京大学 中国大学慕课MOOC答案
- 宁德时代应聘笔试题库及答案
- 《甘特图制作》课件
- 【2024】粤教粤科版科学三年级上册每课教学反思(带目录)
- 冀少版(2024新版)七年级上册生物第一单元《生物体的结构层次》1.2《细胞的形态》教案
- 旅游公司与导游合作协议书
- 实习合同范本(2篇)
- 黑龙江金融产业发展对策
- 无人机应用与基础操控入门课件
- GB/T 15843.2-2024网络安全技术实体鉴别第2部分:采用鉴别式加密的机制
评论
0/150
提交评论