snifer

【再说FPGA】【原创】FPGA开发中模糊控制的问题

0
阅读(4247)

 

模糊控制在FPGA开发中经常用到,借着最近ChinaAET换了界面,今天我就谈谈这个问题。

模糊(Fuzzy)控制是用语言归纳操作人员的控制策略,运用语言变量和模糊集合理论形成控制算法的一种控制。模糊控制的最重要特征是不需要建立被控对象精确的数学模型,只要求把现场操作人员的经验和数据总结成较完善的语言控制规则,从而能够对具有不确定性、不精确性、噪声以及非线性、时变性、时滞等特征的控制对象进行控制。模糊控制系统的鲁棒性强,尤其适用于非线性、时变、滞后系统的控制。模糊控制的基本结构如图1所示。

 

 1.模糊控制器的输入变量与输出变量

1)模糊控制器的输入、输出变量 

 模糊控制器是模仿人的一种控制。在对被控对象进行控制的过程中,一般根据设定值与被控量的偏差、偏差变化EC和偏差变化的速率ER进行决策。人对偏差最敏感,其次是偏差的变化,再次是偏差变化的速率。因此,模糊控制器的输入变量通常取、和EC或者, ECER,分别构成所谓一维、二维和三维模糊控制器。一维模糊控制器的动态性能不佳,通常用于一阶被控对象,二维模糊控制器的控制性能和控制复杂性都比较好,是目前广泛采用的一种形式。并且,一般选择增量算法作为模糊控制器的输出变量

   3)变量的模糊量

某个变量变化的实际范围称为该变量的基本论域。记偏差的基本论域为,偏差变化的基本论域为,模糊控制器的输出变量(系统的控制量)的基本论域为。显然,基本论域内的量是精确量,因而模糊控制器的输入和输出都是精确量,但是模糊控制算法需要模糊量。因此,输入的精确量(数字量)需要转换为模糊量,这个过程称为模糊化Fuzzification);另一方面,模糊算法所得到的模糊控制量需要转换为精确的控制量,这个过程称为清晰化或者反模糊化Defuzzification)。

比较实用的模糊化方法是将基本论域分为n个档次,即取变量的模糊子集论域为

 

从基本论域到模糊子集论域的转换公式为

                                       

增加论域中的元素个数可以提高控制精度,但增大了计算量,而且模糊控制效果的改善并不明显。一般选择模糊论域中所含元素的个数为模糊语言词集总数的两倍以上,以确保各模糊集能较好地覆盖论域,避免出现失控现象。例如在选择上述7个词汇的情况下,可选择EEC的论域均为

    

  选择模糊控制器的输出变量即系统的控制量U的论域为:

 

  4)隶属度

为了实现模糊化,要在上述离散化了的精确量与表示模糊语言的模糊量之间建立关系,即确定论域中的每个元素对各个模糊语言变量的隶属度。

隶属度是描述某个确定量隶属于某个模糊语言变量的程度。例如,在上述和EC的论域中,+6隶属于(正大),隶属度为1.0+5也隶属于,但隶属度要比+6差,可取为0.8+4隶属于的程度更小,隶属度可取为0.4;显然-60就不隶属于了,所以隶属度取为0

确定隶属度的值要根据实际问题的具体情况而定。实验研究结果表明,人进行控制活动时的模糊概念一般可以用正态型模糊变量描述。下面给出常用的确定模糊变量隶属度的赋值表。 

2.建立模糊控制规则

模糊控制是语言控制,因此要用语言归纳专家的手动控制策略,从而建立模糊控制规则表。手动控制策略一般都可以用条件语句加以描述。条件语句的基本类型为

 if  A  or  B  and  C  or  D  then  U

 

下面介绍一种根据系统输出的误差及误差的变化趋势,消除误差的模糊控制规则。该规则用下述21条模糊条件语句来描述。

[1]if E = NB or NM and EC = NB or NM then U = PB

[2]if E = NB or NM and EC = NS or  O then  U = PB

[3]if E = NB or NM and EC = PS then  U = PM

[4]if E = NB or NM and EC = PM or PB then  U = O

[5]if E = NS and EC = NB or NM then  U = PM

[6]if E = NS and EC = NS or O  then  U = PM

[7]if E = NS and EC = PS then  U = O

[8]if E = NS and EC = PM or PB then  U = NS

[9]if E = NO or  PO and EC = NB or NM then U = PM

[10]if E = NO or PO and EC = NS then U = PS

[11]if E = NO or PO and EC = O  then U = O

 [12]if E = NO or PO and EC = PS then U = NS

[13]if E = NO or PO and EC = PM  or PB then U = NM

[14]if E = PS and EC = NB or NM then U = PS  

[15]if E = PS and EC = NS then U = O  

[16]if E = PS and EC = O or PS then  U = NM

[17]if E = PS and EC = PM or PB then U = NM

[18]if E = PM or PB and EC = NB or NM then U = O

[19]if E = PM or PB and EC = NS then U = NM

[20]if E = PM or PB and EC = O or PS then  U = NB

[21]if E = PM or PB and EC = PM or PB then U = NB

3.模糊关系与模糊推理

模糊控制规则实际上是一组多重条件语句,可以表示为从偏差论域到控制论域的模糊关系矩阵  ,通过偏差的模糊向量  和偏差变化的模糊向量   ,与模糊关系矩阵  的合成进行模糊推理,得到控制量的模糊向量,然后采用反模糊化方法将模糊控制向量转换为精确量。

根据模糊集合和模糊关系理论,对于不同类型的模糊规则可用不同的模糊推理方法。下面仅介绍其中的对if A then B类型的模糊规则的推理。

4.模糊控制向量的模糊判决

由上述得到的控制量是一个模糊集合,需要采用反模糊化方法将模糊控制项转换为精确量。

 

掌握了这样的理论,在FPGA的开发中会如虎添翼。