模糊控制规则表生成程序

合集下载

c#实现模糊PID控制算法

c#实现模糊PID控制算法

c#实现模糊PID控制算法

跑起来的效果看每个类的test⽅法,⾃⼰调⽤来测试

⽬的是看看哪个算法好⽤,移植的时候⽐较单纯没有研究懂算法,代码结构也没改动,只是移植到C#⽅便查看代码和测试,⼤家要拷贝也很⽅便,把整个类拷贝到.cs⽂件即可

这段算法在实际值低于⽬标值是⼯作正常,超过后会有问题,不知道如何调教

using System;

using System.Collections.Generic;

using System.Diagnostics;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace FuzzyPID

{

class FuzzyPID

{

public const int N = 7;

double target; //系统的控制⽬标

double actual; //采样获得的实际值

double e; //误差

double e_pre_1; //上⼀次的误差

double e_pre_2; //上上次的误差

double de; //误差的变化率

double emax; //误差基本论域上限

double demax; //误差辩化率基本论域的上限

double delta_Kp_max; //delta_kp输出的上限

double delta_Ki_max; //delta_ki输出上限

double delta_Kd_max; //delta_kd输出上限

double Ke; //Ke=n/emax,量化论域为[-3,-2,-1,0,1,2,3]

模糊控制的基本原理

模糊控制的基本原理

模糊控制基本原理

模糊控制是以模糊集合理论、模糊语言及模糊逻辑为基础控制,它是 模糊数学在控制系统中应用,是一种非线性智能控制。

模糊控制是利用人知识对控制对象进行控制一种方法,通常用“辻条 件,then 结果”形式来表现,所以又通俗地称为语言控制。一般用于无法 以

严密数学表示控制对象模型,即可利用人(熟练专家)经验和知识来很好 地控制。因此,利用人智力,模糊地进行系统控制方法就是模糊控制。模 糊控制基本原理如图所示:

模糊控制系统原理框图

它核心部分为模糊控制器。模糊控制器控制规律由计算机程序实现, 实现一步模糊控制算法过程是:微机采样获取被控制量精确值,然后将此 量与给定值比较得到误差信号E ; 一般选误差信号E 作为模糊控制器一个 输入量,把E 精确量进行模糊量化变成模糊量,误差E 模糊量可用相应模 糊语言表示;从而得到误差E 模糊语言集合一个子集e (e 实际上是一个模 糊向量);

再由e 和模糊控制规则R (模糊关系)根据推理合成规则进行模糊决策,得 到模糊控制量u 为:

u = eoR

式中U 为一个模糊量;为了对被控对象施加精确控制,还需要将模糊 量U

控制对象

进行非模糊化处理转换为精确量:得到精确数字量后,经数模转换变为精确模拟量送给执行机构,对被控对象进行一步控制;然后,进行第二次采样,完成第

二步控制……。这样循环下去,就实现了被控对象模糊控制。

模糊控制(Fuzzy Control)是以模糊集合理论、模糊语言变量和模糊逻辑推理为基础一种计算机数字控制。模糊控制同常规控制方案相比,主要待点有:

利用Matlab进行模糊逻辑和模糊控制的基本原理

利用Matlab进行模糊逻辑和模糊控制的基本原理

利用Matlab进行模糊逻辑和模糊控制的基本

原理

Matlab是一种强大的数学计算软件,广泛应用于各个领域的工程和科学研究。

在现实生活中,我们经常会遇到一些模糊不清、不确定的情况,而模糊逻辑和模糊控制正是用来处理这些模糊问题的有效工具。本文将介绍利用Matlab进行模糊逻

辑和模糊控制的基本原理,并通过一些具体案例来说明其在实际应用中的价值。

首先,我们需要了解模糊逻辑和模糊控制的基本概念和原理。模糊逻辑是

Lotfi Zadeh教授于1965年提出的一种处理模糊信息的形式化逻辑系统。与传统的

布尔逻辑只有两个取值(真和假)不同,模糊逻辑引入了模糊概念,可以处理多个取值范围内的逻辑判断。其基本原理是将模糊的语言描述转化为数学上的模糊集合,然后通过模糊运算进行推理和决策。

在Matlab中,可以使用Fuzzy Logic Toolbox工具箱来进行模糊逻辑的建模和

模拟。该工具箱提供了一系列的函数和工具,可以帮助我们创建模糊逻辑系统、定义模糊集合和模糊规则,并进行输入输出的模糊化和去模糊化运算。

一个典型的模糊逻辑系统包括三个主要组成部分:模糊集合、模糊规则和模糊

推理。模糊集合用于描述模糊化的输入和输出变量,可以是三角形、梯形、高斯等形状。模糊规则定义了模糊逻辑系统的推理过程,通常由一系列的if-then规则组成,如“如果温度较低,则输出加热”,其中“温度较低”和“加热”为模糊集合的标签。模糊推理根据输入变量的模糊值和模糊规则,计算出输出变量的模糊值。

为了更好地理解模糊逻辑的原理和应用,我们以一个简单的案例来说明。假设

模糊控制的基本原理

模糊控制的基本原理

模糊控制的基本原理

模糊控制是以模糊集合理论、模糊语言及模糊逻辑为基础的控制,它是模糊数学在控制系统中的应用,是一种非线性智能控制。

模糊控制是利用人的知识对控制对象进行控制的一种方法,通常用“if条件,then结果”的形式来表现,所以又通俗地称为语言控制。一般用于无法以严密的数学表示的控制对象模型,即可利用人(熟练专家)的经验和知识来很好地控制。因此,利用人的智力,模糊地进行系统控制的方法就是模糊控制。模糊控制的基本原理如图所示:

i .......... 濮鬧挖制器.. (1)

模糊控制系统原理框图

它的核心部分为模糊控制器。模糊控制器的控制规律由计算机的程序实现,实现一步模糊控制算法的过程是:微机采样获取被控制量的精确值,然后将此量与给定值比较得到误差信号E; —般选误差信号E作为模糊控制器的一个输入量,把E 的精确量进行模糊量化变成模糊量,误差E的模糊量可用相应的模糊语言表示;从而得到误差E的模糊语言集合的一个子集e(e实际上是一个模糊向量); 再由e和模糊控制规则R(模糊关系)根据推理的合成规则进行模糊决策,得到模糊控制量u 为:

u R

式中u为一个模糊量;为了对被控对象施加精确的控制,还需要将模糊量u 进行非模糊化处理转换为精确量:得到精确数字量后,经数模转换变为精确的模拟量送给执行机构,对被控对象进行一步控制;然后,进行第二次采样,完成第二步控制 %二这样循环下去,■就实现了被控对象的模糊控制「..................... ""模糊控制(FUZZy Control/是'以模糊集合理论"模糊语言变量和模'糊逻辑推理''' 为基础的一种计算机数字控制。模糊控制同常规的控制方案相比,主要特点有:(1)模糊控制只要求掌握现场操作人员或有关专家的经验、知识或操作数据,

模糊控制的基本原理

模糊控制的基本原理

.

模糊控制的基本原理模糊控制是以模糊集合理论、模糊语言及模糊逻辑为基础的控制,它是模糊数学在控制系统中的应用,是一种非线性智能控制。if条模糊控制是利用人的知识对控制对象进行控制的一种方法,通常用“then结果”的形式来表现,所以又通俗地称为语言控制。一般用于无法以件,的经验和知识来很好熟练专家严密的数学表示的控制对象模型,即可利用人() 地控制。因此,利用人的智力,模糊地进行系统控制的方法就是模糊控制。模糊控制的基本原理如图所示:

模糊控制系统原理框图它的核心部分为模糊控制器。模糊控制器的控制规律由计算机的程序实现,然后将此量微机采样获取被控制量的精确值,实现一步模糊控制算法的过程是:作为模糊控制器的一个输入量,E;一般选误差信号E与给定值比较得到误差信号的模糊量可用相应的模糊语言EE的精确量进行模糊量化变成模糊量,误差把); 实际上是一个模糊向量的模糊语言集合的一个子集e(e表示;从而得到误差E再由e和模糊控制规则R(模糊关系)根据推理的合成规则进行模糊决策,得到模糊控制量u为:

式中u为一个模糊量;为了对被控对象施加精确的控制,还需要将模糊量u进行非模糊化处理转换为精确量:得到精确数字量后,经数模转换变为精确的模

拟量送给执行机构,对被控对象进行一步控制;然后,进行第二次采样,完成第二步控制……。这样循环下去,就实现了被控对象的模糊控制。

模糊控制(Fuzzy Control)是以模糊集合理论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制。模糊控制同常规的控制方案相比,主要特点有:(1)模糊控制只要求掌握现场操作人员或有关专家的经验、知识或操作数据,不需要建立过程的数学模型,所以适用于不易获得精确数学模型的被控过程,或结构参数不很清楚等场合。

基于PLC的模糊控制器设计及Simulink仿真

基于PLC的模糊控制器设计及Simulink仿真

64 | 电子制作 2021年02月

热能,当电流流过电阻材料时,电能转换成热能,产生热量,再通过热的传导、对流、辐射,能有效地用来加热特定的试验件,并保持高的效率,此种加热方式称为辐射加温。

辐射加热具有热转换率高、加热温度高等优点,因此是

试验车台上使用最广泛的一种加热方式。温度是试验任务中一项很重要的监控指标,很多试验任务要求在特定的温度下才能进行,实际温度值和控制的精度、准确度决定了试验能否进行下去,因此研究温度控制工作原理,寻找合适的控制算法具有重要意义。

辐射加温控制系统是典型的一阶纯滞后环节,可用一阶惯性环节加滞后环节表示,具有升温单向性、大惯性、纯滞后、非线性和时变性等特点,用传统控制方式易导致超调大、

调节时间长、控制精度低。其升温、保温是依靠电阻丝加热,当其温度一旦超调就无法用控制手段使其降温。理论和经验

表明,传统的PID 控制对温度控制系统无法达到理想效果[1-2]。模糊控制是目前十分成熟的一种智能控制方法,其采用模糊逻辑把人的控制经验归纳为定性描述的一组条件语言,利用模糊集理论,将其定量化,使控制器模仿人的操作策略,

模糊控制具有很强的鲁棒性和稳定性,大量的理论研究和实践也充分证明了用模糊控制理论控制电阻炉温度是一种非常好的方法策略[3]。

PLC 具有通用性好、性能可靠、编程灵活、扩展方便等优点,在工业控制中广泛使用,PLC 指令越来越强大,

能够实现许多复杂的控制算法,利用PLC 实现模糊控制,结合二者的长处,在工业控制中大有前景。基于上述,本文提出在PLC 平台上将模糊控制方法和常规PID 控制结合的控制策略。

模糊控制的基本原理

模糊控制的基本原理

模糊控制的基本原理

模糊控制是以模糊集合理论、模糊语言及模糊逻辑为基础的控制,它是

模糊数学在控制系统中的应用,是一种非线性智能控制.

模糊控制是利用人的知识对控制对象进行控制的一种方法,通常用“if条件,then结果"的形式来表现,所以又通俗地称为语言控制。一般用于无法以

严密的数学表示的控制对象模型,即可利用人(熟练专家)的经验和知识来很好

地控制。因此,利用人的智力,模糊地进行系统控制的方法就是模糊控制.模

糊控制的基本原理如图所示:

模糊控制系统原理框图

它的核心部分为模糊控制器.模糊控制器的控制规律由计算机的程序实现,实现一步模糊控制算法的过程是:微机采样获取被控制量的精确值,然后将此量与给定值比较得到误差信号E;一般选误差信号E作为模糊控制器的一个输入量,把E的精确量进行模糊量化变成模糊量,误差E的模糊量可用相应的模糊语言表示;从而得到误差E的模糊语言集合的一个子集e(e实际上是一个模糊向量); 再由e和模糊控制规则R(模糊关系)根据推理的合成规则进行模糊决策,得到模糊控制量u为:

式中u为一个模糊量;为了对被控对象施加精确的控制,还需要将模糊量u 进行非模糊化处理转换为精确量:得到精确数字量后,经数模转换变为精确的模拟量送给执行机构,对被控对象进行一步控制;然后,进行第二次采样,完成第二步控制……。这样循环下去,就实现了被控对象的模糊控制。

模糊控制(Fuzzy Control)是以模糊集合理论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制。模糊控制同常规的控制方案相比,主要特点有: (1)模糊控制只要求掌握现场操作人员或有关专家的经验、知识或操作数据,不需要建立过程的数学模型,所以适用于不易获得精确数学模型的被控过程,或结构参数不很清楚等场合.

模糊pid控制-python实现

模糊pid控制-python实现

模糊pid控制 python实现

模糊PID控制(Fuzzy PID control)是一种基于模糊逻辑的控制方法,它结合了模糊控制和经典PID控制的优点,可以在复杂和不确定的环境中实现精确的控制。本文将介绍模糊PID控制的原理、实现方法以及在Python中的应用。

一、模糊PID控制的原理

PID控制是一种经典的控制方法,它通过比较实际输出与期望输出之间的误差,根据比例、积分和微分三个参数进行调节,使系统输出逐渐趋近于期望值。然而,传统的PID控制方法在面对非线性、时变和不确定性系统时表现不佳。

模糊PID控制通过引入模糊逻辑来解决传统PID控制的问题。模糊逻辑是一种能够处理模糊信息的数学方法,它可以将模糊的输入映射到模糊的输出。模糊PID控制器通过将误差、误差变化率和误差积分三个输入量模糊化,然后根据一组模糊规则进行推理,得到模糊输出。最后,通过解模糊化的方法将模糊输出转化为具体的控制量。

二、模糊PID控制的实现方法

1. 模糊化

模糊化是将具体的输入量映射到模糊集合上的过程。常用的模糊化方法有三角隶属函数、梯形隶属函数和高斯隶属函数等。根据具体

的问题和经验,选择合适的隶属函数进行模糊化。

2. 规则库

规则库是模糊PID控制的核心。它包含了一组模糊规则,用于根据输入量的模糊值推理出输出量的模糊值。模糊规则一般采用IF-THEN的形式,例如“IF 误差是A1 AND 误差变化率是B2 THEN 输出是C3”。规则库的设计需要根据具体问题进行,可以基于经验或者专家知识。

3. 推理机制

推理机制是根据模糊规则进行推理的过程。常用的推理方法有最大最小合成、模糊推理和模糊推理和等。推理机制将模糊输入与规则库进行匹配,然后根据匹配的程度计算出模糊输出的隶属度。

2018-模糊规则表-word范文模板 (11页)

2018-模糊规则表-word范文模板 (11页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!

== 本文为word格式,下载后可方便编辑和修改! ==

模糊规则表

篇一:模糊控制表推导过程

一、模糊划分及模糊化

对于偏差e的模糊划分取NB、NS、ZE、PS、PB五个模糊量,并且在相邻的模糊量中,存在如下关系:

1)、本模糊量的隶属度最大的元素,是相邻模糊量的隶属度为0的元素。 2)、模糊量的形状是等腰三角形。 3)、论域为[-X,X].

-X-2X/3 -X/30X/3 2X/3 X图1 隶属函数图象二、

论域变换

1、偏差e的论域变换

偏差e的论域是[-X,X],欲把它变换成离散论域[-3,-2,-1,0,1,2,3],则有量化

因子qe: qe=6/2X=3/X

显然,对于元素-X、-2X/3、-X/3、0、X/3、2X/3、X,则有相应的离散论域元素ei: e1=qe*(-X-0)=-3 e2=qe*(-2X/3-0)=-2 e3=qe*(-X/3-0)=-1 e4=qe*(0-

0)=0 e5=qe*(X/3-0)=1 e6=qe*(2X/3-0)= 2 e7=qe*(X-0)=3

1、偏差变化率de的论域变换

偏差变化率de的论域是[-Y,Y],欲把它变换成离散论域[-3,-2,-1,0,1,2,3],则有量化因子qde: qde=6/2Y=3/Y

显然,对于元素-Y、-2Y/3、-Y/3、0、Y/3、2Y/3、Y,则有相应的离散论域元素dei:

de1=qde*(-Y-0)=-3 de2=qde*(-2Y/3-0)=-2 de3=qde*(-Y/3-0)=-1

模糊PID控制算法

模糊PID控制算法

模糊PDI控制算法

学院:

班级:

学号:

姓名:

完成日期:

一、模糊PID 控制算法综述

模糊控制器是一种近年来发展起来的新型控制器,其优点是不要求掌握受控对象的精确数学模型,而根据人工控制规则组织控制决策表,然后由该表决定控制量的大小。

二、模糊PID 控制的原理

CPU 根据系统偏差(偏差=给定-反馈),和偏差变化率(偏差变化率=当前周期偏差-上周期偏差)查询相应的模糊控制表,得到Kp ,Ki ,Kd 三个参数的整定值,然后进行PID 运算,真正的运用到实际中也就是一张模糊控制查询表,然后就是查表了,也很简单,关键是表的建立还有专家经验的问题等。

三、模糊控制规则

模糊控制规则的形成是把有经验的操作者或专家的控制知识和经验制定成若干控制决策表,这些规则可以用自然语言来表达,但一般要进行形式化处理。例如:

①“If A n Then B n”;

②“If A n Then B n Else C n”;

③“If A n And B n Then C n”;

其中A n是论域U 上的一个模糊子集,B n是论域V 上的一个模糊子集。根据人工

试验,可离线组织其控制决策表R ,R 是笛卡尔乘积U×V 上的一个模糊子集。则某一时刻,以上控制规则的控制量分别为:

①B n=A n.R

②B n=A n.R

C n=A n.R

③C n=(A n×B n).R

式中 ×——模糊直积运算

.——模糊合成运算

控制规则③是实际模糊控制器最常用的规则形式。在这类规则中,A 一般用来表示被控制量的测量值与期望值的偏差E =x -x 0的隶属函数。B 一般表示

基于西门子S7—200PLC的模糊控制程序的实现

基于西门子S7—200PLC的模糊控制程序的实现

基于西门子S7—200PLC的模糊控制程序的实现

作者:柳东林王立卫

来源:《中国科技纵横》2013年第23期

【摘要】矿用通风机是矿井生产的重要设备,其运行状态对安全生产至关重要。本文结合矿用通风机,探讨了如何通过PLC可编程逻辑控制器件来实现模糊控制算法,从而来控制风机转速,实现了对巷道内CO及瓦斯浓度主要参数的监控。本设计首先通过matlab仿真得到控制规则表,储存在PLC数据区,,然后用建立指针的查询办法实现数据的查询,这样实现的模糊控制算法是可以离线使用的。论文对所设计的西门子模糊控制进行了实验验证。实验结果表明,论文所确定的测试方法正确,所设计仪器满足测试要求。

【关键词】矿用通风机模糊控制 CO及瓦斯浓度

1 模糊控制的概述

在传统的控制领域里,控制系统动态模式的精确与否是影响控制优劣的最主要关键,系统动态的信息越详细,则越能达到精确控制的目的。然而,对于复杂的系统,由于变量太多,往往难以正确的描述系统的动态,于是工程师便利用各种方法来简化系统动态,以达成控制的目的。在上世纪70年代,美国加州大学博客利分校电器工程系控制专家L.A.Zadeh提出了模糊集合理论,为模糊控制技术的产生奠定了理论基础。

模糊控制系统是以模糊语言变量、模糊逻辑推理以及模糊集理论做为基础,结合基于规则的专家系统和控制理论的一种智能的控制系统,同时也是运用到计算机的控制技术构成的一种具备反馈通道的闭环结构的数字控制系统。

模糊控制器包括五个主要部分,即:定义变量、模糊化、模糊规则、模糊推理及解模糊。(1)定义变量;也就是决定程序被观察的状况及考虑控制的动作,例如在一般控制问题上,输入变量有输出误差E与输出误差之变化率EC,而控制变量则为下一个状态之输入U。其中E、EC、U统称为模糊变量。(2)模糊化;将输入值以适当的比例转换到论域的数值,利用口语化变量来描述测量物理量的过程,以适合的语言值求该值相对之隶属度,此口语化变量我们称之为模糊子集合。(3)模糊规则;包括数据库与规则库两部分,其中数据库是提供处理模糊数据之相关定义;而规则库则藉由一群语言控制规则描述控制目标和策略。(4)模糊推理;模仿人类下判断时的模糊概念,运用模糊逻辑和模糊推论法进行推论,而得到模糊控制讯号。此部分是模糊控制器的精髓所在。(5)解模糊;将推论所得到的模糊值转换为明确的控制讯号,做为系统的输入值。

模糊控制基本原理

模糊控制基本原理

模糊控制的基本原理

模糊控制是以模糊集合理论、模糊语言及模糊逻辑为基础的控制,它是

模糊数学在控制系统中的应用,是一种非线性智能控制。

模糊控制是利用人的知识对控制对象进行控制的一种方法,通常用“if条件,then结果”的形式来表现,所以又通俗地称为语言控制。一般用于无法以严密的数学表示的控制对象模型,即可利用人(熟练专家)的经验和知识来很好地控制。因此,利用人的智力,模糊地进行系统控制的方法就是模糊控制。模糊控制的基本原理如图所示:

模糊控制系统原理框图

它的核心部分为模糊控制器。模糊控制器的控制规律由计算机的程序实现,实现一步模糊控制算法的过程是:微机采样获取被控制量的精确值,然后将此量与给定值比较得到误差信号E;一般选误差信号E作为模糊控制器的一个输入量,把E的精确量进行模糊量化变成模糊量,误差E的模糊量可用相应的模糊语言表示;从而得到误差E的模糊语言集合的一个子集e(e实际上是一个模糊向量)。

再由e和模糊控制规则R(模糊关系)根据推理的合成规则进行模糊决策,得到模糊控制量u为:

式中u为一个模糊量;为了对被控对象施加精确的控制,还需要将模糊量u进行非模糊化处理转换为精确量:得到精确数字量后,经数模转换变为精确的模

拟量送给执行机构,对被控对象进行一步控制;然后,进行第二次采样,完成第

二步控制……。这样循环下去,就实现了被控对象的模糊控制。

模糊控制(Fuzzy Control)是以模糊集合理论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制。模糊控制同常规的控制方案相比,主要特点有:

模糊控制的Matlab仿真(相关函数及工具箱详解)

模糊控制的Matlab仿真(相关函数及工具箱详解)

用类似的方法设置输出output的参数。比如:共有9个规 则,所以相应地有9个输出隶属函数。默认3个隶属函数, 剩下6个由设计者加入。点击Edit菜单,选 Add Custom MS…->继续填入相应参数即可。
模糊推理规则编辑器Ruleedit
通过隶属度函数编辑器来设计和修改 “IF...THEN”形式的模糊控制规则。由该编辑 器进行模糊控制规则的设计非常方便,它将输入 量各语言变量自动匹配,而设计者只要通过交互 式的图形环境选择相应的输出语言变量,这大大 简化了规则的设计和修改。另外,还可为每条规 则选择权重,以便进行模糊规则的优化。
在Simulink编辑窗口左边的模块浏览区可以看 到在水箱仿真系统中包括水箱子模型、阀门子 模型及 PID 控制子模型。直接在浏览区中点 击或右键点击它们,并在弹出菜单中选择 [ look under mask 】 ,可以看到这些模块实 现的细节结构,如图 所示。
这里暂时不讨论具体的系统模型的构造问题,我们可 以先在这个已经建立好的系统模型上进行修改,体验 模糊逻辑与仿真环境结合使用的优势。
隶属度函数编辑器(Mfedit)
该编辑器提供一个友好的人机图形交互环境,用 来设计和修改模糊推理系中各语言变量对应的隶 属度函数的相关参数,如隶属度函数的形状、范 围、论域大小等,系统提供的隶属度函数有三角、 梯形、高斯形、钟形等,也可用户自行定义。

用 PLC 实现模糊控制的程序设计方法

用 PLC 实现模糊控制的程序设计方法

用 PLC 实现模糊控制的程序设计方法

摘要:采用 PLC 进行模糊控制操作的程序设计的方法,是我们在应用 PLC 实现一

些复杂控制系统时发现的,以前我们经常使用的小型 PLC 由于其不具备现代控制

算法植入功能而逐渐被淘汰,文中所述程序设计方法通过实际项目的检验发现可

以有效地对系统进行控制,有效缩短控制系统开发周期,其优越性能正在逐步强

大起来。

关键词:PLC;模糊控制

PLC 即可编程控制器,是为了进行相关数据的计算而发明的一种适用于规模

化工业生产条件下使用的设备,通过一定的程序和要求,进行数据的输入和结果

的输出,以此来控制工业生产过程。模糊控制就是将其建立在人类思考问题的方

式上形成的一种控制方法,它反映着人类的思维在处理事情上展现出来的一种模

糊化的思考,比如对于复杂看似难以解决的问题,人们往往会根据自己的经验

对事物进行思考,当我们对被控系统在一定程度上有所认识的前提下,并为解决

它需要实现的控制功能而进行适当的思考,这时我们便将其称之为思维的模糊性。模糊控制就是模仿的人类面对这种状况下的思维,我们只需给予它一定的模糊的

指令程序,让其对整个的控制过程进行计算运行,这种看似简单的指令却需要

有专业的人士发出以便得到相对更准确的结果。这种对于控制的模糊性和我们以

往进行的自动化的控制有着完全不同的本质,而这种模仿人类思维的控制恰恰体

现了它智能化的一面,更适合当今生产对于控制的要求。

一、控制算法

面对现今工业生产的复杂性,简单的线性数学模型已经不能满足生产的要求,取而代之的是要建立一个可适应不停变化的、非简单性的控制系统,而这种模型

模糊控制表推导过程

模糊控制表推导过程

一、模糊划分及模糊化

对于偏差 e 的模糊划分取 NB 、 NS 、 ZE 、 PS 、 PB 五个模糊量,并且在相邻的模糊量中,存在如下关系:

1 )、本模糊量的隶属度最大的元素,是相邻模糊量的隶属度为 0 的元素。

2 )、模糊量的形状是等腰三角形。

3 )、论域为 [-X,X].

下图是隶属函数图象

NB NS 1 ZE PS PB

-X -2X/3 -X/3 0 X/3 2X/3 X

图 1 隶属函数图象

二、论域变换

1、偏差 e 的论域变换

偏差 e 的论域是 [-X,X], 欲把它变换成离散论域 [-3,-2,-1,0,1,2,3], 则有量化因子 qe:

qe=6/2X=3/X

显然,对于元素 -X 、 -2X/3 、 -X/3 、 0 、 X/3 、 2X/3 、 X, 则有相应的离散论域元素 ei:

e1=qe*(-X-0)=-3

e3=qe*(-X/3-0)=-1

e4=qe*(0-0)=0

e5=qe*(X/3-0)=1

e6=qe*(2X/3-0)= 2

e7=qe*(X-0)=3

1、偏差变化率 de 的论域变换

偏差变化率 de 的论域是 [-Y,Y], 欲把它变换成离散论域 [-3,-2,-1,0,1,2,3], 则有量化因子 qde:

qde=6/2Y=3/Y

显然,对于元素 -Y 、 -2Y/3 、 -Y/3 、 0 、 Y/3 、 2Y/3 、 Y, 则有相应的离散论域元素 dei:

de1=qde*(-Y-0)=-3

de2=qde*(-2Y/3-0)=-2

de3=qde*(-Y/3-0)=-1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模糊控制规则表生成程序

%偏差E的赋值表

E=[1.0 0.8 0.7 0.4 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

0.2 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

0.0 0.1 0.3 0.7 1.0 0.7 0.2 0.0 0.0 0.0 0.0 0.0 0.0

0.0 0.0 0.0 0.0 0.1 0.6 1.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 1.0 0.6 0.1 0.0 0.0 0.0 0.0

0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.7 1.0 0.7 0.3 0.1 0.0

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.7 1.0 0.7 0.3

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.4 0.7 0.8

1.0];

%偏差变换率EC的赋值表

Ec=[1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0

0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0

0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7

1.0];

%输出U的赋值表

u=[1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0

0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0

0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0];

%推理语言规则表

gz=[ 1 1 1 1 2 4 4

1 1 1 1

2 4 4

2 2 2 2 4 5 5

2 2

3

4

5

6 6

2 2

3

4

5

6 6

3 3

4 6 6 6 6

4 4 6 7 7 7 7

4 4 6 7 7 7 7 ];

i=1;

for gzh=1:8

for gzl=1:7

a=E(gzh,:); %取E 的赋值表的莫一行,并赋值给a

a=a'; %a 取专置

b=Ec(gzl,:); %取Ec 的赋值表的莫一行,并赋值给b

% T E Ec •

for m=1:13

for n=1:13

if a(m,1)>=b(1,n)

r(m,n)=b(1,n);

else

r(m,n)=a(m,1);

end

end

end

% 把T E Ec •得到的矩阵变为行向量

k=1;

for m=1:13

for n=1:13

Ei_Eci(1,k)=r(m,n);

k=k+1;

end

end

Ei_Eci=Ei_Eci'; %把刚才得到的行向量变为列向量,方便与U 的行向量相乘

m=gz(gzh,gzl); %取U 的某一行

U=u(m,:);

%T E Ec U •⨯

for m=1:169

for n=1:13

if Ei_Eci(m,1)>=U(1,n)

Rii(m,n)=U(1,n);

else

Rii(m,n)= Ei_Eci(m,1);

end

end

end

%得到一条规则的Ri ,并且把Ri 变成行向量,以方便程序实现1n i R Ri ==U k=1;

for m=1:169

for n=1:13

Ri(i,k)=Rii(m,n);

k=k+1;

end

end

i=i+1;

end

end

%1n i R Ri

==U

Ri=Ri';

for m=1:2197

for n=1:i-1

if Ri(m,1)>=Ri(m,n)

Ri(m,1)=Ri(m,1);

else

Ri(m,1)=Ri(m,n);

end

end

end

%得到R

k=1;

for m=1:169

for n=1:13

R(m,n)=Ri(k,1);

k=k+1;

end

end

%()[()()]U k E k Ec k R =⨯o

相关文档
最新文档