当前位置:首页 >> 机械/仪表 >>

模糊控制器的设计与MATLAB仿真


模糊控制器的设计与 MATLAB 仿真

第 1 页 共 1 页

模糊控制器的设计与 MATLAB 仿真
王桥 ( 安庆师范学院物理与电气工程学院 安徽 安庆 246011) 指导教师:吴文进 摘要:随着现代科学技术的迅速发展,生产系统的规模越来越大,形成了复杂的大系统,导致了控制 对象与控制器以及控制任务和目的的日益复杂化。

系统的复杂性主要表现在, 被控对象模型的不确定性、 系统信息的模糊性、高度非线性、输入信息多样化、多层次和多目标的控制要求、计算复杂性和庞大的 数据处理以及严格的性能指标。该设计分析了模糊控制理论原理,给出了常规模糊控制器的设计方法, 并在 MATLAB 中进行仿真实验,实验结果验证了控制器的有效性。 关键词:模糊控制,PID 控制,MATLAB 仿真 1 引言 智能控制是当前国内外人工智能,自动化,计算机技术领域中的热门话题,受到学术界、工程界和 企业界的广泛关注。 正在积极进行有关智能控制的理论方法和应用技术的研究与开发工作, 取得了许多 新进展和新成果。智能控制系统的发展,为智能自动化提供了理论基础,必将推动自动化向前发展。 智能控制主要包括以下几个方面,基于知识系统的专家控制、基于模糊系统的智能控制、基于学习 及适应性的智能控制、 基于神经网络的智能控制系统。 模糊控制指的是应用模糊集合理论统筹考虑控制 的一种控制方式。 模糊控制的基本思想是把人类专家对特定的被控对象或过程的控制策略总结成一系列 以: “IF(条件)?THEN(作用)”形式表示的控制规则,通过模糊推理得到控制作用集,作用于被控对 象或过程。控制作用集为一组条件语句,状态条件和控制作用均为一组被量化了的模糊语言集,如”正 大”、”负大”、”高”等。它们共同构成控制过程的模糊算法,定义模糊子集与建立模糊控制规则、 由基本论域转变为模糊集合论域、模糊关系矩阵运算、模糊推理合成与求出控制输出模糊子集、进行清 晰化运算, 得到精确控制量。 本论文主要是对基于模糊系统的智能控制器中的常规模糊控制器和模糊自 整定 PID 控制器进行设计。 2 MATLAB 语言简介 MATLAB 是 math works 公司推出的一套高性能的数值计算和可视化软件, 它集数值分析、 矩阵运算、 信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。MATLAB 含有丰富的工具箱, 其中主要有信号处理、控制系统、神经网络、通信、图像处理、鲁棒控制,非线性系统控制设计、系统 辨识、最优化、分析与综合、模糊系统等工具箱。这些工具箱给各个领域的研究和工程应用提供了有力 的工具,借助这些工具,各个层次的研究人员可直观、方便地进行分析、计算及设计工作,从而大大地 节省编程时间。MATLAB 语言具有较高的运算精度,符合一般科学和工程运算的要求。MATLAB 是以复数 矩阵作为基本编程单元的一种高级程序设计语言, 它提供了各种矩阵的运算与操作, 并有较强的绘图功 能,得到了广泛的应用,成为当今国际领域中应用最广、最受人们喜爱的一种软件环境。本论文的软件 部分是在 MATLAB6.5 下编写完成的。 3 模糊逻辑控制理论 3.1 模糊集合 定义:给定论域 X,A={x}是 X 中的模糊集合的含义是

?A : X ? ?0,1?
1

(1)

模糊控制器的设计与 MATLAB 仿真

第 2 页 共 2 页

这样的隶属度函数表示其特征的集合。若μ A(x)接近 1,表示 X 属于 A 的程度高,μ A(x)接近于 0, 表示 X 属于 A 的程度低。 表示方法: 模糊集合有很多表示方法, 最根本的是将它所包含的元素及相应的隶属度函数表示出来。 因此它可用如下的形式来表示:

A ? {( x, ?A( x)) | x ? X }
也可表示成如下的形式

(2)

??

? ???x ? x ? ???xi? xi

(3)

模糊集合的隶属度函数定义:在经典集合中,特征函数只能取 0 和 1 两个值, 即特征函数与{0,1} 相对应;而在模糊集合中,其特征函数的取值范围从两个元素的集合扩大到在[0,1]区间连续取值。为 了把两者区分开来,就把模糊集合的特征函数称作隶属度函数。图 1 表示了这两种函数的关系。

图 1 隶属度函数 3.2 模糊关系和模糊语言变量 (1)模糊关系的定义 定义:n 元模糊关系 R 是定义在直积 X1×?Xn 上的模糊集合,它可表示为

RX 1? ? Xn ?
模糊关系的合成

X 1? X 2? Xn

? ?R( x1, x2,? xn ) /( x1, x2,? xn )

(4)

设是 X,Y,Z 是论域,R 是 X 到 Y 的一个模糊关系,S 是 Y 到 Z 的一个模糊关系,则 R 到 S 的合成 T 也是一个模糊关系,记为 T=RΟ S,它具有隶属度

?R?S ( x, z) ? ?(?R( x, y) * ?s( y, z))
为最大-星合成。其中二项算子“*”可以定义为以下几种运算,其中 x,y∈[0,1] 交积: 代数积: 有界积: 强制积: 这是常用的一种合成方法。 (2)模糊语言变量

(5)

其中,∨是并的符号,它表示对所有取最大值或上界值,*是二项积的符号。因此,上面的合成称

x ? y ? min{x, y}

(6) (7) (8) (9)

x ? y ? xy
x ? y ? max{ 0, x ? y ? 1}

xy ? x( y ? 1)ory( x ? 1)or0( x, y ? 1)

若二项积采用求交运算, 则 R?S ?? ?R?S ( x, z ) ? ?(?R( x, y) * ?s( y, z )) 称为最大-最小合成。

定义:带有模糊性的语言称为模糊语言。模糊语言变量用一个有五个元素的集合(X,T(X),U,G,M) 表示,其中 X 是语言变量名;T(X)是语言变量名的集合,且每个值都是在 U 上定义的模糊数 Xi;U 为语 言变量 X 的论域;G 为产生 X 数值名的语言值规则,是用于产生语言变量值的;M 为与每个语言变量含 义相联系的算法规则,它们的关系下图所示。

2

模糊控制器的设计与 MATLAB 仿真

第 3 页 共 3 页

图 2 隶属度函数 (3)模糊蕴含关系的运算方法 ① 模糊蕴含最小运算:

Rc ? A ? B ? A ? B ?
② 模糊蕴含积运算

X ?Y

? ?A( X ) ? ?B( y) /( x, y) ? ?A( x) ? ?B( y) /( x, y)

(10)

Rp ? A ? B ? A ? B ?
③ 模糊蕴含算术运算

(11)

X ?Y

Ra ? A ? B ? A ? B ?
④ 模糊蕴含的最大最小运算

X ?Y

?1 ? (1? ?A( X ) ? ?B( y)) /( x, y)

(12)

Rm ? A ? B ? A ? B ?
⑤ 模糊蕴含的布尔运算

X ?Y

? (?A( X ) ??B( y)) ?1? ?A( X )) /( x, y) ? (1? ?A( X ) ? ?B(Y ) /( x, y)

(13)

Rb ? A ? B ? A ? B ?
⑥ 模糊蕴含的标准法运算

(14)

X ?Y

Rs ? A ? B ? A ? B ?

X ?Y

? ??A???? ??? y?? /?x, y?

(15)

其中 ???? ?? ??? y ? 为 1(当 ????? ? ??? y ? )或 0(当 ???? ?? ??? y ? ) ⑦ 模糊蕴含的标准法运算

R ? A ? B ? A? B ?

???

? ??????? ???? y?? /?x, y?
? ?????? ???y?) ????(当

(16)

其中 ???? ?? ???? y ? 为 1(当 ????? ? ??? y ?)或 ???y? 3.3 模糊逻辑推理 (1)模糊条件推理

在模糊逻辑控制中,经常用到模糊条件推理。其形式是: 如果什么什么,那么怎么怎么,否则怎么怎么。 用语言规则表示为:如果是 A,那么是 B,否则是 C 。
3

模糊控制器的设计与 MATLAB 仿真

第 4 页 共 4 页

其逻辑表达式是: ( A ? B) ? ((1 ? A) ? C ) (2)多输入模糊推理

(17)

以上讨论的都是模糊推理关系的前件部为一个输入的情况, 但在模糊控制系统中经常遇到的问题往 往是多输入的,特别是两输入的情况,例如“如果压力偏高且还在继续升高,那么停止加热”这样的规 则。其一般形式为 如果 A 且 B,那么 C 现在 A’且 B’ 结论:那么 C’ 这里假设 A 和 A’,B 和 B’,C 和 C’分别是不同论域 X,Y,Z 上的模糊集合。 “A 且 B,那么 C”的隶属度度表达为

?A( X ) ? ?B( y) ? ?C ( z)
(3)多输入多规则模糊推理 以上介绍的是多输入的情况,下面讨论是多输入又是多推理规则的情况。

(18)

以两输入多规则情况为例,若有 n 条规则,其一般形式为:如果 A1 且 B1,那么 C1;否则如果 A2 且 B2,那么 C2;否则如果 A3 且 B3,那么 C3?????否则如果 An 且 Bn,那么 Cn;现在 A’且 B’结 论那么 C’ 。这里假设 Ai 和 A’ ,Bi 和 B’,Ci 和 C’分别是不同论域 X,Y,Z 上的模糊集合。 “Ai 且 Bi,那么 Ci”的隶属度表达式为

?Ai( X ) ? ?Bi( y) ? ?Ci ( z)
若用定义蕴含关系 A→B=A∧B,则上式变成

(19) (20) (21)

?Ai( X ) ? ?Bi( y) ? ?Ci ( z )
推理结果为

C' ? ( A' ANDB' )???( A1ANDB1) ? C1? ?? ? ?( AnANDBn ) ? Cn?? ? C1'?C 2'? ? Cn'
其中 Ci ' ? ( Ai' ANDBi' )??( AiANDBi) ? Ci ? (4)模糊推理的性质

性质 1: 若合成运算符“Ο ”采用最大-最小法或最大-积法,连接词“also”采用并法,则“Ο ” 和 “also”的运算次序可以交换,即

( A' ANDB' )? ? Ri ? ?( A' ANDB' )?Ri
性质 2:若模糊蕴含关系采用 Rc 和 Rp 时,则有

(22) (23)

性质 3:对于 Ci' ? ( Ai' ANDBi)??( AiANDBi) ? Ci ? 的推理结果可以用如下简洁的形式表示

( A' ANDB' )??( AiANDBi) ? Ci ? ? ?A'? ( Ai ? Ci)? ? ?B'? ( Bi ? Ci)?

?ci' ( z ) ? ai ? ?ci( z ) 当模糊蕴含运算采用 Rc 时 ?ci' ( z ) ? ai?ci( z ) 当模糊蕴含运算采用 Rp 时 其中 ?i ? ?max(?A' ( X ) ? ?Ai( X ))? ? ?max(?B' ( y) ? ?Bi( y))?
3.4 模糊化运算 (1)单点模糊集合 如果输入量数据 x。是准确的,则通常将其模糊化为单点模糊集合。设模糊集合用 A 表示。

(24)
4

模糊控制器的设计与 MATLAB 仿真

第 5 页 共 5 页

图 3 隶属度函数 (2)三角模糊集合 如果输入量数据存在随机噪声, 这时模糊运算相当于随机变量为模糊量。 对于这种情况可以取模糊 量的隶属度函数为等腰三角形,如图 4 所示。三角形的顶点相应于该随机数的均值,底边的长度等 2δ , δ 表示随机数据的标准差。由于本设计的输入量是准确的,因此采用单点模糊集合进行模糊化运算。

图 4 隶属度函数 3.5 清晰化方法 清晰化方法又叫解模糊化方法。 通过模糊推理得到的结果是一个模糊集合或隶属度函数, 但在实际 使用中,特别是在模糊逻辑控制中,必须要用一个确定的值才能进行控制。在推理得到的模糊集合中取 一个相对最能代表这个模糊集合的单值的过程叫作清晰化。 常用的清晰化方法主要有以下几种方法。 其 中系数加权平均法用的较多。 (1)重心法 所谓重心法就是取隶属度函数曲线与横坐标轴围成面积作为代表点。 理论上说应该计算输出范围内 一系列连续点的重心,但实际上是通过计算输出范围内整个点的重心,这是一种折衷方案。即

u ? ? xi ? ?N ( xi) / ? ?N ( xi)
(2)最大隶属度法

(22)

这种方法最简单, 只要在推理结论的模糊集合中取最大的那个元素作为输出量即可。 不过要求这种 情况下其隶属度函数曲线一定是凸模糊集合。 如果该曲线是梯形平顶的, 那么具有最大隶属度的元素可 能不止一个,这时就要所有取最大隶属度的元素求平均值。 (3)系数加权平均法 系数加权平均法的输出由下式决定:

u ? ? ki ? xi / ? ki

(23)

这里的系数 ki 的选择要根据实际情况而定,不同的系数决定系统有不同的响应特性。当选

ki ? ?N ( xi) 时,即取隶属度函数时,这就是重心法。在模糊控制中,可以通过选择和调整该系数来改
善系统的响应特性。这种方法比较灵活。 (4)隶属度限幅元素平均法 用所确定的隶属度值α 对隶属度函数曲线进行分割,再对切割后等于该隶属度的所有元素进行平 均,用这个平均值作为输出执行量,这种方法称为隶属度限幅α -cut 元素平均法。 4 常规模糊控制器的设计 4.1 常规模糊控制器的结构和组成 (1)常规模糊控制器的基本结构
5

模糊控制器的设计与 MATLAB 仿真

第 6 页 共 6 页

常规模糊控制器的基本结构如图 5 所示。

常规模糊控制器的组成:模糊化,首先对输入量进行处理以变成模糊控制器要求的输入量,将上述已 经处理的输入量进行标度变换到个自的论域范围, 将已经变换到论域范围的输入量进行模糊处理, 使原 先精确的输入量变成模糊量,并用相应的模糊集合表示;知识库,由数据库和规则库两部分组成。数据库 主要包括各语言变量的隶属度函数,尺度变换因子,以及模糊空间的分级数等。规则库包括了用语言变 量表示的一系列控制规则。 它们反映了控制专家的经验和知识;模糊推理,模糊推理是模糊控制器的核心, 它是具有模拟人的基于模糊概念的推理能力。 该推理过程是基于模糊逻辑中的蕴含关系及推理规则来进 行的;清晰化,将模糊的控制量经清晰化变成表示在论域范围的清晰量,将表示在论域范围的清晰量经尺 度变换成实际的控制量。 (2)数据库 ① 输入量变换 对于实际的输入量,将其变换到要求的论域范围。例如,若实际的输入量为 X ' , 其变化范围为

?x min', x max' ?,若要求的论域为 ?X min, X max?,采用线性变换,则有 X ? ( X min? X max)/ 2 ? ?( XMin'? X max'/( x min? x max)?( x'?( x min'? x max') / 2)
? ( x min? x max)/ 2 ? k ( x'?( x min'? x max') / 2) ,其中 k 为比例因子。
② 输入和输出空间的模糊分割

(24)

本设计的输入量为系统误差 e 和误差的变化 ec ,输出量为控制量 u ,它们的模糊集合及其论域定义 如下, u 取 NZ 和 PZ 是为了提高精度。 合为

?NB, NS , Z , PS, PB? ; e 的论域为 ?? 3,?2,?1,?0,?0,1,2,3?; ec 的论域为 ?? 3,?2,?1,0,1,2,3? ; u 的论域为 ?? 4,?3,?2,?1,0,1,2,3,4?。
4.2 模糊集合的隶属度函数及模糊控制规则表 (1)隶属度函数 误差 e、误差的变化 ec 及控制量 u 的隶属度函数如表 1、表 2、表 3 所示。由专家知识和经验得到

e 模糊集合为 ?NB, NS , NZ , PZ, PS, PB?; ec 的模糊集合为 ?NB, NS , Z , PS, PS?; u 的模糊集

的模糊控制规则表如表 4 所示。

6

模糊控制器的设计与 MATLAB 仿真

第 7 页 共 7 页

表 1e 的隶属度函数 模糊集合 -3 PB PS PZ NZ NS NB 模糊集合 PB PS Z NS NB 模 糊 集 合 PB PS Z NS NB u e NB NS NZ PZ PS PB ec -3 0 0 0 0 1 0 0 0 0 0 1 -2 0 0 0 0 0.5 0.5 -2 0 0 0 0.5 0.5 e 的论域 -1 0 0 0 0.5 1 0.5 -1 0 0 0.5 1 0 u 的论域 -4 0 0 0 0 1 -3 0 0 0 0.5 0.7 NB -2 0 0 0 1 0.2 -1 0 0 0.5 0.5 0 NS 0 0 0 1 0 0 Z 1 0 0.5 0.5 0 0 2 0.2 1 0 0 0 PS 3 0.7 0.5 0 0 0 PB 4 1 0 0 0 0 -0 0 0 0 1 0.5 0 0 0 0.5 1 0.5 0 +0 0 0.5 1 0 0 0 1 0 1 0.5 0 0 1 0 1 0.5 0 0 0 2 0.5 0.5 0 0 0 2 0.5 0.5 0 0 0 0 3 1 0 0 0 0 3 1 0 0 0 0 0

表 2ec 的隶属度函数

表 3u 的隶属度函数

表 4 模糊控制规则表

PB PB PB PB PS Z

PB PS PS Z Z NS

PB PS Z Z NS NS

PS Z Z NS NS NB

Z NS NB NB NB NB

(2)模糊控制规则表的清晰化计算 下面根据不同的输入量,求出输出量的值。假设 and 用求交法;合成用最大-最小法;模糊蕴含用 求交法;清晰化采用系数加权平均法(重心法);模糊化采用单点模糊集合。 当 e ? ?3 , ec ? ?3 时,由表 1 和表 2 可以看出,e 只与模糊状态 NB 有关,对应的隶属度 ?1 ? 1, 因为其它模糊状态对应的隶属度为零,对计算过程不影响; ec 只与模糊状态 NB 有关,对应的隶属度 因为其它模糊状态对应的隶属度也为零。 由模糊控制规则表可知, 当 e 为 NB 且 ec 为 NB 时, u ? 2 ? 1, 为 PB 。运用模糊推理的性质 3 可方便地计算出输出量 u 对应的隶属度函数。

C1 ? ?1 ? ? 2 ? ?0,0,0,0,0,0,0,2,0,7,1? ? 1 ? 1 ? ?0,0,0,0,0,0,0,2,0,7,1? ? ?0,0,0,0,0,0,0,2,0,7,1? (25)
7

模糊控制器的设计与 MATLAB 仿真

第 8 页 共 8 页

所以,当, e ? ?3, ec ? ?3 时,对应的 u , u ? (2 ? 0.2 ? 3 ? 0.7 ? 4 ?1) /(0.2 ? 0.7 ? 1) ? 3.42 值如表 5 所示。 ec 的 论 域 3 2 1 0 -1 -2 -3 表 5 模糊控制器的响应表 e 的论域

(26)

同理,用同样的方法可计算出当 e 和 ec 为其他值时,对应的 u 值。当 e 和 ec 为其他值时,对应的 u

-3 0 1 2.687 2.814 3.42 2.833 3.42

-2 -1 0 1.252 1.252 2.248 2.248 2.833

-1 -1.854 -1.252 0.831 1.169 1.169 2.248 3.42

-0 -1.854 -1.252 -0.674 1.169 1.169 1.252 3.42

+0 -3.42 -1.252 -0.674 0 1 1.252 3.42

1 -3.42 -1.868 -0.868 -0.806 -0.482 1.252 2.687

2 -2.833 -1.873 -1.873 -1.252 -0.618 0 1

3 -3.42 -2.833 -3.42 -2.814 -2.687 -1 0

4.3 软件实现 用 MATLAB 语言(MATLAB 6.5)对模糊控制器进行编程。 (1)程序的编写步骤: ① 建立新的模糊推理系统。格式为: a=newfis(fisName,fisType,andMethod,orMethod,impMethod, aggMethod,defuzzMethod)。 如 a=newfis(‘Tip’) ② 添加输入、输出变量。格式为: a=addvar(a,’varType’,’varName’varBounds) 如 a=addvar(a,‘input’,’service’[0 10]) ③ 给变量指定模糊变量,并设计隶属度函数。 常用的隶属度函数用:钟形隶属度函数(gbellmf),S 形隶属度函数(smf) ,梯形隶属度函数 (trapmf),三角形隶属度函数(trimf),Z 形隶属度函数(zmf). 添加隶属度函数的格式为: a=addmf(a,’varType’,varIndex‘mfName’,’mfType’,mfParams). 如 a=addmf(a,‘input’,1,’Good’,’smf’,[1 8]) ④ 编写模糊推理规则 模糊推理规则表的编写方法为: 模糊推理规则表为矩阵形式。 当模糊系统有 m 个输入和 n 个输 出时, 规则列表有 m+n+2 列,前 m 列表示系统的输入, 每列的数值表示输入变量隶属度函数的编号; 接着的 n 的列表示系统的输出, 每列的数值表示输出变量的隶属度函数的编号; 第 m+n+1 列的内容 为该条规则的权值(0 或 1) ;第 m+n+2 列的值决定模糊操作的类型:1(当模糊操作符为 and 时) 或 2(当模糊操作符为 or 时) 。如 ruleList=[1 1 1 1 1;1 2 2 1 1],a=addrule(a,ruleList) (2)模糊控制器的实现程序为: a=newfis(‘hfuz'); a=addvar(a,'input','e',[-3,3]);
8

模糊控制器的设计与 MATLAB 仿真

第 9 页 共 9 页

a=addmf(a,'input',1,'NB','zmf',[-3,-1]); a=addmf(a,'input',1,'NS','trimf',[-3,-1,-0]); a=addmf(a,'input',1,'NZ','trimf',[-2,0,0]); a=addmf(a,'input',1,'PZ','trimf',[0,0,2]); a=addmf(a,'input',1,'PS','trimf',[0,1,3]); a=addmf(a,'input',1,'PB','smf',[1 3]); a=addvar(a,'input','ec',[-3,3]); a=addmf(a,'input',2,'NB','zmf',[-3,-1]); a=addmf(a,'input',2,'NS','trimf',[-3,-1,1]); a=addmf(a,'input',2,'Z','trimf',[-2,0,2]); a=addmf(a,'input',2,'PS','trimf',[-1,1,3]); a=addmf(a,'input',2,'PB','smf',[1,3]); a=addvar(a,'output','u',[-4,4]); a=addmf(a,'output',1,'NB','zmf',[-4,-1]); a=addmf(a,'output',1,'NS','trimf',[-4,-2,1]); a=addmf(a,'output',1,'Z','trimf',[-2,0,2]); a=addmf(a,'output',1,'PS','trimf',[0,2,4]); a=addmf(a,'output',1,'PB','smf',[1,4]); rulelist=[1 1 5 1 1; 1 2 5 1 1; 1 3 5 1 1; 1 4 4 1 1; 1 5 3 1 1; 2 1 5 1 1; 2 2 4 1 1; 2 3 4 1 1; 2 4 3 1 1; 2 5 2 1 1; 3 1 5 1 1; 3 2 4 1 1; 3 3 3 1 1; 3 4 3 1 1; 3 5 1 1 1; 4 1 5 1 1; 4 2 3 1 1; 4 3 3 1 1; 4 4 2 1 1; 4 5 1 1 1; 5 1 4 1 1;
9

模糊控制器的设计与 MATLAB 仿真

第 10 页 共 10 页

5 2 3 1 1; 5 3 2 1 1; 5 4 2 1 1; 5 5 1 1 1; 6 1 3 1 1; 6 2 2 1 1; 6 3 2 1 1; 6 4 1 1 1 ; 6 5 1 1 1]; a=addrule(a,rulelist); showrule(a); a=setfis(a,'DefuzzMethod','centroid'); writefis(a,'hfuz'); a=readfis('hfuz'); figure(1) gensurf(a) Ulist=zeros(7,8); for i=1:7 for j=1:8 e=-4+j; if e<0 e=e; else e=e-1; end ec=-(i-4); Ulist(i,j)=evalfis([e,ec],a); end end Ulist=Ulist 程序运行后可得到 30 条规则、控制规则表及模糊推理系统图图 6: ans = 1. If (E is NB) and (Ec is NB) then (U is PB) (1) 2. If (E is NB) and (Ec is NS) then (U is PB) (1) 3. If (E is NB) and (Ec is Z) then (U is PB) (1) 4. If (E is NB) and (Ec is PS) then (U is PS) (1) 5. If (E is NB) and (Ec is PB) then (U is Z) (1) 6. If (E is NS) and (Ec is NB) then (U is PB) (1) 7. If (E is NS) and (Ec is NS) then (U is PS) (1) 8. If (E is NS) and (Ec is Z) then (U is PS) (1) 9. If (E is NS) and (Ec is PS) then (U is Z) (1)
10

模糊控制器的设计与 MATLAB 仿真

第 11 页 共 11 页

10. If (E is NS) and (Ec is PB) then (U is NS) (1) 11. If (E is NZ) and (Ec is NB) then (U is PB) (1) 12. If (E is NZ) and (Ec is NS) then (U is PS) (1) 13. If (E is NZ) and (Ec is Z) then (U is Z) (1) 14. If (E is NZ) and (Ec is PS) then (U is Z) (1) 15. If (E is NZ) and (Ec is PB) then (U is NB) (1) 16. If (E is PZ) and (Ec is NB) then (U is PB) (1) 17. If (E is PZ) and (Ec is NS) then (U is Z) (1) 18. If (E is PZ) and (Ec is Z) then (U is Z) (1) 19. If (E is PZ) and (Ec is PS) then (U is NS) (1) 20. If (E is PZ) and (Ec is PB) then (U is NB) (1) 21. If (E is PS) and (Ec is NB) then (U is PS) (1) 22. If (E is PS) and (Ec is NS) then (U is Z) (1) 23. If (E is PS) and (Ec is Z) then (U is NS) (1) 24. If (E is PS) and (Ec is PS) then (U is NS) (1) 25. If (E is PS) and (Ec is PB) then (U is NB) (1) 26. If (E is PB) and (Ec is NB) then (U is Z) (1) 27. If (E is PB) and (Ec is NS) then (U is NS) (1) 28. If (E is PB) and (Ec is Z) then (U is NS) (1) 29. If (E is PB) and (Ec is PS) then (U is NB) (1) 30. If (E is PB) and (Ec is PB) then (U is NB) (1) Ulist = 0.0000 -1.0000 1.0000 -0.0000 2.2016 2.5314 3.1481 2.9892 3.1481 1.2629 1.2629 2.2586 2.2586 2.9892 -1.8641 -1.8641 -1.2629 -1.2629 0.8331 1.1669 1.1669 2.2586 3.1481 0.8331 1.1669 1.1669 2.2586 3.1481 -3.1481 -1.2629 -1.0074 -0.0000 1.0000 1.2629 3.1481 -3.1481 -1.8730 -1.1669 -1.1669 -0.8331 1.2629 2.2016 -2.9892 -1.8730 -1.8730 -1.2629 -1.0000 -0.0000 1.0000 -3.1481 -2.9892 -2.1826 -1.8641 -1.6664 -1.0000 0.0000

图 6 模糊推理系统
11

模糊控制器的设计与 MATLAB 仿真

第 12 页 共 12 页

4.4 控制效果 下面通过模糊控制器与常规 PID 控制器的比较来说明模糊控制器的控制效果。 设被控对象为 C ( s) ?

20e ?tdS ,假设系统具有 0.07 的死区和 0.7 的饱和区,采样时间 1.6S 2 ? 4.4S ? 1

间隔 T=0.01。用 Nd 表示系统的延迟(Nd=td/T) ,用 umin 表示死区电平,用 umax 表示饱和电平。模糊 控制规则表如图表 6。 表 6 模糊控制规则表 e u ec NB NS Z PS PB PB PB PS PS Z PB PS PS Z Z PS PS Z Z NS PS Z Z NS NS Z Z NS NS NB NB NS Z PS PB

仿真结果如图 7 和图 8 所示。

图 7Nd=2 时的仿真结果

12

模糊控制器的设计与 MATLAB 仿真

第 13 页 共 13 页

图 8Nd=4 时的仿真结果 由图 7 和图 8 的曲线图可知,当延迟较小(Nd=2)时,采用模糊控制,系统的超调量比采用常规 PID 控制小, 上升时间比采用常规 PID 控制稍长, 调节时间比采用常规 PID 控制短得多; 当延迟较大 (Nd =4)时,采用模糊控制,系统的超调量同样比采用常规 PID 控制小,上升时间同样比采用常规 PID 控 制稍长,但调节时间比采用常规 PID 控制短了许多。还可以得出当 Nd 取更大的值时,模糊控制系统曲 线变化不大,但常规 PID 控制系统曲线趋向于不稳定。因此,当系统比较复杂时采用模糊控制器比采用 常规 PID 控制器的效果要好。另外,在高阶或系统模型难以确定的系统中,采用模糊控制要比采用常规 PID 控制的效果好。 5 结论 论文通过通过对模糊控制理论的论述, 设计了一个常规模糊控制器, 并通过具体实例进行了仿真验 证,仿真结果证实了模糊控制器的有效性和优越性。 参考文献 [1] 刘金琨,先进 PID 控制及其 MATLAB 仿真,电子工业出版社,2003。 [2] 薛定宇,反馈控制系统设计与分析――MATLAB 语言应用,清华大学出版社,2000。 [3] 孙增圻,智能控制理论与技术,清华大学出版社,1997。 [4] 窦振中,模糊逻辑控制技术及其应用,北京航空航天大学出版社,1995。 [5] 李人厚,智能控制理论与方法,西安电子科技大学出版社,1999。 [6] 王耀南,智能控制系统-模糊逻辑·专家系统·神经网络控制,湖南大学出版社,1996。 [7] 楼顺天,基于 MATLAB 的系统分析与设计――模糊系统,西安电子科技大学出版社,2001。

13

模糊控制器的设计与 MATLAB 仿真

第 14 页 共 14 页

Fuzzy Controller Design of MATLAB Simulation
Wang Qiao (School of Physics and Electrical Engineering of Anqing Normal College, Anqing , 246011) Abstract: With the rapid development of modern science and technology, the scale of production systems is growing, forming a complex system, leading to a control object with the growing complexity of the controller, and control tasks and objectives. Complexity of the system mainly in: plant model uncertainty, the ambiguity of the system information, highly nonlinear input diversified, multi-level and multi-objective control requirements, computational complexity and huge data processing and stringent performance indicators. The design and analysis of fuzzy control theory principle, given the conventional fuzzy controller design method in MATLAB simulation and experimental results verify the effectiveness of the controller. Keywords: fuzzy control, PID control, MATLAB simulation

14


相关文章:
简易模糊控制器设计及MATLAB仿真
本文利用 MATLAB/S简易模糊控制器的设计仿真 摘要:模糊控制(Fuzzy Control)是以模糊集理论、模糊语言和模糊逻辑推理 为基础的一种控制方法,它从行为上模仿人的...
基于matlab的模糊控制器的设计与仿真
基于matlab的模糊控制器的设计与仿真_机械/仪表_工程科技_专业资料。基于 MATLAB模糊控制器的设计与仿真 第 1 页共 11 页 基于 MATLAB模糊控制器的设计与...
模糊控制器的设计与MATLAB仿真
该设计分析了模糊控制理论原理,给出了常规模糊控制器的设计方法, 并在 MATLAB 中进行仿真实验,实验结果验证了控制器的有效性。 关键词:模糊控制,PID 控制,MATLAB ...
模糊控制器的MATLAB仿真
模糊控制器的MATLAB仿真_信息与通信_工程科技_专业资料。模糊控制器的MATLAB仿真实验...模糊推理系统的建立, 往往是设计一个模糊控制系统的基础。 建立一个模糊推理系...
Matlab模糊控制器的设计以及simulink下对模糊控制器系统的仿真
Matlab模糊控制器的设计以及simulink下对模糊控制器系统的仿真_电力/水利_工程科技_专业资料。Matlab模糊控制器的设计以及simulink下对模糊控制器系统的仿真Matlab...
基于MATLAB的模糊控制器的设计和仿真
基于MATLAB 的 PID 模糊控制器的设计与仿真一、模糊控制器的设计步骤 (l)进行系统分析,确定模糊控制器的输人变量、输出变量及控制器的结构; (2)定义输入、输出变...
模糊温度控制器的设计与Matlab仿真
模糊温度控制器的设计与Matlab仿真_电子/电路_工程科技_专业资料。模糊控制 MATLAB模糊温度控制器的设计与 Matlab 仿真 徐鹏 201403026 摘要:针对温度控制系统的时变、...
模糊控制系统设计及MATLAB仿真研究
模糊控制系统设计MATLAB 仿真研究 教师评语 教师签名: 年月日 一、实验目的 1、通过上机实习,熟悉 MATLAB 的基本操作命令、simulink 和模糊控制 工具箱的使用。...
实验一 模糊控制器的MATLAB仿真
实验一 模糊控制器的 MATLAB 仿真一、实验目的 本实验要求利用 MATLAB/SIMULINK ...双击每个输入变量和输出变量进行分别设计: (4)规则的制定:根据 PID 参数整定原则...
matlab下模糊控制器设计步骤
下面将根据模糊控制器设计步骤,一步步利用 Matlab 工具箱设计模糊控制器Matlab...(8)即可;但是在 仿真之后,又会发现很多地方都存在这个问题,因此你不得不一个...
更多相关标签:
模糊控制matlab仿真 | 模糊控制的matlab仿真 | 模糊控制与matlab仿真 | 模糊pid matlab仿真 | 离焦模糊matlab仿真 | 模糊pid的matlab仿真 | 模糊控制simulink仿真 | 模糊控制仿真实例 |