收藏 分享(赏)

PID控制实验报告.doc

上传人:精品资料 文档编号:10615609 上传时间:2019-12-07 格式:DOC 页数:40 大小:923.64KB
下载 相关 举报
PID控制实验报告.doc_第1页
第1页 / 共40页
PID控制实验报告.doc_第2页
第2页 / 共40页
PID控制实验报告.doc_第3页
第3页 / 共40页
PID控制实验报告.doc_第4页
第4页 / 共40页
PID控制实验报告.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、实验二 数字 PID 控制计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此连续 PID 控制算法不能直接使用,需要采用离散化方法。在计算机 PID 控制中,使用的是数字 PID 控制器。1、位置式 PID 控制算法按模拟 PID 控制算法,以一系列的采样时刻点 kT 代表连续时间 t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,可得离散 PID 位置式表达式: kjdipkjDIp TkeekTu00)1()()()(式中, ,e 为误差信号(即 PID 控制器的输入) ,u 为控DpdIiT,制信号(即控制器的输出) 。在仿真过程中,可根据实际情况,对控制器

2、的输出进行限幅。2、连续系统的数字 PID 控制仿真连续系统的数字 PID 控制可实现 D/A 及 A/D 的功能,符合数字实时控制的真实情况,计算机及 DSP 的实时 PID 控制都属于这种情况。1Ex3 设被控对象为一个电机模型传递函数 ,式中BsJsG21)(J=0.0067,B=0.1。输入信号为 ,采用 PD 控制,其中 。)2sin(5.0t5.0,dpk采用 ODE45 方法求解连续被控对象方程。因为 ,所以 ,另 ,则BsJsUYG21)( udtyBtJ2 y2,1,因此连续对象微分方程函数 ex3f.m 如下/)*u(B/J)y21function dy = ex3f(t,

3、y,flag,para)u=para;J=0.0067;B=0.1;dy=zeros(2,1);dy(1) = y(2);dy(2) = -(B/J)*y(2) + (1/J)*u;控制主程序ex3.mclear all;close all;ts=0.001; %采样周期xk=zeros(2,1);%被控对象经 A/D转换器的输出信号y的初值e_1=0;%误差 e(k-1)初值u_1=0;%控制信号u(k-1)初值 for k=1:1:2000 %k为采样步数time(k) = k*ts; %time中存放着各采样时刻rin(k)=0.50*sin(1*2*pi*k*ts); %计算输入信号的

4、采样值 para=u_1; % D/AtSpan=0 ts; tt,xx=ode45(ex3f,tSpan,xk,para); %ode45解系统微分方程%xx有两列,第一列为tt时刻对应的y,第二列为tt时刻对应的y导数xk = xx(end,:); % A/D,提取xx中最后一行的值,即当前 y和y导数yout(k)=xk(1); %xk(1)即为当前系统输出采样值 y(k) e(k)=rin(k)-yout(k);%计算当前误差de(k)=(e(k)-e_1)/ts; %计算u(k)中微分项输出 u(k)=20.0*e(k)+0.50*de(k);%计算当前u(k) 的输出%控制信号限幅

5、if u(k)10.0u(k)=10.0;endif u(k)=10 u(k)=10;endif u(k)=5.0rin(k)=rand; vr(k)=abs(rin(k)-r_1)/ts);endendu(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID Controller%Restricting the output of controllerif u(k)=10u(k)=10;endif u(k)=10u(k)=10;endif u(k)0;2) 当 时,采用 PD 控制,可避免产生过大的超调,又使系统有)(ke较快的响应;3) 当 时,采用 PID 控制,以保证系统的

6、控制精度。)(积分分离算法可表示为: kjdip Tkeeeku0 )1()()()(式中,T 为采样时间, 为积分项的开关系数, |)(|0keEx9 设备控对象为一个延迟对象 ,采样周期为 20s,延迟时16)(8seG间为 4 个采样周期,即 80s。输入信号 r(k)=40,控制器输出限制在-110,110。3,05.,8.dipkk被控对象离散化为 )5(2)1(2)( kunmkyeny仿真方法一:仿真程序:ex9_1.m。当 M=1 时采用分段积分分离法, M=2时采用普通 PID 控制。%Integration Separation PID Controllerclear al

7、l;close all;ts=20;%Delay plantsys=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;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;ei=0;% M=1分段积分分离,M=2普通PIDdisp(M=1-Using integration separation,M=2-Not using integration separation)M=input(whether or not use i

8、ntegration separation method:)for k=1:1:200time(k)=k*ts;%输出信号yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=40;error(k)=rin(k)-yout(k);ei=ei+error(k)*ts;%积分项输出if M=1 %使用分段积分分离if abs(error(k)=30endif u(k)umax,则只累加负偏差;若 u(k-1)=umu(k)=um;endif u(k)=umif error(k)0alpha=0;else alpha=1;endelseif u(k)0alpha=1;else

9、alpha=0;endelsealpha=1;endelseif M=2 %Not using intergration sturationalpha=1; end%Return of PID parametersu_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout(k);error_1=error(k); x(1)=error(k); % 计算比例项x(2)=(error(k)-error_1)/ts; % 计算微分项x(3)=x(3)+alpha*error(k)*ts; % 计算积分项 xi(k)=x(3);endfigure(1);sub

10、plot(311);plot(time,rin,b,time,yout,r);xlabel(time(s);ylabel(Position tracking);subplot(312);plot(time,u,r);xlabel(time(s);ylabel(Controller output);subplot(313);plot(time,xi,r);xlabel(time(s);ylabel(Integration);其运行结果如表 3 所示。表 3 例 10 仿真结果M=1时采用抗积分饱和算法 M=2时采用抗积分饱和算法分析:比较仿真结果知,采用普通的算法时,积分项的存在,有时可能会引起

11、积分饱和,增加系统的调整时间和超调量,而采用了抗积分饱和的方法,可以消除静态误差,使控制量不易进入饱和区,即使进入了,也能较快,系统的输出特性得到了一定改善。3、不完全微分 PID 控制算法在 PID 控制中,微分信号的引入可改善系统的动态特性,但也易引入高频干扰,在误差扰动突变时尤其显出微分项的不足。若在控制算法中加入低通滤波器,则可使系统性能得到改善。具体做法就是在 PID 算法中加入一个一阶惯性环节(低通滤波器) ,Tf 为滤波器系数。sTf1可得此时的微分项输出为,其中)1()1()1()( kukeKeuTkuDDfspfs , ,T s 为采样时间, TD 为微分时间常数。)1(k

12、uTDfsDpkKEx11 被控对象为时滞系统传递函数 ,在对象的输出端加幅160)(8seG值为0.01的随机信号。采样周期为20ms。采用不完全微分算法,。140,05.,3.DipTk所加的低通滤波器为 18)(sQ仿真程序:ex11.m。M=1 时采用不完全微分,M=2 时采用普通 PID%PID Controler with Partial differentialclear 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;

13、u_3=0;u_4=0;u_5=0; %控制信号初值ud_1=0; %uD(k-1)初值y_1=0;y_2=0;y_3=0; %输出信号初值error_1=0;ei=0;for k=1:1:100time(k)=k*ts;rin(k)=1.0; yout(k)=-den(2)*y_1+num(2)*u_5; %输出信号差分方程D(k)=0.01*rands(1);%干扰信号yout(k)=yout(k)+D(k); %加入干扰后的输出信号error(k)=rin(k)-yout(k);ei=ei+error(k)*ts; %矩形面积求和计算的积分项输出kp=0.30;ki=0.0055;TD=

14、140;kd=kp*TD/ts; Tf=180;%Q的滤波器系数Q=tf(1,Tf,1); %低通滤波器%M=1选择不完全微分, M=2选择普通PIDdisp(M=1Using Partial differential PID,M=2- Using PID Controler without Partial differential)M=input(whether or not use Partial differential PID:)if M=1 %M=1时用不完全微分alfa=Tf/(ts+Tf);ud(k)=kd*(1-alfa)*(error(k)-error_1)+alfa*ud_

15、1;u(k)=kp*error(k)+ud(k)+ki*ei;ud_1=ud(k);elseif M=2 %M=2时用普通PIDu(k)=kp*error(k)+kd*(error(k)-error_1)+ki*ei;end%输出限幅if u(k)=10u(k)=10;endif u(k)=110u(k)=110;endif u(k)=-110u(k)=-110;end%Update parametersu_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=yout(k); error_2=error_1;error_1=error(k);endfigure(1);plot(time,rin,r,time,yout,b);xlabel(time(s);ylabel(rin,yout);figure(2);plot(time,u,r);xlabel(time(s);ylabel(u);其运行结果如表 5 所示。分析:微分先行 PID 算法将微分算法放在前面,适用于给定量频繁升降的场合,可以避免给定值升降时引起的系统振荡,从而改善系统的动态特性。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报