控制算法(二)—— 模糊控制算法

       模糊控制是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制方法,它是从行为上模仿人的模糊推理和决策过程的一种智能控制算法。模糊控制首先将操作人员或专家经验编成模糊规则,然后将来自传感器的实时信号模糊化,将模糊化后的信号作为模糊规则的输入,完成模糊推理,将推理后得到的输出量加到执行器上。

        模糊控制的过程如下图所示。

        上图中,包括了模糊控制的主要过程。关于模糊控制的基本原理,在很多文章中都有介绍,但一般介绍都比较抽象,读者不容易理解。在本文中,我们通过一个简单的例子来进行介绍。

1、模糊化

        以水温的电加热为例,我们对模糊控制进行介绍。在一个容器中装满了水,我们要将水维持在一个恒定的温度,比如:60度。我们控制水温的工具是电加热器。在这个控制系统中,控制算法的输入为温度的偏差,即期望温度与实际温度的插,我们假设这个偏差的范围为[-20, 20],我们称它为基本论域。算法的输出为电加热的功率,我们假设它的基本论域为[0, 2000],单位是瓦。

        我们取输入和输出的模糊集合分别为{NB, NS, O, PS, PB},{NB, NS, O, PS, PB}。其中NB表示负大,NS表示负小,O表示零,PS表示正小,PB表示正大。另外,我们取输入和输出的模糊子集论域为{-4,-3,-2,-1,0,1,2,3,4},{-3,-2,-1,0,1,2,3}。我们可以得出一般的公式,由基本论域到[a, b]模糊子集论域[-n, n]的转换关系:

y=\left ( x-(a+b)/2 \right )\cdot 2n/(b-a)

        通过上面的公式我们可以将基本论域上的精确至映射到模糊子集论域内,接下来我们要通过隶属度关系计算出我们的输入或输出变量对模糊集合的隶属度,这个过程称为模糊化。隶属度关系我们一般通过隶属度图或隶属度表格来表示。如下图所示,为输入的隶属度图。

用表格表示,如下所示。

 -4-3-2-101234
PB00000000.51
PS000000.510.50
O0000.510.5000
NS00.510.500000
NB10.50000000

同样,输出的隶属度关系,用表格表示为

 -3-2-10123
PB000000.51
PS00000.50.50
O000.510.500
NS00.50.50000
NB10.500000

有了上边的关系,我们就可以将控制算法的输入进行模糊化。比如我们期望的温度是60度,实际的温度为45度,则温度偏差为15度,则对应的模糊子集论域上的取值为:

y=(15-(-20+20)/2)\cdot 2\cdot 4/(20+20)=3

我们从表中可以看到,3对应PB的隶属度为0.5,PS的隶属度为0.5。这样我们完成了偏差15的模糊化。

2、建立模糊控制规则

        模糊规则是模糊控制算法的核心,它决定了算法的控制规则。在我们这个例子中,如果偏差很大,我们模糊化后为PB,则实际温度比期望温度低很多,这是我们需要用很大的功率来加热,所以控制量为PB;如果实际温度已经达到了期望温度,则输入的温度偏差模糊化后为O,这时,我们为了维持温度,需要用中等的功率来维持温度,所以控制量为O。如果输入量为NB,相应的控制量为NB。所以根据这个原则,我们可以得到模糊控制规则,如下表。

if(若)NBeNSeOePSePBe
then(则)NBuNSuOuPSuPBu

3、求模糊关系

      模糊控制规则是一个多条语句,它可以表示为EXU上的模糊子集,即模糊关系R,它通过下面的式子计算。

R=\left ( NBe\cap NBu \right )\cup \left ( NSe\cap NSu \right )\cup \left ( Oe\cap Ou \right )\cup \left ( PSe\cap PSu \right )\cup \left ( PBe\cap PBu \right )

其中,\cap表示求交集,对于两个数值来说,就是取数值小的数值。\cup表示求并集,对于两个数值来说就是取数值大的数值。NBe、NBu等为最上面的表格中的隶属度的向量,我们进行计算得到下面的结果。

NBe\cap NBu=\begin{bmatrix} 1\\ 0.5\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0\end{bmatrix}\cap \begin{bmatrix} 1 & 0.5 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}=\begin{bmatrix} 1 & 0.5 & 0 & 0 & 0 & 0 & 0\\ 0.5 & 0.5 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}

NSe\cap NSu=\begin{bmatrix} 0\\ 0.5\\ 1\\ 0.5\\ 0\\ 0\\ 0\\ 0\\ 0\end{bmatrix}\cap \begin{bmatrix} 0 & 0.5 & 0.5 & 0 & 0 & 0 & 0 \end{bmatrix}=\begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0.5 & 0.5 & 0 & 0 & 0 & 0\\ 0 & 0.5 & 0.5 & 0 & 0 & 0 & 0\\ 0 & 0.5 & 0.5 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}

Oe\cap Ou=\begin{bmatrix} 0\\ 0\\ 0\\ 0.5\\ 1\\ 0.5\\ 0\\ 0\\ 0\end{bmatrix}\cap \begin{bmatrix} 0 & 0 & 0.5 & 1 & 0.5 & 0 & 0 \end{bmatrix}=\begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0.5 & 0.5 & 0.5 & 0 & 0\\ 0 & 0 & 0.5 & 1 & 0.5 & 0 & 0\\ 0 & 0 & 0.5 & 0.5 & 0.5 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}

PSe\cap PSu=\begin{bmatrix} 0\\ 0\\ 0\\ 0\\ 0\\ 0.5\\ 1\\ 0.5\\ 0\end{bmatrix}\cap \begin{bmatrix} 0 & 0 & 0 & 0 & 0.5 & 0.5 & 0 \end{bmatrix}=\begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0.5 & 0.5 & 0\\ 0 & 0 & 0 & 0 & 0.5 & 0.5 & 0\\ 0 & 0 & 0 & 0 & 0.5 & 0.5 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}

PBe\cap PBu=\begin{bmatrix} 0\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0.5\\ 1\end{bmatrix}\cap \begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 0.5 & 1 \end{bmatrix}=\begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0.5 & 0.5\\ 0 & 0 & 0 & 0 & 0 & 0.5 & 1 \end{bmatrix}

将上面的5个矩阵求并集计算得到模糊关系如下。

R=\begin{bmatrix} 1 & 0.5 & 0 & 0 & 0 & 0 & 0\\ 0.5 & 0.5 & 0.5 & 0 & 0 & 0 & 0\\ 0 & 0.5 & 0.5 & 0 & 0 & 0 & 0\\ 0 & 0.5 & 0.5 & 0.5 & 0.5 & 0 & 0\\ 0 & 0 & 0.5 & 1 & 0.5 & 0 & 0\\ 0 & 0 & 0.5 & 0.5 & 0.5 & 0.5 & 0\\ 0 & 0 & 0 & 0 & 0.5 & 0.5 & 0\\ 0 & 0 & 0 & 0 & 0.5 & 0.5 & 0.5\\ 0 & 0 & 0 & 0 & 0 & 0.5 & 1 \end{bmatrix}

4、模糊决策

        模糊控制器的输出为误差向量和模糊关系的合成:

u=e\circ R

例如,如果误差为PS,则对应的向量

e=\begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 0.5 & 1 & 0.5 & 0 \end{bmatrix}

u=e\circ R=\begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 0.5 & 1 & 0.5 & 0 \end{bmatrix}\circ \begin{bmatrix} 1 & 0.5 & 0 & 0 & 0 & 0 & 0\\ 0.5 & 0.5 & 0.5 & 0 & 0 & 0 & 0\\ 0 & 0.5 & 0.5 & 0 & 0 & 0 & 0\\ 0 & 0.5 & 0.5 & 0.5 & 0.5 & 0 & 0\\ 0 & 0 & 0.5 & 1 & 0.5 & 0 & 0\\ 0 & 0 & 0.5 & 0.5 & 0.5 & 0.5 & 0\\ 0 & 0 & 0 & 0 & 0.5 & 0.5 & 0\\ 0 & 0 & 0 & 0 & 0.5 & 0.5 & 0.5\\ 0 & 0 & 0 & 0 & 0 & 0.5 & 1 \end{bmatrix}=\begin{bmatrix} 0 & 0 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 \end{bmatrix}

5、控制量的反模糊化

        由上面的计算得到u=\begin{bmatrix} 0 & 0 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 \end{bmatrix}

这几个系数,对应于模糊子集论域,一般表示为

u=\frac{0}{-3}+\frac{0}{-2}+\frac{0.5}{-1}+\frac{0.5}{0}+\frac{0.5}{1}+\frac{0.5}{2}+\frac{0.5}{3}

注意这个式子只是一个表示方式,不是除的计算。

一般,我们采用重心发来计算控制量的模糊值,如下进行计算

U=\frac{\sum x_{i}\mu _{N}\left ( x_{i} \right )}{\sum \mu _{N}\left ( x_{i} \right )}=\frac{-0.5\ast 1+0.5\ast 0+0.5\ast 1+0.5\ast 2+0.5*3}{0.5+0.5+0.5+0.5+0.5}=1

注意这个u的值是模糊子集论域中的值,它的取值范围是[-n, n],用项目的公式,可以将它转换为[a, b]空间上。

u=\frac{a+b}{2}+\frac{b-a}{2n}U

在这个示例中,a=0,b=2000,n=3,U=1。代入公式计算得到u=1333,即需要用1333瓦的功率来进行加热。

 

 

 

 

  • 37
    点赞
  • 389
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
SCDN(Self-Constructing Fuzzy Neural Network Decoupling control)是一种模糊控制算法,它结合了模糊逻辑和神经网络的方法,能够有效地控制复杂和非线性系统。 SCDN的算法原理如下:首先,通过对系统进行建模,将其分解为多个子系统。然后,使用模糊逻辑控制器对每个子系统进行建模和控制。模糊逻辑控制器是一种基于经验和推理的控制系统,通过定义模糊规则和模糊集合,将输入和输出之间的关系建立起来。接着,利用神经网络对模糊控制器进行优化和自适应学习。神经网络能够通过训练学习到系统的模糊规则和参数,从而提高控制精度和鲁棒性。 SCDN算法具有以下几个显著特点:首先,它能够应对非线性和复杂系统的控制问题,提供良好的控制效果。其次,SCDN算法具有自适应学习能力,在实际应用中能够对系统进行在线优化和参数调整。此外,SCDN算法结合了模糊控制和神经网络的优势,并且能够通过不断的学习和调整,提高系统的性能和鲁棒性。最后,SCDN算法具有较强的稳定性和鲁棒性,在面对系统噪声、干扰和变化时,能够保持控制稳定性和准确性。 总之,SCDN是一种基于模糊逻辑和神经网络的控制算法,在非线性和复杂系统的控制中表现出良好的性能。它通过模糊控制器和神经网络的协同作用,能够实现系统的优化和自适应学习,提高控制的准确性和鲁棒性。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值