您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 基于MATLAB的PID控制器设计
现代控制系统----基于MATLAB的PID控制器设计基于MATLAB的PID控制器设计1、被控对象分析机器人和视觉系统,移动机器人利用摄像系统来观测环境信息。已知机器人系统为单位反馈系统,被控对象为机械臂,其传递函数为:为了使系统阶跃响应的稳态误差为零,系统阶跃响应的超调量不大于20%,调节时间小于6s(Δ=2%),采用PID控制器实现。2、控制方法选择PID控制器选择PID控制器PID控制是最早发展起来的经典控制策略,是用于过程控制最有效的策略之一。由于其原理简单、技术成熟,在实际应用中较易于整定,在工业控制中得到了广泛的应用。它最大的优点是不需了解被控对象精确的数学模型,只需在线根据系统误差及误差的变化率等简单参数,经过经验进行调节器参数在线整定,即可取得满意的结果,具有很大的适应性和灵活性。PID控制中的积分作用可以减少稳态误差,但另一方面也容易导致积分饱和,使系统的超调量增大。微分作用可提高系统的响应速度,但其对高频干扰特别敏感,甚至会导致系统失稳。所以,正确计算控制器的参数,有效合理地实现PID控制器的设计,对于PID控制器在过程控制中的广泛应用具有重要的理论和现实意义。在PID控制系统中,PID控制器分别对误差信号e(t)进行比例、积分与微分运算,其结果的加权和构成系统的控制信号u(t),送给对象模型加以控制。PID控制器的数学描述为:其传递函数可表示为:式中Kp、Ti、Td三个系数取值的不同,决定了比例、积分和微分作用的强弱。控制系统的整定就是在控制系统的结构已经确定、控制仪表和控制对象等处在正常状态的情况下,适当选择控制器的参数使控制仪表的特性和控制对象的特性相配合,从而使控制系统的运行达到最佳状态,取得最好的控制效果。3、PID设计3.1设计方法根据被控对象的传递函数绘制的阶跃响应曲线,并用K=dcgain()求出K值以及从图中作出切线得出T与L的值。已知被控对象的K、L和T值后,可以根据Ziegler—Nichols整定公式编写一个MATLAB函数Ziegler_std()用以设计PID控制器。[num,den,Kp,Ti,Td]=Ziegler_std(3,[K,L,T])该函数程序如下:function[num,den,Kp,Ti,Td,H]=Ziegler_std(key,vars)Ti=[];Td=[];H=[];K=vars(1);L=vars(2);T=vars(3);a=K*L/T;ifkey==1num=1/a;%判断设计P控制器elseifkey==2Kp=0.9/a;Ti=3.33*L;%判断设计PI控制器elseifkey==3,Kp=1.2/a;Ti=2*L;Td=L/2;%判断设计PID控制器endswitchkeycase1num=Kp;den=1;%P控制器case2num=Kp*[Ti,1];den=[Ti,0];%PI控制器case3%PID控制器p0=[Ti*Td,0,0];p1=[0,Ti,1];p2=[0,0,1];p3=p0+p1+p2;p4=Kp*p3;num=p4/Ti;den=[1,0];end3.2设计过程在MATLAB中commandwindow下输入下列语句可得原函数的阶跃响应曲线以及K的值如下:num=[1];den=conv([1,1],[0.5,1]);step(num,den);K=dcgain(num,den)K=1图1原系统单位阶跃响应曲线方法:图中作出切线得出T与L的值由此可得K=1,L=0.3179,T=2.289以及:可用MATLAB语言求PID控制器的三个参数Kp、Ti、TdK=1;L=0.3179;T=2.289;[num,den,Kp,Ti,Td]=Ziegler_std(3,[K,L,T])num=1.37348.640527.1798den=10Kp=8.6405Ti=0.6358Td=0.1590由此得出PID控制器的三个参数,从而可得PID控制器传递函数为:分别作出加入PID控制器前后控制系统的单位阶跃响应曲线:图2未加入PID控制器时系统结构图图3未接入PID的闭环响应曲线图4加入PID控制器后系统结构图图5加入PID控制器后系统单位阶跃响应曲线由以上加入PID控制器前后所得系统单位阶跃响应曲线对比知,未加入PID控制器时系统调节时间=8.1s,加入PID控制器后系统存在较大稳态误差,且超调量(超调量是指输出量的最大值减去稳态值,与稳态值之比的百分数)σ%20%,系统调节时间6s因此所得PID控制器不满足要求,通过不断改变PID控制各参数最终获得比较满意的效果如下:图6改变PID控制器参数后系统结构图图7改变PID控制器参数后系统单位阶跃响应曲线由此知,当将各参数改为出Kp=10;Ti=0.2;Td=0.8时系统可获得较好的特性,此时控制器传递函数为:由图7系统单位阶跃响应曲线知,加入此PID控制器后系统调节时间=4.1s,超调量σ%≈18%,且无稳态误差,而未加入PID控制器时系统调节时间=8.1s,由此知,加入此PID控制器后系统响应速度明显提高,性能得到很大改善,故此PID控制器满足系统要求。4、结论与体会从系统接入PID控制器前后的阶跃响应曲线中,可以明显地看到系统调节时间缩短,性能得到很大改善。通过这次实习,我深深认识到利用仿真软件进行控制器设计的可行性以及快捷性。一个理想控制器的设计很难一次性设计成功,需要一次次不断改变参数进行尝试,最终才可获得满意的结果。PID控制器原理简单、技术成熟,不需了解被控对象精确的数学模型,只需在线根据系统误差及误差的变化率等简单参数,经过经验进行调节器参数在线整定,即可取得满意的结果,具有很大的适应性和灵活性。在今后的学习中我们要善于利用计算机处理实际问题,从而快速解决问题。
本文标题:基于MATLAB的PID控制器设计
链接地址:https://www.777doc.com/doc-2534371 .html