资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,基于单片机的液位模糊控制器的设计,液位控制由于其应用极其普遍,种类繁多,其中不乏一些大型的复杂系统,譬如在石油化工等工业生产中。它主要有以下几个特点,:1,、时滞性很大。在大型、复杂的液位控制系统中,当改变进出容器的液体流量来控制液位时,控制效果在较长的时间后才能得到体现,这会使得最后的稳态误差较大,液位在期望值附近波动。,2,时变性。液位控制一般是通过控制液体流入量的大小来控制液位的,流出量是根据后续工艺生产的需求而调节,这种需求的数量和速度是在不断变化的。,3,非线性。容器内液体流出量不仅随后续工艺生产需求变化,即使在控制阀门保持不变的情况下,实际的流出量也随着液位高度的变化而发生一种非线性的变化。这几个特点,都严重影响,PID,控制的效果,当实际生产对控制有较高的性能指标要求时,就需要将智能控制方法引入到液位控制系统中来。,模糊控制的基本原理,模糊控制属于智能控制的范畴,它是以模糊数学和模糊逻辑为理论基础、模仿人的思维方式而统筹考虑的一种控制方式。它是以模糊集合论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制。模糊控制模仿人的思维方式,计算控制量时并不需要参数的精确量,而是以参数的模糊信息为基础,通过模糊推理得到控制量的模糊形式,然后再经过反模糊化处理输出具体的控制量。其控制方框图如下图,1,所示,图,1,模糊控制原理图,模糊控制算法的四个步骤,根据本次采样得到的系统的输出值,计算所选择的系统的输入变量;,将输入变量的精确值变为模糊量;,根据输入变量,(,模糊量,),及模糊控制规则,按模糊推理合成规则计算控制量,(,模糊量,),;,由上述得到的控制量,(,模糊量,),计算精确的控制量。,基于单片机的液位模糊控制器的设计,一,.,模糊控制器的设计的基本原理,第一步:在采样时刻,采样系统的输出值,然后根据所选择的系统的输入变量来进行计算,得到输入变量的具体值。一般系统通常选择误差及误差的变化情况作为输入变量。,第二步:将输入变量的精确值变为模糊量。当然,在这之前需要先确定模糊变量的基本论域、模糊子集论域、模糊词集及隶属函数。系统中输入变量的实际变化范围称为变量的基本论域,对于模糊控制输入所要求的变化范围称为它们的模糊子集论域。模糊子集论域的确定和下一步的模糊推理中需要的模糊值有关。模糊值可用模糊词集来表示,人们对数值的模糊表示一般可用大、中、小加以区别,再加上正负模糊词集就可表示为:,负 大,负中,负小,零,正小,正中,正大,一般系统的输入变量的模糊子集论域所含的元素个数应为词集总数的两倍以上,这样才能确保模糊词集能较好地覆盖,模糊子集论域,避免出现失控现象。针对上面选用的模糊词集,模糊子集论域可选择为,-6,,,-5,,,-4,,,-3,,,-2,,一,1,0,1,2,3,4,5,6,对于一个模糊控制系统,它的控制器输入变量的实际范围一般不会正好和模糊子集论域一致,这时就需要进行转化。假如基本论域为,a.b,,模糊子集论域为,m,n,,则将一个精确输入量,x,转化到模糊子集论域中的变量,Y,是通过以下公式来实现的。,y=(,n-m,)*x-(b-a)/2/(b-a),(,1,),模糊 子 集 论域和模糊词集之间是通过隶属函数来联系的。模糊变量的隶属函数就和普通变量的特征函数一样,但它的取值范围并不是单纯的,0,或,1,,而是在,0,1,之间连续变化。隶属函数的形状常采用梯形、三角形、钟形、高斯形等。在实际应用中,为方便起见,采用三角形的较多。,这一步的工作可以用下图表示:,输入变量精确值 模糊子集论域中的变量 输入变量模糊值,公式,1,隶属函数,第三步:根据上一步得到的输入变量,(,模糊量,),及模糊控制规则,按模糊推理合成规则计算控制量,(,模糊量,),。模糊控制规则是根据操作者的经验或专家的知识,用,if,,,then,描述的一组条件语句。,第四步:控制量的模糊量转化为精确量。上一步虽然通过模糊推理得到了控制量,但它是模糊形式的,而真正的执行机构不能接受模糊量,只能接受精确量,所以必须把控制量由模糊形式转化为精确形式,这一步也叫做解模糊化。,二,.,模糊控制器的设计过程,模糊控制器的结构设计,模糊控制器的结构设计是指确定模糊控制器的输入变量和输出变量。模糊控制器输入变量的个数称为模糊控制器的维数,目前广泛采用的均为二维模糊控制器,.,在此我们也选择这一结构形式。我们设计的是液位模糊控制器,就选择液位的,误差和误差的变化作为模糊控制器的输入变量,分别记作,E,Ec,。模糊控制器的输出应该是用来控制液位的,液位实际上就是受流入量和流出量的影响,而流出量是根据后续工艺不停的变化,是不可控的。所以模糊控制器的输出就只有一个,作为控制流入量执行机构的控制量,记作,U,。对于模糊控制器的输出,可以有两种形式,一种是绝对的控制量输出,另一种是增量方式输出。在本次设计的模糊控制器中,我们选择了绝对值输出方式,。,模糊控制规则的设计,控制规则的设计一般包括三部分内容,:,选择描述输入输出变量的词集,定义各模糊变量的模糊子集和建立模糊控制器的控制规则。下面就分别来进行说明:,选择描述输入、输出变量的词集,对于液位误差、误差变化率及控制量我们选用相同的模糊词集,都用自然语言大、中、小来进行描述,将大、中、小再加上正、负两个方向并考虑变量的零状态,共有七个词汇,即,负 大,负 中,负小,零,正小,正中,正大,为叙述方便,用英文字头缩写表示为,N B,N M,N S,Z E,PS,PM,P B,其中,,N=Negative,P=Positive,B=Big,M=Medium,S=Small,ZE=Zero,。,定义各模糊变量的模糊子集,定义 一 个 模 糊 子集,实际上就是要确定模糊子集隶属函数曲线的形状。对于输入变量误差和误差变化率,我们选用的模糊子集论域和隶属函数曲线都完全一致,所以在此就只针对误差的模糊子集的确定来进行说明。,误 差的 模 糊子集论域取,-6,6,之间,然后离散化,只取整数,所以它的模糊子集论域可表示为,-6,,,-5,,,-4,,,-3,,,-2,,,-1,0,1,2,3,4,5,6,其中有,13,个元素,而模糊词集中有,7,个元素,基本满足了二倍的关系,可以保证不会出现失控现象。,为了计算方便,将隶属函数曲线都选为三角形形式,而且根据经验,在靠近,0,附近,三角形的形状选的窄一些,这样有利于提高灵敏度,抑制超调。在远离,0,的地方,三角形的形状选的宽一些,因为这时候误差还很大,不会引起超调。至于三角形具体形状及位置的有关参数,是根据经验初步确定的,在控制器调试的时候还需要对这些进行反复的修改。图,2,是误差的各模糊词集的隶属函数曲线,根据这个隶属函数可以得出模糊子集元素对各模糊词集的隶属程度,具体如表,1,所示,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,PB,0,0,0,0,0,0,0,0,0,0,0,0.5,1.0,PM,0,0,0,0,0,0,0,0,0,0.5,1.0,0.5,0,PS,0,0,0,0,0,0,0,0.8,0.4,0,0,0,0,ZE,0,0,0,0,0,0.1,1.0,0.1,0,0,0,0,0,NS,0,0,0,0,0.4,0.8,0,0,0,0,0,0,0,NM,0,0.5,1.0,0.5,0,0,0,0,0,0,0,0,0,NB,1.0,0.5,0,0,0,0,0,0,0,0,0,0,0,表,1,误差的模糊变量的赋值表,图,2,误差的隶属函数,对于模糊控制器的输出量,虽然它是执行机构的控制量,但还需经过,D/A,的转换。因为计算机输出的是数字量,而执行机构只能接受模拟量。在本次设计中,我们用了,AD420,来实现这样的功能,所以说模糊控制器的输出实际上是作为,AD420,的输入。虽然,AD420,的输入是,16,位的数字量,但在设计过程中,我们先采用,8,位的方式来进行处理,(,具体操作方法在下节说明,),,所以它的范围基于,CAN,总线的液位模糊控制系统的设计及研究是,0-FFH,,这就是输出量的模糊子集论域。模糊词集也取,7,个,如下所示,负 大,负 中,负小,零,正小,正中,正大,即,N B,N M,N S,Z E,P S,PM,P B,对于输出量,也采用三角形形状的隶属函数曲线,其中的有关参数也是根据经验初步确定,尚待在调试时进行修正,具体如图,3,所示,建立模糊控制器的控制规则,根据实际控制经验,建立如表,2,所示模糊控制规则,图,3,输出的隶属函数,模糊推理及其模糊量的非模糊化方法,模糊推理是从一些模糊前提条件推导出某一结论,目前模糊推理有十几种方法,大致分为直接法和间接法二大类。其中的,MIN-MAX,合成法属于直接推理法,应用的比较多,我们在此也应用这种推理方法。这种方法也叫做,Mamdani,推理法,其具体推理过程如下。,NB,NM,NS,ZE,PS,PM,PB,NB,NB,NB,NB,NM,NS,NS,ZE,NM,NB,NB,NM,NS,NS,ZE,PS,NS,NB,NM,NS,NS,ZE,PS,PS,ZE,NM,NS,NS,ZE,PS,PS,PM,PS,NS,NS,ZE,PS,PS,PM,PB,PM,NS,ZE,PS,PS,PM,PB,PB,PB,ZE,PS,PS,PM,PB,PB,PB,表,2,模糊控制规则表,假如有输入变量,E,E c,的值分别是,x,y,,对应的,n,条规则为,:,If E=A and,Ec,=B then u=C,其中,,A,i,,,B,i,,,C,i,,分别表示,E,Ec,U,的某一个模糊词集元素。则每个规则推出的结果为:,最终的推理出的输出变量模糊集为,C,,隶属度表示如下,:,对于解模糊化,采用重心法。具体计算公式如,2,所示:,(2),由于在本次设计的液位模糊控制器中,在程序实现时采用的是查表的方法,所以在此根据公式,2,计算出模糊控制查询表如表,3,所示,:,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,-6,30,30,30,33,34,45,55,6A,72,71,78,7B,80,-5,30,30,30,37,3B,48,5E,6C,71,74,7A,80,84,-4,30,30,30,3B,44,50,6A,6A,72,76,80,85,88,-3,33,37,3B,4E,57,64,70,76,7B,80,89,8B,8E,-2,34,3B,44,57,60,6A,70,78,80,84,8E,8E,8E,-1,45,48,50,64,6A,72,74,80,88,8A,95,94,95,0,55,5E,6A,70,70,74,80,8C,90,90,95,A1,AA,1,6A,6C,6A,76,78,80,8C,8D,95,9C,B2,BE,C2,2,72,71,72,7B,80,88,90,95,A2,AA,C2,CE,DA,3,71,74,76,80,84,8A,90,9C,AA,B5,CF,D4,DA,4,78,7A,80,89,8E,95,95,B2,C2,CF,E0,E0,E0,5,7B,80,85,8B,8E,94,A1,BE,CE,D4,E0,E0,E0,6,80,84,88,8E,8E,95,AA,C2,DA,DA,E0,E0,E0,表,3,模糊控制查询表,三,.,模糊控制器的程序实现,对于模糊控制算法的软件实现,可以根据输入变量和模糊控制规则进行实时计算,也可以先离线计算好,然后在控制时直接查表来得到控制量。,AT89S51,的资源分配,对于,AT89S51,,它本身的中断资源就比较少,为了节省这些资源,按键输入采用,1/0,口查询的方式,中断资源分配情况如下,:,外部中断,0 INT0 CAN,总线接收,定时器,0 T0,设置为,50ms,的定时器,用来产生程,序中所需要的有关时间及采样周期,定时器,1 T1,为串行口的通讯产生时钟,控制波特率,串行口
展开阅读全文