自适应pid控制器的设计及仿真本科毕业论文.docx
《自适应pid控制器的设计及仿真本科毕业论文.docx》由会员分享,可在线阅读,更多相关《自适应pid控制器的设计及仿真本科毕业论文.docx(61页珍藏版)》请在冰豆网上搜索。
![自适应pid控制器的设计及仿真本科毕业论文.docx](https://file1.bdocx.com/fileroot1/2023-5/18/30411563-78b8-4a80-968d-ccbf6925dd23/30411563-78b8-4a80-968d-ccbf6925dd231.gif)
自适应pid控制器的设计及仿真本科毕业论文
摘要
PID控制器是最早发展起来的控制策略之一,由于其算法简单、鲁棒性好和可靠性高和可靠性高,被广泛应用于工业过程控制。
PID控制器提供了反馈控制,通过比例环节成比例的反应偏差信号,加快系统响应速度,提高系统的调节精度,通过积分作用反应并消除系统的稳态误差,通过微分作用预测未来偏差信号的变化趋势,改善系统动态特性。
本文将模糊控制器和PID控制器结合在一起,利用模糊逻辑控制实现了PID控制器参数在线自调整,进一步完善了PID控制器的性能,提高了系统的控制精度。
并把MATLAB中的FuzzyToolbox和SIMULINK有机结合起来,方便的实现了该自适应模糊PID控制系统的计算机仿真,拓宽了FuzzyToolbox和SIMULINK的应用范围。
仿真结果表明:
模糊PID参数自整定控制较常规PID控制具有较小的超调量和较短的调节时间,以及较好的动态响应特性和稳态特性。
关键词:
模糊控制;PID控制器;MATLAB;SIMULINK;系统仿真。
Abstract
PIDcontrollerisoneofthefirstdevelopedoneofthecontrolstrategy,becauseofitsalgorithmissimple,robustandreliableandhighreliability,arewidelyusedinindustrialprocesscontrol.PIDcontrollerprovidesafeedbackcontrolthroughtheproportionalresponsebiassignaloftheaspectratio,tospeedupresponsetime,improvetheaccuracyofregulation;throughintegralroletoresponsetothesteady-statesystemandeliminateerrors,throughdifferentialroletopredictthechangesintrendsofsignaldeviationinfuture;improvedynamiccharacteristicsofthesystem.TheusingofFuzzylogiccontrollermakestheparameter’sself-adaptionofPIDcontrollerpossiblewhenFuzzylogiccontrollerandPIDcontrollerarecombinedtogether.ItalsoperfectsthepropertiesofPIDcontrollerandimprovestheprecisionofcontrolsystem.TheorganiccombinationofFuzzyToolboxandSIMULINKrealizedthecomputersimulationofthisself-adaptiveFuzzyPIDcontrolsystemconveniently,andalsopromotestheapplicationofMATLAB.Thesimulationresultsshowthat,comparedwithordinaryPIDcontrol,fuzzyPIDparametersofself-tuningcontrolhavesmallerovershoot,shorterregulationtimeandbetterdynamicresponsecharacteristics.
Keywords:
FuzzyLogiccontrol;PIDcontroller;MATLAB;SIMULINK;Systemsimulation.
绪论
PID(比例-积分-微分)控制器是工业过程控制中最常见的一种线性控制调节器,作为最早实用化的控制器已有50多年历史,现在仍然是应用最广泛的工业控制器,广泛应用于化工、冶金、机械、热工、轻工等工业过程控制系统。
PID控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。
PID控制器因为结构简单、鲁棒性较强,并且具有实现简单的特点,因而被广泛应用于各种工业过程控制中。
PID控制器提供了反馈控制,通过比例环节成比例的反应偏差信号,加快系统响应速度,提高系统的调节精度,通过积分作用反应并消除系统的稳态误差,通过微分作用预测未来偏差信号的变化趋势,改善系统动态特性。
作为一种广泛的控制规律,PID控制在相当长的一段时间内,并没有因为各种先进控制算法的出现而遭到淘汰。
相反,经过时间的考验,PID控制仍然在各种控制技术中占着主导地位。
但PID参数复杂繁琐的整定过程一直困扰着工程技术人员,研究PID参数整定技术具有十分重大的工程实践意义。
PID控制器参数整定优劣与否,是PID控制器能否在实用中得到好的闭环控制效果的一个前提。
近年来,随着计算机技术的飞跃发展和人工智能技术渗透到自动控制领域,各种整定PID控制器参数整定方法层出不穷,给PID控制器参数整定的研究带来了活力与契机。
另外系统稳定是控制器设计首先需要考虑的问题,只有在系统稳定的前提下,提高其它性能才是有意义的。
针对上述问题,通过研究,本课题所做的主要工作和研究结果如下:
首先,掌握MATLAB软件的应用,掌握MATLAB的Simulink环境的应用。
其次,就PID控制器的发展过程及其基本原理作简要介绍,由于传统PID控制器存在局限性,人们设计出模糊智能PID控制器来克服。
重点介绍了PID参数整定的优点,模糊参数自整定PID控制器的设计方法,通过与常规PID参数整定比较,仿真实验的结果验证了模糊PID控制器的优点,通过模糊参数自整定PID控制与普通PID控制参数整定比较得知,模糊参数自整定PID控制比普通PID参数整定更具备良好的动态响应特性和抗干扰性能。
然后综述了近几年在PID参数整定方面的研究发展情况。
1MATLAB/Simulink简介
1.1MATLAB
1.1.1MATLAB概述
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(MatrixLaboratory)的简称,和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
1.1.2MATLAB的特点
1、高级语言可用于技术计算
2、此开发环境可对代码、文件和数据进行管理
3、交互式工具可以按迭代的方式探查、设计及求解问题
4、数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等
5、二维和三维图形函数可用于可视化数据
6、各种工具可用于构建自定义的图形用户界面
7、各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM以及MicrosoftExcel)集成。
1.1.3MATLAB窗口
1、主窗口介绍
MATLAB主窗口是MATLAB的主要工作界面。
主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。
(1)菜单栏
MATLAB主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help6个菜单项。
1)File菜单项:
File菜单项实现有关文件的操作。
2)Edit菜单项:
Edit菜单项用于命令窗口的编辑操作。
3)View菜单项:
View菜单项用于设置MATLAB集成环境的显示方式。
4)Web菜单项:
Web菜单项用于设置MATLAB的Web操作。
5)Window菜单项:
主窗口菜单栏上的Window菜单,只包含一个子菜单Closeall,用于关闭所有打开的编辑器窗口,包括M-file、Figure、Model和GUI窗口。
6)Help菜单项:
Help菜单项用于提供帮助信息。
(2)工具栏
MATLAB主窗口的工具栏共提供了10个命令按钮,这些命令按钮均有对应的菜单命令,但此菜单命令使用起来更快捷、方便。
2、命令窗口
命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。
MATLAB命令窗口中的“>>”为命令提示符,表示MATLAB正在处于准备状态。
在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。
一般来说,一个命令行输入一条命令,命令行以回车结束。
但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。
例如:
p=15,m=35
p=15;m=35
如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。
3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。
在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。
3、工作空间窗口
工作空间是MATLAB用于存储各种变量和结果的内存空间。
在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。
4、常用工具箱
MATLAB包括拥有数百个内部函数的主包和三十几种工具包。
工具包又可以分为功能性工具包和学科工具包。
功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。
学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。
开放性使MATLAB广受用户欢迎。
除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。
MatlabMainToolbox——matlab主工具箱
ControlSystemToolbox——控制系统工具箱
CommunicationToolbox——通讯工具箱
FinancialToolbox——财政金融工具箱
SystemIdentificationToolbox——系统辨识工具箱
FuzzyLogicToolbox——模糊逻辑工具箱
Higher-OrderSpectralAnalysisToolbox——高阶谱分析工具箱
ImageProcessingToolbox——图象处理工具箱
LMIControlToolbox——线性矩阵不等式工具箱
ModelpredictiveControlToolbox——模型预测控制工具箱
μ-AnalysisandSynthesisToolbox——μ分析工具箱
NeuralNetworkToolbox——神经网络工具箱
OptimizationToolbox——优化工具箱
PartialDifferentialToolbox——偏微分方程工具箱
RobustControlToolbox——鲁棒控制工具箱
SignalProcessingToolbox——信号处理工具箱
SplineToolbox——样条工具箱
StatisticsToolbox——统计工具箱
SymbolicMathToolbox——符号数学工具箱
SimulinkToolbox——动态仿真工具箱
WaveleToolbox——小波工具箱。
1.2Simulink
1.2.1Simulink概述
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。
Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。
为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI),这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。
Simulink®是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。
对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。
.
构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。
Simulink与MATLAB®紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。
1.2.2Simulink操作
1、Simulink启动和退出
安装时必须选择安装SIMULINK选项,启动SIMULINK必须先启动MATLAB。
在MATLAB的命令窗口输入simulink或单击MATLAB主窗口工具栏上的Simulink命令按钮即可启动Simulink。
Simulink启动后会显示Simulink模块库浏览器(SimulinkLibraryBrowser)窗口。
该窗口列出了当前MATLAB系统中已安装的所有SIMULINK模块。
在MATLAB主窗口File菜单中选择New菜单项下的Model命令,在出现Simulink模块库浏览器的同时,还会出现一个名字为untitled的模型编辑窗口。
在启动Simulink模块库浏览器后再单击其工具栏中的Createanewmodel命令按钮,也会弹出模型编辑窗口。
利用模型编辑窗口,可以通过鼠标的拖放操作创建一个模型。
模型创建完成后,从模型编辑窗口的File菜单项中选择Save或SaveAs命令,可以将模型以模型文件的格式(扩展名为.mdl)存入磁盘。
如果要对一个已经存在的模型文件进行编辑修改,需要打开该模型文件,其方法是,在MATLAB命令窗口直接输入模型文件名(不要加扩展名.mdl)。
在模块库浏览器窗口或模型编辑窗口的File菜单中选择Open命令,然后选择或输入欲编辑模型的名字,也能打开已经存在的模型文件。
另外,单击模块库浏览器窗口工具栏上的Openamodel命令按钮或模型编辑窗口工具栏上的Openmodel命令按钮,也能打开已经存在的模型文件。
为了退出Simulink,只要关闭所有模型编辑窗口和Simulink模块库浏览器窗口即可。
2、Simulink系统仿真模型
(1)Simulink的基本模块
Simulink的模块库提供了大量模块。
单击模块库浏览器中Simulink前面的“+”号,将看到Simulink模块库中包含的子模块库,单击所需要的子模块库,在右边的窗口中将看到相应+的基本模块,选择所需基本模块,可用鼠标将其拖到模型编辑窗口。
同样,在模块库浏览器左侧的Simulink栏上单击鼠标右键,在弹出的快捷菜单中单击Openthe‘Simulink’Libray命令,将打开Simulink基本模块库窗口。
单击其中的子模块库图标,打开子模块库,找到仿真所需要的基本模块。
(2)主要模块介绍
Simulink模块库按功能分为以下8类子库:
Continuous(连续模块)
Discrete(离散模块)
Function&Tables(函数和平台模块)
Math(数学模块)
Nonlinear(非线性模块)
Signals&Systems(信号和系统模块)
Sinks(接收器模块)
Sources(输入源模块)
1)连续模块(Continuous)
Integrator:
输入信号积分
Derivative:
输入信号微分
State-Space:
线性状态空间系统模型
Transfer-Fcn:
线性传递函数模型
Zero-Pole:
以零极点表示的传递函数模型
Memory:
存储上一时刻的状态值
TransportDelay:
输入信号延时一个固定时间再输出
VariableTransportDelay:
输入信号延时一个可变时间再输出
2)离散模块(Discrete)
Discrete-timeIntegrator:
离散时间积分器
DiscreteFilter:
IIR与FIR滤波器
DiscreteState-Space:
离散状态空间系统模型
DiscreteTransfer-Fcn:
离散传递函数模型
DiscreteZero-Pole:
以零极点表示的离散传递函数模型
First-OrderHold:
一阶采样和保持器
Zero-OrderHold:
零阶采样和保持器
UnitDelay:
一个采样周期的延时
3)Function&Tables
Fcn:
用自定义的函数(表达式)进行运算
MATLABFcn:
利用matlab的现有函数进行运算
S-Function:
调用自编的S函数的程序进行运算
Look-UpTable:
建立输入信号的查询表(线性峰值匹配)
Look-UpTable(2-D):
建立两个输入信号的查询表(线性峰值匹配)
4)Math(数学模块)
Sum:
加减运算
Product:
乘运算
DotProduct:
点乘运算
Gain:
比例运算
MathFunction:
包括指数函数、对数函数、求平方、开根号等常用数学函数
TrigonometricFunction:
三角函数,包括正弦、余弦、正切等
MinMax:
最值运算
Abs:
取绝对值
Sign:
符号函数
5)Nonlinear(非线性模块)
Saturation:
饱和输出,让输出超过某一值时能够饱和。
Relay:
滞环比较器,限制输出值在某一范围内变化。
Switch:
开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。
ManualSwitch:
手动选择开关
6)Signal&Systems(信号和系统模块)
In1:
输入端。
Out1:
输出端。
Mux:
将多个单一输入转化为一个复合输出。
Demux:
将一个复合输入转化为多个单一输出。
Ground:
连接到没有连接到的输入端。
Terminator:
连接到没有连接到的输出端。
SubSystem:
建立新的封装(Mask)功能模块
7)Sinks(接收器模块)
Scope:
示波器。
XYGraph:
显示二维图形。
ToWorkspace:
将输出写入MATLAB的工作空间。
ToFile(.mat):
将输出写入数据文件。
8)Sources(输入源模块)
Constant:
常数信号。
Clock:
时钟信号。
FromWorkspace:
来自MATLAB的工作空间。
FromFile(.mat):
来自数据文件。
PulseGenerator:
脉冲发生器。
RepeatingSequence:
重复信号。
SignalGenerator:
信号发生器,可以产生正弦、方波、锯齿波及随意波。
SineWave:
正弦波信号。
Step:
阶跃波信号。
9)Simulink模型的特点
在SIMULINK里提供了许多如Scope的接收器模块,这使得用SIMULNK进行仿真具有像做实验一般的图形化显示效果。
SIMULINK的模型具有层次性,通过底层子系统可以构建上层母系统。
SIMULINK提供了对子系统进行封装的功能,用户可以自定义子系统的图标和设置参数对话框。
2模糊控制
模在工控制过程中经常会碰到大滞后、时变、非线性的复杂系统。
其中,有的参数未知或缓慢化;有的存在滞后和随机干扰;有的无法获得精确的数学模型。
模糊控制器是一种近年来发展起来的新型控制器,其优点是不要求掌握受控对象的精确数学模型,而根据人工控制规则组织控制决策表,然后由该表决定控制量的大小。
将模糊控制和PID控制两者结合起来,扬长避短,既具有模糊控灵活而适应性强的优点,又具有PID控制精度高的特点。
这种Fuzzy-PID复合型控制器,对复杂控制系统和高精度伺服系统具有良好的控制效果。
2.1模糊控制的基本原理
模糊控制系统与一般的计算机控制系统具有相似的结构,其框图如图2.1所示。
系统的核心是一个用模糊知识表示,能完成模糊推理与模糊控制功能的模糊控制器。
图2.1模糊控制系统结构框图
模糊控制规律由计算机程序实现,计算机的采样值为被控量的精确值,将它与给定值比较便可得到偏差信号,此偏差经A/D转换后作为模拟控制器的输入,控制器首先对偏差值进行模糊处理,并用响应的模糊语言值(实际上是一个模糊向量)表示。
根据模糊控制规则经推理合成进行模糊决策,便可得到模糊控制向量。
控制向量经非模糊化(即清晰)化处理转换成精确量,由D/A输出实现对系统的精确控制。
2.2模糊控制器的设计
2.2.1结构设计
结构设计是指合理地确定控制器的输入和输出变量。
结构设计直接影响控制器的性能。
从输入信号“个数”上,模糊控制器可以分为单变量控制器和多变量控制器两种。
目前应用最多的是单变量模糊控制器。
单变量模糊控制器从输入信号“维数”上可分为以下三种:
(1)一维控制器:
输入为被控量与给定值的偏差E,其动态性能比较差,一般只适用于一阶被控对象。
(2)二维控制器:
输入为偏差E及其变化量EC,控制器有较好的动态响应,应用广泛。
(3)三维控制器:
输入为偏差E、偏差变化EC、及偏差变化的改变量ECC。
图2.3为单变