资源描述:
《模糊PID控制方法研究.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、烟台大学文经学院毕业论文(设计)模糊PID控制方法研究FuzzyPIDController烟台大学文经学院毕业论文(设计)2模糊控制器的设计2.1模糊控制器的基本原理2.1.1模糊控制器的原理模糊控制(FuzzyControl)是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制方法,它从行为上模仿人的模糊推理和决策过程。模糊控制是先将操作人员或专家经验编成模糊规则,然后将来自传感器的实时信号通过模糊规则模糊化,将模糊化后的信号作为模糊规则的输入,完成模糊推理,进行解模糊化,最后将解模糊后得到的输出量加到执行器上。图2-1是模糊控制原理框图。图2-1模糊控制原理框图2.1.2模糊控
2、制器的组成在整个控制器中,模糊控制器是整个控制系统的核心,所采用的模糊规则、合成推理算法和模糊决策的方法等都是决定整个控制器优劣的因素。其组成如图2-2:图2-2模糊控制器的组成框图烟台大学文经学院毕业论文(设计)模糊化接口是模糊控制器的输入借口,主要作用是将真实的确定量输入转换为一个模糊矢量。数据库和规则库共同组成了控制器的知识库,数据库中存放的是所有输入、输出变的的全部模糊子集的隶属度矢量值(即经过论域等级离散化以后对应值的集合)。在规则推理的模糊关系方程求解过程中,向推理机提供数据。规则库是对人类长期经验的总结,将其转化成模糊控制算法,为推理机提供控制规则。推理是模糊控制器中,根据输入
3、模糊量,模仿人类判断时的模糊概念,运用模糊逻辑和模糊推论法进行推论,而得到模糊控制讯号。此部分是模糊控制器的精髓所在。解模糊借口是将推论所得到的模糊值转换为明确的控制讯号,做为系统的输入值。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的论域为:{-4.5,-3,-1.5,0,1,3,4.5}。(2)定义输入
4、、输出隶属函数。(3)建立模糊控制规则。(4)建立模糊控制表。(5)模糊推理。(6)反模糊化。2.3模糊控制器的程序仿真2.3.1输入量和输出量的程序及仿真设定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=ad
5、dmf(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-3e的隶属度函数设定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,'inp
6、ut',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-4ec的隶属度函数烟台大学文经学院毕业论文(设计)设定kp的范围、隶属度函数的程序:a=addvar(a,'output','kp',[-0.3,0.3]);a=addmf(a,'outp
7、ut',1,'NB','zmf',[-0.3,-0.1]);a=addmf(a,'output',1,'NM','trimf',[-0.3,-0.2,0]);a=addmf(a,'output',1,'NS','trimf',[-0.3,-0.1,0.1]);a=addmf(a,'output',1,'Z','trimf',[-0.2,0,0.2]);a=addmf(a,'output',1,'PS','tr