当前位置:文档之家› 基于matlab的模糊控制器的设计与仿真

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

模糊控制的任务正是要用计算机来模拟这种人的思维和决策方式,对这些复杂的生产过程进行控制和操作。

所以,模糊控制有以下特点:1)模糊控制的计算方法虽然是运用模糊集理论进行的模糊算法,但最后得到的控制规律是确定的、定量的条件语句。

2)不需要根据机理与分析建立被控对象的数学模型,对于某些系统,要建立数学模型是很困难的,甚至是不可能的。

3)与传统的控制方法相比,模糊控制系统依赖于行为规则库,由于是用自然语言表达的规则,更接近于人的思维方法和推理习惯。

因此,便于现场操作人员的理解和使用,便于人机对话,以得到更有效的控制规律。

4)模糊控制与计算机密切相关。

从控制角度看,它实际上是一个有很多条语句组成的软件控制器。

目前,模糊控制还是应用二值逻辑的计算机来实现。

模糊规律经过运算,最后还是进行确定性的控制。

模糊推理硬件的研制与模糊计算机的开发,使得计算机将像人脑那样工作。

4 模糊控制器的研究对象模糊控制器作为智能控制的一种类型,是控制理论发展的高级阶段产物,主要用来解决那些传统方法难以解决的复杂系统的控制问题。

具体地说,其研究对象具备以下一些智能控制对象的特点:1)模型不确定性传统的控制是基于模型的控制,这里的模型包括控制对象和干扰模型。

对于传统控制通常认为模型已知或者经过辨识可以得到,而模糊控制的对象通常存在严重的不确定性。

这里所说的模型不确定性包括两层意思:意思模型未知或知之甚少;二是模型的结构和参数可能在很大范围内变化。

无论那种情况,传统方法都难以对它们进行控制,而这正是模糊控制所要解决的问题。

2)非线性在传统的控制理论中,线性系统理论比较成熟。

对于具有非线性特写的控制对象,虽然也有一些非线性控制的方法,但总的来说,非线性控制理论还很不成熟,而且方法也比较复杂。

采用模糊控制的方法往往可以较好地解决非线性系统的控制问题。

3)复杂的任务要求在传统的控制系统中,控制的任务或者是要求输出量为定值(调节系统),或者要求输出量跟随期望的运动轨迹(跟踪系统),要求比较单一。

对于模糊控制系统,染污的要求往往比较复杂。

例如,在智能机器人系统中,它要求系统对一个复杂的任务具有自行规划和决策的能力,有自动躲避障碍并且运动到期望目标位置的能力。

5 模糊控制器的结构模糊控制器主要有四大部件,如图1所示:1)规则库:由if-then语句构成,是控制思想经验的总结。

2)推理器:由于当前的输入,运用规则库进行推理,求取相应的对策。

3)模糊化:因模糊推理是在语言值(模糊集合)集上进行的,因此输入也应是语言值(如NB,NM,NS,Z,PS,PM,PB)。

而实际被控制对象的测量值是实数值。

因此,需要把实数值变成语言值,这个过程就是模糊化。

4)模糊判决:推理机的推理结果是一个语言值,而执行器需要的是一个具体的数值,这就需要把语言值变成确定值,这个转换过程就称为模糊判决。

6 基于matlab 的模糊控制器的设计与仿真模糊控制器的控制规则是以模糊条件语句描述的语言控制规则为基础的,因此,模糊控制器又称为模糊语言控制器。

模糊控制器是模糊控制系统的核心,因而在模糊控制系统设计中怎样设计和调整模糊控制器及其参数是一项很重要的工作。

仿真是以相似性原理、控制论、信息技术以及相关知识为基础,以各种物理设备和计算机为工具,借助系统模型对真实系统进行试验研究的一门综合技术。

在众多的计算机仿真语言和仿真软件中,MA TLAB 以其模块化计算方法,可视化与智能化的人机交互功能,丰富便捷的矩阵运算、图形绘制、数据处理以及模块化图形组态的系统辅助工具包Simulink ,成为最受控制系统设计和仿真领域欢迎的软件系统。

它可以提供研究对象的建模、仿真和分析等各种动态系统,是进行交互仿真环境的优秀集成软件。

一般来说,设计模糊控制器主要包括以下内容: (1)确定输入、输出物理量 (2)确定模糊子集隶属度函数 (3)建立模糊控制规则(4)确定论域与模糊控制器的参数 (5)进行模拟或仿真以下就按照此方法步骤设计典型二阶环节220() 1.6 4.41G s s s =++所需的模糊控制器。

6.1 确定变量和隶属度函数假设系统输入为 r = 1. 0 ,可取系统输出误差e 和误差变化ec 作为模糊控制器的输入 ,模糊控制器的输出u 作为被控对象的控制输入。

则可根据系统输出的误差和误差变化设计出模糊控制器fz ,并根据一系列的模糊推理过程推导出最终的输出控制量u 。

其中误差e ,误差变化量ec 以及输出u 所对应的模糊语言变量分别为E 、EC 和U 。

表示如下: E={-6,-5,-4,-3,-2,-1,0,+1,+2,+3,+4,+5,+6} EC={-6,-5,-4,-3,-2,-1,0,+1,+2,+3,+4,+5,+6} U={-6,-5,-4,-3,-2,-1,0,+1,+2,+3,+4,+5,+6}每个语言变量都取5个语言值:“正大( PB)”、“正小( PS)”、“零(ZR)”、 “负小(NS)”、“负大(NB)”。

论域E ,EC 的隶属度函数曲线如图2(a )所示,论域U 的属度函数曲线如图2(b )所示。

图1 模糊控制器构成图6.2模糊推理规则的定义根据前面定义的隶属度函数并且结合以往专家们所取得的经验,定义该模糊控制系统的模糊控制规则,如表1所示:表1 模糊控制规则EC E NB NS ZR PS PBNB PB PB PS PS ZR NS PB PS PS ZR ZR ZR PS PS ZR ZR NS PS PS ZR ZR NS NS PBZRZRNSNSNB6.3 实现模糊控制器的设计6.3.1 利用MATLAB 命令编程设计模糊控制器在MATLAB 界面中,新建一个M-file 文件,在其中编程: %模糊控制器设计 %建立FIS图2(a )论域E ,EC 的隶属度函数曲线图2(b )论域U 的属度函数曲线图2a=newfis('fuzzy');f1=1;%设置误差e与隶属度函数a=addvar(a,'input','e',[-6 6]);a=addmf(a,'input',1,'NB','trapmf',[-6 -6 -5 -3]); a=addmf(a,'input',1,'NS','trapmf',[-5 -3 -2 0]); a=addmf(a,'input',1,'ZR','trimf',[-2 0 2]);a=addmf(a,'input',1,'PS','trapmf',[0 2 3 5]);a=addmf(a,'input',1,'PB','trapmf',[3 5 6 6]);f2=1;%设置误差变化率ec与隶属度函数a=addvar(a,'input','ec',[-6 6]);a=addmf(a,'input',2,'NB','trapmf',[-6 -6 -5 -3]); a=addmf(a,'input',2,'NS','trapmf',[-5 -3 -2 0]); a=addmf(a,'input',2,'ZR','trimf',[-2 0 2]);a=addmf(a,'input',2,'PS','trapmf',[0 2 3 5]);a=addmf(a,'input',2,'PB','trapmf',[3 5 6 6]);f3=1.5;%设置控制量u与隶属度函数a=addvar(a,'output','u',[-3 3]);a=addmf(a,'output',1,'NB','trapmf',[-3 -3 -2 -1]); a=addmf(a,'output',1,'NS','trimf',[-2 -1 0]);a=addmf(a,'output',1,'ZR','trimf',[-1 0 1]);a=addmf(a,'output',1,'PS','trimf',[0 1 2]);a=addmf(a,'output',1,'PB','trapmf',[1 2 3 3]);%建立控制规则表rulelist=[1 1 5 1 1;1 2 5 1 1;1 3 4 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 43 1 1;2 53 1 1;3 14 1 1;3 24 1 1;3 3 3 1 1;3 4 3 1 1;3 5 2 1 1;4 1 4 1 1;4 2 3 1 1;4 3 3 1 1;4 4 2 1 1;4 5 2 1 1;5 1 3 1 1;5 2 3 1 1;5 3 2 1 1;5 4 2 1 1;5 5 1 1 1;];a=addrule(a,rulelist);a1=setfis(a,'DefuzzMethod','mom');%设置去模糊化方法writefis(a1,'fuzzf');a2=readfis('fuzzf');Ulist=zeros(7,7);for i=1:7for j=1:7e(i)=-4+i;ec(j)=-4+j;Ulist(i,j)=evalfis([e(i),ec(j)],a2);endend%绘制FIS系统图形figure(1);plotfis(a2);figure(2);plotmf(a,'input',1);figure(3);plotmf(a,'input',2);figure(4);plotmf(a,'output',1);以上程序可得内部原理图如图4(a)所示,输出U的隶属度函数如图4(b)所示,输入E的隶属度函数如图4(c)所示,输入EC的隶属度函数如图4(d)所示:图4(a)内部原理图图4(b)输出U的隶属度函数图4(c)输入E的隶属度函数图4(d)输入EC的隶属度函数图 4由此,就得到了模糊控制器fuzzy6.3.2 利用图形用户界面(GUI)建立模糊推理器(FIS)在利用Simulink图形化工具平台设计模糊控制系统模型并进行系统仿真之前,同样要先建立相应的模糊推理器,这可以通过图形用户界面(GUI)来建立。

相关主题