模糊控制器的MATLAB仿真

合集下载

模糊控制仿真实验设计

模糊控制仿真实验设计

模糊控制系统的仿真实验实验目的:现有被控对象一:G(s)=1/(s2+2s+1)被控对象二:G(s)=K /【(T1s+1)(T2s+1) 】试设计一个模糊控制系统来实现对它的控制,并完成以下任务:任务一:通过仿真分析模糊控制器的参数的变化(主要讨论控制器解模方法和量化因子的变化)对系统性能的影响。

任务二:在控制器参数一定的情况下改变被控对象的参数,分析对象参数变化时fuzzy controller的适应能力。

任务三:在控制器参数一定的情况下改变被控对象的结构,分析对象结构变化时fuzzy controller的适应能力。

实验分析:要完成以上任务应分两个步骤:一设计模糊控制器,二用matlab的模糊逻辑工具箱建立模糊推理系统,并在simulink中实现对模糊系统的仿真。

接下来就以对象一为例说明模糊控制系统的仿真。

一、模糊控制器的设计模糊控制器的设计步骤为:1、选择控制器的输入输出:选择误差e及误差变化量ec为输入,u作为输出用于控制对象,这样模糊控制器具有二输入一输出的结构。

2、模糊集及论域的定义:z输入e的模糊子集为{NB NM NS NO PO PS PM PB}z输入ec和输出u的模糊子集均为{NB NM NS ZO PS PM PB}z e的论域为{-6 -5 -4 -3 -2 -1 -0 +0 1 2 3 4 5 6 }z ec的论域为{-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 }z u的论域为{-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 }我们选择三角形作为隶属度函数的形状,e的隶属度函数如下图所示:图1-1 ec的隶属度函数如下图所示:图1-2 u的隶属度函数如下图所示图1-3表1-14、选择输入输出变量的量化因子:这里暂时选定输入输出的量化因子Ke=Kc=Ku=1,接下来的仿真过程还可以调整。

5、择模糊规则前提交的方法为min,模糊推理方法为min,而反模糊化方法可以在仿真过程中设置。

模糊控制Matlab仿真

模糊控制Matlab仿真

模糊控制Matlab仿真说明:a.控制对象为一阶系统,目的是为了简单,调通后可以修改控制对象,控制参数体会各个量对控制效果的影响。

b.一阶系统直接施加输入,如图1所示的控制对象,上升时间会很大。

完全可以使用PID 控制使控制效果满足需要。

这里使用模糊控制来代替PID控制器。

比较一下!模糊控制器设计模糊控制器的计算量是非常大的,我不从数学推导介绍。

讲一下利用matlab的模糊工具箱(Fuzzy logical toolbox)建立基本模糊控制器的方法。

在命令行输入fuzzy,就可以进入模糊推理系统编辑器(fis editor)。

利用这个工具制作一个*.fis的文件。

这个文件就是模糊控制器的核心!在simulink中和以往进行PID控制一样建立模型。

如图1,在simulink 的库里点击Fuzzy Logical toolbox,拖一个Fuzzyl logical controller with rule viewer,双击这个环节,在弹出的对话框的fis Matrix里填入你自己起的*.fis的名字,不需输入后缀fis。

在设计模糊控制器(*.fis)前,要想好,你设计的控制器需要几个输入,几个输出。

比如,本例中拟采用偏差E和偏差变化率Ec这两个量作为模糊控制器的输入,模糊控制器有一个输出。

很明显,这是利用模糊控制器代替PD控制的。

对应的模糊控制器的设计也要具有两个输入一个输出。

利用matlab的Fuzzy logical toolbox 设计模糊控制器(生成*.fis文件)的关键步骤:a.添加输入输出。

图3.fis编辑器默认的具有一个输出,添加第二个输入,并且分别命名为E,Ec,U。

b.确定隶属函数。

双击黄色和绿色的方框就可以进入隶属函数编辑对话框了。

设置E,Ec 的range为[-6,6],u的range为[-1,1]。

然后每一个变量再添加4个输入隶属函数,总共7个。

matlab提供了11种隶属函数,第一次用选择常用的三角形trimf,区别不大的。

基于matlab的模糊控制器的设计与仿真

基于matlab的模糊控制器的设计与仿真

基于MATLAB的模糊控制器的设计与仿真摘要:本文对模糊控制器进行了主要介绍。

提出了一种模糊控制器的设计与仿真的实现方法,该方法利用MA TLB模糊控制工具箱中模糊控制器的控制规则和隶属度函数,建立模型,并进行模糊控制器设计与仿真。

关键词:模糊控制,隶属度函数,仿真,MA TLAB1 引言模糊控制是一种特别适用于模拟专家对数学模型未知的较复杂系统的控制,是一种对模型要求不高但又有良好控制效果的控制新策略。

与经典控制和现代控制相比,模糊控制器的主要优点是它不需要建立精确的数学模型。

因此,对一些无法建立数学模型或难以建立精确数学模型的被控对象,采用模糊控制方法,往往能获得较满意的控制效果。

模糊控制器的设计比一般的经典控制器如PID控制器要复杂,但如果借助MATLAB则系统动态特性良好并有较高的稳态控制精度,可提高模糊控制器的设计效率。

本文在MATLAB环境下针对某个控制环节对模糊控制系统进行了设计与仿真。

2 模糊控制器简介模糊控制器是一种以模糊集合论,模糊语言变量以及模糊推理为数学基础的新型计算机控制方法。

显然,模糊控制的基础是模糊数学,模糊控制的实现手段是计算机。

本章着重介绍模糊控制的基本思想,模糊控制的基本原理,模糊控制器的基本设计原理和模糊控制系统的性能分析。

随着科学技术的飞速发展,在那些复杂的,多因素影响的严重非线性、不确定性、多变性的大系统中,传统的控制理论和控制方法越来越显示出局限性。

长期以来,人们期望以人类思维的控制方案为基础,创造出一种能反映人类经验的控制过程知识,并可以达到控制目的,能够利用某种形式表现出来。

而且这种形式既能够取代那种精密、反复、有错误倾向的模型建造过程,又能避免精密的估计模型方程中各种方程的过程。

同时还很容易被实现的,简单而灵活的控制方式。

于是模糊控制理论极其技术应运而生。

3 模糊控制的特点模糊控制是以模仿人类人工控制特点而提出的,虽然带有一定的模糊性和主观性,但往往是简单易行,而且是行之有效的。

模糊控制的Matlab仿真实例

模糊控制的Matlab仿真实例

其他例子
模型Shower.mdl―淋浴温度调节模糊控制系统仿真; 模型slcp.mdl―单级小车倒摆模糊控制系统仿真; 模型 slcp1.mdl―变长度倒摆小车模糊控制系统仿
真; 模型 slcpp1.mdl—定长、变长二倒摆模糊控制系
统仿真; 模型slbb.mdl―球棒模糊控制系统仿真; 模型sltbu.mdl―卡车智能模糊控制倒车系统仿真; 模型sltank2.mdl ― 用子系统封装的水箱控制仿
为简单起见,我们直接利用系统里已经编辑好的 模糊推理系统,在它的基础上进行修改。这里我 们采用与tank . fis中输入输出变量模糊集合完 全相同的集合隶属度函数定义,只是对模糊规则 进行一些改动,来学习模糊工具箱与仿真工具的 结合运用。对于这个问题,根据经验和直觉很显 然可以得到如下的模糊度示 波器
冷水阀子系统
这个仿真模型的输出是用示波器来表示的,如 图所示。通过示波器上的图形我们可以清楚地 看到温度和水流量跟踪目标要求的性能。
水温示波器
水流示波器
水温偏差区间模糊划分及隶属度函数
水流量偏差区间模糊划分及隶属度函数
输出对冷水阀控制策略的模糊化分及隶属度函数
选Edit菜单,选择Rules, 弹出一新界面Rule Editor. 在底部的选择框内,选择相应的 IF…AND…THEN 规则,点击Add rule 键,上部 框内将显示相应的规则。本例中用9条左右的规 则,依次加入。如下图所示:
模糊逻辑工具箱仿真结果
模糊规则浏览器用于显示各条模糊控制规则对 应的输入量和输出量的隶属度函数。通过指定 输入量,可以直接的显示所采用的控制规则, 以及通过模糊推理得到相应输出量的全过程, 以便对模糊规则进行修改和优化。
这样的结果与实际情况还是有些不符。通常顾客都是给15%的 小费,只有服务特别好或特别不好的时候才有改变,也就是说, 希望在图形中间部分的响应平坦些,而在两端(服务好或坏) 有凸起或凹陷。这时服务与小费是分段线性的关系。例如,用 下面 MATLAB 语句绘出的下图的情况。

模糊控制设计及仿真实例--智能控制作业

模糊控制设计及仿真实例--智能控制作业

课程名称:智能控制理论与技术授课老师:徐华中学院:自动化学院专业名称:控制科学与控制工程姓名:廖桂潘学号:班级:自研0902班导师姓名:刘教瑜2010年9月1.一个三阶系统201232123b b ba a as ss s s+++++,其中a,b的值由自己设定,该系统具有非线性环节,如下图所示:依据上述条件设计一个模糊控制器:①用MATLAB仿真,得出仿真结果,②并通过改变a、b值对仿真结果的影响;③改变隶属度函数,从仿真结果图分析隶属度函数,模糊化对系统的影响;解:①(1)取b0=0,b1=0,b2=1.5,a1=4,a2=2,a3=0,在SIMULINK里建模如下图所示(2)用GUI建立FISE和EC分别为系统输出误差和误差的变化量,U为控制输出,编辑其隶属度函数如下编辑模糊推理规则如下(3)仿真结果如下2自己选定一个对象,设计一个神经网络控制系统。

解:被控对象为y(k)=0.3y(k-1)+0.2y(k-2)+0.1u(k-1)+0.6u(k-2),采用单神经元PID 控制,控制结构如下图所示:采用有监督的Hebb 学习规则,控制算法及学习算法如下:3131111222333()(1)()()()()/()()(1)()()()()(1)()()()()(1)()()()i i i i i i i I P D u k u k K w k x k w k w k w k w k w k z k u k x k w k w k z k u k x k w k w k z k u k x k ηηη=='=-+'==-+=-+=-+∑∑式中,2123()();()()(1);()()()2(1)(2);x k e k x k e k e k x k e k e k e k e k ==--=∆=--+-K K>0I P D ηηη﹑﹑分别为积分﹑比例﹑微分的学习速率,为神经元比例系数,。

最新温度控制系统的模糊PID参数整定及MATLAB仿真

最新温度控制系统的模糊PID参数整定及MATLAB仿真
根据温度控制具有纯滞后,大惯性的特点,整定 的原则如下:
当温差e较大时,为使温度控制系统具有较好的快 速跟踪性能,即温差较大时,温度要以较快速率 _______________________________________
___________
4.利用fuzzy模糊逻辑工具箱建立模糊控
制器
(1)输入/输出语言变量的建立 在MATLAB 环境ห้องสมุดไป่ตู้键入fuzzy 命令,进入模糊逻辑工具箱(如图)所
对建立的温度箱__加___热____模____型____,___在____m___a__t_l_a__b__上____仿真经整定后,得Kp等
于4.25时,响应曲线符合以上___衰___减____规_ 律,最终取Kp=0.8*4.25=3.4,
图1-1 simulink模块化系统PID仿真模型
仿真的时间选择1000 秒,设定误差值为40。仿真结果后如下图:
由于温度控制系统的设计目的是要使温度从30 度上升到70度,各种 指标和前面的PID 一致,但要实现控制速度提升且实现零超调。所 以温度的偏差e的论域设定为-40 到40.偏差变化率ed的论域整定为0.2 到0.2。设计的目的是实现PID 参数在线的自整定,在前面调试 出的曲线中可以知道,当Kp取3.4,Ki 取0.0028,Kd 取100 的时候, 系统有比较令人满意的曲线,所以在这个基础上,可以设定Kp 的 论域范围为2.7到3.6,Ki的范围为0.0022 到0.0028,Kd 的范围取60 到150。
图1-2 PID控制器作用下的仿真曲线图 _______________________________________ ___________
2.模糊PID控制器参数论域的确定

第五章模糊控制系统的MATLAB仿真PPT课件

第五章模糊控制系统的MATLAB仿真PPT课件
36
37
38
5.2.6 FIS输出量曲面观测窗 1.输出量曲面观测窗界面简介 2.利用输出量曲面观测窗进行分析研究
39
5.2.7 用GUI设计Mamdani型模糊系统举例 1.选择模糊控制器的结构及模糊逻辑算法 2.定义覆盖输入、输出变量的模糊子集 3,编辑模糊控制规则 4.观测模糊推理过程
59
设计模糊推理结构
• Mamdani法 • Lorsen法 • Takagi-Sugeno方法。
60
(1).Mamdani方法
利用“极大—极小”合成规则定义模糊蕴 含表达的关系。例如:R :ifx为 A , t h e ny为 B
表达的关R C系 定义为
RCABXYA(x()x ,y)B(y)
40
41
42
4.观测模糊推理过程 5.观测清晰化方法对输出量的影响 6.观测整个论域上输出量与输入变量间的关

43
5.2.8 用GUI设计Sugeno型模糊系统举例 1.选择模糊系统的结构及逻辑算法 2.定义输入、输出变量的模糊子集 1)增加一个输出函数 2)命名 3)输入参数 3. 输入模糊控制规则 4.观测模糊推理过程 5.观测整个论域上输出量与输入量间的关系
13
5.2 模糊推理系统的设计与仿真
5.2.1 模糊推理系统的图形用户界面简介
14
15
5.2.2 模糊推理系统编辑器 1.FIS编辑器界面简介 • 菜单条和模框区
File Edit View
16
17
18
模糊逻辑区和当前变量区 2. FIS推理系统的编辑 3.编辑FIS的维数 4.编辑FIS输入、输出量的名称
3
• 5.1.2 仿真模型图的建立 • 1.打开模型编辑器界面 • 2.移入模块并予以合理布局

模糊控制的MATLAB实现具体过程(强势吐血推荐)

模糊控制的MATLAB实现具体过程(强势吐血推荐)

plot(a,’input’,1)
注意:对于每个语言变量的隶属度函数按该函数被添加的顺 序编号,编号从1开始,依次递增。
3、FIS系统相关操作
① 函数newfis
功能:创建并返回一个新的模糊推理系统。
格式:a=newfis(‘fisName’) ②函数readfis 功能:从磁盘中读出并返回模糊推理系统结构变量。 格式:Fismat=readfis(‘filename’) 说明:打开一个由filename指定的数据文件(.fis),并将 其加载到当前的工作空间(Workspace)中的变量Fismat中。
例:fis=readfis(‘tipper’);
out=evalfis([2 1; 4 9],fis) 输出结果:out=7.0169
19.6810
MATLAB模糊控制系统设计实例1
一、设计目的:了解用MATLAB模糊工具箱的图形界面可视化 工具实现模糊控制系统的方法。 二、系统设计要求: 1、输入变量:偏差e、偏差变化率de;输出变量:u 相应隶属度函数为:
②函数addmf
功能:向模糊推理系统的语言变量添加隶属度函数。
格式:a=addmf(a, varType, varIndex,mfName,mfType, mfParams)
说明:隶属度函数只能为模糊推理系统中已经存在的某 一语言变量的语言值添加隶属度函数。参数列表中,a为 模糊推理系统对应的矩阵变量名, varType指定语言变量 类型的字符串(如‘input’或‘output’); varIndex指定 语言变量编号的数字;mfName指定隶属度函数名称; mfType指定隶属度函数类型; mfParams指定隶属度函数 的参数。
③ 函数gaussmf 功能:建立高斯型隶属度函数。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一模糊控制器的MATLAB仿真
一、实验目的
本实验要求利用MATLAB/SIMULINK与FUZZYTOOLBOX对给定的二阶动态系统,确定模糊控制器的结构,输入和输出语言变量、语言值及隶属函数,模糊控制规则;比较其与常规控制器的控制效果;研究改变模糊控制器参数时,系统响应的变化情况;掌握用 MATLAB 实现模糊控制系统仿真的方法。

二、实验原理
模糊控制器它包含有模糊化接口、知识库(规则库、数据库)、模糊推理机、解模糊接口等部分。

输人变量e(t)是过程实测变量y(t)与系统设定值s(t)之差值。

输出变量y(t)是系统的实时控制修正变量。

模糊控制的核心部分是包含语言规则的规则库和模糊推理机。

而模糊推理就是一种模糊变换,它将输入变量模糊集变换为输出变量的模糊集,实现论域的转换。

工程上为了便于微机实现,通常采用“或”运算处理这种较为简单的推理方法。

Mamdani推理方法是一种广泛采用的方法。

它包含三个过程:隶属度聚集、规则激活和输出总合。

模糊控制器的组成框图如图2.1所示。

图2.1 模糊控制器的组成框图
三、模糊推理系统的建立
一个模糊推理系统的建立分为三个步骤:首先,对测量数据进行模糊化;其次,建立规则控制表;最后,输出信息的模糊判决,即对模糊量进行反模糊化,得到精确输出量。

模糊推理系统的建立,往往是设计一个模糊控制系统的基础。

建立一个模糊推理系统有两类方法:一种是利用GUI建立模糊推理系统;另一种是利用MATLAB命令建立。

下面根据实验内容,利用GUI建立模糊推理系统。

例:对循环流化床锅炉床温,对象模型为
()()1140130120
++s s
采用simulink 图库,实现常规PID 和模糊自整定PID 。

模糊自整定PID 为2输入3输出的模糊控制器。

1、 进入FIS 编辑器
在MATLAB 的命令窗口中键入fuzzy 即可打开FIS 编辑器,其界面如下图所示。

此时编辑器里面还没有FIS 系统,其文件名为Untitled ,且被默认为Mandani 型系统。

默认的有一个输入,一个输出,还有中间的规则处理器。

在FIS 编辑器界面上需要做一下几步工作。

首先,模糊自整定PID 为2输入3输出的模糊控制器,因此需要增加一个输入两个输出,进行的操作为:选择Edit 菜单下的Add Variable/Input 菜单项。

如下图。

其次,给输入输出变量命名。

单击各个输入和输出框,在Current Variable选项区域的Name文本框中修改变量名。

如下图
最后,保存系统。

单击File菜单,选择Export下的To Disk项。

这里将创建的系统命名为PID_auot.fis
2、进入隶属度函数编辑器
在FIS编辑器中双击输入或输出变量的图框就能进入隶属度函数编辑器。

在隶属度函数
编辑器中,需要对各个变量的论域范围、隶属度函数进行编辑。

该模糊控制器是以|e|和|ec|为输入语言变量,Kp、Ki、Kd为输出语言变量,其各语言变量的论域如下:
误差绝对值:e={0,3,6,10};
误差变化率绝对值:ec={0,2,4,6};
输出Kp:Up={0,0.5,1.0,1.5};
输出Ki:Ui={0,0.002,0.004,0.006};
输出Kd:Ud={0,3,6,9}。

如图是编辑完成后的隶属度函数编辑器的GUI。

图中显示的为对应边变量e的隶属度函数。

3、进入规则编辑器
双击FIS编辑器图标部分中间的方框即可打开规则编辑器。

(3)语言变量值域的选取:输入语言变量|e|和|ec|的值域取值“大”(B)、“中”(M)、“小”(s)和“零”(Z) 4种;输出语言变量Kp、Ki、Kd的值域取值为“很大”(VB)、“大”(B)、“中”(M)、“小”(s) 4种。

(4)规则的制定:根据PID参数整定原则及运行经验,可列出输出变量Kp、Ki、Kd
的控制规则表。

添加完成后的规则编辑器如下图所示。

4、保存FIS结构
对于建好的FIS结构,利用File菜单下的Export的子菜单To Disk,将FIS结构保存到磁盘上。

到此,利用FUZZYTOOLS的GUI工具建立了模糊控制器(PID_auot.fis)。

可用GUI 工具查看该推理系统,在View菜单中选择Rules命令,可打开规则观测器,查看模糊推理规则。

如下图
在View菜单中选择surface命令,可打开曲面观测器,查看模糊推理输出特性曲面。

之后,在Simulink环境下,构建模糊自整定PID和常规PID控制系统。

在MATLAB的命
令窗口直接键入“Sinmulink”并回车,即可运行Sinmulink。

运行后显示如下图所示的Simulink模块库浏览器。

然后单击工具条左边建立新模型的快捷方式,如下图
在模型窗口中用户便可以通过选择模块库中的仿真模块,建立自己的仿真模型,并进行动态仿真。

最后构建的模糊自整定PID和常规PID控制仿真系统模型如下图。

其中模糊逻辑控制器的推理系统用模糊逻辑推理GUI工具建立的FIS。

先启动Fuzzy,导入PID_auot.fis,然后将其导出到workspace。

然后运行,运行结果如下图。

相关文档
最新文档