(控制理论与控制工程专业论文)递阶分布式控制系统设计软件的开发.pdf_第1页
(控制理论与控制工程专业论文)递阶分布式控制系统设计软件的开发.pdf_第2页
(控制理论与控制工程专业论文)递阶分布式控制系统设计软件的开发.pdf_第3页
(控制理论与控制工程专业论文)递阶分布式控制系统设计软件的开发.pdf_第4页
(控制理论与控制工程专业论文)递阶分布式控制系统设计软件的开发.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 递阶分布式控制系统是实现复杂大系统的理想方案,本文以液体液位和温 度控制器为例提出了递阶分布式控制系统的设计思想,本文提出的递阶分布式控 制系统的设计是基于任务分解的思想来实现的,通过把一个复杂的控制任务分解 成一系列简单的且易实现的子任务,并且这些子任务由一系列模块来完成,这样 设计出的控制系统具有模块化的结构,从而使得系统具有良好的可扩展性和可维 护性。 在递阶分布式控制系统中,控制任务是由各模块间的相互协调动作来完成 的,各模块可以在不同的计算机或不同的操作平台上运行,模块间的通信是通过 通信管理系统c m s 和中间消息语言n m l 来实现,其中c m s 是底层逯信系统,而 n m l 是用户与c m s 的接口,c m s 和n m l 均由一系列c + + 类来实现,n m l 类是c m s 类的派生类。n m l 类提供的更新函数可以对数据格式进行转换,从而使得模块间 可以跨平台进行通信。 本文提出的递阶分布式控制系统中,每个模块完成一个给定的任务,我们 开发了一个通用的n i v l l 模块类n m km o d u l e 来实现模块的基本操作,模块 在给定的周期内,执行预先定义好的动作来完成_ 给定的任务。 系统的设计中还提供了一个重要的代码自动生成工具,利用它可以自动生 成整个应用程序的框架,用户只需添加少量实现具体控制算法的代码即可完成对 整个控制系统的设计,这大大减轻了程序员的负担。此外,还提供了图形化的设 计平台,用户可以借助形象化的图形灵活地构建控制系统的结构,借助诊断工具 平台用户可以对控制系统进行控制,向运行中的模块发送控制命令或设定参数 值,用户还可以通过诊断工具对系统进行仿真和测试,验证其是否能达到期望的 控制目标。 关键词:递阶分布控制任务分解模块c m sn m l 通信 a b s t r a c t 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 ls y s t e m si sa i m e da ti m p l e m e n t j n g c o m p l e x a n d l a r g e s c a l es y s t e m s t h e t h e s i s u s e s as i m p l e a p p l i c a t i o n ,l e v e la n dt e m p e r a t u r ec o n t r o l l e r ,t oi l l u s t r a t et h ed e s i g n o fh 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 ls y s t e m s t h e d e s i g n o f 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 ls y s t e m si sb a s e do nt a s k d e c o m p o s i t i o n b yb r e a k i n gac o m p l e xt a s ki n t oas e r i e s o fs i m p l e r s u b t a s k sc a ne a s et h eb u r d e no fd e s i g n i n gc o m p l e xs y s t e m s t h es t r u c t u r e o fh 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 ls y s t e m si sc o n s i s t e do fm o d u l e s , s os y s t e m sa r ee a s yt oe x t e n da n dm a i n t a i n i nt h eh i e r a r c h i c a la n dd i s t r i b u t e ds y s t e m s t h eo v e r a l lt a s ki s c o m p l e t e db yt h ec o o r d i n a t e da c t i v i t i e so fa 1 1m o d u l e s e a c hm o d u l ec a n r e s i d eo nad i f f e r e n tc o m p u t e r t h ec o m m u n i c a t i o na m o n gm o d u l e si s i m p l e m e n t e db yc o m m u n i c a t i o nm a n a g e m e n ts y s t e m ( c m s ) a n dn 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 si st h el o w l e v e lc o m m u n i c a t i o ns y s t a m ,a n dn m li st h e u s e ri n t e r f a c et oc m s b o t hc m sa n dn m la r ei m p l e m e n t e dt h r o u g has e to f c + + c l a s s e s ,a n dn 眦c l a s s e sa r es i m p l yd e r i v e df r o mt h ec m sb a s ec l a s s e s n m lc l a s s e sp r o v i d ef u n c t i o n su p d a t e0t oe n c o d ea n dd e c o d et h ed a t a ,s o m o d u l e sr e s i d e do nd i f f e r e n tc o m p u t e r sc a nc o m m u n i c a t ee a c ho t h e r i nt h eh t e r a r c h i c a la n dd i s t r i b u t e ds y s t e m s e a c hm o d u l ea c c o m p l i s h e d a n a s s i g n e d t a s k w e d e v e l o p e d ac o m m o nn m l m o d u l ec l a s s ,c a l l e d n m l m o d u l e ,t oi m p l e m e n tb a s i co p e r a t i o no fam o d u l e i nas a m p l i n gp e r i o d , m o d u l ee x e c u t eg i v e nt a s k si nap r e d e f i n e ds e q u e n c e s y s t e mp r o v i d e sa mi m p o r t a n tt o o l ,c a l l e dc o d eg e n e r a t o r ,w h i c hc a n b eu s e dt oa u t o m a t i c a l l yg e n e r a t et h es k e l e t o no fa p p l i c a t i o n p r o g r a m m e r c a na c c o m p l i s ht h ed e s i g nb ya d d i n g1 i t t l ec o d e t h i se a s et h eb u r d e no f t h ep r o g r a m m e r s f u r t h e r m o r e ,s y s t e mp r o v i d e sg r a p h i c a ld e s i g nt o o lt h a t a l l o wu s e r st ob u i i dt h es t r u c t u r eo fac o m p l e xc o n t r o ls y s t e m t h r o u g h t h ed i a g n o s t i c st o o l ,u s e r sc a ns e n dc o m m a n d st oa n ym o d u l ea n dc h a n g e s o m es e tp o i n t s k e yw 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 d t a s kd e c o m p o s i t i o nm o d u le c m sn m lc o n n u n i c a t j o n i j 昆明理工大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下( 或 我个人) 进行研究工作所取得的成果。除文中已经注明引用的内 容外,本论文不含任何其他个人或集体已经发表或撰写过的研究成 果。对本文的研究做出重要贡献的个人和集体,均已在论文中作了明 确的说明并表示了谢意。本声明的法律结果由本人承担。 学位论文作者签名:徐零落 日 期:z 归舛弓月z 4 日 关壬论文使用授权的说明 本人完全了解昆明理工大学有关保留、使用学位论文的规定,即: 学校有权保留、送交论文的复印件,允许论文被查阅,学校可以公布 论文的全部或部分内容,可以采用影印或其他复制手段保存论文。 ( 保密论文在解密后应遵守) , 导师签名: 酝客芏论文作者签名:i 金! 蓥聋 日 期:2 堕至生 圣月2 垒旦 第】章绪论 第1 章绪论 由于计算机技术和网络技术的飞速发展和它们在工业中的应用,人们对自动 控制术提出了更高的要求,控制系统也因此变得越来越复杂。一个复杂控制系统 可能包含有上百个传感器、执行嚣和控制器,且这些传感器、执行器和控制器可 能在物理上是分散的,这样,就给设计这种复杂控制系统带来了两个需求,第一, 需要一种方法把物理上分散的控制器连接起来,以便让它们能够互相进行通信; 第二,还需要设计一种控制器来协调这些控制器的动作,以保证整个控制任务能 够有序完成。基于这两种需求,我们提出了递阶分布式控制系统( h 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 s ,简称h d c s 系统) ,递阶分布式控制系统是实现复杂 系统的理想方案,它的结构图如图1 l 所示。 图1 1 递阶分布式控制系统结构图 递阶分布式控制系统的设计是基于任务的分解来实现的,它通过把一个复杂 的任务分解成些比较容易实现的子任务来完成整个控制任务。在图1 1 所示的 结构图中,每个小方框代表了一个控制模块,它的作用是完成某个给定的任务, 模块间可以互相进行通信,控制系统的总任务是通过各模块间的梧互协调动作来 完成的。图中的模块被分成三层,上层的模块可以通过接口和操作人员进行“对 话”,下层的模块用来实现一些具体的控制算法( 如p i d 控制和估计算法等) , 并通过传感器或执行器与现场单元相连接,中间层的模块则负责执行上层模块发 来的命令和向下层模块输出经过处理后的命令,并协调下层模块的动作。整个控 制系统通过模块间的协调动作来共同完成整个控制任务,所以模块间的通信很重 要。 递阶分布式控制系统系统的设计思路是将一个复杂的难以实现的控制任务 分解成多个简单的且容易实现的子任务,系统总任务依靠各子任务的实现来完 第l 章绪论 成。然而,设计与实现复杂的递阶分布式控制系统并不是一件容易的事,原因主 要有以下几个方面:第一,不同的控制器可能在物理是分散的,并且可能运行于 不同的计算机平台,所以需要开发一种高效的不依赖于操作系统的通信工具以实 现各控制器间的跨平台的通信,第二,由于工厂的复杂性和规模的不断扩大,希 望系统具有良好的可扩充性和可移植性。可扩充性,就是说对原来设计好的系统 只做少量局部修改( 如增加或删除一些予系统) 就能达到新的控制要求,而不需 要重新设计整个系统。可移植性,就是说将设计好的控制系统拿到不同韵计算机 平台使用时,不需要重新编写其应用程序,而只需重新编译就可以运行了。第三, 为了提高系统的可维护性,还需要更好的可视化界面以帮助设计人员开发与维护 系统。 本文针对上述问题,提出了一种基于任务分解的递阶分布式控制系统的设计 方法,主要研究了在多任务环境( m i c r o s o f tw m d o w s 操作系统) 下开发递阶分 布式控制系统设计软件的思想和具体实现方法,分以下几章来展开论述: 第2 章主要介绍了基于任务分解思想的递阶分布式控制系统的设计方法,详 细讲述了如何根据任务的分解来定义控制器结构的方法,并阐述了如何借助状态 转换图和状态表来实现递阶分布式控制系统。 第3 章说明了递阶分布式控制系统设计软件的特点。对其开发工具j a v a 和 c + + 程序语言作了简单介绍,并对设计平台、代码生成器和诊断工具的特点及实 现原理作了详细描述。最后还介绍了实现代码自动编译的m a k e f i l e 文件。 第4 章主要描述了控制模块的特征、工作过程及它的实现方法。 第5 章主要描述了模块间通信的实现。主要介绍了递阶分布式控制系统通信 工具中的通信管理系统c m s 和中间消息语言n m l ,并描述了n m l 消息类和通 信信道类、n m l 读写操作过程和n m l 服务器,最后对配置文件的结构和功能 作了说明。 第2 章递阶分布式控制系统的设计方法 第2 章递阶分布式控制系统的设计方法 一个非常复杂的控制系统通常包含上百个传感器、执行器和控制器,而且控 制器间还相互作用和相互依赖。系统越复杂,子系统之间的通信、互操作以及总 体协调就会越复杂。当对系统进行扩展时,人们希望只影响局部相关部件的运行, 而系统的其它部分仍能继续正常运行。因此,设计与维护复杂控制系统并不是一 件简单的事情,一般要满足以下几方面的要求:1 ) 在最短的时间内找劐故障并 消除故障;2 ) 一个元件出故障不影响其它元件的正常运行;3 ) 系统要具有很好 的可扩充性并容易升级。递阶分布式控制系统的设计是采用任务分解的方法来进 行的,它构建了复杂系统的总体分层结构,实现了系统的可靠性开发,使子系统 之间既相互独立又可协调工作,并能满足以上几方面的要求。 对一个递阶分布式控制系统进行设计时,首先对要控制的任务进行分析,把 一个复杂的任务分解成多个简单的且容易实现的子任务,然后根据这些子任务来 定义控制器的结构,从而定义出系统的结构图。这样定义出的递阶分布式控制系 统由一系列模块组成,其中每个模块负责执行分解的子任务。递阶分布式控制系 统的设计主要有三个步骤:1 ) 任务分解的分析:2 ) 定义控制器结构;3 ) 定义 每个任务的状态表。 这三个步骤中最关键的是第一步,即对控制任务进行分解,任务分解的不同, 控制器的结构也会不同,从而所设计出的控制器的性能也将会不同。任务分解完 成后,根据分解的任务来定义相应的执行器和传感器,并对这些执行器和传感器 进行分组,从而定义出相应的控制回路,也即定义出控制器的结构。控制器的结 构定义完成后,最后需要为分解的每个子任务定义相应的状态表,也即需要定义 每个子任务的输入、输出和该子任务的状态等。设计一个复杂的控制系统时,通 常不可能一步就能完成,而是需要通过逐步改进才能完成。下而我们就来举例说 明任务分解的方法。 2 1 任务分解 递阶分布式控制系统的设计以任务分解为基础,设计者首先对控制系统进行 任务分解分析,将系统中复杂的控制任务分解为若干个简单的子任务,再将这些 子任务分解为若干个子动作执行。也就是说,系统总任务是由分解的一系列子任 务来实现的,不同的子任务由不同的控制器来完成。递阶分布式控制系统中总任 务是由上级模块来完成的,丽子任务则由下级模块来完成,下面我们以液体的液 第2 章递阶分布式控制系统的设计方法 位和温度控制器为例,说明递阶分布式控制系统的任务分解过程。如图2 1 所示, 系统的总任务是将容器中液体的液位和温度调节到理想值,我们首先将这个总任 务分解为两个子任务,分别是“将容器中液体的液位调节到到理想值”和“将容 器中液体的温度调节到到理想值”。然后再对这两个子任务进行分解,将子任务 “将容器中液体的液位调节到到理想值分解为“测量液位”、“增加液位到理想值” 和“减少液位到理想值”三个子任务,而把子任务“将容器中液体的温度调节到 到理想值”分解为“测量温度”、“增加温度到理想值”和“降低温度列理想值” 三个子任务。从图中我们可以看出,上层任务是由分解的下层子任务来完成的, 最下层的子任务由特定的执行器或传感器来完成,例如,子任务“测量液位”由 液位传感器来完成,而“增加液位”由直流泵来完成,“减少液位”由交流泵来 完成。系统在运行时,根据传感器采集到的数据,判断出液体的当前液位和温度, 并把它们和理想值进行比较,然后决定对液体的液位和温度进行增加或降低,从 而实现整个控制任务。 将容器中液体的液位 和温度调节到理想值 将容器中滚体的渡 位调节到理想值 增加液位 l 测量l 减少渡位 到理想值ll 液位ll 到理想值 将容器中液体的温 度调节到理想值 增加温度 到理想值 图2 1 任务分解的实例 测量ii 降低湿度 温度il 到理想值 在分解的子任务中,有一些是需要实现互斥的,例如在图2 1 所示的任务分 解中,子任务“增加液位到理想值”和“减少液位到理想值”是互斥的,不可能 同时发生,实际上,这两个子任务的触发条件是子任务“测量液位”的输出值。 如果测量出容器中的当前液位高于设定的理想值,则启动“减少液位到理想值” 这个子任务,反之则启动“增加液位到理想值”这个子任务,从而完成调节液体 液位的控制任务。 2 2 定义控制器结构 第2 章递阶分布式控制系统的设计方法 任务分解完成后,接下来的工作就是定义控制器结构,即构建控制系统的模 块结构图。要定义控制器结构,首先应该考虑的是子系统以及系统中包含的所有 执行器和传感器的物理布局。由于每个子系统都有自己的传感器和执行器,因此 控制器的结构应该根据子系统的物理布局和子系统间的信息传输流和系统的任 务分解来定义。定义控制器结构一般应先对位于低层的传感器和执行器分配控 制模块,然后再根据上层任务分解的结果来定义上一层的控制模块。定义控制器 结构可以看成是将系统任务分解的结构图映射为由一系列模块组成韵系统的递 阶结构图。 控制器的结构定义完毕后,就相应的定义了每个模块要完成的任务以及模块 间的信息流,即已经定义了每个模块从上级模块接收和向下级模块发遴的命令, 以及为实现任务所需要的各种状态信息。把控制器定义为递阶结构的方式使得各 个模块的管理变得更容易,用户可以很容易的添加或删除模块,从而使得系统具 有很好的扩充性。 现在仍以液体的液位和温度控制器为例来说明如何根据分解的任务定义控 制器的结构图。这个系统的任务分解如图2 1 所示,图2 2 是初步设计的控制器 结构图,我们首先为位于低层的传感器和执行器分配控制模块。如为“测量液位” 的传感器分配液位传感器模块,为“增加液位到理想值”的执行器分配直流泵模 块,为“减少液位到理想值”的执行器分配交流泵模块。由于“调节液体液位到 理想值”这个子系统需要上述三个模块的协调动作才能完成,因此还需定义一个 模块负责协调这三个模块的动作,在这里“液位调节模块”就负责这三个模块的 协调动作。控制温度的子系统的模块设置和此类似,在这里,我们采取加冷液体 的办法来降低液体的温度,为了简化的需要,在这里没有设置完成这个任务的模 块。最后我们还需要设置一个监控模块来负责协调所有模块的动作,以完成整个 控制任务。 我们还可以进一步简化系统的结构,将最底层的控制模块去掉,用上一层的 控制模块来实现它们的功能,例如,在这里用一个液位控制模块来读取液位传感 器的数据并控制两个泵的开关,从而实现对液体液位的控制,丽用一个温度控制 模块来读取温度传感器的数据并控制加热器的开关,从而实现对温度的控制。简 化后的控制器结构图如图2 3 所示,图中虚线表示操作员和系统的交互。图2 3 中的模块的c + + 代码分别对应为s u p e r v i s o r _ m o d u l e ( 监控模块) 、l e v e l _ m o d u l e ( 液位调节模块) 和h e a t e r _ m o d u l e ( 温度调节模块) 。其中监控模块发送“调节 液位命令l e v e l s e t r e f ”给液位控制模块,发送“调节温度命令 h e a t e r s e t r e f ”给温度控制模块。而液位调节模块和温度调节模块则分别将它 第2 章递阶分布式控制系统的设计方法 们的状态信息反馈给监控模块,监控模块根据收到的状态信息作出正确的决策, 从而向温度模块和液位模块发送正确的命令。从图中可以看出,操作员可以和模 块进行信息交互,向监控模块、液位调节模块和温度调节模块发送命令,从而实 现对温度和液位的控制。 j i ;【控模块 l 液位调节模块 i 温度调节模块 il il卜l】 i 餐l j 鬻ij 黼ij 黼il 。霜l 土:0: l输入输出接口卡 上上tt上 i 直流泵ii 交流泵ii 液位传感器il 温度传感器lf 加热器i 图2 2 初步设计的液位和温度控制器结构图 薮歹 雯 液位调节模块卜| 一7p ,温度调节模块l 一,7 7 ,】r l : 输入输出接口卡 图2 3 简化后的液位和温度控制器结构图 由此可见,基于任务分解的递阶分布式控制系统的设计方法能够灵活地构建 整个控制系统的结构,而且这样设计出的递阶分布控制器很容易管理复杂系统中 各子系统间的信息流。此外,控制器中的各个模块郁能独立运行,模块问通过通 第2 章递阶分布式控制系统的设计方法 信系统进行通信,任何一个模块运行出错不会影响其它模块的运行,例如,如果 由于某种原因液位传感器或者交流泵出现故障,那么液位模块将不能正常运行, 但温度调节模块仍能正常运行,这提高了系统的容错性。如果模块间的通信被中 断,那么模块的“紧急预案”就会被启动,模块会转去执行预先定义好的控制算 法,启动报警系统或者安全的关闭系统。从这个控制器结构中我们还可以看出, 如果要在这个系统中添加新的控制模块,那么不需要重新设计整个系统,只需要 在原来的控制器中添加所需的模块并且定义模块间的通讯即可,这大大提高了系 统的可重用性。 2 3 定义命令状态转换图和命令状态表 完成任务分解,并确定了系统的控制器结构后,系统要实现的总任务、系统 中每个模块要实现的子任务及系统中模块间的信息流就确定了,接下来设计者要 做的工作就是定义命令状态表来实现具体的控制任务。命令状态表是通过把命令 按时间和空间分解成不同的动作来定义的,这些不同的动作都有其执行的条件, 如传感器的数据、模块当前的状态信息、操作员的请求和下级模块的状态信息等, 这是通过命令状态转换图来描述的。 命令状态转换图描述了一个 任务的完成过程,包括任务分解、 计划以及行为,并说明了系统状 态转换的条件和产生某种行为的 触发事件。通常,“状态”、“命令” 及“行为”之间有一一对应的关 系,换句话说,就是系统进入某 种“状态”就会引发相应的“命 令”以及要采取的“行动”。 殴岛参i 愁。 耕“专 图2 4 状态转换图 如图2 4 所示,椭圆代表系 统的行为和状态,带箭头的曲线表示系统状态的转换,而且随着状态的变化系统 会采取不问的行为。图中的椭圆和带箭头的盐线完整地描述了系统如何进入、保 持、离开某种状态( 随箭头指向方向) 以及如何开始、执行并完成任务。 命令状态转换图由命令状态表实现。命令状态表通常由一段程序来实现,用 于完成具体的控制任务。命令状态表中说明了命令的不同状态、模块的执行状态、 执行命令的条件、执行器的动作以及下一个命令状态等。每一个命令状态都有与 之对应的执行条件和执行器的动作。执行条件决定命令的状态,命令的状态又决 第2 章递阶分布式控制系统的设计方法 定执行器的动作,如泵的开和关、电源和加热器的开和关等。命令状态表还说明 了当前命令的下一个可能状态及其发生状态转换的条件,由此可见,制定命令状 态转换图与设计命令状态表在系统的整个开发过程中至关重要。 图2 5 命令s e t l e v e l _ r e f 的状态转换图 表2 1 命令“调节液位到理想值l e v e l - s e 卜r e f ”的状态表( 其中c l = 当前 液位,d l = 理想液位,m i n = 最低液位值,m a x = 最高液位值) 命令的状态执行器动作条件执行器动作模块的状态 下一二个命令状态 s 1 ( c l d 1 ) f i l l ( s 1 )m i n c l d 1 ) 增加液位且c 1 d l 交流泵关闭 e x e c s 3 ( e l 丝d 1 ) s 4 ( e l m a x ) s l ( c l d 1 ) e m p t y ( s 2 ) m i n d l直流泵关闭 e ) ( i 犯 s 3 ( c l 望d 1 ) s 4 ( c l m a x ) s i ( c l d 1 ) i d l e ( s 3 ) m i n cl d 1 ) 空闲状态且c 1 兽d l交流泵关闭 d o n e s 3 ( c l 丝d 1 ) s 4 ( c l m a x ) e r r o r ( s 4 ) c l d 1 ) 错误状态s 3 ( c l 兽d 1 ) 其它错误报告错误 s 4 ( c l m a x ) 我们以液体液位和温度控制系统为例,说明如何制定命令的状态转换图并设 计其状态表,从而控制执行机构完成这个控制任务。当液位调节模块接收到命令 第2 章递阶分布式控制系统的设计方法 “调节液位到理想值”后,首先查看当前液位值,然后把这个值和理想液位值进 行比较,最后做出决策,打开直流泵或交流泵来调节液位。在这里我们还设置了 容器中液体液位的最高值和最低值,如果当前液位低于最低值或高于最高值,则 模块会报告出错并停止运行。命令“调节液位到理想值s e t _ l e v e t r e f ”共有4 个状态,分别是:增加液位( s 1 ) 、减少液位( s 2 ) 、空闲状态( s 3 ) 和错误状态( s 4 ) , 该命令的状态转换图如图2 5 所示。根据状态转换图定义的该命令的状态表如表 2 1 所示,其中直流泵负责抽进液体以增加液体的液位,而交流泵则负责将液体 排出,以降低液体的液位。 如下所示代码为此命令的状态转换图对应的状态表的实现: v o i dl e v e lm o d u l e i s e t _ r e f ( l e v e ls e t r e f * e m d i n ) c u r r e n t l e v e l = l e v e l s t a t u s 一 c u r r e n t l e v e l : i f ( s t a t em a t c h ( n e wc o m m a n d ) ) 如果模块接收到新命令 ( i f ( ( c u r r e n t 一1 e v e l m a x l e v e l ) il ( c u r r e n t l e v e l l e v e l :从缓冲区中读取理想液位值 i f ( d e s i r e d - l e v e l ) m a x l e v e l ) 如果理想液位值大于最高值 ( r c s - p r i n t ( ”理想液位大于最高值”) : d e s i r e d l e v e l = m a x l e v e l :就让理想液位值等于最高值 r c s _ p r i n t ( ”理想液位是f n ”,d e s i r e d je v e l ) : ) e l s ei f ( d e s i r e ( l 1 e v e l m a x l e v e l ) ii ( c u r r e n t l e v e l m a x l e v e l ) | | c u r r e n t l e v e l d e s i r e d l e v e l ) s t a t u s = r e s e x e c : p u m p e r 2 = o n :交流泵打开,排液体 ) e l s ei f ( c u r r e n t l e v e l m a x l e v e l ) l ( c u r r e n t l e v e l m i n l e v e l ) ) s t a t e n e x t ( s 4 ) :命令的下一个状态是错误状态 ) e l s ei f ( c u r r e n t f s t a t u s = r c s e x e c : s t a t e n e x t ( s 1 ) ;命令的下一个状态是增加液位 ) e l s ejf ( c u r r e n t f l s t a t u s = r c s e x e c : s t a t e n e x t ( s 2 ) : 命令的下一个状态是减少液位 ) e l s ei f ( s t a t em a t c h ( s 4 ) ) 如果命令的状态是错误状态 e r r o rs t a t e p u m p e r l = o f f : p u m p e r 2 = o f f : s t a t u s = r c s r r o r ;模块的状态设置成错误状态 f c s p r i n t ( ”液位模块出错”) ) ) 当液位调节模块接收到监控模块发出的调节液位的命令后,它首先检测容器 中液体当前的液位,如果这个液位超过限定的最高值和高低值,则模块报错并停 止运行。如果监控模块发来的理想液位值超过限定值,则让这个理想液位值等于 第2 章递阶分布式控制系统的设计方法 限定值,然后把当前液位值和理想液位值进行比较,从而决定是打开交流泵还是 直流泵对液位进行调节,并给出命令的下一个状态。 由以上例子可见,系统开发者可以为系统中每个模块要执行的每个任务定义 一个状态表以实现控制,用户只需修改命令状态表就可以改变控制算法,从而实 现不同的控制任务。而且,状态表还可以实现各种控制算法,如p i d 控制、模 糊控制等等。在执行周期内的某一时刻,模块只会处于一种运行状态,即处于运 行、完成或错误这三种状态之一,因此不会发生状态冲突,从而减少了系统用于 推理判断的时间,提高了系统的运行效率。 第3 章递阶分布式控制系统设计软件的特点 第3 章递阶分布式控制系统设计软件的特点 3 1 递阶分布式控制系统设计工具简介 递阶分布式控制系统设计软件是采用j a v a 程序设计语言来开发的,而控制系 统本身的设计是采用c + + 语言来完成的。下面我们就分别来介绍这两种语言。 3 1 1j a v a 简介 j a v a 是s u n 公司于1 9 9 5 年推出的新一代面向对象程序设计语言,特别适合 于i n t e r a c t 应用程序的开发,j a v a 具有以下特点: 1 ) 平台无关性 j a v a 最重要的特点就是独立于硬件设备的平台无关性,这种平台无关性使 j a v a 程序可以不需要任何修改就可运行在支持j a v a 的任何计算机上。平台无关 性有两种:源代码级和目标代码级。j a v a 主要靠j a v a 虚拟机( j v m ) 在目标代 码级实现平台无关性。j v m 是用软件模拟实现的虚拟计算机,它附着在具体操 作系统之上,本身具有一套虚拟机指令,并有自己的指令集、类文件结构栈、寄 存器集和内存区域等,j a v a 源程序经编译生成字节码文件,然后由解释器运行。 字节码文件是j a v a 虚拟机中可执行文件的格式,j a v a 编译器针对不同的硬件平 台提供了不同的编译代码规范,使得j a v a 软件能够独立于平台,任何一台机器 只要配备了j a v a 解释器,就可以运行这个程序,而不管这种字节码是在何种平 台上生成的。另外,j a v a 采用的是基于i e e e 标准的数据类型,通过j v m 保证 数据的一致性,也确保了j a v a 的平台无关性。 2 )完全面向对象 面向对象卅以说是j a v a 的特性,它支持静态和动态风格的代码继承及重用。 j a v a 语言集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对 象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏,而类则提 供了一类对象的原型,并且通过继承机制,子类可阻使用父类所提供的方法,实 现了代码的复用。 3 ) 结构中立 与平台无关的特性使j a v a 程序可以方便地被移植到网络中的不同机器上。 同时,j a v a 类库也实现了与不同平台的接口,使这些类库可以移植。 另外,为了建立j a v a 作为网络的一个整体,j a v a 将它的程序编译成一种结 构中立的中间文件格式。只要有j a v a 运行系统的机器都能执行这种中间代码。 构中立的中问文件格式。只要有j a v a 运行系统的机器都能执行这种中间代码。 1 4 第3 章递阶分布式控制系统设计软件的特点 现在,j a v a 运行系统有s o l a r i s 2 4 w i n 3 2 系统等。j a v a 源程序被编译成种高 层次的与机器无关的字节码( b y t e - - c o d e ) 格式语言,这种语言被设计在虚拟机 上运行,由机器相关的运行调试器实现执行。 4 ) 解释执行 当运行j a v a 程序时,它首先被编译成字节码。字节码非常类似于机器指令, 所以j a v a 程序非常高效。然而,字节码并不专对种特定的机器,所以j a v a 程 序无需重新编译便可在众多不同的计算机上执行。 j a v a 源程序被编译成类文件,它相当于程序的字节码表现。在一个j a v a 类 文件中,所有对方法及实例变量的参照均按名进行,并在第一次执行时加以分辨。 这使得代码更通用,更不易受修改的影响,而仍具高效。 j a v a 解释器直接对j a v a 字节码进行解释执行。字节码本身携带了许多编译 信息,使得连接过程更加简单。j a v a 解释器( 运行系统) 能直接运行目标代码指 令。链接程序通常比编译程序所需资源少。所以程序员可以在创建源程序上花上 更多的时间。 5 ) 多线程 j a v a 对多线程提供语言级的支持,使得应用程序能够并行执行,而且同步机 制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同 的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易实现 网络上的实时交互行为。 6 ) 动态性 j a v a 的动态特性是面向对象设计方法的扩展。它允许程序动态地装入运行过 程中所需要的类,这是c + 上语言进行面向对象程序设计时无法实现的。 3 1 2c + + 简介 c + + 是以c 语言为基础的厩向对象的程序设计语言。它主要基于类的概念和 机制对数据进行抽象以模拟真实世界特点。c + + 的继承性使其能够在吸收现有类 功能的基础上快速地开发新类并添加新的功能,这增加了软件的重用性,c + + 的 虚函数和多态性使开发出的系统具有更好的可扩展性。 用c + + 语言开发控制系统应用程序的优点在于:1 ) 面向对象的设计方法可 以加快问题求解、缩短开发时间并减少软件开发费用;2 ) 通过改变个或多个类 的实现,使其影响局部化,从而降低软件维护开销。 递阶分布式控制系统的设计软件主要由设计平台、代码生成器和监控工具三 大部分组成,下面我们分别描述这三个部份。 第3 章递阶分布式控制系统设计软件的特点 3 2 设计平台 图3 1 递阶分布式控制系统设计平台界面一 递阶分布式控制系统的设计平台是用j a v a 语言来开发的,具有如图3 1 所 示的图形设计界面,用户可以利用这个设计平台对控制系统进行设计,如定义控 制系统的模块结构、定义控制模块的消息和模块问的通信信道及定义控制回路和 服务器等。在这个设计平台中,用户可以很容易的在控制系统中添加或删除控制 模块、调整系统的分层结构,从而增强了系统的可扩展性与可维护性。 3 3 代码生成器 递阶分布式控制系统设计软件提供的代码生成器可以自动生成整个控制系统 应用程序的框架,用户只需在其中添加少量代码即可完成整个应用程序的编写, 这就是说,所有的应用程序的目录结构都是相同的,不同的只是针对具体控制器 的算法不同。使用代码生成器大大减轻了程序设计人员的负担,使程序设计人员 可以更专注于具体控制算法的编写上,从而提高了效率。代码生成器具有如图 3 。2 所示的界面。 第3 章递阶分布式控制系统设计软件的特点 图3 2 递阶分布式控制系统代码生成器 3 3 1 生成的文件及路径 代码生成器可以生成控制系统所需的所有不同类型的文件,这些文件按一定 规律放于特定的路径下,代码生成器生成的文件路径结构如表3 1 所示。 在这里a p p 表示所设计的控制系统的名称,如对于前面讲过的“液体液位和 温度控制”系统中,a p p 可以是m y f i r s t 。s r c 是控制系统主程序的路径,它包 含几个不同的子路径,如i n t f 和m a i n 等,这些子路径下分别放置了主函数文件、 模块消息类文件、模块类文件以及工具类文件等。v c d i r 目录是模块文件的发布 目录。在a p p 路径下有一个顶层的m a k e f i l e 文件,它的作用是对整个应用程序 进行编译,此外每个模块还有它自己的m a k e f i l e 文件,用来编译每个模块包含的 代码。p l a t 表示应用程序的开发平台,这些平台可能是w i n 3 2 m s c , l i n u x ,s u n o s 4 ,s u n o s 5 ,i r i x 5 和i r i x 6 等。每个平台下有四个子目录,分别是b i n , i n c l u d e ,1 i b 和s r c ,应用程序经过编译后产生的文件就放在这些目录下,其 中源文件被复制到s r c 目录下,头文件被复制到i n c l u d e 目录下,生成的目标文 件放于l i b 目录下,生成的可执行文件被放到b i n 目录下,运行b i n 目录下的可 第3 章递阶分布式控制系统设计软件的特点 执行文件就可以运行整个控制系统。 表3 1递阶分布式控制系统生成的文件路径结构 m a k e f i 】e m a k e f il e i n c a p p c f g a p p n m l r u n a p p v c d i r m a k e f i l e m a l n 主函数文件 v c d i r t a k e f il e 文件 i n t f 消息文件和脚本文件 v c d i r u t i l m a k e f i l e 文件 s r cv c d i r a p p m a k e f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论