您的位置: 首页

采用模糊逻辑设计基于DSP发动机控制器

2010-01-16 22:44:50 来源:作者:拜伦·米勒


  模糊化

  模糊化是将有明晰数值的数据转换成模糊数据的过程。由此产生的模糊数据的转换是基于对输入变量的模糊隶属度。对于这种应用,电机控制输入变量是旋转误差 (Error)和旋转误差差值(Cerror)。旋转误差(Error)是从一个采样时间到下一个采样时间的绝对旋转速度差。同样地,旋转误差差值 (Cerror)是一个采样时间和下一个采样时间之间的旋转误差变化值。公式如下:

  旋转误差(Error)=SetSpeed(设定速度)-Cur-rentSpeed(目前速度)

  旋转误差差值(Cerror)=旋转误差(Error)-Pre-viousError(前一次误差)

  正如前面谈到的,为旋转误差(Error)变量和旋转误差差值(Cerror)变量定义了五个成员集:

1.NM:中等负值
2.NS:小负值
3.ZE:零
4.PS:小正值
5.PM:中等正值

  图1显示了为旋转误差(Error)变量和旋转误差差值(Cerror)变量定义的五个成员集。这些成员集是三角型重叠,以提供良好的响应。每一组有一个0×1AAA的最大值。


  输入变量模糊化后产生了由五部分组成的向量,这五个部分相对应于模糊化成员集的中等负值、小负值、零、小正值、中等正值。每个组件对应的Y轴的值代表该明晰输入值的隶属度。向量含有旋转误差(Error)和旋转误差差值(Cerror)模糊化值被表示为数组×1[]和X2[]。

  图2和图3图形化地显示了旋转误差[Error)和旋转误差差值(Cerror)模糊化值。



  模糊推理规则

  模糊推理规则通过操作模糊化数据来确定系统的行为。具体来说,模糊化数据对照规则表进行应用。在语言方面,这就是输入数据Error、Cerror与规则表进行比较。规则表中包含了成员集NM、NS、ZE、PS、和PM,并根据控制面来操作。输出是通过有效“推断”或“既定”的规则。推理过程的描述见如下伪代码清单:

  去模糊化

  去模糊化是将模糊数据转换成明晰数据的过程。为了这个应用目的,去模糊化后的值确定用于驱动电机的PWM信号的占空比。占空比取决于使用修改后的质心计算功能。在这里采用的去模糊方法是用质心计算函数乘以一个系数。修改后的计算也称为质心点计算函数。

  质心点的计算公式为:

  Defuzzified VaLue=∑-Y[i]XmultCoeff[l]/∑Y[i]

  其中Y[i]的i即为输出向量元素,是multCoeff[i]的输出成员集应乘以的系数。其中,i可取1~5。公式计算结果即为去模糊化后的结果。

  图4通过图形显示了被该应用使用的输出成员集与[-0x10,-0x8,0x0,0x8,0x10]系数。

  假设,y[]=[0x0,0x13F,0x196A,0x0,0x0],则去模糊输出值如下:

  Defuz=0×(-16)+319×(-8)+6506×(0)+0×(8)+0×(16)/0+319+6506+0+0=-2552/6825=“-0.37391

  图5显示为输出向量y[]质心点的计算结果。

相关文章

深度阅读

热点活动

热点专题更多>>

英特尔2011教育峰会

在今年的峰会上,英特尔与国内近百所高校的专家学者们分享了制程工艺、高性能……

论坛精华更多>>

强烈推荐最新的一本 LabVIEW高级教程(2007...
【电子书】电磁测量原理及应用【PDG格式】