Matlab--不完全微分PID控制算法及其仿真

  在PID控制中,微分信号的引入可改善系统的动态特性,但也易引进高频干扰,在误差扰动突变时尤其显出微分项的不足。
。若在控制算法中加入低通滤波器,则可使系统性能得到改善。
  克服上述缺点的方法之一是在PID算法中加入一个一阶惯性环节(低通滤波器) G f ( s ) = 1 / ( 1 + T f s ) G_{f}(s)=1/(1+T_{f}s) Gf(s)=1/(1+Tfs),可以使得系统得到改善。

  不完全微分PID的结构如图(a)、(b)所示,其中图(a)是将低通滤波器直接加在微分环节上,图(b)是将低通滤波加在整个PID控制器之后。下面以图(a)为例进行仿真说明不完全微分PID如何改进了普通PID的性能。1233
  By_ZC
通过对a所展示的不完全微分结构,其传递函数为:
By_ZC
注意事项:

u D ( k ) = k p T D s ( T f s + 1 ) ∗ E ( s ) u_{D(k)}=\displaystyle\frac {k_{p}T_{D}s}{(T_{f}s+1)}*E(s) uD(k)=(Tfs+1)kpTDsE(s)
( T f s + 1 ) U D ( s ) = k p T D s E ( s ) (T_{f}s+1)U_{D}(s)=k_{p}T_{D}sE(s) (Tfs+1)UD(s)=kpTDsE(s)
T f s U D ( s ) + U D s = k p T D s E ( s ) T_{f}sU_{D}(s)+U_{D}s=k_{p}T_{D}sE(s) TfsUD(s)+UDs=kpTDsE(s)
然后微分得到后面上面式子

%PID Controler with Partial differential
clear all;
close all;

ts=20;
sys=tf([1],[60,1],'inputdelay',80);
dsys=c2d(sys,ts,'zoh');
[num,den]=tfdata(dsys,'v');

u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;
ud_1=0;
y_1=0;y_2=0;y_3=0;
error_1=0;
ei=0;

for k=1:1:100
time(k)=k*ts;

yd(k)=1.0;

%Linear model
y(k)=-den(2)*y_1+num(2)*u_5;

n(k)=0.01*rands(1);
y(k)=y(k)+n(k);

error(k)=yd(k)-y(k);

%PID Controller with partly differential
ei=ei+error(k)*ts;
kc=0.30;
ki=0.0055;
TD=140;

kd=kc*TD/ts;

Tf=180;
Q=tf([1],[Tf,1]);   %Low Freq Signal Filter

M=2;
if M==1      %Using PID with Partial differential
	alfa=Tf/(ts+Tf);
	ud(k)=kd*(1-alfa)*(error(k)-error_1)+alfa*ud_1;
	u(k)=kc*error(k)+ud(k)+ki*ei;
   ud_1=ud(k);
elseif M==2  %Using Simple PID
	u(k)=kc*error(k)+kd*(error(k)-error_1)+ki*ei;
end

%Restricting the output of controller
if u(k)>=10
   u(k)=10;
end
if u(k)<=-10
   u(k)=-10;
end

u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
y_3=y_2;y_2=y_1;y_1=y(k);
error_1=error(k);
end
figure(1);
plot(time,yd,'r',time,y,'k:','linewidth',2);
xlabel('time(s)');ylabel('yd,y');
legend('Ideal position signal','Position tracking');
figure(2);
plot(time,u,'r','linewidth',2);
xlabel('time(s)');ylabel('u');
figure(3);
bode(Q,'r');
dcgain(Q);

By_ZC

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
计算机控制课程设计 院系: 电气工程学院 专业: 自动化专业 班级: 学号: 姓名: PID控制算法MATLAB仿真研究 一、实验目的 1)通过本课程设计进一步巩固PID算法基本理论以及数字控制器实现的认识和掌握,归纳和总结PID控制算法在实际运用中的一些特性; 2) 熟悉MATLAB语言及其在控制系统设计中的应用,提高学生对控制系统程序设计的能力。 二、实验器材 计算机 三、课程设计的基本内容及步骤 1. 任务的提出 采用带纯滞后的一阶惯性环节作为系统的被控对象模型,传递函数为,其中各参数分别为:,,。对PID控制算法仿真研究从以下4个方面展开: PID控制器调节参数的整定。PID参数的选定对控制系统能否得到好的控制效果是至关重要的,PID参数的整定方法有很多种,可采用理论整定法(如ZN法)或者实验确定法(比如扩充临界比例度法、试凑法等),也可采用如模糊自适应参数整定、遗传算法参数整定等新型的PID参数整定方法。选择某种方法对参数整定后,在MATLAB上对系统进行数字仿真,绘制系统的阶跃响应曲线,从动态和静态特性的性能指标评价系统控制效果的优劣; 改变对象模型参数,通过仿真实验讨论PID控制参数在被控对象模型失配情况下的控制效果。由于在实际生产过程的控制中,用模型表示被控对象时往往存在一定误差,且参数也不可能是固定不变的。在已确定控制器最优PID调节参数下,仿真验证对象模型的3个参数()中某一个参数变化(不超过原值的)时,系统出现模型失配时控制效果的改变并分析原因; 执行机构非线性对PID控制器控制效果的分析研究。在控制器输出后加入非线性环节(如饱和非线性、死区非线性等),从仿真结果分析、讨论执行机构的非线性对控制效果的影响。 待系统稳定后,给系统施加小的扰动信号,观察此时系统的响应曲线,分析对不同的扰动信号类型(如脉冲信号、阶跃)和不同的信号作用位置(如在系统的测量输出端或控制器输出后位置)情况下,系统是否仍然稳定,并与无扰动情况下的响应曲线进行比较。 相关理论知识 1)PID算法原理 2)PID控制器调节参数的整定方法 3)MATLAB中动态仿真工具箱Simulink的使用 3. 内容及步骤 1)首先选择一种PID控制器调节参数的整定方法,得到最优调节参数; 2)打开MATLAB,启动SIMULINK工具箱,创建一个如下图所示仿真控制系统;观察系统阶跃响应曲线,记录动态特性指标值。 图1 3)分别修改参数、和值(不超过原值的),观察记录系统出现模型失配时控制效果的改变,分析原因; 4)仿真验证执行机构非线性的作用验证分析; 5)PID控制对系统扰动信号的控制效果验证分析。 四、具体做法 1、参数整定 1)选择采样周期 由于被控对象中含有纯滞后环节,且其滞后时间常数τd=60取采样周期Ts<1/10τd,故而令Ts=1s,给定值输入人r阶跃输入信号。 2)选择积分时间常数Ti= ,微分时间Td=0,从小到大调节比例系数Kp=Kk,使得系统发生等幅振荡,记下使系统发生振荡的临界比例度δk(即δk=1/ Kk)及系统的临界振荡周期Tk=233s。取Kk=0.5665 3)选择控制度为Q=1.05,计算各参数: Kp=0.63Kk=0.3569 T=0.014Tk=3.262 Ti=0.49Tk=114.17 Td=0.14Tk=32.62 从而 Ki=Kp/Ti=0.0031 Kd=Kp*Td=11.6421 进行参数整定后所得到的图形如下: 图2 由响应的曲线可知,此时系统虽然稳定,但是暂态性能较差,超调量过大,且响应曲线不平滑。由此可根据以下几个原则对参数进行整定以改善暂态过程: 通过减小采样周期后,使响应曲线平滑。 减小采样周期后,通过增大积分时间常数以保证系统的稳定性。 减小比例系数和微分时间常数,以减小系统的超调。改变控制器 的参数后所得到的阶跃响应曲线如下图所示,系统的暂态性能明显得到改善。 图3 最后,所选择的采样周期为Ts=1s,PID控制器的参数为: Kp=0.25 Ki=0.001 Kd=3 此时,系统的超调量为Mp=27.7%,上升时间tr=73.2s,调整时间为ts=382s。稳态误差ess=0 2、模型失配对PID控制器控制效果的影响 实际中,由于建模误差以及被控对象的参数变化,都会使得被控对象传递函数参数不准确。一个性能优良的控制器应给在系统参数发生变化时依然具有良好的控制性能,即具有较强的鲁棒性。PID控制器的鲁棒性强弱是由控制器参数确定后系统的稳定裕度决定的。下面通过仿真分析被控对象参数变化时PID控制器的控制效果。 当被控对象的比例系数增大5%时(即K=31.5),系统的单位阶跃响应曲线如图4所示,此时系统的暂态性能指标为: Mp=29.9% tr=68s ts=349s 相对参数未变时
《计算机控制课程设计-PID控制算法MATLAB仿真研究》这个课程设计主要研究了PID控制算法在计算机控制系统中的应用,并通过MATLAB仿真进行了实验研究。 PID控制算法是一种常用的控制算法,它可以通过对系统的误差、误差变化和积累误差进行调节来实现系统控制。在本课程设计中,首先通过理论学习的方式深入了解PID控制算法的原理和数学模型。然后,利用MATLAB软件进行仿真实验,将PID控制算法应用于一个计算机控制系统的设计中。 在仿真实验中,首先需要构建一个控制系统的数学模型。然后,通过PID控制算法的调节参数,例如比例系数、积分系数和微分系数,对控制系统进行参数调节和优化。在对比实验中,可以通过调整不同的参数组合,分析不同参数对系统控制性能的影响。 通过实验研究,可以评估PID控制算法在这个计算机控制系统中的性能和效果。实验结果可以通过MATLAB软件进行数据分析和图形绘制,比较不同参数设置下系统的输出响应、稳态误差和控制精度等指标。 该课程设计对深入理解PID控制算法的原理和应用具有重要意义。通过MATLAB仿真实验,学生可以掌握PID控制算法的实际应用方法,并了解其在工业、自动化等领域的广泛应用。同时,通过对系统的数学建模和仿真实验,学生还可以培养自己的实验设计和数据分析能力,提高自己的综合素质。 总之,《计算机控制课程设计-PID控制算法MATLAB仿真研究》这个课程设计通过理论学习和实验研究相结合的方式,深入研究了PID控制算法的应用。通过实验分析,可以获得PID控制算法在计算机控制系统中的性能和效果,提高学生的实践动手能力和综合素质。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值