预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

PID调节器参数整定分析3————————————————————————————————作者:————————————————————————————————日期:个人收集整理勿做商业用途个人收集整理勿做商业用途个人收集整理勿做商业用途《计算机控制技术》实验指导书(软件部分)编写:唐红雨黄海峰镇江高等专科学校电子信息系2007年3月-9-目录实验一PID调节器参数整定分析2实验二采样控制系统分析4实验三程序判断滤波5实验四中值滤波6实验五平均值滤波8实验一PID调节器参数整定分析一、实验目的设计MATLAB的M文件,用来实现PID调节器的功能,分析Kp、Kd、Ki三个参数对系统性能的影响。二、实验步骤开机执行程序,用鼠标双击图标进入MATLAB命令窗口:CommandWindows新建M-file,然后,输入设计好的程序.调试,检查错误,然后运行。观察系统对不同参数的相应曲线,分析其原因。三、实验要求1、实验之前,查阅有关资料,编写好相应的程序。2、认真做好仿真记录四、实验报告要求叙述Kp、Kd、Ki三个参数对系统性能的影响。附程序:1%比例控制G=tf(10,[16116]);P=[0。1:0.1:1];%传递函数,Kp变化范围fori=1:length(P)G_c=feedback(P(i)*G,1);%系统反馈step(G_c),holdon%单位阶跃输入end2%比例积分控制G=tf(10,[16116])%系统传递函数Kp=1;Ti=[0。8:0.2:1.6];%Kp一定,不同Ti的输入fori=1:length(Ti)Gc=tf(Kp*[1,1/Ti(i)],[1,0]);%分别计算不同Ti的系统参数G_c=feedback(G*Gc,1);step(G_c),holdon%阶跃响应曲线3%比例、积分、微分控制G=tf(10,[16116])%系统传递函数Kp=1;Ti=0.6;Td=[0.1:0。2:2];%Kp、Ti一定,不同Td的输入fori=1:length(Td)Gc=tf(Kp*[Ti*Td(i),Ti,1]/Ti,[1,0]);%分别计算不同Td的系统参数G_c=feedback(G*Gc,1);step(G_c),holdon%阶跃响应曲线end4%P、PI、PID三种控制策略G=tf(10,[110355024]);%系统传递函数[Kc,pp,wg,wp]=margin(G);Tc=2*pi/wg;%计算系统开环增益和剪切频率[Gc1,Kp1]=ziegler(1,[Kc,Tc,10]);Gc1%调用自定义ziegler函数,P控制[Gc2,Kp2,Ti2]=ziegler(2,[Kc,Tc,10]);Gc2%PI控制[Gc3,Kp3,Ti3,Td3]=ziegler(3,[Kc,Tc,10]);Gc3%PID控制G_c1=feedback(G*Gc1,1);step(G_c1);holdon%P控制,阶跃响应曲线G_c2=feedback(G*Gc2,1);step(G_c2);%PI控制,阶跃响应曲线G_c3=feedback(G*Gc3,1);step(G_c3);其中ziegler()函数如下:function[Gc,Kp,Ti,Td,H]=ziegler(key,vars)Ti=[];Td=[];H=[];iflength(vars)==4,K=vars(1);L=vars(2);T=vars(3);N=vars(4);a=K*L/T;ifkey==1,Kp=1/a;%P控制器elseifkey==2,Kp=0.9/a;Ti=3.33*L;%PI控制器elseifkey==3%PID控制器Kp=1。2/a;Ti=2*L;Td=L/2;endelseiflength(vars)==3,K=vars(1);Tc=vars(2);N=vars(3);ifkey==1,Kp=0.5*K;elseifkey==2,Kp=0。4*K;Ti=0.8*Tc;elseifkey==3Kp=0.6*K;Ti=0。5*Tc;Td=0.12*Tc;endelseiflength(vars)==5,K=vars(1);Tc=vars(2);rb=vars(3);pb=pi*vars(4)/180;N=vars(5);Kp=K*rb*cos(pb);ifkey==2,Ti=—Tc/(2*pi*tan(pb));elseifkey==3Ti=Tc*(1+sin(pb))/(pi*cos(pb));Td=Ti/4;endendswitchkeycase1,Gc=Kp;case2,Gc=tf(Kp*[Ti,1],[Ti,0]);case3nn=[Kp*Ti*Td*(N+1)/N,Kp*(Ti+Td/N),Kp];dd=