基于规则的反应器控制方案

分享到:
点击量: 314888 来源: Control Engineering
  
  运用基于语言规则的方法来解决控制领域的问题”,这种想法是为了满足以下需求而产生的——即要求处理那些“由于这样或那样的原因而难以进行**的数学描述的问题”。传统的基本调节控制(BRC)和先进调节控制(ARC)技术,都是假设来自现场仪表的信号是稳定有效的,可以为系统提供其需要的测量值。但是,这些信号未必一直是准确的,并且其提供的测量信息也可能不够完全。
  另外,过程值的***还不是我们必须考虑的**关键因素。测量的变化率可能更为重要。有时,过程值或测量方法还需参照其它条件来考虑。那些用以指示条件状态的布尔逻辑量,比如像显示工艺设备是否运行的参数,往往是很重要的。对一套控制系统的合理操作,有时也取决于系统使用的时间、系统的清洁度和维修状况以及其它的一些因素。还有,不是所有的误差都同等重要
。有些时候,对于某个方向的误差需要较慢或较弱的响应速度,而对于另外一个方向的误差却需要较强或较快的响应速度。
  基本概要表明,对于有些控制问题,有时需要以逻辑集合的方式,同时考虑好几种条件。而且,以上提到的所有问题,都难以用数学方式来描述。在这种情况下,基于规则的控制方案有时可以发挥出它的优势。
  规则,算法
  应用在基本及先进调节控制中的集散型控制系统(DCS)的控制模块,其核心部分就是一些可编程的数学等式或算法模块,这些算式或模块都以预定义的时间间隔重复执行。例如,一个PID(比例-积分-微分)控制的经典(非交互作用)算式如下:
  输出= KP(e+KI ∫ edt-KDdc/dt)  
  此处:
  输出=控制输出信号值
  e=控制器的输入偏差(测量值-设定值)
  c=控制器的测量信号值
  KP=比例增益
  KI=积分增益
  KD=微分增益
  对控制工程师来说,这是一个非常清楚的关系公式。不同DCS厂商提供的PID算法,尽管在很多方面有所不同,而且对于诸如滤波和报警、选择性以及外部积分反馈等功能都有不同的功能块,但是这个基本算式实际上是通用的。除了控制功能外,一个DCS应用平台还可以提供各种各样的、可用作“功能块”算法的其它有用功能。设计一套传统的控制系统,从本质上说,就是“输入输出信号的互连”和“适用功能”的安装集合。对以上这些软硬件结构进行组态和文件归档的软件工具,其功能开发一定是完善的、**的。
  在“模糊控制”和“专家系统”中应用的“规则”,其实也是一些重复执行的算法,只不过是以“语言和数值相结合的混合方式”来表达的。一个应用在温度控制规则上的简例如下:
  “如果测量到的温度低于设定值以下超过5°F,则将蒸汽阀门开到10%。”
  就此规则本身而言,是简单且**的。但同时它又是不完整的,其定义的范围**于一种情况,而留下了大量的相关问题未予以明确的回答,比如:
  ■ 当控制误差小于5°F时,该如何操作?
  ■ 当控制误差大到什么程度时,才可以对控制阀采取更大的动作?
  ■ 当测量值大于目标设定值时,该如何操作?
  另外,还有大量的操作性的和界面性的问题没有解决,诸如:
  ■ 操作工如何为温度回路输入目标设定值?
  ■ 对于整定好的系统,其响应速度该是如何?
  ■ 操作工如何手动控制输出给调节阀的信号?
  一个完整的控制方案可能需要数以百计的规则,以便涵盖应用中可能遇到的各种情况,并且还要包含每种情形所需的功能。在任何情况下,一套基于规则的控制系统都是以定期的时间间隔来执行整个规则库的,来决定下一步该干什么。
  一般而言,基于规则的控制系统可以粗分为两大类:“模糊逻辑系统”和“专家系统”。这两种系统都提供了必要的手段,可以将“非数学的概念和条件”整合进控制系统的解决方案中。“模糊逻辑系统”是一个数学与非数学概念的混合体,而“专家系统”几乎一直是在一个“为处理语言而设计”的环境中开发的。
  有关“模糊逻辑系统”和“专家系统”的技术细节,有很多不错的参考资料,以下的链接就给各位提供了一个清单,其中列出了模糊控制的一般信息来源和相关的研究机构名称:http://www.cse.dmu.ac.uk/~rij/general.html。
  模糊逻辑的概念
  人的认知和判断往往并不**。人的一个典型想法可能就是一个条件语句,例如:
  “假如产品的温度低,并且产量也低,那么将蒸汽阀门稍微开大一点。假如产品的温度低,但产量高,那么将蒸汽阀门多开大一点。”
  这样一种语句包含了几种不够**的概念,比如像“低”、“大”,对人而言,这种定义是由其经验转化而来的。模糊逻辑就是为了在过程控制系统中不必依赖于经验、就能应用这些规则而开发的方法。
  *后,我们还需特别提到一些事情。“模糊逻辑控制技术”的基本贡献就是将“模糊化决策的概念”与“**的控制测量和控制输出动作”结合在一起。以上功能是通过模糊控制系统的三个组成部分来实现的:
  ■ 一个“模糊化接口”,将**的过程测量值转化成“模糊化输入变量”;
  ■ 一个“推理引擎”,能够用“模糊化输入变量”来执行逻辑条件测试,以生成“模糊化输出变量”;
  ■ 一个“反模糊化接口”,将“模糊化输出变量”转化成**的控制输出动作。


  模糊化:在物理领域,过程变量是以带有工程单位的**数值形式来测量的,比如°F。但在模糊控制领域中,过程变量是以相对的条件描述来表达测量值的,例如高,低,或正常。这些“条件描述”涵盖了非常广的数值范围,并且不同的“条件描述”所涵盖的范围可以重叠。图1模糊化函数说明了一个“当测量温度为130°F且温度范围在50-150°F时,如何进行模糊化”的简例。 


图1:“修改常数”是一种对模糊逻辑控制系统的性能进行细调的方法。


  当测量值已经到达量程的限值时,该测量数值被定义成完全的“低”或完全的“高”。如介于高低限之间,则每种情况均被定义成部分的“低”、“高”或“正常”。假设现在的温度测量值是130°F,应该定义为值得关注的“高”。很明确的是,此测量条件介于量程范围的0~1(0%~100%)以内,所以,130°F这个值应该定义为0.85权数的“高”,0.2权数的“正常”,0.075权数的“低”。这些权值就是对于每一种定义条件的隶属度,也就是温度测量的模糊化输入值。
  给每一种条件定义隶属度的线性或非线性曲线,即被称为隶属函数。该曲线也可以使用一些能够决定曲线形状的常数来进行数学意义上的表达。改变这些常数也就改变了模糊化函数的特性,同时,这种修改常数的方法也是对模糊逻辑控制系统的性能进行细调的一种手段。
  推理功能:“推理引擎”以一种数学化的方法,用上述已经模糊化的输入值来评估定义好的逻辑条件语句。诸如‘与’、‘或’以及‘非’这样的逻辑操作,它们被用来定义“如何将不同的模糊化变量结合起来,以生成数字式的计算结果”。例如,“模糊推理引擎”可以通过获取“温度低”与“流量低”这两种条件的隶属度权值中的*小值,来对条件子句“如果产品温度低,并且产量也低”进行评估。(即系统先将两个条件中隶属度权值较小的进行评估,如果这个隶属度较小的条件都可以达到原先定义的要求,那么另外一个隶属度权值较大的条件更可以达到要求。“模糊推理引擎”有时是用这种方法来实现逻辑‘与’运算功能)。“模糊推理引擎”还要进一步评估规则库中的其它条件子句,以获得“能够代表大量而又必需的变化数值”的模糊变量。
  反模糊化:模糊控制运算的*后一步就是“将模糊推理生成的模糊输出再进行反模糊转化,以重新生成一个**的控制输出信号”。每种条件子句都需要相应的控制作用输出值,而该输出值无论系统的控制误差是在哪个方向上,都可以用模糊化变量来进行量化,并且此模糊化变量又是以‘部分大’、‘部分小’的隶属度权数来表达的。以上这个处理过程与测量值的处理过程一样。
  “反模糊化”功能块的处理方式如下:先将这些权值进行整合处理后,再生成单一的输出值。这个输出值就是*终送往末端执行机构的信号。
  设计一个应用
  “模糊化、推理和反模糊化功能”是模糊逻辑控制中*容易混淆的部分,但是这些细节对于模糊控制系统的性能而言,并非是*为关键的。另外几种基本因素对模糊控制的性能和复杂性的影响更大。因此,在实际应用中就不可避免地必须对系统的性能和复杂性有所取舍。
  变量的类型:“模糊决策逻辑”对于过程变量是以“条件判断语句”的方式来表达的。这种方式无法提供更为高阶的数**算功能,比如积分和微分功能,甚至连更简单的‘开平方根’功能都无法实现。如果某模糊控制的逻辑设计又要使用或依靠这些功能,那么就必须在此模糊控制系统的环境以外来分别独立地完成。例如,假设一个模糊控制系统需要对过程变量的变化率有所响应,就需要先在模糊系统以外计算出过程变量的变化增量,然后再加给输入变量。
  与此情况类似的是:基于测量信号***的“条件判断语句”,也只有在系统的期望值或设定值从不改变的前提下,才是准确的。这样,我们唯有在系统以外,以独立方式来计算系统的控制误差,才能在系统的设定值改变的情况之下,仍然能够保证相应的控制精度。
  子库的数量:“过程测量值和控制输出值所涵盖的范围”可以细分成很多的子库。确定子库的数量也是模糊控制系统设计的一部分。如图1模糊化函数中的例子,就仅仅使用了三种条件:低、正常、高。但这样可能无法对各种情况进行足够细的划分—或者说不能够提供足够高的分辨率。如想划分得更细,子库家族可以包括非常低、低、正常、高以及很高。我们甚至可以用到更多的子库。
  例如像控制误差这样的变量,由于其数值既可能为正值,也可能为负值,因此就需要两种符号的子库,同时用一种子库来代表“零”。如果过程测量值偏离设定值的误差在某个方向上的分布大于另外一个方向,那么两种符号的子库的数量并不需要一定以“零”为中心对称分布。

  其实并非所有的变量都需要结合在一起来统筹考虑,整套的逻辑集合通常可以被打散细分成更多的逻辑子集。

  如果已定义子库的数量不够,并且其涵盖范围没有重叠,那么在输入变量仅有微小变化的情况下,模糊控制系统就有可能无法对此产生响应-即无法产生相应的输出变化。这种情形就如同系统末端的执行机构存在的时间滞后,并且可能导致控制系统的持续振荡。在生产过程中,当以上情况又与多重交互作用的因素同时发生时,那么一个变量的振荡就会波及到系统中其它的很多变量。

  规则库结构:定义更多的子库可以为控制决策提供更细的分辩精度。但是模糊控制系统可能存在的逻辑判断,其数量是依据于排列组合规律而增长的。例如,假设温度参数和流量参数都有5个子库,也就是每种参数都有对应于5个子库的隶属度,那么在其规则库的结构中就需定义25种组合。如增加任何一个具有5个子库的变量,则“需要在规则库中定义的状况”的数量就会上升为125。
  在控制输出方面,其信号范围也可分成一些子库。假设有3个控制输出,且每个输出又有5个子库,那么在规则库中就需要为控制输出定义125种不同的组合。
  设计规则库一般有两种办法。一种是依据于“输入变量中所有可能的组合方式”来设计规则。另外一种是依据于“输出变量中所有可能的组合方式”来设计规则。哪种方法更容易实现,这取决于受控变量与操纵变量的相对数量。前馈变量也必须计入输入变量。

  然而,依据于生产过程中各因素交互作用的关联程度大小,有时“对所有变量的各种组合都进行定义”显得并没有什么意义,事实上并非所有的变量都需要结合在一起来统筹考虑,整套的逻辑集合通常可以被打散细分成更多的逻辑子集。
  生产过程交互作用:由生产过程中不同变量交互作用而导致的问题依然存在。当该作用不仅存在,而且对生产过程有较大影响时,规则库中的逻辑结构应该考虑以下方法:即为了对不同的过程响应进行解耦,需要采取必要的协调动作。