模糊自适应整定PID控制仿真实验
- 格式:doc
- 大小:328.00 KB
- 文档页数:9
模糊自适应PID 控制的Matlab 仿真设计研究姓名:陈明学号:201208070103班级:智能1201一、 模糊控制思想、PID 控制理论简介:在工业生产过程中,许多被控对象受负荷变化或干扰因素很多基于模糊自适应控制理论, 设计了一种模糊自适应PID 控制器, 具体介绍了这种PID 控制器的控制特点及参数设计规则, 实现PID 控制器的在线自整定和自调整。
通过matlab 软件进行实例,仿真表明, , 提高控制系统实时性和抗干扰能力,易于实现.便于工程应用。
1.1 模糊控制的思想:应用模糊数学的基本理论和方法, 控制规则的条件、操作用模糊集来表示、并把这些模糊控制规则以及有关信息, 诸如PID 控制参数等作为知识存入计算机知识库, 然后计算机根据控制系统的实际情况(系统的输入, 输出) , 运用模糊推理。
1.2 PID 算法:u(t)=k p * e(t)+k i * ∫e(t)t 0dt +k d *de(t)dt= k p *e(t)+ k i *∑e i (t) + k d * e c (t)其中, u (t) 为控制器输出量, e(t) 为误差信号, e c (t)为误差变化率, k p , k i , k d 分别为比例系数、积分系数、微分数。
然而,课本中,为了简化实验难度,只是考虑了kp ,ki 参数的整定。
1.3 模糊PID 控制器的原理图:二、基于Matlab的模糊控制逻辑模块的设计关于模糊逻辑的设计,主要有隶属函数的编辑,参数的选型,模糊规则导入,生成三维图等观察。
2.1 模糊函数的编辑器的设定:打开matlab后,在命令窗口输入“fuzzy”,回车即可出现模糊函数编辑器,基本设置等。
基于课本的实验要求,我选的是二输入(e, e c)二输出(k p ,k i)。
需要注意的是,在命名输入输出函数的时候,下标字母需要借助下划线的编辑,即e_c 能够显示为e c。
2.2四个隶属函数的N, Z, P 函数设定:在隶属函数的设定中,N 选用的是基于trimf(三角形隶属函数) , Z是基于zmf(Z型隶属函数),P是基于smf(S型隶属函数)。
自适应模糊PID控制器的设计与仿真自适应模糊PID控制器是一种结合了模糊控制和PID控制的自适应控制器,它能够在系统的不同工况下根据实际需求对PID参数进行自适应调整,从而使得系统具有更好的动态性能和稳定性。
本文将介绍自适应模糊PID控制器的设计思路和仿真过程。
1.设计思路1.1系统建模首先需要对待控制的系统进行建模,得到系统的数学模型。
这可以通过实验数据或者理论分析来完成。
一般情况下,系统的数学模型可以表示为:$G(s)=\frac{Y(s)}{U(s)}=\frac{K}{s(Ts+1)}$其中,K是系统的增益,T是系统的时间常数。
1.2设计模糊控制器接下来需要设计模糊控制器,包括模糊规则、模糊集和模糊运算等。
模糊控制器的输入是系统的误差和误差的变化率,输出是PID参数的调整量。
1.3设计PID控制器在模糊控制器的基础上,设计PID控制器。
PID控制器的输入是模糊控制器的输出,输出是控制信号。
1.4设计自适应机制引入自适应机制,根据系统的性能指标对PID参数进行自适应调整。
一般可以采用Lyapunov函数进行系统性能的分析和优化。
2.仿真过程在仿真中,可以使用常见的控制系统仿真软件,如MATLAB/Simulink 等。
具体的仿真过程如下:2.1设置仿真模型根据系统的数学模型,在仿真软件中设置仿真模型。
包括系统的输入、输出、误差计算、控制信号计算等。
2.2设置模糊控制器根据设计思路中的模糊控制器设计,设置模糊控制器的输入和输出,并设置模糊规则、模糊集和模糊运算等参数。
2.3设置PID控制器在模糊控制器的基础上,设置PID控制器的输入和输出,并设置PID参数的初始值。
2.4设置自适应机制设置自适应机制,根据系统的性能指标进行PID参数的自适应调整。
2.5运行仿真运行仿真,观察系统的响应特性和PID参数的变化情况。
根据仿真结果可以对设计进行调整和优化。
3.结果分析根据仿真结果,可以分析系统的稳定性、动态性能和鲁棒性等指标,并对设计进行调整和改进。
《电液伺服系统模糊PID控制仿真与试验研究》篇一一、引言随着现代工业自动化技术的飞速发展,电液伺服系统作为重要组成部分,在众多领域中发挥着重要作用。
然而,由于电液伺服系统存在非线性、时变性和不确定性等特点,其控制问题一直是研究的热点和难点。
传统的PID控制方法在面对复杂多变的环境时,往往难以达到理想的控制效果。
因此,本文提出了一种基于模糊PID控制的电液伺服系统控制策略,并进行了仿真与试验研究。
二、电液伺服系统概述电液伺服系统主要由液压泵、液压马达、传感器和控制器等部分组成。
它利用电信号驱动液压系统工作,实现对负载的精确控制。
由于其具有高精度、快速响应等特点,在机械制造、航空航天、船舶等领域得到了广泛应用。
然而,由于电液伺服系统的复杂性,其控制问题一直是研究的重点。
三、模糊PID控制策略针对电液伺服系统的特点,本文提出了一种模糊PID控制策略。
该策略结合了传统PID控制和模糊控制的优点,通过引入模糊逻辑对PID参数进行在线调整,以适应系统参数的变化和环境干扰。
模糊PID控制策略能够在保证系统稳定性的同时,提高系统的响应速度和抗干扰能力。
四、仿真研究为了验证模糊PID控制策略的有效性,本文进行了仿真研究。
首先,建立了电液伺服系统的数学模型和仿真模型。
然后,分别采用传统PID控制和模糊PID控制对模型进行仿真实验。
通过对比两种控制策略的响应速度、稳态精度和抗干扰能力等指标,发现模糊PID控制在电液伺服系统中具有更好的性能。
五、试验研究为了进一步验证模糊PID控制策略的实用性,本文进行了试验研究。
在试验过程中,首先搭建了电液伺服系统的试验平台,然后分别采用传统PID控制和模糊PID控制对实际系统进行控制。
通过对比两种控制策略的试验结果,发现模糊PID控制在电液伺服系统中具有更高的稳态精度和更快的响应速度。
此外,在面对环境干扰时,模糊PID控制也表现出更强的抗干扰能力。
六、结论本文通过对电液伺服系统的模糊PID控制进行仿真与试验研究,验证了该策略的有效性。
模糊自整定PID控制的仿真分析本文针对于被控对象模型难以建立,参数不易整定的某些被控系统,利用常规PID在工业领域应用成熟,控制精度高的优点,同时结合模糊控制不需要精确建模、鲁棒性强、容错能力强的特点。
在常规PID控制基础之上,利用模糊控制进行模糊推理,实现PID参数的在线自整定。
利用MATLAB对模糊自整定PID进行仿真分析,仿真结果表明,模糊自整定PID,在响应速度、超调量、稳定性都比常规PID有着明显的提高。
标签:模糊控制; PID控制; 参数自整定; 仿真0 引言自PID控制理论诞生已70余年发展历史,它以结构简单、稳定性好、工作可靠、参数调整简单成为现代工业控制的主要理论之一。
但当被控对象的参数以及结构不能完全掌握或难以精确建立数学模型时,系统控制器的结构和参数必须通过工作人员的丰富经验以及现场试参法来进行确定。
模糊控制适用于模型难以建立、非线性、参数高度耦合、高迟滞的系统。
利用模糊理论在参数整定的优势特点,同时充分发挥PID控制器的优良控制作用,将提高对参数难以整定、耦合度高的被控对象的控制精度。
1 模糊自整定PID 控制器的整体设计1.1 PID 控制原理简介由比例环节、积分环节以及微分环节组成的,通过各环节组成的线性结构对给定输出与实际输出之差进行调节,使执行机构最终达到预定输入量的控制思想被称之为PID控制理论。
图1 PID控制原理框图。
(1)在式(1)中,Kp、Ki以及Kd为PID控制理论三个重要参数,分别表示为比例环节的增益,是无量纲参数;Ki为积分环节的参数,Kd为微分环节增益参数,单位为s。
这些参数需要根据系统状态进行不断调整,主要通过在线辨识方法来完成被控系统参数的整定,最终得到所需的控制结果。
其控制算法为(2)式所示。
Δu(k)=KpΔe(k)+KiΔe(k)+Kd[Δe(k)-Δe(k-1)] (2)(2)式中,为其积分系数,为其微分系数,T为其采样周期。
1.2 模糊控制基本原理模糊控制是基于工程技术人员丰富操作的经验或大量实际操作数据归纳总结出的,用自然语言来表述的,采用编程语言通过计算机控制系统可以实现的算法思想。
实验三模糊自适应整定PID控制仿真实验一、实验目的1.通过实验了解数字PID控制的原理2.通过实验实现离散系统的数字 PID 控制仿真3.通过实验了解模糊自适应整定PID控制的原理4.通过实验实现模糊自适应整定PID控制仿真5.通过实验进一步熟悉并掌握Matlab软件的使用方法二、实验内容1.针对给定离散系统的输入信号的位置响应,设计离散PID控制器,编制相应的仿真程序。
2.若采样时间为1ms ,采用模糊PID控制进行阶跃响应,在第300个采样时间时控制器输出加1.0的干扰,编制该模糊自适应整定PID系统的Matlab仿真程序三、实验步骤1.针对给定离散系统的阶跃信号、正弦信号和方波信号的位置响应,设计离散PID控制器,编制相应的仿真程序。
2.确定模糊自整定PID的算法基础3.针对 kp, ki , kd 三个参数分别建立合适的模糊规则表4.画出PID参数的在线自校正工作程序流程图5.编制该模糊自适应整定PID系统的Matlab仿真程序四、实验要求1.设被控对象为:采样时间为1ms,采用Z变换进行离散化,经过Z变换后的离散化对象为:yout(k)=-den(2)yout(k-1)-den(3)yout(k-2)-den(4)yout(k-3)+num(2)u(k-1)+num(3)u(k-2)+num(4)u(k-3)针对离散系统的阶跃信号、正弦信号和方波信号的位置响应,设计离散PID控制器。
其中,S为信号选择变量,S=1时为阶跃跟踪,S=2时为方波跟踪,S=3时为正弦跟踪。
2.采样时间为1ms ,采用模糊PID控制进行阶跃响应,在第300个采样时间时控制器输出加1.0的干扰,编制炉温模糊控制系统的Matlab仿真程序五﹑自适应模糊控制的规则1﹑控制规则:2.模糊控制器设计确定为双输入,三输出结构确定每个变量的论域,其中每个变量都有一个模糊子集来表示。
这个模糊子集中有3个模糊子集,分别是:N ,Z ,P 在编辑界面中,确定好每一个语言变量的范围,以及隶属函数的类型。
实验三模糊自适应整定PID控制仿真实验一、实验目的1.通过实验了解数字PID控制的原理2.通过实验实现离散系统的数字 PID 控制仿真3.通过实验了解模糊自适应整定PID控制的原理4.通过实验实现模糊自适应整定PID控制仿真5.通过实验进一步熟悉并掌握Matlab软件的使用方法二、实验内容1.针对给定离散系统的输入信号的位置响应,设计离散PID控制器,编制相应的仿真程序。
2.若采样时间为1ms ,采用模糊PID控制进行阶跃响应,在第300个采样时间时控制器输出加1.0的干扰,编制该模糊自适应整定PID系统的Matlab仿真程序三、实验步骤1.针对给定离散系统的阶跃信号、正弦信号和方波信号的位置响应,设计离散PID控制器,编制相应的仿真程序。
2.确定模糊自整定PID的算法基础3.针对 kp, ki , kd 三个参数分别建立合适的模糊规则表4.画出PID参数的在线自校正工作程序流程图5.编制该模糊自适应整定PID系统的Matlab仿真程序四、实验要求1.设被控对象为:采样时间为1ms,采用Z变换进行离散化,经过Z变换后的离散化对象为:yout(k)=-den(2)yout(k-1)-den(3)yout(k-2)-den(4)yout(k-3)+num(2)u(k-1)+num(3)u(k-2)+num(4)u(k-3)针对离散系统的阶跃信号、正弦信号和方波信号的位置响应,设计离散PID控制器。
其中,S为信号选择变量,S=1时为阶跃跟踪,S=2时为方波跟踪,S=3时为正弦跟踪。
2.采样时间为1ms ,采用模糊PID控制进行阶跃响应,在第300个采样时间时控制器输出加1.0的干扰,编制炉温模糊控制系统的Matlab仿真程序五﹑自适应模糊控制的规则1﹑控制规则:2.模糊控制器设计确定为双输入,三输出结构确定每个变量的论域,其中每个变量都有一个模糊子集来表示。
这个模糊子集中有3个模糊子集,分别是:N ,Z ,P 在编辑界面中,确定好每一个语言变量的范围,以及隶属函数的类型。
如下图所示:输入模糊控制规则:六﹑仿真结果PID 控制器Kp 参数在控制过程中的变化曲线:Ki参数:Kd参数:七﹑实验程序(一)%Fuzzy Tunning PID ControlClear all;Close all;a=newfis('fuzzpid');a=addvar(a,'input','e',[-1 1]);a=addmf(a,'input','1','N','zmf',[-1,-1/3]);a=addmf(a,'input','1','Z','trimf',[-2/3,0,2/3]); a=addmf(a,'input','1','P','smf',[1/3,1]);a=addvar(a,'input','ec',[-1 1]);a=addmf(a,'input','2','N','zmf',[-1,-1/3]);a=addmf(a,'input','2','Z','trimf',[-2/3,0,2/3]); a=addmf(a,'input','2','P','smf',[1/3,1]);a=addvar(a,'output','kp',[-10 10]);a=addmf(a,'input','1','N','zmf',[-10,-3]);a=addmf(a,'input','1','Z','trimf',[-5,0,5]);a=addmf(a,'input','1','P','smf',[3,10]);a=addvar(a,'output','ki',[-3 3]);a=addmf(a,'output','2','N','zmf',[-3,-1]);a=addmf(a,'output','2','Z','trimf',[-2,0,2]);a=addmf(a,'output','2','P','smf',[1,3]);a=addvar(a,'output','kd',[-5 5]);a=addmf(a,'output','3','N','zmf',[-5,-1]);a=addmf(a,'output','3','Z','trimf',[-3,0,3]);a=addmf(a,'output','3','P','smf',[1,5]);Rulelist=[1 1 1 1 1 1 1;1 2 1 2 1 1 1;1 2 2 1 2 1 1;1 3 12 1 1 1;1 323 2 1 1;2 1 1 1 1 1 1;2 23 3 1 1 1;2 1 2 23 1 1;2 3 2 1 3 1 1;2 23 1 2 1 1;3 1 2 1 1 1 1;3 2 3 1 2 1 1;3 1 2 1 2 1 1;3 3 1 2 3 1 1;3 2 3 1 2 1 1];a=addrule(a,rulelist);a=setfis(a,'DefuzzMethod','centroid'); writefis(a,'fuzzy');a=readfis('fuzzpid');figure(1);Plotmf(a,'input',1);figure(2);Plotmf(a,'input',2);figure(3);Plotmf(a,'output',1);figure(4);Plotmf(a,'output',2);figure(5);Plotmf(a,'output',3);figure(6);Plotfis(a);fuzzy fuzzpid;showrule(a);ruleview fuzzpid;(二)%Fuzzy PID ControlClear all;Close all;Warning off;a=readfis('fuzzpid');t=0.001;sys=tf(122,[1,26,0]);dsys=c2d(sys,ts,'z');[num,den]=tfdata(dsys,'v');u-1=0;u-2=0;y-1=0;y=2=0;e-1=0;ec-1=0;ei=0;ed=0;kp0=0;ki0=0;kd0=0;for k=1:1:1000Time(k)=k*ts;r(k)=1;%Using fuzzy inference to tunning PIDk-pid=evalfis([e-1,ec_1],a);kp(k)=kp_0+k_pid(1);ki(k)=ki_0+k_pid(2);kd(k)=kd_0+k_pid(3);u(k)=kp(k)*e_1+ki(k)*ei+kd(k)*ed;y(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;e(k)=r(k)-y(k);%%%%%%%%%%%%%%%%Return of parameters%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% u_2=u_1;u_1u(k)=0;y_2=y_1;y_12=y(2);ei=ei+e(k)*ts;ec(k)=e(k)-e_1;e_1=e(k);ec_1=ec(k);endfiure(1);plot(time,r,'r',time,y,'b:','linewidth',2);xlabel(time(s)');ylabel('r,y');legend('Ideal osition','Practical position');fiure(2);subplot(211);plot(time,kp,'r','linewidth',2);xlabel(time(s)');ylabel('kp');subplot(212);plot(time,ki,'r','linewidth',2);xlabel(time(s)');ylabel('ki');figure(3);plot(time,u,'r','linewidth',2);xlabel(time(s)');ylabel('control input');。