资源描述:
《计算机控制课程设计---达林算法计算机控制系统设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、(威海)课程设计基本信息学生姓名:由小玉学号:090220319院系名称:信息与电气工程学院课程设计名称:计算机控制课程设计同组人姓名:蒯庆华王安琪教师评语及课程设计成绩评语:成绩:教师签字:年月日课程设计(论文)任务书专业仪器科学与技术班级0902203学生由小玉指导教师李剑锋题目计算机控制课程设计子题达林算法计算机控制系统设计设计时间2012年12月19日至2012年12月25日共1周设计要求某过程对象的传递函数为:,采用零阶保持器,采样周期,试:试:1、从理论上设计的达林算法控制器。2、利用MATLAB的Simulink仿真工
2、具系统进行仿真,分析系统的输出和控制器的输出。3、分析系统的振铃现象,并对达林算法控制器进行改进,并利用MATLAB的Simulink仿真工具进行仿真。4、利用MATLAB的控制工具箱,对无振铃现象的系统进行仿真,绘制系统的输出响应曲线。5、将控制器转化为差分方程,利用MATLAB的M-文件,绘制系统的输出响应曲线和控制器的输出序列。指导教师签字:系(教研室)主任签字:年月日一、从理论上设计的达林算法控制器。1、求达林算法所期望的闭环脉冲传递函数因为所以又有带入达林算法所要期望的闭环脉冲传递函数,可得:系统的闭环误差脉冲传递函数为:
3、2、求广义对象的脉冲传递函数:3、数字控制器为:二、利用MATLAB的Simulink仿真工具系统进行仿真,分析系统的输出和控制器的输出。1、simulink仿真图:2、达林算法下,单位阶跃输入时的输出响应为:分析:输出响应曲线没有超调,但是调节时间长,大约为15s。2、达林算法下,单位节约输入时数字控制器的输出响应:分析:数字控制器的输出序列以2T为周期上下振荡,出现振铃现象,振铃现象会增加执行机构的磨损,甚至有交互作用的所参数系统中会影响系统的稳定性,因此应采取措施消除。三、分析系统的振铃现象,并对达林算法控制器进行改进,并利用
4、MATLAB的Simulink仿真工具进行仿真。1、分析产生振铃现象的原因:在单位圆的左半平面的实轴上有极点。2、振铃现象的消除方法:找出造成振铃现象的因子,然后令z=1即可。修改后的数字控制器:仿真图如下:输出响应曲线如下:数字控制器输出曲线:分析:振铃现象消除后,系统的稳态性能不变,动态性能变差,调节时间变长且产生超调。数字控制器的输出很快衰减,消除了振铃现象。四、利用MATLAB的控制工具箱,对无振铃现象的系统进行仿真,绘制系统的输出响应曲线。1、matlab程序如下:t=0:1:50;r=step(1,1,t);num=1;
5、den=[110];G=tf(num,den,'iodelay',2);Gd=c2d(G,1,'ZOH')num1=[0.622-0.8510.2290];den1=[1-0.6070-0.393];Dd=tf(num1,den1,1)sysopen=Gd*Dd;sysclose=feedback(sysopen,1);y=step(sysclose,t);plot(t,r,'b',t,y,'r');gridon;2、无振铃现象的仿真图:分析:无振铃系统稳态性能不变,但是动态性能变差,出现了超调。五、将控制器转化为差分方程,利用MA
6、TLAB的M-文件,绘制系统的输出响应曲线和控制器的输出序列。1、差分方程如下:未消除振铃现象:消除振铃现象后:2、matlab的M文件绘图程序如下:uk1=0;uk2=0;uk3=0;uk4=0;yk1=0;yk2=0;ek1=0;ek2=0;ts=1;fork=1:1:30time(k)=k*ts;r(k)=1;y(k)=1.368*yk1-0.368*yk2+0.368*uk3+0.264*uk4;e(k)=r(k)-y(k);u(k)=0.607*uk1+0.393*uk3+0.622*e(k)-0.851*ek1+0.22
7、9*ek2;uk4=uk3;uk3=uk2;uk2=uk1;uk1=u(k);yk2=yk1;yk1=y(k);ek2=ek1;ek1=e(k);endu1k1=0;u1k2=0;u1k3=0;u1k4=0;y1k1=0;y1k2=0;e1k1=0;e1k2=0;fork=1:1:30time(k)=k*ts;r1(k)=1;y1(k)=1.368*y1k1-0.368*y1k2+0.368*u1k3+0.264*u1k4;e1(k)=r1(k)-y1(k);u1(k)=1.068*e1(k)-1.461*e1k1+0.393*e1
8、k2-0.111*u1k1+0.436*u1k2+0.393*u1k3+0.282*u1k4;u1k4=u1k3;u1k3=u1k2;u1k2=u1k1;u1k1=u1(k);y1k2=y1k1;y1k1=y1(k);e1k2=e1k