自适应模糊PID控制器的设计与仿真 - 图文

更新时间:2024-04-03 18:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

题 目

(设计)

自适应模糊PID控制器的设计与仿真

学生姓名 ******* 学 号 *******

院 系 ******* 专 业 电气工程与自动化 指导教师 *******

二O一一年五月二十五日

毕业论文

目 录

1引言 ............................................................. 1 1.1 PID简介 .................................................... 1 1.2 模糊控制简介 ................................................ 2 1.3 本文研究的目的和意义 ........................................ 2 1.4 本文的内容与安排 ............................................ 3 2国内外现状 ....................................................... 3 3 MATLAB工具箱简介 ................................................ 4 3.1 MATLAB 系统的应用 ........................................... 4 3.2 Simlulink工具箱 ............................................ 4 3.3 模糊逻辑工具箱 .............................................. 5 3.4 MATLAB环境下的SIMULINK的应用 .............................. 5 3.4.1 MATLAB 环境中启动SIMULINK 的方法....................... 5 3.4.2打开SIMULINK 模型窗口的方法 ............................ 5 3.4.3 SIMULINK 仿真基本步骤 ................................. 5 4自适应模糊PID控制器的设计 ....................................... 6 4.1 自适应模糊PID控制器的性能要求 .............................. 6 4.2 PID控制的理论基础 .......................................... 6 4.3 模糊控制原理 ................................................ 9 4.4 模糊PID控制系统结构及原理 ................................. 10 4.5 PID控制器参数自整定原则 ................................... 10 4.6 各变量隶属度函数的确定 ..................................... 11

I

4.7 建立模糊规则表 ............................................. 13 5 利用MATLAB对模糊PID控制系统进行仿真 ........................... 18 5.1建立系统结构仿真框图 ....................................... 18 5.2 仿真结果分析 ............................................... 19 6结论 ............................................................ 22 参考文献 .......................................................... 23 ABSTRACT .......................................................... 24 致 谢 ............................................................. 25 附 录 ............................................................ 26

II

自适应模糊PID控制器的设计与仿真

0

摘要:本文在参数自适应模糊PID控制器的基础上,利用模糊推理的方法实现了对PID参数的在线自动整定,并且在MATLAB软件下将该控制器在某系统中的应用进行了研究,仿真结果表明,参数自适应模糊PID控制能使系统达到满意的控制效果,对进一步应用研究具有较大的参考价值。 关键词:自适应;PID控制器;模糊PID;MATLAB仿真

1引言

1.1 PID简介

PID,(Proportional Integral Derivative)控制是目前工业上应用最广泛深入的控制方法。多数控制回路都是应用该方法或在其基础上进行较小的变形来控制。PID调节器及其改进型是工业控制中最常见的控制器。虽然从20世纪初PID控制诞生以来,计算机技术和信息技术飞速发展,控制理论与控制技术取得了令人瞩目的成就,一些先进控制策略不断推出,但其基础的PID控制器以其结构的简单,对模型误差具有鲁棒性以及易于操作等特点,在大多数控制过程中能够获得令人满意的控制性能,因此仍被广泛应用于冶金、化工、电力、轻工和机械等工业控制中。 “特征建模”理论的提出,第一次从理论上有力地论证了PID控制器得以广泛应用的理论依据,并且指出了PID控制器所具有的独特的优越性,它将是复杂系统智能控制的最基本最基础的一个子控制单元。

传统PID的主要缺陷包括:(1)当自整定要以模型为基础,为了PID参数的重新整定在线寻找和保持好过程模型是较难的。闭环工作时,要求在过程中插入一个测试信号。这个方法会引起扰动,所以基于模型的PID参数自整定在工业应用不是太好。(2)如果自整定是基于控制律的,经常难以把由负载干扰引起的影响和过程动态特性变化引起的影响区分开来,因此受到干扰的影响控制器会产生超调,产生一个不必要的自适应转换。另外,由于基于控制律的系统没有成熟的稳定性分析方法,参数整定可靠与否存在很多问题。因此,许多自身整定参数的PID控制器经常工作在自动整定模式而不是连续的自身整定模式。自动整定通常是指根据开环状态确定的简单过程模型自动计算PID参数。(3)PID在控制非线性、时变、耦合及参数和结构不确定的复杂过程时,工作地不是太好。最重要的是,如果PID控制器不能控制复杂过程,无论怎么调参数都没用。如此广泛应用的PID控制器但同时又有如此多的控制器因为控制器本身设计的局限,未能达到用户要求,这给控制理论研究和控制理论应用于实际带来了前所未有的挑战和机遇。

[4]

1

1.2 模糊控制简介

模糊控制是建立在人工经验基础上的。对于一个熟练的操作人员,他往往凭借丰富的实践经验,采取适当的对策来的控制一个复杂过程。若能将这些熟练操作员的实践经验加以总结和描述,并用语言表达出来,就会得到一种定性的、不精确的控制规则。如果用模糊数字将其定量化,就转化为模糊控制算法,从而形成模糊控制理论。

模糊控制尚无统一的定义。从广义上,可将模糊控制定义为:“以模糊集合理论、模糊语言变量及模糊推理为基础的一类控制方法”,或定义为:“采用模糊集合理论和模糊逻辑,并同传统的控制理论相结合,模拟人的思维方式,对难以建立数学模型的对象实施的一种控制方法”。

模糊控制具有一些明显的特点:

(1) 模糊控制不需要被控对象的数学模型。模糊控制是以人对被控对象的控制经验为依据而设计的控制器,

故无需知道被控对象的数学模型。

(2) 模糊控制是一种反映人类智慧的智能控制方法。模糊控制采用人类思维中的模糊量,如“高”、“中”、

“低”、“大”、“小”等,控制量由模糊推理导出。这些模糊量和模糊推理是人类智能活动的体现。 (3) 模糊控制易于被人们接受。模糊控制的核心是控制规则,模糊规则是用语言来表示的。 (4) 鲁棒性和适应性好。

普通模糊控制器的主要缺陷是:普通模糊控制器相当于PD(比例微分)控制器,对输入量的处理是离散的,而且没有积分环节,所以本身无法消除系统的稳态误差。

1.3 本文研究的目的和意义

在工业生产过程中,许多被控对象受负荷变化或干扰因素影响,其对象特性参数或结构易发生改变。自适应控制运用现代控制理论在线辨识对象特征参数,实时改变其控制策略,使控制系统品质指标保持在最佳范围内,但其控制效果的好坏取决于辨识的模型的精确度,这对于复杂系统是非常困难的。因此,在工业生产过程中,大量采用的仍然是PID算法。PID参数的整定方法很多,但大多数都以对象特性为基础

[1][5]

在工业过程控制中,PID控制是历史最悠久的,生命力最强的一种控制方式。它是迄今为止最通用的

[1]

控制方法。常规PID控制器结构简单,参数意义清晰明确,可靠性高,容易实现,稳态无静差,控制精度高,能满足大工业过程的要求。然而在生产现场中, 大多数工业过程不同程度的存在非线性、大滞后、参数时变性和模型不确定性,因此常规PID参数整定方法繁杂,其参数往往整定不良、性能欠佳,对运行工况的整定性差。而模糊控制不要求被控对象的精确模型且适应性强,为了克服传统PID控制器的缺点,人们将模糊控制与PID控制器结合起来,扬长避短,研究出了多种模糊PID控制器。

随着计算机技术的发展,人们利用人工智能的方法将操作人员的调整经验作为知识存入计算机中,根据现场实际情况,计算机能自动调整PID参数,这样就出现了专家PID控制器。该控制器把古典的PID控制与先进的专家系统相结合,实现系统的最佳控制。这种控制方法必须精确地确定对象模型,将操作人员(专家)长期实践积累的经验知识用控制规则模型化,并运用推理对PID参数实现最佳调整。

由于操作者经验不易精确描述,控制过程中各种信号量及评价指标不易定量表示,专家PID方法受到局限。模糊理论是解决这一问题的有效途径,所以人们运用模糊数学的基本理论和方法,把规则的条件、

2

操作用模糊集表示,并把这些模糊控制规则及有关信息(如评价指标、初始PID参数等)作为知识存入计算机知识库中,然后计算机根据控制系统的实际响应情况(集专家系统的输入条件),运用模糊推理,即可自动实现对PID参数的最佳调整,这就是模糊自适应PID控制[6]。因为其采用模糊推理的方法实现PID参数kp、ki和kd的在线自整定,不仅保持了常规PID控制系统原理简单、使用方便、控制精度好等优点,而且具有更大的灵活性、整定性、控制精度更好,是目前较为先进的一种控制系统。采用MATLAB对模糊自整定PID参数控制系统进行计算机仿真可快速方便地实现多种规则和参数的准确仿真效果,极大地提高模糊自整定PID参数控制系统设计的效率和准确性。

[2]

1.4 本文的内容与安排

本文在参数自适应模糊PID控制器的基础上,利用模糊推理的方法实现了对PID参数的在线自动整定,并且在MATLAB软件下将该控制器在某系统中的应用进行了研究。其中包括五部分:第一部分阐述了课题的背景、课题的来源和课题的研究意义,并分析了模糊PID控制系统设计的特点和任务;第二部分对国内外现状作出介绍;第三部分则简单介绍了MATLAB工具箱;第四部分给出自适应模糊PID控制器的设计的具体步骤,如PID控制器参数自整定原则,各变量隶属度函数的确定,建立模糊规则等;第五部分是模糊PID控制系统的仿真及其分析。

2国内外现状

最初的气动式PI控制器于1934-1935年间诞生于福克斯波罗和泰勒公司。1939年,泰勒仪器公司生产出第一台商用PID控制器。同年,福克斯波罗公司推出了由George.philbrick发明的PID控制器:“sbatligo30”。 20世纪30年代的PI/PD控制器是在当时工业的强烈需求推动下不断发展的,同时技术的发展还受到当时的系统化和抽象派思想所左右,工程设计人员逐步意识到测量装置的重要性。Mason与Black分别在设计气动式控制机构和电子负反馈放大器时意识到,当系统闭环后必须在反馈回路上增加信号测量装置。1948年福克斯波罗公司推出了改进型PID控制器:“Mdoel 40 Sbatiotg”.Clarridge于1950年设计出串行PID控制器“Transet Tri-act”,此后这种控制器成为了PID控制器的一种标准形式。

PID控制器诞生的随后几十年里,大约90%左右的控制元件都是气动式的。从20世纪50年代中期起,电子元件逐步取代气动式控制元件。1959年福克斯波罗公司推出了电子式PID控制器,到20世纪60年代初,绝大多数控制仪器公司均提供了数字式PID控制器。直到现在,很多控制学术机构、高校以及控制仪器公司不断开发出新的PID控制器调试软件包、硬件模块和PID控制器整定技术。

从最初的气动式PID控制器诞生到发展至目前的数字式微处理芯片PID控制模块、PID控制软件包,以及智能PID控制、专家PID控制等先进复合PID控制系统可以看出,PID控制是在社会生产需求的强烈激励下产生并不断发展的,PID控制的发展与控制学科以及与其相关的计算机技术、信息技术、生命科学等新兴学科技术的发展是密不可分的。近十年来,国际控制界对PID控制的研究热情又重新高涨起来,一些重要的国际权威控制杂志不断出版有关PID控制器设计理论和应用方面的论文。PID控制有着光明的应用前景,在未来的控制工程中仍将扮演重要角色,同时将成为各种复杂控制器的基本单元。

我们今天所熟知的PID控制器产生并发展于1915—1940年期间。尽管1940年以来,许多先进控制方

3

[7]

法不断推出,但PID控制器以其结构简单,对模型误差具有鲁棒性及易于操作等优点,仍被广泛应用于冶金化工、电力、轻工和机械等工业过程控制中。据日本电气计量器工业会先进控制动向调查委员会1990年统计,在日本有91%的控制的控制回路采用的是PID控制器控制。在美国,据估计有90%以上的工业控制器采用的是PID调节器。而在我们国家现在PID功调节器的应用就更加普遍。虽然随着控制理论的发展和控制手段的更新,许多基于现代控制理论的新型控制器不断出现,但PID控制仍是最重要的控制方法。据估计:我们国家过程工业中需要约50万个PID智能的PID控制器。PID调节器的发展经历了液动式、气动式几个阶段,目前正经历由模拟控制器向着数字化、智能化控制器的方向发展阶段;这些数字化、智能化的控制器有着传统的模拟控制器无法比拟的优点,如:可以灵活的改变控制参数可以灵活的改变控制策略等。随着工业的发展,对象的复杂程度不断加深,尤其对于大滞后、时变的、非线性的复杂系统;其中有的参数未知或缓慢变化;有的带有延时或随机干扰;有的无法获得较精确的数学模型或模型非常粗糙。加之,人们对控制品质的要求日益提高,常规的PID控制的缺陷逐渐暴露出来。对于时变对象和非线性系统,传统的PID控制更是显得无能为力。因此常规PID控制的应用受到很大限制和挑战,人们在对PID应用的同时,也对其进行了各种改进

[3][4]

[2]

[1]

3 MATLAB工具箱简介

3.1 MATLAB 系统的应用

MATLAB 是目前在国际上被广泛接受和使用的科学与工程计算软件。虽然Cleve Moler 教授开发它的初衷是为了更简单、更快捷地解决矩阵运算,但MATLAB发展到现在已经使其成为一种集数值运算、符号运算、数据可视化、图形界面设计、程序设计、仿真等多种功能于一体的集成软件。MATLAB 有两种基本的数据运算量:数组和矩阵,单从形式上,它们之间是不好区分的。每一个量可能被当作数组,也可能被当作矩阵,这要依所采用的运算法则或运算函数来定。在MATLAB 中,数组与矩阵的运算法则和运算函数是有区别的。但不论是MATLAB的数组还是MATLAB的矩阵,都已经改变了一般高级语言中使用数组的方式和解决矩阵问题的方法。在MATLAB 中,矩阵运算是把矩阵视为一个整体来进行,基本上与线性代数的处理方法一致。矩阵的加减乘除、乘方开方、指数对数等运算,都有一套专门的运算符或运算函数。而对于数组,不论是算术的运算,还是关系或逻辑的运算,甚至于调用函数的运算,形式上可以当作整体,有一套有别于矩阵的、完整的运算符和运算函数,但实质上却是针对数组的每个元素施行的。当MATLAB 把矩阵(或数组)独立地当作一个运算量来对待后,向下可以兼容向量和标量。不仅如此,矩阵和数组中的元素可以用复数作基本单元,向下可以包含实数集。这些是MATLAB 区别于其他高级语言的根本特点。

概括地讲,整个MATLAB 系统由两部分组成,一是MATLAB 基本部分,二是各种功能性和学科性的工具箱,系统的强大功能由它们表现出来。基本部分包括数组、矩阵运算,代数和超越方程的求解,数据处理和傅里叶变换,数值积分等。

[9]

3.2 Simlulink工具箱

SIMULINK 是MATLAB 的工具箱之一,提供交互式动态系统建模、仿真和分析的图形环境。它可以

4

针对控制系统、信号处理及通信系统等进行系统的建模、仿真、分析等工作。它可以处理的系统包括:线性、非线性系统;离散、连续及混合系统;单任务、多任务离散事件系统

[11]

。利用 SIMULINK 进行系统

的建模仿真,最大的优点就是易学、易用,同时可以利用MATLAB 提供的丰富的仿真资源。

SIMULINK 的工作环境是由库浏览器(SIMULINK Library Browser)与模型窗口组成的,库浏器为用户提供了进行SIMULINK 建模与仿真的标准模块库与专业工具箱,而模型窗口是用户创建模型的主要场所。

3.3 模糊逻辑工具箱

模糊逻辑工具箱包含了进行模糊分析与模糊系统设计的各种途径。工具箱提供了生成和编辑模糊推理系统(FIS)常用的工具函数,如newfis、addmf、addrule等,它包括了生成新的FIS、给FIS各变量加入隶属度函数、规则等功能,用户可以用命令调用这些函数生成新的FIS。工具箱还提供了图形用户界面(GUI)编辑函数,利用它用户可以更直观迅速的生产FIS。在MATLAB环境中键入fuzzy,敲回车键,屏幕上就会出现一个基本的FIS编辑器,用户可以在窗口菜单中修改它的各种特性,如改变输入、输出的变量数、编辑隶属度函数、编辑模糊规则等,从而生成新的FIS文件。

3.4 MATLAB环境下的SIMULINK的应用 3.4.1 MATLAB 环境中启动SIMULINK 的方法

(1)在MATLAB的命令窗口中输入SIMULINK; (2)单击MATLAB工具条上的SIMULINK图标。

3.4.2打开SIMULINK 模型窗口的方法

(1)在MATLAB 菜单或库浏览器菜单中选择File|New; (2)单击库浏览器的图标。

即可打开一个名为 untited 的空的模型窗口。

整个模型创建窗口的组成是:菜单栏,工具栏,编辑窗口和状态栏。

(1)菜单栏:与Windows 菜单栏类似,其中Simulation 一项在仿真配置中很重要。 (2)工具栏:能实现标准的Windows 操作及用于与SIMULINK 仿真相关的操作。

(3)状态栏:以图例,“Ready”表示建模已完成;“100%”表示编辑框模型的显示比例;“ode45”表示仿真所采用的算法。

3.4.3 SIMULINK 仿真基本步骤

创建系统模型及利用所创建的系统模型对其进行仿真是SIMULINK仿真的两个最基本的步骤。 (1)创建系统模型

5

创建系统模型是用 SIMULINK 进行动态系统仿真的第一个环节,它是进行系统仿真的前提。模块是创建SIMULINK 模型的基本单元,通过适当的模块操作及信号线操作就能完成系统模型的创建。为了达到理想的仿真效果,在建模后仿真前必须对各个仿真参数进行配置。 (2)利用模型对系统仿真

在完成了系统模型的创建及合理的设置仿真参数后,就可以进行第二个步骤——利用模型对系统仿真。运行仿真的方法包括使用窗口菜单和命令运行两种;对仿真结果的分析是进行系统建模与仿真的重要环节,因为仿真的主要目的就是通过创建系统模型以得到某种计算结果。SIMULINK 提供了很多可以对仿真结果分析的输出模块,而且在MATLAB中也有丰富的用于结果分析的函数和指令[12]。

本章以 SIMULINK 仿真的基本步骤为主线来对SIMULINK 这一仿真工具作简单的介绍。由于SIMULINK 的功能极其庞大,不可能面面俱到(比如,关于模型调试、结果分析、优化仿真等相关内容在这里没有作介绍)。

4自适应模糊PID控制器的设计

4.1 自适应模糊PID控制器的性能要求

现代控制系统,规模越来越大,系统越来越复杂,用传统的PID控制方法已不能满足控制的要求。主要表现为,PID控制器虽具有适应性强的特点,但参数难以整定是PID控制的一个关键问题;只要参数整定合适,对大多数被控对象可以实现无差控制,稳态性能好,但动态特性不太理想;PID控制不具有自适应控制能力,对于时变、非线性系统控制效果不佳。当系统参数发生变化时,控制性能会产生较大变化,控制特性可能变坏,严重时可能导致系统不稳定。本文所设计的自适应模糊PID控制器,利用自适应模糊控制的在线自校正这一特性,并结合传统的PID控制理论,构造的自适应模糊PID控制器,实现控制器参数的自动整定。不仅保持了常规PID控制系统原理简单、使用方便、鲁棒性较强等优点,而且具有更大的灵活性、整定性、控制精度更好。

4.2 PID控制的理论基础

从传递函数的角度分析,理想的PID控制器传递函数

[12]

(1)

ki?kds C(S)?kp?s式中kp,ki和kd分别为比例系数、积分系数和微分系数。在多数文献中理想的PID控制器通常写成式(1)所示的结构形式。

??1C(s)?kp?1??Tds? (2)

?Tis? 6

式(2)中Ti?kp/ki 为积分时间常数,Td?kd/kp为微分时间常数。在工程实践中,通常采用带滤波环节的并行PID控制器结构,即

C(s)?kp??kiksTs?1?d?kp?1??d? (3) s?ds?1?Tis?ds?1?式(3)中: ?d为滤波时间常数。显然并行PID控制器结构允许复零点的存在。在实际应用中还有一种串行PID控制器结构

?Tis?1??Tds?1? C(s)?kp???? (4)

Ts?Ts?1?i??d?在控制器设计过程中,令?<1易获得相位超前行为。一般来说,串行PID控制器结构不如并行PID控制器结构灵活。由式(4)可知串行PID控制器的零点均为实数,而并行PID控制器可以包含复零点,参数的可调性优于串行PID控制器。

典型的PID控制系统结构图如图示

比例 r (t) + e (t) 积分 - 微分 + + + u (t) 被控对象 y (t)

图3 典型的PID控制系统结构图

图3中,r(t)为参考输入信号,(e)t为控制偏差信号,u (t)为控制信号,y(t)为被控系统输出信号。其中控制偏差信号(e)t=r(t)-y(t). 控制信号u(t)为

u(t)?kpe(t)?ki?e(?)d??kd0tde(t) (5) dt比例控制(P)

7

比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。

令ki?kd?0,由式(5)可得

u(t)?kpe(t) (6)

显然,控制量u(t)与控制偏差e(t)成比例关系,包含了控制偏差e(t)的现在值信息。当控制偏差e(t)等于零时,比例作用终结。总的来说,比例环节成比例的反映控制系统的偏差信号e(t),偏差一旦产生,比例控制器立即产生控制作用,以减少偏差。

积分控制(I)

在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。 令kp?kd?0,由此得

[14]

u(t)?ki?e(?)d? (7)

0t由(7)式知,随着时间的推移,若e(t)>0,则控制量u(t)不断增大,表明积分作用不断增强。在积分环节作用下,控制量u(t)包含了控制偏差(e)t的过去值信息。积分环节使被控系统开环传递函数增加了一位于原点的极点,从而可以消除闭环系统的静差,提高系统的无差度。积分作用的强弱取决于积分系数ki, ki越大,积分作用越强,反之则越弱。但积分环节引入会降低系统的响应速度。

微分控制(D)

在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入 “比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。

为加快系统的响应速度,通常引入微分环节。令kp?ki?0,由式可得

u(t)?kd8

de(t) (8) dt

由(8)式知,控制量u(t)与控制偏差e(t)的变化速率成比例关系,包含了控制偏差e(t)的未来值信息,反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。在工程实践中,理想的微分控制器是无法实现的,通常在微分环节中引入一滤波环节,与比例环节和积分环节共同构成如式(8) 所示的并行滤波PID控制器结构。

综上所述,PID控制器所产生的控制量u(t)包含了控制偏差量e(t)的过去、现在和未来值信息,从本质上讲,PID控制实质上就是一种偏差控制。正因为如此,PID控制在实践过程中取得了不可磨灭的成绩。

4.3 模糊控制原理

模糊控制的基本原理框图如图4-1所示。它的核心部分为模糊控制器,如图中点画线框中部分所示,模糊控制器的控制规律由计算机的程序实现。实现一步模糊控制算法的过程描述如下:微机经中断采样获取被控制量的精确值,然后将此量与给定值比较得到误差信号E,一般选误差信号作为模糊控制器的一个输入量。把误差信号E的精确量进行模糊化变成模糊量。误差E的模糊量可用相应的模糊语言表示,得到误差E的模糊语言集合的一个子集e(e是一个模糊矢量),再由e和模糊关系R根据推理的合成规则进行模糊决策,得到模糊控制量u,即

u?e?R

给定值 A/D计算控制变量模糊量化处理模糊控制规则模糊决策非模糊化处理D/A传感器被控对象执行机构

图4-1 模糊控制原理框图

由图4-1可知,模糊控制系统与通常的计算机数字控制系统的主要差别是采用了模糊控制器。模糊控制器是模糊控制系统的核心,一个模糊控制系统的性能优劣,主要取决于模糊控制器的结构、所采用的模糊规则、合成推理算法及模糊决策的方法等因素。

模糊控制器的组成框图如图4-2所示

9

数据库规则库输入模糊化接口

图4-2 模糊控制器的组成框图

输出推理机解模糊接口4.4 模糊PID控制系统结构及原理

参数自适应模糊PID控制器的系统结构主要由参数可调PID和模糊控制系统两部分构成,其结构如图4-3所示。

模糊推理rin+-errordedtkpkiPID调节器kd对象yout

4-3 自适应模糊PID控制器结构

模糊PID控制器的控制原理:PID控制器实现对系统的控制,模糊推理系统以误差e和误差变化率ec作为输入,采用模糊推理方法对PID参数kp、ki、kd进行在线整定,以满足在不同的误差e和误差变化率ec的情况下对控制器参数的不同要求,而使被控对象具有良好的动态、静态性能。

[1]

4.5 PID控制器参数自整定原则

?e(k)?e(k)?e(k?1)u(k)?kpe(k)?ki?e(k)?kdec(k) 式中,通常,PID控制器的控制算式为:

和ec(k)?e(k)?e(k?1)(k?0,1,2),分别为其输入变量偏差与偏差变化,kp、ki及kd分别为表征其比例,积分及微分作用的参数。

从系统的稳定性、响应速度、超调量和稳态精度等各方面来考虑,kp、ki、kd的作用如下:比例系数kp的作用是加快系统的响应速度,消除误差,提高系统的调节精度。kp越大,系统的响应速度越快,

10

[7]

系统的调节精度越高,但易产生超调,甚至会导致系统不稳定。kp取值过小,则会降低调节精度,使响应速度缓慢,从而延长调节时间,使系统静态、动态特性变坏。积分作用系数错误!未找到引用源。的作用是消除系统的稳态误差。ki越大,系统的静态误差消除越快,但ki过大,在响应过程的初期会产生积分饱和现象,从而引起响应过程的较大超调。若ki过小,将使系统静态误差难以消除,从而影响系统的调节精度。微分作用系数kd的作用是改善系统的动态特性,其作用主要是在响应过程中抑制偏差向任何方向的变化,对偏差变化进行提前预报。但kd过大,会使响应过程提前制动,从而延长调节时间,而且会降低系统的抗干扰性能。所以PID参数的整定必须考虑到在不同时刻三个参数的作用以及相互之间的互联关系。

PID参数的整定必须考虑在不同时刻3个参数的作用及相互之间的互相联系。

根据参数kp、ki、kd对系统输出特性的影响情况,可以归纳出系统在被控过程中对于不同的偏差和偏差变化率,参数kp、ki、kd的自整定原则:

(1)当偏差较大的时侯,为了加快系统的响应速度,并防止因开始时偏差的瞬间变大可能引起的微分过饱和而使控制作用超出许可范围,应取较大的kp和较小的kd。另外为防止积分饱和,避免系统响应出现较大的超调,ki值要小,通常取ki=0

[7]

[1]

[7]

(2)当偏差和变化率为中等大小的时候,为了使系统响应的超调量减小和保证一定的响应速度,kp应取小一些。在这种情况下kd的取值对系统的影响很大,所以应取小一些,而ki的取值要适当;

(3)当偏差较小的时候,为了使系统具有较好的稳态性能,应增大kp、ki的值,同时为了避免输出响应在设定值附近振荡,以及考虑系统的抗干扰能力,应适当的选取kd,选取的原则是:当偏差变化率较小时,

kd应取大一些;当偏差变化率较大时,kd应取较小的值,通常kp?kp0??kp应为中等大小[7]。 4.6 各变量隶属度函数的确定

根据要求,用于PID参数调整的模糊控制器采用二输入三输出的形式。该控制器是以误差e和误差变化率ec作为输入,PID控制器的三个参数P、I、D的修正?kp、?ki、?kd作为输出。取输入误差e和误差变化率ec及输出?kp、?ki、?kd模糊子集为{NB,NM,NS,ZO,PS,PM,PB},子集中元素分别代表负大,负中,负小,零,正小,正中,正大。误差e和误差变化率ec的论域为[-3,3],量化等级为{-3,-2,-1,0,1,2,3}。

根据各模糊子集的隶属度赋值表和各参数模糊控制模型,应用模糊合成推理设计分数阶PID参数的模糊矩阵表,算出参数代入下列公式计算:

[1]

kp?kp0??kp

ki?ki0??ki

kd?kd0??kd

式中:kd、ki0、kd0为PID参数的初始设计值,由常规的PID控制器的参数整定方法设计。?kp、?ki、

?kd为模糊控制器的3个输出,可根据被控对象的状态自动调整PID三个控制参数的取值[1][2][8]。

在模糊逻辑工具箱的隶属度函数编辑器中,选择输入量e,ec的隶属函数为高斯型(gaussmf),如图4-4和图4-5所示;而输出?kp、?ki、?kd的隶属函数为三角形(trimf),如图4-6、图4-7和图4-8所示。

11

图4-4 e的隶属函数

图4-5 ec的隶属函数

图4-6 ?kp的隶属函数

12

图4-7 ?ki的隶属函数

图4-8 ?kd的隶属函数

4.7 建立模糊规则表

根据人的直觉思维推理,由系统输出的误差和误差的变化趋势来设计消除系统误差的模糊控制规则。模糊控制规则语句构成了描述众多被控过程的模糊模型。例如,卫星的姿态与作用关系、飞机或舰船航向与舵偏角的关系、工业锅炉中的压力与加热的关系等,都可以用模糊规则来描述。在条件语句中,误差、误差变化率及控制量对于不同的被控对象有着不同的意义。模糊控制的核心是模糊推理,它利用某种模糊推理算法和模糊规则进行推理,得出最终的控制量。本文总结工程设计人员的技术知识和实际操作经验,建立合适的模糊规则表。根据以上所述的PID参数调整原则,一种针对kp、ki、kd3个参数分别整定的模糊控制表如表4-1、表4-2和表4-3所示

[3][9]

13

表4-1 ?kp的模糊控制规则表

?kp e NB NM NS ZO PS PM PB ec NB PB PB PM PM PS PS ZO NM PB PB PM PM PS ZO ZO NS PM PM PM PS ZO NS NM ZO PM PS PS ZO NS NM NM PS PS PS ZO NS NS NM NM PM ZO ZO NS NM NM NM NB PB ZO NS NS NM NM NB NB

表4-2 ?ki的模糊控制规则表

?ki e NB NM NS ZO PS PM PB ec NB NB NB NB NM NM ZO ZO NM NB NB NM NM NS ZO ZO NS NM NM NS NS ZO PS PS ZO NM NS NS ZO PS PS PM PS NS NS ZO PS PS PM PM PM ZO ZO PS PM PM PB PB PB ZO ZO PS PM PB PB PB

表4-3 ?kd的模糊控制规则表

?kd e NB NM NS ZO PS PM PB ec NB PS PS ZO ZO ZO PB PB NM NS NS NS NS ZO NS PM NS NB NB NM NS ZO PS PM ZO NB NM NM NS ZO PS PM PS NB NM NS NS ZO PS PS PM NM NS NS NS ZO PS PS PB PS ZO ZO ZO ZO PB PB

合并三表可以得出下面49条模糊控制规则:

1. If (e is NB) and (ec is NB) then (kp is PB)(ki is NB)(kd is PS)(1) 2. If (e is NB) and (ec is NM) then (kp is PB)(ki is NB)(kd is NS)(1) 3. If (e is NB) and (ec is NS) then (kp is PM)(ki is NM)(kd is NB)(1) 4. If (e is NB) and (ec is Z) then (kp is PM)(ki is NM)(kd is NB)(1) 5. If (e is NB) and (ec is PS) then (kp is PS)(ki is NS)(kd is NB)(1)

14

6. If (e is NB) and (ec is PM) then (kp is Z)(ki is Z)(kd is NM)(1) 7. If (e is NB) and (ec is PB) then (kp is Z)(ki is Z)(kd is PS)(1) 8. If (e is NM) and (ec is NB) then (kp is PB)(ki is NB)(kd is PS)(1) 9. If (e is NM) and (ec is NM) then (kp is PB)(ki is NB)(kd is NS)(1) 10. If (e is NM) and (ec is NS) then (kp is PM)(ki is NM)(kd is NB)(1) 11. If (e is NM) and (ec is Z) then (kp is PS)(ki is NS)(kd is NM)(1) 12. If (e is NM) and (ec is PS) then (kp is PS)(ki is NS)(kd is NM)(1) 13. If (e is NM) and (ec is PM) then (kp is Z)(ki is Z)(kd is NS)(1) 14. If (e is NM) and (ec is PB) then (kp is NS)(ki is Z)(kd is Z)(1) 15. If (e is NS) and (ec is NB) then (kp is PM)(ki is NB)(kd is Z)(1) 16. If (e is NS) and (ec is NM) then (kp is PM)(ki is NM)(kd is NS)(1) 17. If (e is NS) and (ec is NS) then (kp is PM)(ki is NS)(kd is NM)(1) 18. If (e is NS) and (ec is Z) then (kp is PS)(ki is NS)(kd is NM)(1) 19. If (e is NS) and (ec is PS) then (kp is Z)(ki is Z)(kd is NS)(1) 20. If (e is NS) and (ec is PM) then (kp is NS)(ki is PS)(kd is NS)(1) 21. If (e is NS) and (ec is PB) then (kp is NS)(ki is PS)(kd is Z)(1) 22. If (e is Z) and (ec is NB) then (kp is PM)(ki is NM)(kd is Z)(1) 23. If (e is Z) and (ec is NM) then (kp is PM)(ki is NM)(kd is NS)(1) 24. If (e is Z) and (ec is NS) then (kp is PS)(ki is NS)(kd is NS)(1) 25. If (e is Z) and (ec is Z) then (kp is Z)(ki is Z)(kd is Z)(1) 26. If (e is Z) and (ec is PS) then (kp is NS)(ki is PS)(kd is NS)(1) 27. If (e is Z) and (ec is PM) then (kp is NM)(ki is PM)(kd is NS)(1) 28. If (e is Z) and (ec is PB) then (kp is NM)(ki is PM)(kd is Z)(1) 29. If (e is PS) and (ec is NB) then (kp is PS)(ki is NM)(kd is Z)(1) 30. If (e is PS) and (ec is NM) then (kp is PS)(ki is NS)(kd is Z)(1) 31. If (e is PS) and (ec is NS) then (kp is Z)(ki is Z)(kd is Z)(1) 32. If (e is PS) and (ec is Z) then (kp is NS)(ki is PS)(kd is Z)(1) 33. If (e is PS) and (ec is PS) then (kp is NS)(ki is PS)(kd is Z)(1) 34. If (e is PS) and (ec is PM) then (kp is NM)(ki is PM)(kd is Z)(1) 35. If (e is PS) and (ec is PB) then (kp is NM)(ki is PB)(kd is Z)(1) 36. If (e is PM) and (ec is NB) then (kp is PS)(ki is Z)(kd is PB)(1) 37. If (e is PM) and (ec is NM) then (kp is Z)(ki is Z)(kd is PS)(1) 38. If (e is PM) and (ec is NS) then (kp is NS)(ki is PS)(kd is PS)(1) 39. If (e is PM) and (ec is Z) then (kp is NM)(ki is PS)(kd is PS)(1) 40. If (e is PM) and (ec is PS) then (kp is NM)(ki is PM)(kd is PS)(1) 41. If (e is PM) and (ec is PM) then (kp is NM)(ki is PB)(kd is PS)(1) 42. If (e is PM) and (ec is PB) then (kp is NB)(ki is PB)(kd is PB)(1)

15

43. If (e is PB) and (ec is NB) then (kp is Z)(ki is Z)(kd is Z)(1) 44. If (e is PB) and (ec is NM) then (kp is Z)(ki is Z)(kd is PM)(1) 45. If (e is PB) and (ec is NS) then (kp is NM)(ki is PS)(kd is PM)(1) 46. If (e is PB) and (ec is Z) then (kp is NM)(ki is PM)(kd is PM)(1) 47. If (e is PB) and (ec is PS) then (kp is NM)(ki is PM)(kd is PS)(1) 48. If (e is PB) and (ec is PM) then (kp is NB)(ki is PB)(kd is PS)(1) 49. If (e is PB) and (ec is PB) then (kp is NB)(ki is PB)(kd is PB)(1)

在MATLAB命令窗口运行Fuzzy函数进入模糊逻辑编辑器,并建立一个新的FIS文件,选择控制器类型Mamdani型,根据上面的分析分别输入e、ec、?kp、?ki、?kd的隶属函数和量化区间,可得隶属函数图形如图4-9所示。打开Ruler Editor窗口,以If?then的形式输入模糊控制规则,与方式(And method)为min;或方式(0r method)为max;推理(Implication)为min;合成(Aggregation)为max;去模糊(Defuzzification)为最大隶属度平均法(mom)

[10][12][13]

。这样就建立了一个FIS文件,取名为fuzzpid.fis。

在MATLAB的M文件编辑器里建立一个名为fuzzypid.m的文件,其内容见附录;这样就完成了模糊工具箱与SIMULINK的链接,为整个系统的建立打下基础。

图4-9 模糊系统fuzzy.fis的结构

在在线运行的过程当中,控制系统通过对模糊逻辑规则的结果处理、查表以及运算,完成对PID参数的在线自校正,从而保持系统的灵活性、整定性、控制精度更好。而其工作的流程图如图4-10所示。

16

入口取当前采样值e(k)?r(k)?y(k)ec(k)?e(k)?e(k?1)e(k?1)?e(k)e(k),ec(k)模糊化 模糊整定 ?kp,?ki,?kd 计算当前 kp,ki,kdPID控制器输出返回

图4-10 模糊PID工作流程图

17

5 利用MATLAB对模糊PID控制系统进行仿真

5.1建立系统结构仿真框图

在MATLAB的Simulink环境下根据图4-3所示自适应模糊PID控制器结构设计模糊PID控制系统的仿真框图,如图5-4所示。其中,模糊控制器及其封装仿真模型如图5-1所示。PID控制器及其封装仿真模型如图5-2所示,其中kp0、ki0、kd0为其初始值系统的仿真框图,如图5-5所示

[1][2]

[11]

。把模糊控制器和PID控制器封装在一起,组成Fuzzy-PID

控制器,如图5-3所示。类似的在MATLAB的Simulink环境下根据常规PID控制器结构设计常规PID控制

图5-1 模糊控制器及其封装

图5-2 PID控制器及其封装

18

图5-3 模糊自适应PID控制器及其封装

图5-4 模糊PID控制系统仿真框图

图5-5 常规PID控制系统仿真框图

5.2 仿真结果分析

在现代的工业过程中,许多工业过程的对象特性可用二阶惯性环节加纯滞后环节来表示,在本文当中,

e??s仿真对象的数学模型的传递函数取为G(s)?,其中T1?2,T2?1,??0.3,模糊PID控

(T1?1)(T2?1)制系统中PID初始值kp0?7.8,ki0?1.06,kd0?4.97。

而在常规PID控制系统中,PID参数的设置情况直接影响系统的调节结果,最简单实用的方法就是使用“邻界比例法”来确定PID的参数。具体方法是:将系统接成闭环,关掉I、D(即将参数积分时间I和微分时间D均设置为0),多次调节比例带P值的大小,使系统刚刚产生振荡,记录此时的比例带参数(X1)及振荡周期时间(T),则正确的PID参数可以从表5-1中计算出来:

19

表5-1 邻5界比例法参数整定表

最终控制方式 纯比例控制 P、I控制 P、I、D控制 比例带 积分时间 微分时间 2*X1 2.2*X1 1.67*X1 0.8*T 0.5*T [1][3][5]

0.12*T 根据比例带X1和振荡周期T,查表5-1后计算出合适的比例带、积分时间、微分时间三个参数的具体数值, 然后键入PID参数并稍作微调即得kp?5,ki?0.85,kd?2.93。

(1)在设计好仿真框图后直接运行,可得模糊PID控制曲线图和常规PID控制曲线图,如图5-6所示和图5-7所示。对比模糊PID控制曲线图和常规PID控制曲线图,易得模糊PID控制较常规的PID控制,具有较高的控制精度,超调量小,调节时间短,控制效果好等。

图5-6 模糊PID控制曲线图

图5-7 常规PID控制曲线图

(2)在仿真的过程中的某个采样时间控制器输出端加入干扰,选用Sources模块库中的Pulse generator(脉冲发生器)作为干扰,在连续系统中要产生脉冲,对话框内Pulse type要选择Time-based类型。本文所选用的脉冲高度设为0.2,脉冲周期大小为20s,脉冲宽度为1s,脉冲产生前的延迟时间为5s,加扰动的模糊PID控制系统仿真框图和常规PID控制系统仿真框图分别如图5-8和5-9所示。

20

tClockTo WorkspacePulseGeneratorAdddu/dtDerivativeStepeuecuyG(s)ScopeFuzzy_PID controller图5-8 加扰动模糊PID控制系统仿真框图

tClockTo WorkspacePulseGeneratorPIDAddPID ControlleruyG(s)ScopeStep图5-9 加扰动PID控制系统仿真框图

对它们分别进行仿真,则模糊PID控制曲线图和常规PID控制曲线图如图5-10和图5-11所示。对比模糊PID控制曲线图和常规PID控制曲线图,易得在加入干扰后,模糊PID控制系统较常规的PID控制系统,调节时间短,具有较快的恢复稳定的能力。

综上所述,由仿真结果可知,模糊PID控制与常规的PID控制相比较,具有较高的控制精度,超调量小,调节时间短,抗扰性好,控制效果好等优点。由此可知,模糊PID控制克服了常规PID控制器的缺点,将模糊控制与PID控制器结合起来,扬长避短,不仅保持了常规PID控制系统原理简单、使用方便、鲁棒性较强等优点,而且具有更大的灵活性、整定性、控制精度更好。

21

图5-10 加入干扰后的模糊PID控制曲线图

图5-11 加入干扰后的常规PID控制曲线图

仿真结果表明,本文所设计的自适应模糊PID控制器在控制过程中,系统的响应速度加快,调节精度提高,稳态性能变好,这是单纯的PID控制器难以实现的。它的一个显著特点就是在同样精度要求下,系统的过度时间短,这在实际的过程控制中将有重大的意义。并且实践表明,模糊逻辑工具箱(Fuzzy Logic Toolbox)可以方便的通过编辑FIS文件来设计模糊控制器,可以灵活的设定和修改控制器参量,而SIMULINK可以非常直观的构造控制系统并观察其结果。

6结论

传统的PID控制器结构简单,具有一定的鲁棒性,容易实现,稳态无静差,控制精度高,能满足大工 业过程的要求。因此,长期以来广泛应用于工业过程控制,并取得了良好的控制效果。但是,实际上,大多数工业过程不同程度的存在非线性、大滞后、参数时变性和模型不确定性,因而普通的PID控制器难以获得满意的控制效果。模糊控制不要求被控对象的精确模型且适应性强。而本文提出的模糊自适应PID控制器,是在控制回路上仍保留PID调节器,同时采用Fuzzy推理方法作为常规PID控制器的自调整结构。 实际上是对PID控制器进行了非线性处理,实现了系统特性变化与控制量之间的非线性映射关系。从这种 意义上来说,模糊自适应PID控制器是一种非线性的PID控制器。并且从仿真结果可以看出,PID算法与 模糊推理控制相结合的方法能较明显地提高最终的控制效果。这种混合系统把PID控制的简便性、灵活性

22

以及鲁棒性与Fuzzy控制的不要求被控对象的精确模型且适应性强等特点融为一体,发挥了传统控制Fuzzy控制的各自长处,取长补短,具有较强的实际意义

[14][15]

并且本文在参数自适应模糊PID控制器的基础上,利用模糊推理的方法实现了对PID参数的在线自动整定,并且在MATLAB软件下将该控制器在某系统中的应用进行了研究,仿真结果表明,参数自适应模糊PID控制能使系统达到满意的控制效果,对进一步应用研究具有较大的参考价值。

参考文献

[1] 殷云华,樊水康,陈闽鄂.自适应模糊PID控制器的设计和仿真[J].北京:火力与指挥控制.2008.97-99 [2] 赵永娟,孙华东.基于Matlab的模糊PID控制器的设计和仿真[J].北京:微计算机信息.2009.48-49 [3] 陈晓冲,王万平.常规PID控制和模糊自适应PID控制仿真研究[J].广州:机床与液压.2004.65-66 [4] 刘向东,常江,张崇会,王述运.自适应模糊PID控制方法在温度控制中的研究[J].佳木斯:佳木 斯大学学报.2007.346-348

[5] 戚鹏,景占荣,羊彦,薛晶.基于模糊PID控制的永磁无刷直流电动机调速系统研究[J].西安:微 电机.2006.32-34

[6] 汤红诚,李著信.Matlab在模糊PID伺服系统控制中的应用[J].北京:仪器仪表学报.2003.596-602 [7] 何衍庆,俞金寿,蒋慰孙。工业生产过程控制[M].北京:化学工业出版社.2004.80-84 [8] 刘金琨.智能控制[M].北京:电子工业出版社,2005.50-52.

[9] 陶永华,尹恰欣,葛芦生.新型PID控制及其应用[M].北京:机械工业出版社.1998.36-38 [10] 顾德英,罗云林,马淑华.计算机控制技术[M].北京:北京邮电大学出版社.2007.22-25 [11] 李宜达,控制系统设计与仿真[M].北京:清华大学出版社.2004.41-44

[12] Jiangming Kan,Wenbin Li,Jinhao Liu.Fuzzy Immune Self-Tuning PID Controller and its Simulation[J].IEEE Conference on.2008.625-628.

[13] Yu Xiuli,Lou Wenzhong.The Application of the Parallel Decoupling Fuzzy PID Algorithm in the Speed Control System[J].IEEE International Conference on.2006.1185-1190.

[14] L.N.de, J.Timmis. Artificial Immune System: A Novel Paradigm Pattern Recognition [J]. In artificial Neural Networks in Pattern Recognition, 2002:76-84.

[15] REN JinXia. Study to Application of Fuzzy Immunity PID Control in Control System of Cone Crusher [J]. Mining & Processing Equipment 2005,33 (4) :11-33.

23

Design and Simulation of Adaptive Fuzzy PID Controller

Wang Lei

Department of Electricity engineering, College of Information and Control Nanjing University of information and

science technology210044

ABSTRACT

In the paper, based on parameter adaptive fuzzy PID controller,a fuzzy inference method is utilized to realize

24

automatic regulating PID parameter,and the application of the controller in some system is studied with MATLAB.The results of simulation indicate that the controller gives a good control performance and has a high reference value for further applications.

Key word: adaptive;PID controller;fuzzy PID;MATLAB simulation

致 谢

四年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。四年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。 伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的导师袁安富老师。我不是您最出色的学生,而您却是我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,

25

柳暗花明又一村”。

感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意!

同时也感谢学院为我提供良好的做毕业设计的环境。

最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。

附 录

%Fuzzy Tunning PID Control clear all; close all;

a=newfis('fuzzpid');

26

a=addvar(a,'input','e',[-3,3]); %Parameter e 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]);

a=addvar(a,'input','ec',[-3,3]); %Parameter ec 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]);

a=addvar(a,'output','kp',[-0.3,0.3]); %Parameter kp a=addmf(a,'output',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','trimf',[-0.1,0.1,0.3]); a=addmf(a,'output',1,'PM','trimf',[0,0.2,0.3]); a=addmf(a,'output',1,'PB','smf',[0.1,0.3]);

a=addvar(a,'output','ki',[-0.06,0.06]); %Parameter ki a=addmf(a,'output',2,'NB','zmf',[-0.06,-0.02]); a=addmf(a,'output',2,'NM','trimf',[-0.06,-0.04,0]); a=addmf(a,'output',2,'NS','trimf',[-0.06,-0.02,0.02]); a=addmf(a,'output',2,'Z','trimf',[-0.04,0,0.04]); a=addmf(a,'output',2,'PS','trimf',[-0.02,0.02,0.06]); a=addmf(a,'output',2,'PM','trimf',[0,0.04,0.06]); a=addmf(a,'output',2,'PB','smf',[0.02,0.06]);

27

a=addvar(a,'output','kd',[-3,3]); %Parameter kp a=addmf(a,'output',3,'NB','zmf',[-3,-1]); a=addmf(a,'output',3,'NM','trimf',[-3,-2,0]); a=addmf(a,'output',3,'NS','trimf',[-3,-1,1]); a=addmf(a,'output',3,'Z','trimf',[-2,0,2]); a=addmf(a,'output',3,'PS','trimf',[-1,1,3]); a=addmf(a,'output',3,'PM','trimf',[0,2,3]); a=addmf(a,'output',3,'PB','smf',[1,3]);

rulelist=[1 1 7 1 5 1 1;

1 2 7 1 3 1 1;

1 3 6 2 1 1 1; 1 4 6 2 1 1 1; 1 5 5 3 1 1 1; 1 6 4 4 2 1 1; 1 7 4 4 5 1 1;

2 1 7 1 5 1 1; 2 2 7 1 3 1 1; 2 3 6 2 1 1 1; 2 4 5 3 2 1 1; 2 5 5 3 2 1 1; 2 6 4 4 3 1 1; 2 7 3 4 4 1 1;

3 1 6 1 4 1 1; 3 2 6 2 3 1 1; 3 3 6 3 2 1 1; 3 4 5 3 2 1 1; 3 5 4 4 3 1 1; 3 6 3 5 3 1 1; 3 7 3 5 4 1 1;

4 1 6 2 4 1 1; 4 2 6 2 3 1 1; 4 3 5 3 3 1 1;

28

4 4 4 4 3 1 1; 4 5 3 5 3 1 1; 4 6 2 6 3 1 1; 4 7 2 6 4 1 1;

5 1 5 2 4 1 1; 5 2 5 3 4 1 1; 5 3 4 4 4 1 1; 5 4 3 5 4 1 1; 5 5 3 5 4 1 1; 5 6 2 6 4 1 1; 5 7 2 7 4 1 1;

6 1 5 4 7 1 1; 6 2 4 4 5 1 1; 6 3 3 5 5 1 1; 6 4 2 5 5 1 1; 6 5 2 6 5 1 1; 6 6 2 7 5 1 1; 6 7 1 7 7 1 1;

7 1 4 4 7 1 1; 7 2 4 4 6 1 1; 7 3 2 5 6 1 1; 7 4 2 6 6 1 1; 7 5 2 6 5 1 1; 7 6 1 7 5 1 1; 7 7 1 7 7 1 1];

a=addrule(a,rulelist);

a1=setfis(a,'DefuzzMethod','mom'); writefis(a1,'fuzzpid');

a2=readfis('fuzzpid');

29

本文来源:https://www.bwwdw.com/article/6x2r.html

Top