李朝阳控制作业.docx
《李朝阳控制作业.docx》由会员分享,可在线阅读,更多相关《李朝阳控制作业.docx(11页珍藏版)》请在冰豆网上搜索。
李朝阳控制作业
智能控制
姓名:
李朝阳
学号:
107551400830
专业:
电气工程
班级:
2014电气工程学硕
基于模糊控制的温度控制器
常规控制首先要建立精确数学模型,但是对一些复杂的工业过程,建立精确的数学模型是非常困难的,或者是根本不可能的。
于是常规控制技术在这里就遇到了不可逾越的障碍。
但是,熟练的技术操作人员,通过感官系统进行现场观察,再根据自己的经验就能很容易地实现这类控制过程,于是就产生了一个问题,能否把人的操作经验总结为若干条控制规则,并设计一个装置去执行这些规则,从而对系统进行有效的控制呢?
答案是肯定的。
这种装置就是模糊控制器。
与传统的PID控制相比,模糊控制有其明显的优越性:
由于模糊控制实质上是用计算机去执行操作人员的控制策略,因而可以避开复杂的数学模型。
对于非线性,大滞后及带有随机干扰的复杂工业对象,由于数学模型难以建立,因而传统的PID控制也就失效,而对这样的系统,设计一个模糊控制器,却没有多大困难。
实践结果表明,在两种系统均调到最佳状态下,当工作条件大幅度变化时,经典的PID控制难以进行调整,而模糊控制对过程参数改变不灵敏,在所有工作所有工作点上都能做到较稳定的控制,这说明模糊控制本质上是非线性的,并且对于对象的参数变化适应性强,即所谓的“鲁棒性”较好。
通常,习惯上把输入变量的模糊集论域设定为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},把在这区间的连续量模糊化为7档:
“正大”(PB)——多数取+6附近;
“正中”(PM)——多数取+4附近;
“正小”(PS)——多数取+2附近;
“零”(ZO)——多数取0附近;
“负小”(NS)——多数取-2附近;
“负中”(NM)——多数取-4附近;
“负大”(NB)——多数取-6附近。
这7档对应着7个模糊子集,如表1所示。
表中的数表示[-6,+6]之间13个元素在对应模糊集中的隶属度。
当然,这只是一个示意性表,目的在于说明从精确量向模糊量的转换过程,实际的模糊集要根据具体问题来规定。
表1模糊变量不同等级的隶属度值
隶属度等级
模糊变量
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
PB
0
0
0
0
0
0
0
0
0.2
0.4
0.7
0.8
1
PM
0
0
0
0
0
0
0
0
0.2
0.7
1
0.7
0.2
PS
0
0
0
0
0
0
0.3
0.8
1
0.7
0.5
0.2
0
Z0
0
0
0
0
0.1
0.6
1
0.6
0.1
0
0
0
0
NS
0
0.2
0.5
0.7
1
0.8
0.3
0
0
0
0
0
0
NM
0.2
0.7
1
0.7
0.2
0
0
0
0
0
0
0
0
NB
1
0.8
0.7
0.4
0.2
0
0
0
0
0
0
0
0
规则库:
用来存放全部模糊控制规则,在推理时为“推理机”提供控制规则。
模糊控制器的规则是基于专家知识或手动操作熟练人员长期积累的经验,它是按人的直觉推理的一种语言表示形式。
模糊规则通常由一系列的关系词连接而成,如if—then,else,also,end,or等,关系词必须经过“翻译”才能将模糊规则数值化。
例如,某温度模糊控制器,系统输入变量为温度的偏差e和温度偏差的变化率ec,输出量为温度控制信号u,它们对应的语言变量分别为E,EC和U,可给出如下模糊规则:
R1:
IFEis正大andECis正大thenUis负大
第一条模糊规则含义是若温度偏高,且温度上升较快,则调节温度控制信号使温度迅速下降。
R2:
IFEis负大andECis负大thenUis正大
第二条模糊规则含义是若温度偏低,且温度下降较快,则调节温度控制信号使温度迅速上升。
1仿真模型
在matlab仿真软件simulink环境下搭建基于模糊控制的温度控制器模型:
图1仿真模型
2确定变量和隶属度
取输出误差e和误差变化ec作为模糊控制器的输入,模糊控制器的输出u作为被控对象的控制输入。
误差e,误差变化量ec以及输出u所对应的模糊语言变量分别为E、EC和U。
对应如下
E=[-3,-2,-1,0,+1,+2,+3]
EC=[-3,-2,-1,0,+1,+2,+3]
U={-3,-2,-1,0,+1,+2,+3}
每个变量取7个语言值:
“正大(PB)”,中大(PM)“正小(PS)”,“零(ZO)”,“负小(NS)”,负中(NM)“负大(NB)”。
Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便。
首先我们在Matlab的命令窗口(commandwindow)中输入fuzzy,回车就会出来这样一个窗口。
下面我们都是在这样一个窗口中进行模糊控制器的设计。
1.确定模糊控制器结构:
即根据具体的系统确定输入、输出量。
这里我们可以选取标准的二维控制结构,即输入为误差e和误差变化ec,输出为控制量u。
注意这里的变量还都是精确量。
相应的模糊量为E,EC和U,我们可以选择增加输入(AddVariable)来实现双入单出控制结构。
2.输入输出变量的模糊化:
即把输入输出的精确量转化为对应语言变量的模糊集合。
首先我们要确定描述输入输出变量语言值的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},并设置输入输出变量的论域,例如我们可以设置误差E(此时为模糊量)、误差变化EC、控制量U的论域均为{-3,-2,-1,0,1,2,3};然后我们为模糊语言变量选取相应的隶属度函数。
在模糊控制工具箱中,我们在MemberFunctionEdit中即可完成这些步骤。
首先我们打开MemberFunctionEdit窗口.
然后分别对输入输出变量定义论域范围,添加隶属函数,以E为例,设置论域范围为[-33],添加隶属函数的个数为7.
然后根据设计要求分别对这些隶属函数进行修改,包括对应的语言变量,隶属函数类型。
3.模糊推理决策算法设计:
即根据模糊控制规则进行模糊推理,并决策出模糊输出量。
首先要确定模糊规则,即专家经验。
对于我们这个二维控制结构以及相应的输入模糊集,我们可以制定49条模糊控制规则(一般来说,这些规则都是现成的,很多教科书上都有),如图所示:
制定完之后,会形成一个模糊控制规则矩阵,然后根据模糊输入量按照相应的模糊推理算法完成计算,并决策出模糊输出量。
4.对输出模糊量的解模糊:
模糊控制器的输出量是一个模糊集合,通过反模糊化方法判决出一个确切的精确量,凡模糊化方法很多,我们这里选取重心法。
5.然后Exporttodisk,即可得到一个.fis文件,这就是你所设计的模糊控制器。
下面我们检验一下,看看我们的控制器到底怎么样。
以一个简单的电机控制为例,我们在Simulink中建立了它的模糊控制系统如下:
在用这个控制器之前,需要用readfis指令将fuzzy1.fis加载到matlab的工作空间,比如我们用这样的指令:
myFLC=readfis([fuzzy1.fis]);就创建了一个叫myFLC的结构体到工作空间,并在fuzzylogiccontroller中参数设为:
myFLC。
可以看到,在模糊控制器的输入和输出均有一个比例系数,我们叫它量化因子,它反映的是模糊论域范围与实际范围之间的比例关系,例如,模糊控制器输入输出的论域范围均为[-3,3],而实际误差的范围是[-5,5],误差变化率范围是[-50,50],控制量的范围是[-6,6],那么我们就可以算出量化因子分别为5,0.05,2。
量化因子的选取对于模糊控制器的控制效果有很大的影响。
模糊控制程序源代码(2.fis)
[System]
Name='2'
Type='mamdani'
Version=2.0
NumInputs=2
NumOutputs=1
NumRules=25
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'
[Input1]
Name='E'
Range=[-33]
NumberofMFS=7
MF1='NB':
'zmf',[-2.9-2.1]
MF2='NM':
'trimf',[-3-2-1]
MF3='NS':
'trimf',[-2-1-0]
MF4='ZR':
'trimf',[-101]
MF5='PS':
'trimf',[012]
MF6='PM':
'trimf',[123]
MF7='PB':
'smf',[2.12.9]
[Input2]
Name='EC'
Range=[-33]
NumberofMFs=7
MF1='NB':
'zmf',[-2.9-2.1]
MF2='NM':
'trimf',[-3-2-1]
MF3='NS':
'trimf',[-2-1-0]
MF4='ZR':
'trimf',[-101]
MF5='PS':
'trimf',[012]
MF6='PM':
'trimf',[123]
MF7='PB':
'smf',[2.12.9]
[Output1]
Name='U'
Range=[-33]
NumberofMFs=7
MF1='NB':
'zmf',[-2.9-2.1]
MF2='NM':
'trimf',[-3-2-1]
MF3='NS':
'trimf',[-2-1-0]
MF4='ZR':
'trimf',[-101]
MF5='PS':
'trimf',[012]
MF6='PM':
'trimf',[123]
MF7='PB':
'smf',[2.12.9]
[Rules]
11,5
(1):
1
12,5
(1):
1
13,4
(1):
1
14,4
(1):
1
15,3
(1):
1
21,5
(1):
1
22,4
(1):
1
23,4
(1):
1
24,3
(1):
1
25,3
(1):
1
31,4
(1):
1
32,4
(1):
1
33,3
(1):
1
34,3
(1):
1
35,2
(1):
1
41,4
(1):
1
42,3
(1):
1
43,3
(1):
1
44,2
(1):
1
45,2
(1):
1
51,3
(1):
1
52,3
(1):
1
53,2
(1):
1
54,2
(1):
1
55,1
(1):
1
3结论
通过模糊控制的温度控制器的设计与仿真,从仿真结果可看出,模糊控制的温度控制系统具有响应速度快,调整时间短,系统稳态误差小,动态性能好,系统能够较快平稳定地达到稳定状态,控制效果优。
但是在设计过程中也遇到了一系列的难题,比如对fuzzylogiccontroller的封装信号的导入最终决定这个控制器的设计;最后的仿真结果超调量比较大、合适的模糊控制规则的设计、温控传递函数的选择等都是要细心克服的问题。
4研究进展
模糊控制(FuzzyControl,FC)是以模糊集合论、模糊语言变量以及模糊逻辑推理为基础的一种计算机数字控制。
模糊控制之所以能在短短的30多年时间里得到广泛地发展并在现实中加以成功的应用,其根本的原因在于模糊逻辑本身提供了由专家构造语言信息并将其转化为控制策略的一种系统的推理方法,从而能够解决许多复杂并且无法建立精确的数学模型系统的控制问题。
它是处理推理系统和控制系统中不精确和不确定性的一种有效方法,是智能控制的重要组成部分。
模糊控制的研究主要体现在控制器的研究和开发以及各类实际应用中,目前模糊控制已经应用在各个行业。
各类模糊控制器也非常多,模糊控制器的研究一直是控制界研究的热点问题,而关于模糊控制系统的稳定性分析则是模糊控制需要研究和解决的基本问题。
目前已经出现了为实现模糊控制功能的各种集成电路芯片。
开发模糊控制系统的软件工具也出现了不少下面作一简单介绍模糊控制与其它智能控制的复合产生了多种控制方式方法。
主要表现在:
(1)模糊PID控制器:
模糊PID控制器的研究是将模糊技术与常规的PID控制算法相结合的一种控制方法,得到了许多学者的关注。
模糊PID控制器是一种双模控制形式。
这种改进的控制方法的出发点主要是消除模糊控制的系统稳态误差,利用PID控制器提高控制精度,消除误差,增加稳态控制性能。
有人试图利用GA算法,通过性能指标评价函数,决定模糊控制器的Ke、Kec、Ku等参数。
(2)自适应模糊控制器:
自适应模糊控制器就是借鉴自适应控制理论的一些理念来设计模糊控制器,也称作语言自组织模糊控制器(SOC),它的思想就在于在线或离线调节模糊控制规则的结构或参数,使之趋于最优状态。
目前主要有通过采用一种带有修正因子的控制算法,改变控制规则的特性;或直接对模糊控制规则进行修正;还有一种是对控制规则进行分级管理,提出自适应分层模糊控制器;又有人提出规则自组织自学习算法,对规则的参数以及数目进行自动修正;更进一步的是采用神经网络对模糊控制规则及参数进行调整,也是一种实现模糊自适应控制的好方法。
(3)模糊控制与神经控制的融合:
神经模糊控制是神经网络技术与模糊逻辑控制技术相结合的产物,是指基于神经网络的模糊控制方法。
现有人工神经网络代表性的模型有感知器、多层映射、BP网络、RBF神经网络实现局部或全部的模糊逻辑控制功能。
自适应神经网络模糊控制,利用神经网络的学习功能作为模型辨识或直接用作控制器;基于模糊神经网络的隶属函数及推理规则的获取方法,具有模糊连接强度的模糊神经网以及神经网络与遗传算法同模糊控制相结合的自调整应用等,均在控制中有所应用。
(4)遗传算法优化的模糊控制:
用遗传算法优化模糊控制器时,优化的主要对象是模糊控制器的隶属函数和规则集。
已经有人运用这个方法对倒立摆控制器隶属函数的位置、形状等参数,结果表明遗传算法优化后的隶属函数远远优于手工设计的。
显然通过改进遗传算法,按所给优化性能指标,对被控对象进行寻优学习,可以有效地确定模糊逻辑控制器的结构和参数。
(5)模糊控制与专家控制相结合:
将模糊控制与专家控制相结合能够表达和利用控制复杂过程和对象所需的启发式知识,重视知识的多层次和分类的需要,弥补了模糊控制器结构过于简单、规则比较单一的缺陷,赋予了模糊控制更高的智能;二者的结合还能够拥有过程控制复杂的知识,并能够在更为复杂的情况下对这些知识加以有效利用。
除以上介绍的几种主要方式外,文献还介绍了多变量模糊控制,模糊系统建模及参数辨识。
文献研究了基于模糊动态模型的多变量复杂非线性系统的模糊控制设计方法,利用了大系统分散控制关联稳定性的概念和方法。
模糊线性复合控制、Smith-模糊控制器和三维模糊控制器。
提出了模糊滑模控制器、模糊解耦控制器、模糊变结构控制、模型参考自适应控制、最优模糊神制器、模糊预测控制等。