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

article/2025/9/25 11:57:17

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

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

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

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瓦的功率来进行加热。

 

 

 

 


http://chatgpt.dhexx.cn/article/5PQcMF2W.shtml

相关文章

模糊控制(FL)算法

模糊控制算法(理论知识) 模糊(Fuzzy)控制是用语言归纳操作人员的控制策略,运用语言变量和模糊集合理论形成控制算法的一种控制。模糊控制的最重要特征是不需要建立被控对象精确的数学模型,只要求把现场操作人员的经验和数据总结成…

【学习笔记】模糊控制算法

本文目录 0. 前言1. 概述2. 模糊集合2.1 集合和论域2.2 模糊集合的概念2.3 模糊集合的表示方式2.4 模糊集合的运算 3. 模糊关系与模糊关系合成3.1 笛卡尔积3.2 关系与模糊关系3.3 模糊关系的运算3.4 模糊关系合成3.5 模糊变换 4. 模糊推理4.1 模糊推理规则【重要!】…

图像处理——乘性噪声和加性噪声

加性噪声一般指热噪声、散弹噪声等,它们与信号的关系是相加,不管有没有信号,该类噪声是一直存在的。一般通信中把加性随机性看成是系统的背景噪声。 乘性噪声一般由信道不理想引起,它们与信号的关系是相乘,信号在它在…

给数据增加噪声

例如在POS-bp算法中增加噪声,优点:使输出更光滑从而提升网络的推理能力,提升泛化能力。添加样本噪声,使线条更光滑。 这个地方是添加了一个正太分布均值为0,方差为0.01的1xSamLnNum的随机数矩阵。

噪声模型

常见的噪声模型有(z是噪声值,m表示均值,s2表示方差): 1、高斯噪声:ma , s2b^2 2、均匀分布噪声 3、伽马噪声 mb/a , s2b/a^2 4、指数分布噪声 m1/a , s21/a^2 5、瑞利噪声 : 6、椒盐噪声 其中盐表示亮点,椒表示暗点。 几…

噪声系数

噪声系数 噪声分类噪声系数的定义电阻(无源器件)的输出噪声功率半导体器件放大器噪声因子噪声系数NF无源器件的噪声系数 噪声系数的级联噪声系数对系统的影响 噪声分类 热噪声(Thermal Noise):最基本的一种噪声,就像冬日里北方的霾一样,可以说…

图像随机加噪声

对于图像,一般做图像增强都是得要求算法/模型去噪效果好。那么对应图像,原始图像一般多多少少有噪声,通过我们自己的创新算法就可以去噪。也可以有很多客观指标来评价去噪后图像的效果的好坏。 下图为我自己的算法处理的图像,包…

向数据中添加高斯噪声

什么是高斯噪声 高斯噪声既是符合高斯正态分布的误差。一些情况下我们需要向标准数据中加入合适的高斯噪声会让数据变得有一定误差而具有实验价值。高斯噪声还有一些其他用途但是我不太了解,这里我是为了实现多项式拟合正弦曲线,生成数据时,…

Python 加性高斯白噪声 AWGN

高斯白噪声 概念 加性高斯白噪声(Additive White Gaussian Noise,简写AWGN) "白"是指功率谱恒定; 高斯指的是概率p (x)满足高斯函数。 在百度百科中的概念是,加性高斯白噪声在通信领域中指的是一种各频谱分…

常见的噪声分类

常见的噪声:高斯、泊松和椒盐噪声以及代码实现 转载的地址:浅析“高斯白噪声”,“泊松噪声”,“椒盐噪声”的区别 - 简书 转载的地址:散粒噪声 shot noise 泊松噪声 - sunny,lee - 博客园 转载的地址:图像…

噪 声

噪 声 一. 噪声定义 从物理学的角度来看:噪声是发声体做无规则振动时发出的声音。在图形学中,我们把各种妨碍人们对其信息接受的因素称为图像噪声 。噪声在理论上可以定义为“不可预测,只能用概率统计方法来认识的随机误差”。因此将图像噪声…

《通信原理》用matlab实现加性高斯白噪声信道实验

目录 一、实验名称 二、实验目的 三、实验原理 四、实验内容及结果 五、实验收获 一、实验名称 加性高斯白噪声信道 二、实验目的 1.掌握matlab语言的基本操作和基本的编程功能; 2.掌握awgn函数和randn函数的用法; 3.了解加性高斯白噪声信道的产生方法&…

加性高斯色噪声信道

1 加性高斯色噪声信道 对于高斯白噪声,不同时刻的样本值是不相关的。为方便,在实际应用中通常将在信号上叠加高斯白噪声,对一些算法性能进行评估。依据评估结果,指导工程设计实现。在实际工程中,高斯白噪声的不相关性并…

噪声是什么?

1.噪声的概念 日常我们说的噪声是——“除了我想听到的声音”以外的声音,就是噪声。比如我想听A君讲话,但是B君和C君在旁边喋喋不休,他们俩说的话是“我不想听到的声音”,那么他们两个的声音就是噪声。而在电路中,噪声…

噪声和信噪比的转换(如何在数据集中添加噪声)

之前参考别人的博客写了一篇,后来用的过程中发现有问题,但是相关理论部分还是可以用的。 之前我写的:https://blog.csdn.net/Kathleen_yuan/article/details/89817487 别人的推论(推论1要加个条件才能用,就是信号强度…

乘性噪声理解

来自:乘性噪声图像处理方法研究 乘性噪声普遍存在于现实世界的图像应用当中,如合成孔径雷达、超声波、激光等相干图像系统当中.与标准加性高斯白噪声相区别,乘性噪声符合瑞利或伽玛分布函数.乘性噪声对图像的污染严重&…

噪声,白噪声,加性噪声和乘性噪声

对于一个学遥感或者说做图像处理的人来说,对噪声应该很敏感。但什么是加性噪声和乘性噪声,估计有部分并不很清楚。下面简要介绍之,内容摘自http://hi.baidu.com/%D2%B9%CB%AE%BE%A7%CD%F5%BD%A8%C7%E0/blog/item/137c42bf243d9c0f19d81f82.ht…

加性噪声和乘性噪声、均值滤波器、方框滤波器、中值滤波器、高斯滤波器、双边滤波器

1.滤波器的作用 滤波,也称平滑或者模糊,主要是为了减小图像噪声和伪影,同时在降低图像分辨率的时候,平滑也是必要的。 2.认识两种噪声 首先我们来认识两种常见噪声: 椒盐噪声,也就是夹杂在图像中的黑色…

java 抽奖 高并发处理_如何设计高并发下的抽奖?

关于抽奖,需要考虑的点有很多,这里稍微整理了下主要需要考虑以下三点: 用户抽奖次数限制 奖品数量限制 奖品发放的分布 中奖的概率的可控性 用户抽象次数限制 一个用户必须限制抽奖的次数,而同一个用户的并发几率其实是很小的,所以这里可以用悲观锁来控制用户的抽奖次数。 奖品…

使用Lua脚本实现高并发处理方案

我们使用 Lua 脚本可以很轻松构建出百万并发的应用系统。 由于 Tomcat 并发处理能力弱,nginx 并发处理能力强,我们可以在 nginx 上结合 Lua 脚本来高效处理业务逻辑,不用经过 Tomcat,就能够通过 Lua 脚本来操作 Redis、Kafka、My…