1 / 21
文档名称:

模糊pid控制方法研究.doc

格式:doc   页数:21页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

模糊pid控制方法研究.doc

上传人:分享精品 2016/3/22 文件大小:0 KB

下载得到文件列表

模糊pid控制方法研究.doc

相关文档

文档介绍

文档介绍:烟台大学文经学院毕业论文(设计) 模糊 PID 控制方法研究 Fuzzy PID Controller 烟台大学文经学院毕业论文(设计) 2模糊控制器的设计 模糊控制器的基本原理 模糊控制器的原理模糊控制(Fuzzy Control) 是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制方法,它从行为上模仿人的模糊推理和决策过程。模糊控制是先将操作人员或专家经验编成模糊规则,然后将来自传感器的实时信号通过模糊规则模糊化,将模糊化后的信号作为模糊规则的输入,完成模糊推理,进行解模糊化,最后将解模糊后得到的输出量加到执行器上。图 2-1 是模糊控制原理框图。图 2-1 模糊控制原理框图 模糊控制器的组成在整个控制器中,模糊控制器是整个控制系统的核心,所采用的模糊规则、合成推理算法和模糊决策的方法等都是决定整个控制器优劣的因素。其组成如图 2-2 : 图 2-2 模糊控制器的组成框图烟台大学文经学院毕业论文(设计) 模糊化接口是模糊控制器的输入借口,主要作用是将真实的确定量输入转换为一个模糊矢量。数据库和规则库共同组成了控制器的知识库,数据库中存放的是所有输入、输出变的的全部模糊子集的隶属度矢量值(即经过论域等级离散化以后对应值的集合)。在规则推理的模糊关系方程求解过程中,向推理机提供数据。规则库是对人类长期经验的总结,将其转化成模糊控制算法,为推理机提供控制规则。推理是模糊控制器中,根据输入模糊量,模仿人类判断时的模糊概念,运用模糊逻辑和模糊推论法进行推论,而得到模糊控制讯号。此部分是模糊控制器的精髓所在。解模糊借口是将推论所得到的模糊值转换为明确的控制讯号,做为系统的输入值。 模糊控制器的设计步骤通过对模糊控制器原理的研究,得出设计模糊控制器主要包括以下几项内容: (1)确定模糊控制器的输入变量和输出变量(即控制量)。输入变量为误差 e以及误差变化 ec,输出变量为控制量 u。e,ec,u的模糊集均为:{NB,NM,NS,ZO,PS,PM,PB }。e, ec的论域均为:{-3,-2,-1,0,1,2,3}。u的论域为:{- ,-3,- ,0,1,3, }。(2)定义输入、输出隶属函数。(3)建立模糊控制规则。(4)建立模糊控制表。(5)模糊推理。(6)反模糊化。 模糊控制器的程序仿真 输入量和输出量的程序及仿真设定 e的范围、隶属度函数的程序: a=addvar(a,'input','e',[-3,3]); a=addmf(a,'input',1,'NB','zmf',[-3,-1]); a=addmf(a,'input',1,'NM','trimf',[-3,-2,0]); a=addmf(a,'input',1,'NS','trimf',[-3,-1,1]); a=addmf(a,'input',1,'Z','trimf',[-2,0,2]); a=addmf(a,'input',1,'PS','trimf',[-1,1,3]); a=addmf(a,'input',1,'PM','trimf',[0,2,3]); a=addmf(a,'input',1,'PB','smf',[1,3]); 仿真的图形: 烟台大学文经学院毕业论文(设计) 图 2-3 e的隶属度函数设定 ec的范围、隶属度函数的程序: a=addvar(a,'input','ec',[-3,3]); a=addmf(a,'input',2,'NB','zmf',[-3,-1]); a=addmf(a,'input',2,'NM','trimf',[-3,-2,0]); 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,'PM','trimf',[0,2,3]); a=addmf(a,'input',2,'PB','smf',[1,3]); 仿真后的图形: 图 2-4 ec的隶属度函数烟台大学文经学院毕业论文(设计) 设定 kp的范围、隶属度函数的程序: a=addvar(a,'output','kp',[-,]); a=addmf(a,'output',1,'NB','zmf',[-,-]); a=addmf(a,'output',1,'NM','trimf',[-,-,0]); a=addmf(a,'output',1,'NS','trimf',[-,-,]); a