matlab模糊控制工具箱的使用

matlab模糊控制工具箱的使用
matlab模糊控制工具箱的使用

matlab模糊控制工具箱的使用

本学期选修了周川老师的智能控制及应用这门课程,大三时候曾上过周老师的英文版的控制工程基础这门课程,比较喜欢周老师上课的风格,智能控制这门课也收获不小,模糊控制是课程中讲到的第一个智能控制算法。

模糊不是真的模糊,模糊是为了精确。模糊控制中涉及到一个隶属度的概念,通常我们认为一个事物属于一个概念与否是确定的,比如数字电路的0与1,但是实际情况或者人们的思维习惯却不是这样的。比如规定18到30岁为青年,那么还差一天到18岁的人算不算青年呢?照规定看不算,但是如果我们加入概率的概念,比如说这个人90%属于青年人,可能更符合人们的思维习惯。

L.A.Zadeh在其《不相容原理》所述:“随着系统的复杂程度不断提高,人们对其精确而有意义地描述的能力不断的降低,以致在达到某一个阈值之后,系统的精确性和复杂性之间呈现出几乎是相互完全排斥的性质”。我们通常所用的控制算法一般是建立在模型比较确定的情况下,而模糊控制不依赖于对象的模型就可以进行控制决策,而且对系统参数变化具有较强的适应性。

对于模糊控制的原理,我不是很清楚,也没有这个心情去搞清楚,感觉知道大概怎么用就可以了。Matlab中集成了模糊控制工具箱,可以使用图像界面进行模糊控制器的设计,极大的简化了设计过程。下面介绍利用模糊工具箱进行控制系统设计的过程。

在matlab的主窗口中输入fuzzy即可调出模糊工具箱界面,退出界面的时候会提示保存,保存格式为fis,如果我们将文件保存为njust.fis,那么下次使用这个文件的时候在主窗口中输入fuzzy njust即可。

模糊控制器的建立过程如下:(1)设定误差E、误差变化率EC和控制量U的论域为,一般为[-6 6]。(2)设定E、EC、U的模糊集。一般可设为{NB、NM、NS、ZO、PS、PM、PB}。(3)设定隶属度函数。有高斯型隶属度函数、三角型隶属度函数等。(4)设定模糊控制规则。常用的模糊控制规则如图1所示,当然可以根据特定的控制对象和要求进行相应的调整。

图1 常用模糊控制规则

图2 添加变量

点击Edit->Add Variable即可进行变量的添加,在右下方可以进行名称的修改,左下方是与或运算方式、去模糊化方式等的选择,一般可以使用默认方式即可。

图3 添加论域与隶属度函数

双击图2中左右两侧的矩形图像即可进行论域与隶属度函数编辑,点击Edit->Add MFs即可进行隶属度函数的添加,右下方可以选择隶属度函数类型,左下方可以修改论域以及显示范围。

图4 添加控制规则

双击图2中中间的矩形图像即可进行模糊控制规则的编辑,根据if e or(and) ec then u的形式进行添加规则,可以修改规则权重。点击下方的Add rule和Delete rule即可进行规则添加和删除。至此完成模糊控制器的搭建。

使用菜单栏中的View->Rules即可观察设计规则,如图5所示。拖动输入变量中间的竖直线,可以看到控制量的变化情况。

图5 观察设计规则

使用菜单栏中的View->Surface即可观察输入变量输出变量的三维曲面,如图6所示。

图6 输入输出曲面

模糊控制系统的框图如图7所示,其中虚线内即为建立好的模糊控制器。图8为在matlab 中建立的某模糊控制系统实例。其中的fuzzy logic controller模块在simulink中的Fuzzy Logic Toolbox内,若是找不到的话可以使用搜索功能即可。若我们保存的模糊控制器文件为njust.fis,那么双击图8中的模糊控制器模块,输入njust即可。一般来说这个模糊控制器模块是两输入一输出的,所在输入前要添加一个向量组合工具mux。

图7 模糊控制系统结构框图

图8 matlab模糊控制系统实例

我们看到图7中有Ke、Kec和Ku三个权系数,查阅文献可知ke和kec对系统的动态性能影响较大,它们的大小意味着对输入误差和误差变化的不同加权程度,ke变大缩短上升时间,但是增大系统超调;kec变大减小系统超调,但是响应速率变慢。输出比例因子ku也影响模糊控制系统的性能,ku过小,系统的动态响应过程变长,ku过大会导致系统震荡。综合调整以上三个因子,获得所需要的控制性能。当然它们有一定的计算方法,没有深入研究过,不过所谓的计算方法好像也是存在问题的。这里特别要注意的是饱和模块的上下限就是我们设定的论域范围。

最后进行模糊控制系统仿真的时候有两点需要注意:一是仿真算法的设置。如果使用默认的算法,会发现速度很慢,几乎没有进度,需要在Simulation->Configuration Parameters中对取消过零点的限制。如图9所示。

图9 仿真算法的修改

另外需要注意的一点是模糊控制器的加载。看到论坛上很多人问为什么会报错,很大程度上原因是因为模糊控制文件fis没有加载到空间中。在主窗口中调出所保存的fis文件,进行File->Export->To Workspace即可。

当然了,也可以使用文件形式进行模糊控制器的设计,这里不讨论了,很多参考书上都有相应的函数介绍或者程序。

2010年8月18日下午njust 电工楼204房间

参考文献

[1] 刘金琨.智能控制[M].北京: 电子工业出版社,2009.

[2] 李国勇.智能控制及其Matlab实现[M].北京: 电子工业出版社,2005.

[3] 张国良,曾静,柯熙政等.模糊控制及其Matlab应用[M].西安: 西安交通大学出版社,2002.

基于模糊控制的速度跟踪控制问题(C语言以及MATLAB仿真实现)

基于模糊控制的速度控制 ——地面智能移动车辆速度控制系统问题描述 利用模糊控制的方法解决速度跟踪问题,即已知期望速度(desire speed),控制油门(throttle output)和刹车(brake output)来跟踪该速度。已知输入:车速和发动机转速(值可观测)。欲控制刹车和油门电压(同一时刻只有一个量起作用)。 算法思想 模糊控制器是一语言控制器,使得操作人员易于使用自然语言进行人机对话。模糊控制器是一种容易控制、掌握的较理想的非线性控制器,具有较佳的适应性及强健性(Robustness)、较佳的容错性(Fault Tolerance)。利用控制法则来描述系统变量间的关系。不用数值而用语言式的模糊变量来描述系统,模糊控制器不必对被控制对象建立完整的数学模式。 Figure 1模糊控制器的结构图 模糊控制的优点: (1)模糊控制是一种基于规则的控制,它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确的数学模型,因而使得控制机理和策略易于接受与理解,设计简单,便于应用。 (2)由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控制对那些数学模型难以获取,动态特性不易掌握或变化非常显著的对象非常适用。 (3)基于模型的控制算法及系统设计方法,由于出发点和性能指标的不同,容易导致较大差异;但一个系统语言控制规则却具有相对的独立性,利用这些控制规律间的模糊连接,容易找到折中的选择,使控制效果优于常规控制器。 (4)模糊控制是基于启发性的知识及语言决策规则设计的,这有利于模拟人工控制的过程和方法,增强控制系统的适应能力,使之具有一定的智能水平。 简化系统设计的复杂性,特别适用于非线性、时变、模型不完全的系统上。 模糊控制的缺点

Matlab 的 Fuzzy 工具箱实现模糊控制

Matlab的 Fuzzy 工具箱实现模糊控制(rulelist的确定) 用Matlab的 Fuzzy 工具箱实现模糊控制- - 用Matlab中的 Fuzzy 工具箱做一个简单的模糊控制,流程如下: 1、创建一个 FIS (Fuzzy Inference System ) 对象, a = newfis(fisName,fisType,andMethod,orMethod,impMethod, aggMethod,defuzzMethod) 一般只用提供第一个参数即可,后面均用默认值。 2、增加模糊语言变量 a = addvar(a,'varType','varName',varBounds) 模糊变量有两类:input 和 output。在每增加模糊变量,都会按顺序分配一个 index,后面要通过该index 来使用该变量。 3、增加模糊语言名称,即模糊集合。 a = addmf(a,'varType',varIndex,'mfName','mfType',mfParams) 每个模糊语言名称从属于一个模糊语言。Fuzzy 工具箱中没有找到离散模糊集合的隶属度表示方法,暂且用插值后的连续函数代替。 参数mfType即隶属度函数(Membership Functions),它可以是Gaussmf、trimf、trapmf等,也可以是自定义的函数。 每一个语言名称也会有一个 index,按加入的先后顺序得到,从 1 开始。 4、增加控制规则,即模糊推理的规则。 a = addrule(a,ruleList) 其中ruleList是一个矩阵,每一行为一条规则,他们之间是 ALSO 的关系。 假定该 FIS 有 N 个输入和 M 个输出,则每行有 N+M+2 个元素,前 N 个数分别表示 N 个输入变量的某一个语言名称的 index,没有的话用 0 表示,后面的 M 个数也类似,最后两个分别表示该条规则的权重和个条件的关系,1 表示 AND,2 表示 OR。 例如,当“输入1” 为“名称1” 和“输入2” 为“名称3” 时,输出为“ 输出1” 的“状态2”,则写为: [1 3 2 1 1] 5、给定输入,得到输出,即进行模糊推理。 output = evalfis(input,fismat) 其中fismat为前面建立的那个 FIS 对象。 一个完整的例子如下: clear all; a = newfis('myfis'); a = addvar(a,'input','E',[0 7]); a = addmf(a,'input',1,'small','trimf',[0 1 4.333]); a = addmf(a,'input',1,'big','trimf',[1.6667 6 7]); a = addvar(a,'output','U',[0 7]); a = addmf(a,'output',1,'small','trimf',[0 1 4.333]);

(完整版)matlab模糊控制工具箱的使用

matlab模糊控制工具箱的使用 本学期选修了周川老师的智能控制及应用这门课程,大三时候曾上过周老师的英文版的控制工程基础这门课程,比较喜欢周老师上课的风格,智能控制这门课也收获不小,模糊控制是课程中讲到的第一个智能控制算法。 模糊不是真的模糊,模糊是为了精确。模糊控制中涉及到一个隶属度的概念,通常我们认为一个事物属于一个概念与否是确定的,比如数字电路的0与1,但是实际情况或者人们的思维习惯却不是这样的。比如规定18到30岁为青年,那么还差一天到18岁的人算不算青年呢?照规定看不算,但是如果我们加入概率的概念,比如说这个人90%属于青年人,可能更符合人们的思维习惯。 L.A.Zadeh在其《不相容原理》所述:“随着系统的复杂程度不断提高,人们对其精确而有意义地描述的能力不断的降低,以致在达到某一个阈值之后,系统的精确性和复杂性之间呈现出几乎是相互完全排斥的性质”。我们通常所用的控制算法一般是建立在模型比较确定的情况下,而模糊控制不依赖于对象的模型就可以进行控制决策,而且对系统参数变化具有较强的适应性。 对于模糊控制的原理,我不是很清楚,也没有这个心情去搞清楚,感觉知道大概怎么用就可以了。Matlab中集成了模糊控制工具箱,可以使用图像界面进行模糊控制器的设计,极大的简化了设计过程。下面介绍利用模糊工具箱进行控制系统设计的过程。 在matlab的主窗口中输入fuzzy即可调出模糊工具箱界面,退出界面的时候会提示保存,保存格式为fis,如果我们将文件保存为njust.fis,那么下次使用这个文件的时候在主窗口中输入fuzzy njust即可。 模糊控制器的建立过程如下:(1)设定误差E、误差变化率EC和控制量U的论域为,一般为[-6 6]。(2)设定E、EC、U的模糊集。一般可设为{NB、NM、NS、ZO、PS、PM、PB}。(3)设定隶属度函数。有高斯型隶属度函数、三角型隶属度函数等。(4)设定模糊控制规则。常用的模糊控制规则如图1所示,当然可以根据特定的控制对象和要求进行相应的调整。

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

基于MATLAB的模糊控制器的设计与仿真 摘要:本文对模糊控制器进行了主要介绍。提出了一种模糊控制器的设计与仿真的实现方法,该方法利用MA TLB模糊控制工具箱中模糊控制器的控制规则和隶属度函数,建立模型,并进行模糊控制器设计与仿真。 关键词:模糊控制,隶属度函数,仿真,MA TLAB 1 引言 模糊控制是一种特别适用于模拟专家对数学模型未知的较复杂系统的控制,是一种对模型要求不高但又有良好控制效果的控制新策略。与经典控制和现代控制相比,模糊控制器的主要优点是它不需要建立精确的数学模型。因此,对一些无法建立数学模型或难以建立精确数学模型的被控对象,采用模糊控制方法,往往能获得较满意的控制效果。 模糊控制器的设计比一般的经典控制器如PID控制器要复杂,但如果借助MATLAB则系统动态特性良好并有较高的稳态控制精度,可提高模糊控制器的设计效率。本文在MATLAB环境下针对某个控制环节对模糊控制系统进行了设计与仿真。 2 模糊控制器简介 模糊控制器是一种以模糊集合论,模糊语言变量以及模糊推理为数学基础的新型计算机控制方法。显然,模糊控制的基础是模糊数学,模糊控制的实现手段是计算机。本章着重介绍模糊控制的基本思想,模糊控制的基本原理,模糊控制器的基本设计原理和模糊控制系统的性能分析。 随着科学技术的飞速发展,在那些复杂的,多因素影响的严重非线性、不确定性、多变性的大系统中,传统的控制理论和控制方法越来越显示出局限性。长期以来,人们期望以人类思维的控制方案为基础,创造出一种能反映人类经验的控制过程知识,并可以达到控制目的,能够利用某种形式表现出来。而且这种形式既能够取代那种精密、反复、有错误倾向的模型建造过程,又能避免精密的估计模型方程中各种方程的过程。同时还很容易被实现的,简单而灵活的控制方式。于是模糊控制理论极其技术应运而生。 3 模糊控制的特点 模糊控制是以模仿人类人工控制特点而提出的,虽然带有一定的模糊性和主观性,但往往是简单易行,而且是行之有效的。模糊控制的任务正是要用计算机来模拟这种人的思维和决策方式,对这些复杂的生产过程进行控制和操作。所以,模糊控制有以下特点: 1)模糊控制的计算方法虽然是运用模糊集理论进行的模糊算法,但最后得到的控制规律是确定

通过算例熟悉MATLAB模糊控制工具箱

通过算例熟悉MATLAB模糊控制工具箱 设计一个二维模糊控制器控制一个一阶被控对象 1 () 1 G s Ts = + ,然后改变控制对象参 数的大小,观察模糊控制的鲁棒性。 1、模糊推理的五个步骤 1)输入变量的模糊化 这是模糊推理的第一步,是获取输入变量,并确定它们的隶属函数,从而确定属于每个模糊集合的隶属度。 2) 应用模糊算子 完成了输入模糊化,就知道了对于每个模糊规则,前提中每一个部分被满足的程度。如果一个给定规则的前提有多个部分,则要应用模糊算子来获得一个数值,这个数值表示前提对于该规则的满足程度。 3) 应用推理方法 推理的类型有mamdani和sugeno 推理。Mamdani推理法是一种在模糊控制中普遍使用的方法,它本质上仍然是一种合成推理方法,只不过对模糊蕴涵关系取不同的形式而已。Mamdani型推理,从每个规则的结果中得到的模糊集通过聚类运算后得到结果模糊集,被反模糊化后得到系统输出。Sugeon型推理:其中每个规则的结果是输入的线性组合,而输出是结果的加权线性组合。 4) 输出的聚类 由于决策是在对模糊推理系统中所有规则进行综合考虑的基础上做出的,因此必须以某种方式将规则结合起来以做出决策。聚类就是这样一个过程,它将表示每个规则输出的模糊集结合成一个单独的模糊集。聚类方法有max,probor(概率乘),sum。其中,sum执行的是各规则输出集的简单相加。 5) 解模糊化 解模糊化过程也叫反模糊化过程,它的输入是一个模糊集,既上一步的聚类输出模糊集,其输出为一个单值。模糊集的聚类中包含很多输出值,因此必须进行反模糊化,以从集合中解析出一个单输出值。 2、模糊逻辑工具箱的介绍 模糊逻辑工具箱提供的图形用户界面(GUI)工具有五个:模糊推理系统(FIS)编辑器;隶属函数编辑器;模糊规则编辑器;模糊规则观察器;输出曲面观察器。 1)FIS编辑器: Matlab的FIS界面如图1所示。FIS处理系统有多少个输入变量,输出变量,名称是什么,模糊算子“与”(min,prod乘积,custom自定义),“或”(max大,probor 概率统计方法,custom),推理方法(min,prod,custom),聚类方法(max,probor,sum,custom),解模糊的方法(centroid质心法,bisector中位线法,middle of maximum,largest of maximum,smallest of maximum)。

MATLAB模糊逻辑工具箱及函数调用方法

4 MATLAB模糊工具箱介绍 Fuzzy Logic工具箱功能非常强大,利用它人们可以方便地建立模糊逻辑推理系统,并对其进行测试。这里我们主要介绍它提供的5个图形化的系统设计工具。 4.1模糊推理系统编辑器 启动模糊推理系统编辑器(FISE, Fuzzy Inference SystemEditer)的方法有两种,在MATLAB的命令窗口中输入“fuzzy”命令或者依次点击MATLAB软件左下角的“Start”,“Toolboxes”,“Fuzzy Logic”也可打开FISE,然后双击FIS Editor Viewer项。FISE的图形界面如下图14示。 图1FISE图形界面 4.2隶属函数编辑器 在MATLAB的命令界面输入“mfedit”命令或者在模糊推理系统编辑器的“File” “Edit/Membership Functions”或者双击图14中红色矩形,都可打开隶属函数编辑器。通过该编辑器可以设定和变更输入/输出语言变量的各自的语言值的隶属函数的类型及参数。如下图15所示。 图2隶属函数编辑器界面 4.3模糊规则编辑器 在MATLAB的命令界面中输入“ruleedit”命令或者利用模糊推理系统编辑

器的“File” “Edit/Rules”或双击图2里红色框旁的黑色的矩形框,都可以打开模糊规则编辑器。通过该编辑器可以添加、修改和删除必要的模糊规则,其空白界面如下图3所示。 图3模糊规则编辑器界面 4.4模糊规则观察器 在MATLAB的命令界面输入“ruleview”命令,或者在前面介绍的三种编辑器中的任一个中选择相应的“View/Rules”,均可打开模糊规则观察器。在模糊规则观察器中,以图形形式描述了模糊推理系统的推理过程,如下图4所示。 图4模糊规则浏览器界面 4.5模糊推理输入输出变量特性观察器 在MATLAB的命令窗口中输入“surfview”命令,或者在各个编辑器窗口选择相应菜单“View/Surface”,都可打开模糊推理输入输出曲面浏览器。该窗口用三维图形展示出输入与输出变量的曲面特性,如下图5所示。

模糊控制系统及其MATLAB实现

模糊控制系统及其MATLAB实现 1. 模糊控制的相关理论和概念 1.1 模糊控制的发展 模糊控制理论是在美国加州伯克利大学的L.A.Zadeh教授于1965 年建立的模 糊集合论的数学基础上发展起来的。之后的几年间Zadeh又提出了模糊算法、模糊 决策、模糊排序、语言变量和模糊IF-THEN规则等理论,为模糊理论的发展奠定了 基础。 1975年,Mamdani和Assilian创立了模糊控制器的基本框架,并用于控制蒸 汽机。 1978年,Holmblad和Ostergaard为整个工业过程开发出了第一个模糊控制器——模糊水泥窑控制器。 20世纪80年代,模糊控制开始在工业中得到比较广泛的应用,日本仙台地铁 模糊控制系统的成功应用引起了模糊领域的一场巨变。到20世纪90年代初,市场 上已经出现了大量的模糊消费产品。 近30 年来, 因其不依赖于控制对象的数学模型、鲁棒性好、简单实用等优点, 模糊控制已广泛地应用到图像识别、语言处理、自动控制、故障诊断、信息并且渗透到社会科学和检索、地震研究、环境预测、楼宇自动化等学科和领域, 自然科学许多分支中去, 在理论和实际运用上都取得了引人注目的成果。 1.2 模糊控制的一些相关概念 用隶属度法来定义论域U中的集合A,引入了集合A的0-1隶属度函数, 用,()x表示,它满足: A xA,1, ,x(),,AxA,0,

用0-1之间的数来表示x属于集合A的程度,集合A等价与它的隶属度函 数,()x A 模糊系统是一种基于知识或基于规则的系统。它的核心就是由所谓的IF-THEN 规则所组成的知识库。一个模糊的IF-THEN规则就是一个用连续隶属度函数对所描述的某些句子所做的IF-THEN形式的陈述。例如: 如果一辆汽车的速度快,则施加给油门的力较小。 这里的“快”和“较小”分别用隶属度函数加以描述。模糊系统就是通过组合IF-THEN规则构成的。 构造一个模糊系统的出发点就是要得到一组来自于专家或基于该领域知识的模糊IF-THEN规则,然后将这些规则组合到单一系统中。不同的模糊系统可采用不用的组合原则。 用隶属度函数表征一个模糊描述后,实质上就将模糊描述的模糊消除了。 模糊控制系统设计的关键在于模糊控制器的设计。模糊控制器的设计主要有三个部分: (1) 输入量的模糊化 所谓模糊化(Fuzzification) 就是先将某个输入测量量的测量值作标准化处理,把该输入测量量的变化范围映射到相应论域中,再将论域中的各输入数据以相应的模糊语言值的形式表示,并构成模糊集合。这样就把输入的测量量转换为用 隶属度函数表示的某一模糊语言变量。 (2) 模糊逻辑推理 根据事先已定制好的一组模糊条件语句构成模糊规则库,运用模糊数学理论对 模糊控制规则进行推理计算,从而根据模糊控制规则对输入的一系列条件进行综合评估,以得到一个定性的用语言表示的量,即模糊输出量。完成这部分功能的过程就是模糊逻辑推理过程。

基于MATLAB的模糊控制洗衣机的设与仿真(谷风软件)

基于MATLAB的模糊控制洗衣机的设计与 仿真 卫瑶瑶,王胜红 (南京农业大学工学院,210031) 摘要:根据模糊控制的原理对传统洗衣机进行改造,设计了模糊控制系统。通过MA TLAB仿真,采用取最大隶属度法得到清晰化结果,所得结果与理论计算结果一致。 关键词:模糊控制;洗衣机;MA TLAB Design and Simulation of Fuzzy Control System of Washing Machine Based on MATLAB Wei yaoyao, Wang Shenghong (College of Engineering,Nanjing Agricultural University,210031) Abstract: This paper designed a fuzzy control system for washing machine based on the theory of fuzzy control. This paper conducted the simulation of MATLAB, and took maximum membership degree method to get the results of clarity. Finally, it’s proved that the simulation results is the same with theory calculation. Keywords: fuzzy control; washing machine; MATLAB 自动控制从最早的开环控制起步,然后是反馈控制、最优控制、随机控制,再到自适应控制、自学习控制、自组织控制,一直发展到自动控制的最新阶段——智能控制。智能控制的几个重要分支有:专家系统、模糊控制、神经网络控制等。作为人类思维外壳的自然语言,本身就带有模糊性,这是计算机所不能理解的。模糊控制是以模糊集合理论和模糊逻辑推理为基础,把专家用自然语言表述的知识和控制经验,通过模糊理论转换成数学函数,再用计算机进行处理。传统控制方法对一个系统进行控制时,首先要建立控制系统的数学模型,即描述系统内部物理量(或变量)之间关系的数学表达式,必须得知道系统模型的结构、阶次、参数等。然而在工程实践中人们发现,有些复杂的控制系统,虽然不能建立起数学模型,无法用传统控制方法进行控制,但是凭借丰富的实际操作经验,技术工人却能够通过相应操作得到满意的控制效果【1】。 模糊控制之所以被人们广泛接受,是因为其有以下优点:(1)模糊控制器的设计不依赖于被控对象的精确数学模型;(2)模糊控制易于被操作人员接受;(3)便于用计算机软件实现;(4)鲁棒性和适应性好。 1 洗衣机模糊控制系统的原理 传统洗衣机从控制角度看,实际上是一台按事先设定好的参数进行顺序控制的机器,它不能根据情况和条件的变化来改变参数。而模糊逻辑控制的智能洗衣机,它能够完成除开启电源、放取衣物之外的全部功能,智能洗衣机的核心是单片机控制板,它具有检测和控制

基本FIS编辑器(MATLAB模糊逻辑工具箱函数)

基本FIS编辑器 函数fuzzy 格式 fuzzy %弹出未定义的基本FIS编辑器 fuzzy(fismat) %使用fuzzy('tipper'),弹出下图FIS编辑器。 编辑器是任意模糊推理系统的高层显示,它允许你调用各种其它的编辑器来对其操作。此界面允许你方便地访问所有其它的编辑器,并以最灵活的方式与模糊系统进行交互。 方框图:窗口上方的方框图显示了输入、输出和它们中间的模糊规则处理器。单击任意一个变量框,使选中的方框成为当前变量,此时它变成红色高亮方框。双击任意一个变量,弹出隶属度函数编辑器,双击模糊规则编辑器,弹出规则编辑器。 图6-19 菜单项:FIS编辑器的菜单棒允许你打开相应的工具,打开并保存系统。 ·File菜单包括: New mamdani FIS … 打开新mamdani型系统; New Sugeno FIS …打开新Sugeno型系统; Open from disk …从磁盘上打开指定的.fis文件系统; Save to disk 保存当前系统到磁盘上的一个.fis文件上; Save to disk as … 重命名方式保存当前系统到磁盘上; Open from workspace … 从工作空间中指定的FIS结构变量装入一个系统; Save to workspace …保存系统到工作空间中当前命名的FIS结构变量中; Save to workspace as …保存系统到工作空间中指定的FIS结构变量中; Close windows 关闭GUI; ·Edit菜单包括: Add input 增加另一个输入到当前系统中; Add output 增加另一个输出到当前系统中; Remove variable 删除一个所选的变量;

Matlab 的 Fuzzy 工具箱实现模糊控制(rulelist的确定)

引用如何在MATLAB下把模糊推理系统转化为查询表(原创) Matlab 2009-12-26 22:05:01 阅读161 评论0 字号:大中小订阅 引用 foundy的如何在MATLAB下把模糊推理系统转化为查询表(原创) 李会先 摘要:该文论述了将MATLAB下调试成功的模糊逻辑转换为查询表的一种技巧,这种技巧不直接使用MATLAB的矩阵计算方法,操作者多数情况下只需点击鼠标就可完成任务,效率比较高,该方法使用MATLAB下的系统测试工具,收集构造查询表所需的数据资料,文中以MATLAB中的水位模糊控制演示模型为例,把该系统的模糊控制推理模块用在其基础上生成的查询表代替后再进行水位控制仿真,控制效 果与模糊推理模块在线推理控制是一致的。 关键词:模糊控制;查询表;MATLAB;Simulink; 系统测试 Abstract:This article discuss a skill that make a translation from fuzzy logic system to Lookup Table in Matlab,It doesn't use matrix computing, user need only to drag and draw the mouse completing this task,It's a efficiency method which to collect data for Lookup Table construction from a fu zzy controller by SystemTest Toolbox in Matlab,in the article,I will discuss the skill by a demo which is the Water Level Control in Tank in the Fuzzy logic Toolbox,at last,I simulate the Water Control in Tank instead of the Fuzzy Controller with the Lookup Table which I have constructed,the test results is very well. Keywords: Fuzzy Logic, Matlab,Simulink,Lookup Table,SystemTest 1. 引言 在MATLAB/Simulink下,构建模糊逻辑系统模型和调试其推理规则都是很方便的[3][4],我们当然不希望在MATLAB下的仿真工作仅仅用于仿真目的,如果实际产品设计能继承仿真的工作成果,将事半功倍。在MATLAB里,还没有把模糊推理系统直接转化为查询表的工具,尽管Fuzzy Logic 提供的gensurf(FIS)指令可生成响应面的数据,但用这种方法获得的数据生成查询表控制效果不理想,借助于MATLAB下的系统测试工具是另一种实现这一目标的方法。因为查询表用于一些廉价的嵌入式系统效率比较高,也节省系统资源,所以在MATLAB下实现这种转化是非常有意义的。 我们知道,模糊逻辑推理系统是输入变量空间到输出变量空间的一种映射,而查询表也是实现输入变量空间到输出变量空间的一种映射,它们只不过是可实现非线性映射的两种方法而已。当通过Simulink/Fuzzy Logic Toolbox实现了一个模糊推理系统,不妨把它看成一个黑箱按系统辩识的思路来测试它,这时我们只关心它的输入与输出,每当在这个黑箱的输入端馈入一个输入,那么它的输出就相应有一个输出响应,能否在这个黑箱输入端送入所有输入变量的可能组合来观测输出呢?答案是肯定的,查询表的构造正需要这些输入输出数据组,有了这些数据,建立一个查询表就简单了。一般来说输入变量有一定义范围,计算机的A/D变换和模糊系统模糊化处理时都存在量化过程,在这个黑箱的输入端送入的测试变量值当然也是离散化了的,一个两变量的系统,如果每个变量被离散化为10个值,那么总共就需要100次测试,随着系统变量的增加或量化等级的提高,需做的输入测试成级数快数增长,借助与MATLAB里的系统测试工具,可以快速做这类测试并收集系统输出数据。

基于MATLAB的模糊控制系统设计

实验一基于MATLAB的模糊控制系统设计 1.1实验内容 (1)基于MATLAB图形模糊推理系统设计,小费模糊推理系统; (2)飞机下降速度模糊推理系统设计; (3)水箱液位模糊控制系统设计及仿真运行。 1.2实验步骤 1小费模糊推理系统设计 (1)在MATLAB的命令窗口输入fuzzy命令,打开模糊逻辑工具箱的图形用户界面窗口,新建一个Madmdani模糊推理系统。 (2)增加一个输入变量,将输入变量命名为service、food,输出变量为tip,这样建立了一个两输入单输出模糊推理系统框架。 (3)设计模糊化模块:双击变量图标打开Membership Fgunction Editor窗口,分别将两个输入变量的论域均设为[0,10],输出论域为[0,30]。 通过增加隶属度函数来进行模糊空间划分。 输入变量service划分为三个模糊集:poor、good和excellent,隶属度函数均为高斯函数,参数分别为[1.5 0]、[1,5 5]和[1.5 10]; 输入变量food划分为两个模糊集:rancid和delicious,隶属度函数均为梯形函数,参数分别为[0 0 1 3]和[7 9 10 10]; 输出变量tip划分为三个模糊集:cheap、average和generous,隶属度函数均为三角形函数,参数分别为[0 5 10]、[10 15 20]和[20 25 30]。

(4)设置模糊规则:打开Rule Editor窗口,通过选择添加三条模糊规则: ①if (service is poor) or (food is rancid) then (tip is cheap) ②if (service is good) then (tip is average) ③if (service is excellent) or (food is delicious) then (tip is generous) 三条规则的权重均为 1. (5)模糊推理参数均使用默认值,通过曲面观察器(Surface Viewer)查看

方法二用MATLAB的模糊逻辑工具箱(Fuzzy toolbox)实现.

方法二:用MATLAB的模糊逻辑工具箱(Fuzzy toolbox)实现 (陈老师整理) 一、模糊逻辑推理系统的总体特征 模糊控制由于不依赖对象的数学模型而受到广泛的重视,计算机仿真是研究模糊控制系统的重要手段之一。由Math Works公司推出的Matlab软件,为控制系统的计算机仿真提供了强有力的工具,特别是在Matlab4.2以后的版本中推出的模糊工具箱(Fuzzy Toolbox),为仿真模糊控制系统提供了很大的方便。由于这样的模块都是由相关领域的著名学者开发的,所以其可信度都是很高的,仿真结果是可靠的。 在Simulink环境下对PID控制系统进行建模是非常方便的,而模糊控制系统与PID控制系统的结构基本相同,仅仅是控制器不同。所以,对模糊控制系统的建模关键是对模糊控制器的建模。Matlab软件提供了一个模糊推理系统(FIS)编辑器,只要在Matlab命令窗口键入Fuzzy就可进入模糊控制器编辑环境。 二、Matlab模糊逻辑工具箱仿真 1.模糊推理系统编辑器(Fuzzy) 模糊推理系统编辑器用于设计和显示模糊推理系统的一些基本信息,如推理系统的名称,输入、输出变量的个数与名称,模糊推理系统的类型、解模糊方法等。其中模糊推理系统可以采用Mandani或Sugeuo两种类型,解模糊方法有最大隶属度法、重心法、加权平均等。 打开模糊推理系统编辑器,在MATLAB的命令窗(command window)内键入:fuzzy 命令,弹出模糊推理系统编辑器界面,如下图所示。

因为我们用的是两个输入,所以在Edit菜单中,选Add variable… ->input,加入新的输入input,如下图所示。 选择input(选中为红框),在界面右边文字输入处键入相应的输入名称,例如,温度输入用tmp-input, 磁能输入用 mag-input,等。 2.隶属度函数编辑器(Mfedit) 该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。 双击所选input,弹出一新界面,在左下Range处和Display Range处,填入取只范围,例如 0至9 (代表0至90)。 在右边文字文字输入Name处,填写隶属函数的名称,例如lt或LT(代表低温)。 在Type处选择trimf(意为:三角形隶属函数曲线,tri angle m ember f unction),当然也可选其它形状。

基于MATLAB的温度模糊控制系统的设计

智能控制》课程论文 基于MATLAB的温度模糊控制系统的设计 成绩:任课教师:田志波班级:测控09-2 作者:胡 兵上交时间:2012.11.05 一、温度模糊控制 在工业生产过程中,温度控制是重要环节,控制精度直接影响系统的运行和产品质量。在传统的温度控制方法中,一般采取双向可控硅装置,并结合简单控制算法(如PID算法),使温度控制实现自动调节。但由于温度控制具有升温单向性、大惯性、大滞后等特点,很难用数学方法建立精确的模型,因此用传统的控制理论和方法很难达到好的控制效果。鉴于此,本文拟以模糊控制为基础的温度智能控制系统,采用人工智能中的模糊控制技术,用 模糊控制器代替传统的PID控制器,以闭环控制方式实现对温度的自动控制。 二、方案设计 利用MATLA的模糊控制箱及Simulink内含的功能元件,建立温度箱温度模糊控制器及其系统的模型。 1. 建立模糊控制器 采用温度偏差,即实际测量温度与给定温度之差e及偏差变化率ed作为模糊控制器的输 入变量,输出p为“PW波(脉冲宽度调制)”控制发热电阻的功率,来调节温度箱内温度的升降,形成典型的双输入单输出二维模糊控制器。

运用MATLA中的FIS编辑器,建立温度箱的Mamdan型模糊控制器,如图1所示。温度偏差e、温度偏差变化率ed和输出变量IZ的语言变量E, Ed, P都选择为{NB, NM NS Z, PS, PM PB},其中P和N分别表示正与负,B, M s分别表示大、中、小,z表示0。 图1模糊控制器模型 2. 建立控制决策及隶属函数 模糊控制决策及解模糊方法采用系统默认值,即极大极小合成运算与重心法解模糊。由模糊控制决策公式可求得输出变量的模糊集合为P =(E X Ed ) X R 本文都采用三角隶属函数,各变量的隶属函数如图2所示。其中,图2(a)为E和Ed,隶属 函数图,E和Ed的量化论域为[-6 , 6];图2(b)为P隶属函数图,EQ的量化论域为[-6 , 6]。不同的系统,其模糊集的隶属函数是不同的,要根据实际情况和实践经验而定。

Matlab模糊工具箱的使用

模糊控制由于不依赖对象的数学模型而受到广泛的重视,计算机仿真是研究模糊控制系统的重要手段之一。由Math Works公司推出的Matlab软件,为控制系统的计算机仿真提供了强有力的工具,特别是在Matlab4.2以后的版本中推出的模糊工具箱(Fuzzy Toolbox),为仿真模糊控制系统提供了很大的方便。由于这样的模块都是由相关领域的著名学者开发的,所以其可信度都是很高的,仿真结果是可靠的。 在Simulink环境下对控制系统进行建模是非常方便的,而模糊控制系统与常见控制系统的结构基本相同,仅仅是控制器不同。所以,对模糊控制系统的建模关键是对模糊控制器的建模。Matlab软件提供了一个模糊推理系统(FIS)编辑器,只要在Matlab命令窗口键入fuzzy命令就可进入模糊控制器编辑环境。

一、模糊推理系统编辑器(Fuzzy) 模糊推理系统编辑器用于设计和显示模糊推理系统的一些基本信息,如推理系统的名称,输入、输出变量的个数与名称,模糊推理系统的类型、解模糊方法等。其中模糊推理系统可以采用Mandani或Sugeuo两种类型,解模糊方法有最大隶属度法、重心法、加权平均等。 打开模糊推理系统编辑器,在MATLAB的命令窗(command window)内键入:“fuzzy”命令,弹出模糊推理系统编辑器界面,如下图所示。

首先确定输入、输出变量的个数,在Edit菜单中,选Add variable?input,加入新的输入input; 选Add variable?output,加入新的输出output。

修改名称

二、隶属度函数编辑器(Mfedit) 该编辑器提供一个友好的人机图形交互环境,用来设计和 修改模糊推理系中各语言变量对应的隶属度函数的相关参数, 如隶属度函数的形状、范围、论域大小等,系统提供的隶属度 函数有三角、梯形、高斯形、钟形等,也可用户自行定义。 双击任一个输入或输出模块,进入成员函数编辑界面。 在成员变量编辑界面中, “Range”?确定变量的论域; “Name”?确定隶属函数的名称; “Type”?确定隶属度函数类型; 如果显示的曲线数量不够(曲线的数量等于模糊集中),点击Edit菜单,选Add Custom MS?继续填入相应参数即可。

matlab下模糊控制器设计步骤

下面将根据模糊控制器设计步骤,一步步利用Matlab工具箱设计模糊控制器。 Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便。 首先我们在Matlab的命令窗口(command window)中输入fuzzy,回车就会出来这样一个窗口。 下面我们都是在这样一个窗口中进行模糊控制器的设计。

1.确定模糊控制器结构:即根据具体的系统确定输入、输出量。 这里我们可以选取标准的二维控制结构,即输入为误差e和误差变化ec,输出为控制量u。注意这里的变量还都是精确量。相应的模糊量为E,EC和U,我们可以选择增加输入(Add Variable)来实现双入单出控制结构。 2.输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。 首先我们要确定描述输入输出变量语言值的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},并设置输入输出变量的论域,例如我们可以设置误差E(此时为模糊量)、误差变化EC、控制量U的论域均为{-3,-2,-1,0,1,2,3};然后我们为模糊语言变量选取相应的隶属度函数。

在模糊控制工具箱中,我们在Member Function Edit中即可完成这些步骤。首先我们打开Member Function Edit窗口. 然后分别对输入输出变量定义论域范围,添加隶属函数,以E为例,设置论域范围为[-3 3],添加隶属函数的个数为7.

然后根据设计要求分别对这些隶属函数进行修改,包括对应的语言变量,隶属函数类型。

matlab模糊控制实现教学内容

模糊控制作业 一介绍 模糊控制是指基于模糊逻辑描述一个过程的控制算法,是以模糊集合论、模糊语言变量及模糊逻辑推理为基础的,基于被控系统的物理特性,模拟人的思维方式和人的控制经验来实现的一种计算机智能控制。模糊控制器主要嵌有操作人员的经验和直觉知识,是模糊语言形式的控制方法,不需要预先知道被控对象结构、参数,不需要建立被控对象的精确数学模型,并能克服非线性因素、大惯性因素的影响,对调节对象的参数变化不敏感,对对象时变及纯滞后有一定的适应性,即具有较强的鲁棒性。模糊控制器的设计参数容易选择调整。模糊控制系统如图1-1所示 图1-1 模糊控制系统框图 二本作业介绍 1、选定模糊控制器的输入输出变量,并进行量程转换 输入语言变量选为实际浓度与给定值之间的偏差(纸浆浓度偏差)e及纸浆浓度偏差变化率ec,输出语言变量选为阀门开度增量u。首先确定e、ec和u 的基本论域分别为[-1.2%~1.2%]、[-0.6%~0.6%]和[-12~12],选定e、u的模糊集合的论域为[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6],ec的模糊集合的论域为[-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7] 2、确定模糊控制器的结构 根据系统输入变量个数可知,应采用采用双输入单输出模糊控制器。(如图2所示)模糊控制器主要包含三个功能环节:用于输入信号处理的模糊量化和模糊化环节,模糊控制算法功能单元,以及用于输出解模糊化的模糊判决环节。

e d/dt 图2 双输入单输出模糊控制器 3、确定各变量的模糊语言取值及相应的隶属函数,即进行模糊化 模糊化是将模糊控制器输入量的确定值转换为相应模糊语言变量值的过程,此相应语言变量均由对应的隶属度函数来定义。 对纸浆浓度偏差e 、纸浆浓度偏差变化率ec 、阀门开度的增量u 进行模糊化,分别用模糊语言变量X 、Y 、Z 进行表示,语言值集合均为{负大,负中,负小,零,正小,正中,正大},用英文缩写进行表示分别为: X={NBe,NMe,NSe,ZOe,PSe,PMe,PBe} Y={ NBec,NMec,NSec,ZOec,PSec,PMec,PBec } Z={ NBu,NMu,NSu,ZOu,PSu,PMu,PBu } 模糊化包括两个任务:第一个任务是进行论域变换,过程参数的实际范围称为基本论域,可以通过变换系数(量化因子)实现由基本论域到量化论域的变换;第二个任务是求得输入对应于语言变量的隶属度。取三角形隶属函数,并取为均非均匀间隔。 a.任务一:求量化因子 e 、ec 和u 的基本论域分别为[-1.2%~1.2%]、[-0.6%~0.6%]和[-12~12],量化论域分别为[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6],[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6],[-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7] 。 纸浆浓度偏差e 的量化因子Ke=6/0.012=500,纸浆浓度偏差变化率ec 的量化因子Kec=6/0.006=1000,通过量化因子即可实现由基本论域到量化论域的变换。 b.任务二:取隶属度函数 选用三角形隶属度函数,如图所示: 图2-1 纸浆浓度偏差e 的隶属度函数 二维 模糊 控制器

matlab下模糊控制器设计--实用步骤.docx

真理惟一可靠的标准就是永远自相符合。土地是以它的肥沃和收获而被估价的;才能也是土地,不过它生产 的不是粮食,而是真理。如果只能滋生瞑想和幻想的话,即使再大的才能也只是砂地或盐池,那上面连 小草也长不出来的。 下面将根据模糊控制器设计步骤,一步步利用Matlab 工具箱设计模糊控制器。 Matlab 模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参 数,就可以很快得到我们所需要的控制器,而且修改也非常方便。 首先我们在Matlab的命令窗口(command window)中输入fuzzy ,回车就会出来这样一个窗口。 下面我们都是在这样一个窗口中进行模糊控制器的设计。 1.确定模糊控制器结构:即根据具体的系统确定输入、输出量。

这里我们可以选取标准的二维控制结构,即输入为误差为控制量 u。注意这里的变量还都是精确量。相应的模糊量为以选择增加输入 (Add Variable) 来实现双入单出控制结构。e 和误差变化ec,输出E, EC 和 U,我们可 2.输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模 糊集合。 首先我们要确定描述输入输出变量语言值的模糊子集,如{NB ,NM ,NS,ZO,PS, PM,PB} ,并设置输入输出变量的论域,例如我们可以设置误差E(此时为模 糊量)、误差变化EC、控制量 U 的论域均为 {-3 , -2 ,-1 ,0, 1, 2,3} ;然后我们为模糊语言变量选取相应的隶属度函数。

在模糊控制工具箱中,我们在先我们打开Member Function Edit Member Function Edit 窗口 . 中即可完成这些步骤。首 然后分别对输入输出变量定义论域范围,添加隶属函数,以 范围为 [-3 3] ,添加隶属函数的个数为7. E 为例,设置论域

基于matlab的洗衣机模糊控制器的设计及仿真

基于matlab的洗衣机模糊控制器的设计及仿真

————————————————————————————————作者:————————————————————————————————日期: ?

基于ma tla b的洗衣机模糊控制器的设计及仿真 以洗衣机洗涤时间的模糊控制系统设计为例,其控制原理是根据衣物上污泥和油脂的程度,调节洗涤时间,该控制是一个开环的模糊决策过程,模糊控制按以下步骤进行: 1. 确定模糊控制器的结构 选用两输入单输出的模糊控制器。控制器的输入为衣物的污泥和油脂,输出 为洗涤时间。 2. 定义输入、输出的模糊集 将污泥分为3个模糊集:SD (污泥少),MD (污泥中),L D(污泥多),取 值为[0,100];将油脂分为3个模糊集:NG (油脂少),MG (油脂中),LG (油脂多),取值为[0,100];将洗涤时间分为5个模糊集:VS (很短),S(短),M(中等),L(长),V L(很长),取值为[0,60]。 3. 定义输入、输出隶属函数 选用如下三角形隶属函数可实现污泥的模糊化。 ? 采用Ma tlab进行仿真,污泥隶属函数仿真结果如图1所示。 选用如下三角形隶属函数实现油脂的模糊化,如图2所示。 ?? ?? ? ??≤<-=?? ?≤<-≤≤=≤≤-==100 5050/)50()(1005050/)100(50050/)(50050/)50()(x x x x x x x x x x x LD MD SD μμμμ污泥 ?? ?? ? ??≤≤-=?? ?≤<-≤≤=≤≤-==100 5050/)50()(1005050/)100(50050/)(50050/)50()(y y y y y y y y y y y LG MG NG μμμμ油脂

相关文档
最新文档