APP下载

模糊控制技术单片机软件实现方法研究

2011-10-27南京铁道职业技术学院黄克亚

河南科技 2011年5期
关键词:输入量输出量论域

南京铁道职业技术学院 黄克亚

模糊控制技术单片机软件实现方法研究

南京铁道职业技术学院 黄克亚

一、光伏发电系统模糊控制方法

光伏阵列是一个强非线性系统,太阳能电池的工作情况很难用精确的数学模型来描述,因此采用模糊控制的方法来进行太阳能电池最大功率点的跟踪是非常合适的,在实际操作中采用嵌入模糊控制器的方法来实现模糊控制。模糊控制器的第n时刻的输入量为第n时刻的功率变化量E(n)和第n-1时刻的占空比步长值A(n-1),第n时刻的输出量为第n时刻的占空比步长值A(n)。通过对光伏电池输出功率P与电压V之间的特性曲线分析,并且考虑到外界环境因素(温度、日照强度)对光伏阵列输出功率的影响,得到模糊控制规则如表1所示。

表1 MPPT模糊控制规则

将语言变量E,A分别定义为8个模糊子集,其中A(n-1)和A(n)变量子集的论域相同,统一将其命名为A。

E={NB,NM,NS,NO,PO,PS,PM,PB};

A={NB,NM,NS,PS,PM,PB}。

其中NB、NM、NS、NO、PO、PS、PM、PB分别表示负大、负中、负小、负0、正0、正小、正中、正大等模糊概念。并将它们的论域规定为14个和12个等级,即:

E={-6,-5,-4,-3,-2,-1,-0,+0,+1,+2,+3,+4,+5,+6};

A={-6,-5,-4,-3,-2,-1,+1,+2,+3,+4,+5,+6}。

二、单片机系统实现模糊控制方法的探讨

1.软件总体构思。使用单片机系统实现模糊控制具有一定的难度,它是由控制算法的复杂性和单片机资源的有限性共同决定的。需要指出的是单片机最擅长是8位无符号数运算,由于模糊控制系统比较复杂,要涉及小数和负数。一种方法是通过区间变换,将数值扩大,从而避免单片机做负数和小数运算,从而获得较高的效率,但是变换过程比较麻烦,使得设计过程过于复杂,且与仿真系统难以对应。

随着存储器技术的发展和高级语言开发工具的支持,使我们有了足够的空间和效率,能够处理小数和负数运算,所以本系统没有进行论域变换而是直接处理小数和负数,使得设计更容易与仿真相对应,且连贯性较好。模糊控制主要解决论域变换,隶属函数的存储和计算,控制规则的存储和计算等一系列操作。

2.变换论域。在进入模糊计算之前,须将系统输入量功率差实际值e(n)和上次扰动步长实际值a(n-1)映射到模糊控制系统的论域值E(n)和A(n-1)上,即分别乘以功率差量化因子Ke和扰动步长量化因子Ka。Ke、Ka通过下式来确定:

3.隶属函数的存储和计算。要实现模糊控制首先就要将隶属函数存储到计算机中去,这样当系统完成物理实时采集之后,就可以计算出相应的隶属度进行下一步的计算。隶属函数最基本的形状是三角形,其在数字单片机中通常采用三点法来存储。如图1所示。

图1 三角形隶属函数存储

采用三点法存储一个隶属函数需要保存3个数据:2个数据表示三角形的底点,1个表示其顶点。对于图1所示的变量E子集NM的三角形隶属函数,A、B、C 3点的坐标分别为:A(-6,0)、B(-4.5,1)、C(-3,0)。若将A、B、C 3点的X轴坐标用XA、XB、XC来表示,以此求一个特定输入量x的隶属度U(x)时,则需要考虑以下3种情况。

(1)X≤XA或X≥XC时U(x)=0。

(2)XA<X≤XB时U(x)=(X-XA)/(XB-XA)*1。

(3)XB<X<XC时U(x)=(XC-X)/(XC-XB)*1。

由此可见,只需将A、B、C 3个点的x轴坐标值存放在单片机的内部ROM中,表示为(-6,-4.5,-3),就可以利用编程求得论域中某一特定的输入量隶属于该模糊量的隶属度。

误差E与前次步长值A(n-1)以小数形式存储并且在每一次采样周期会都被刷新,所以将其以浮点数形式存放于单片机的内部RAM中,起始地址分别为C0H和E0H。当输入变量E=-5、A(n-1)=-4则用三点法求出的模糊输入量。在内存中的存放形式如表2所示。

表2 E、A(n-1)在内部RAM中的存放形式和值

4.模糊规则存储及模糊输出计算。根据已有知识或专家经验形成控制规则表,仿真的时候直接用“IF…THEN…”语句输入控制规则即可,但是单片机在具体执行时首先是要先将控制规则存到ROM当中,运行时采样计算得到新的E和A(n-1)之后再从存储器中取出规则进行运算,最终形成输出。

(1)存储控制规则。若要存储为表1所示模糊控制规则表,可以看出整个模糊控制规则表共有48条控制规则,每一条控制规则有2个前置条件称为前件1和前件2和一个输出称为后件。在数字单片机中对输入的模糊量进行推理时,必须将所描述控制过程的控制规则都存储在单片机的内存ROM中,由于规则的数目较多,因而在单片机中必须以节省内存、便于查找为原则进行存放。

将以上控制规则存储在单片机ROM中时,可令语言变量E的取值NB、NM、NS、NO、PO、PS、PM、PB分别与数字0、1、2、3、4、5、6、7相对应。即NB≡0、NM≡1、NS≡2、NO≡3、PO≡4、PS≡5、PM≡6、PB≡7。令语言变量A的取值NB、NM、NS、PS、PM、PB分别与数字0、1、2、3、4、5相对应。即NB≡0、NM≡1、NS≡2、PS≡3、PM≡4、PB≡5。

经过这样定义后,可用4位二进制数表示输入或输出语言变量的各个取值,每条控制规则的2个前件可用1个字节来表示,其中高4位表示第1前件的模糊取值,低4位表示第2前件的模糊取值,后件用1个字节的低4位表示,高4位全部置1以标识为后件。这样1条控制规则占2个单元,表1共48条规则,占96个字节,设起始地址为0F00H。则表1的第1列的模糊控制规则存储形式如表3所示。

表3 部分模糊控制规则表在ROM中的存储形式

(2)模糊规则推理。首先从控制规则ROM存储区(0F00H)取第1条规则前件字节的高4位乘以4作为地址偏移量,然后加上模糊化后的模糊输入量E在内存RAM中存放的首地址(C0H),则可从RAM内模糊量E的存放区域中,查找出当前特定的模糊输入量E隶属该规则第1前件所取语言变量值NB的隶属度UNB(E)。同理还可查找出当前特定的步长值A(n-1)隶属该规则第2前件所取语言变量值NB的隶属度UNB(A(n-1))。

然后取2个前件的隶属度的最小值作为该条规则后件所取的语言变量值PB的隶属度,则有UPB(U)=min{UNB(E),UNB(A(n-1))}。

取规则的后件字节的低4位乘以4作为地址偏移量,加上模糊输出量的U存放区首址(设为A0H),可求得对应于后件取值为PB的隶属函数存放单元地址,最后将UPB(U)存放于该单元中。这样就完成了第1条规则的模糊推理,后面规则推理类同。当由另1条规则求得UPB(U)时,应与单元中原来的数比较,取大者存入。

用强度转移法进行模糊推理的过程,并以第1条规则为例说明该模糊推理方法的程序流程。如图2所示。

图2 强度转移法模糊推理过程

单片机通过对每一条规则用强度转移法进行推理,从而得到所有模糊输出量的隶属度,存放在RAM内模糊输出量存放区的对应单元中。根据表2提供的数据计算模糊数据输出A(n)的值如表4所示。

表4 一次推理模糊输出的值及在RAM中的存放形式

用强度转移法进行推理时,如果某条规则中有一前件的隶属度为0,则无论另一前件的隶属度为何值,其后件的隶属度都为0,即这条规则对当前模糊输出量的作用力为0。因此,对一特定输入,一般最多有4条规则推理后有效。在编程时,可以先查询规则前件隶属度是否为0,若是,则不需进行比较。这样可以提高单片机的执行速度。

5.输出量的反模糊化。在单片机中,经过模糊推理后得到的是模糊输出量及其相应的隶属度,而用于最终输出的控制量必须是一个精确量,一般都采用重心法来求取,即求出其所有模糊输出量的重心,为了简化计算过程通常把输出隶属函数定义为单点或取各输出隶属函数的中心元素来代表其模糊量的输出范围,这样可以把原来重心法的积分运算转化为求和与求商运算,大大减少了单片机的计算量,而且又保留了重心法的优点。

三、结论

论文首先给出光伏阵列最大输出功率的模糊控制方法,随后讨论了如何使用单片机编程方法实现模糊控制技术,给出模糊控制器总体框图。讨论了论域变换、隶属函数存取与隶属度计算、模糊推理、反模糊等相关内容。提供了用单片机编程实现模糊控制的完整方法。

猜你喜欢

输入量输出量论域
基于变论域模糊控制的Taylor逼近型内模PID算法
电流互感器测量结果不确定度评定
基于集成检定法的重力式自动装料衡器测量结果的不确定度评定
如东需求锐减过半,海南缩减85%! 一代苗输出量2000亿尾,未来前景看好
输入量与尿量比在深Ⅱ度烧伤患者休克预防性补液中的应用分析
词块输出量对二语写作的影响
变论域自适应模糊PID控制系统仿真与应用
双论域粗糙集在故障诊断中的应用
“大健康”论域下城市社区体育公共服务的变革
经外周动脉心输出量监测系统在临床上的应用及其评价