《计算机控制》课程设计报告-无波纹最小拍控制设计.doc_第1页
《计算机控制》课程设计报告-无波纹最小拍控制设计.doc_第2页
《计算机控制》课程设计报告-无波纹最小拍控制设计.doc_第3页
《计算机控制》课程设计报告-无波纹最小拍控制设计.doc_第4页
《计算机控制》课程设计报告-无波纹最小拍控制设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机控制课程设计报告姓名: 学号: 2011年7月2日1 设计任务与理论基础1.1设计任务无波纹最小拍控制设计采用零阶保持器的单位反馈离散系统,被控对象为,要求系统在单位斜坡输入时,实现无波纹最小拍控制,用离散设计法设计数字控制器。1.2 离散化设计方法图1-1计算机控制系统框图gc(s) 被控对象的连续传递函数,d(z) 数字控制器的z传递函数,h(s) 零阶保持器的传递函数,t 采样周期。广义对象g (s)的z传递函数为: 则闭环z传递函数为:若已知gc(s) ,且可根据控制系统的性能指标要求构造(z),则根据 和得数字控制器得离散化设计步骤:1)求广义对象的z传递函数g(z);2)根据控制系统的性能指标和其他约束条件,确定所需的闭环z传递函数(z); 3)求数字控制器的z传递函数 d(z);4)根据d(z)求取控制算法的递推公式,设d(z)的一般形式:得d(z)的计算机控制算法2 控制器的设计与仿真2.1无波纹最小拍控制器的设计2.1.1 z传递函数g(z)按照离散化设计的步骤,先求得连同零阶保持器的广义对象脉冲传递函数为:其在matlab环境下的描述语句如下:g=zpk(,0 -1,10);%传递函数hg=c2d(g,1,zoh); %带zoh的离散化,采样周期为1s程序运行结果如下:zero/pole/gain: zero/pole/gain: 103.6788 (z+0.7183)-s (s+1)(z-1) (z-0.3679)与手算结果一致。2.1.2闭环z传递函数(z)闭环脉冲传递函数为:误差脉冲传递函数为:其在matlab环境下的描述语句如下:z=tf(1 0,1,1);phil=(1+0.593/z)*(1-1/z)2; %e(z)phi=1.407*(1+0.718/z)*(1-0.586/z)/z; %(z)程序运行结果如下:transfer function: transfer function:z3 - 1.407 z2 - 0.186 z + 0.593 1.407 z2 + 0.1857 z - 0.592- - z3 z3与手算结果一致。2.1.3 z传递函数 d(z)d=phi/(hg*phil); %控制器d(z)sys0=feedback(hg,1); %未加控制器时的闭环传函sys=feedback(hg*d,1); %加控制器后的闭环传函程序运行如下:zero/pole/gain:0.38246 z3 (z+0.718) (z-0.586) (z-0.3679) (z-1)- z3 (z+0.7183) (z+0.593) (z-1)2 sampling time: 1与手算结果一致。2.1.4 数字控制器的差分方程形式根据输出函数可得差分方程形式2.2 simulink仿真在simulink环境下建立控制模型如图2-6所示:图2-1输入为单位速度输入,运行后,双击虚拟示波器查看输出相应性能曲线如下所示:1.离散化后斜坡输入图2-22.e(k)波形图 图2-33.u(k)波形图图2-44.离散化后输出图2-55.未离散化后输出 图2-6 由仿真图可知控制器输出在3拍后达到恒定,同时系统输出不产生波纹经matlab下的分析设计与simulink下的模型仿真,我们认为当前设计完全符合最小拍无波纹系统的要求。下面将具体讨论硬件电路的设计与程序算法。3 电路设计3.1 器件选择由于本设计对单片机的要求不高,因此控制器选择传统的8051单片机即可满足要求,同时由于系统精度要求不高,可选用8位ad与da。模数转换芯片采用adc0809,数模转换芯片采用dac0832。由于系统采用总线结构,需要锁存器74hc373。adc0809的时钟可由ale二分频得到,需要d触发器74ls74, 由于adc0809的时钟所限,单片机晶振可选择为6mhz。考虑到dac0832为电流型dac,故需要运放转换电路,选择运算放大器为lm324。3.2 电路设计3.2.1 总电路图控制器电路原理图如下图所示:图3-13.2.2 8051外围电路由于本课程设计对单片机的性能不高,因此8051单片机完全可以满足此要求,同时51单片机也有着低廉的价格,不错的性能等诸多优点8051的最小系统电路如下图所示图3-23.2.3adc0809模块 这里采用adc0809芯片,此芯片时8位逐次逼近型a/d转换器,带8个模拟量输入通道,芯片内带通道地址译码器,输出带三态数据锁存器启动信号为脉冲启动方式,每一通道转换大约100s。adc0809与单片机连接方式如下所示:图3-33.2.4 dac0832模块外围电路 dac0832带有数据输入寄存器,是总线兼容型,可直接与总线相连。本电路中da与单片机之间采用单缓冲接法,输出采用双极性输出。dac082的外围电路如下图所示: 图3-44流程图与程序4.1 流程图算法流程图如图4-1所示:图4-1采样周期设定为1s,系统初始化后,由定时器计时,系统不断查询,若采样周期到,则启动ad采样,并根据前面计算所得公式计算d(z),最后输出控制量u(k)经dac转换后输出。4.2 源程序代码采用c语言编程,编译环境为wave6000。现附含详细注释的源代码如下:/*程序名称:无波纹最小拍控制器*/#include #include #include /*宏定义*/#define uchar unsigned char#define uint unsigned int#define adc_7 xbyte0x7ff0 /定义模数转换io地址#define dac_1 xbyte0x7ff2 /定义d/a第一路的io地/*全局变量定义*/sbit str = p17; /定义a/d启动信号sbit din0 = p10; /声明同步信号uint data time; /声明变量,用于定时uchar data t0_h,t0_l; /用于存储定时器0的初值int tk=100; /声明采样周期变量,/采样周期tk*10msint tc; /tk的变量float kk0=0.382 /系数kk0float kk1=-0.364 /系数kk1float kk2=0.082; /系数kk2float kk3=0; /系数kk3float pp1=-0.407; /系数pp1float pp2=-0.593; /系数pp2float pp3=0; /系数pp3char uk; /当前时刻的d/a输出char ek; /当前时刻的偏差char uk_1,uk_2,uk_3,ek_1,ek_2,ek_3;/前3次采样时刻的控制量和偏差/*主函数*/void main(void) tmod = 0x01;time = 10; /定时10mst0_h = (65536-500*time)/256; /计算定时器0初值t0_l = (65536-500*time)%256;t0_l = t0_l+20; /修正因初值重装而引起的定时误差th0 = t0_h;tl0 = t0_l;it1 = 1; /边沿触发中断ex1 = 1; /开外部中断1et0 = 1; /开定时中断0tr0 = 1; /启动定时器tc = 1;dac_1= 0x80; /d/a清零uk=uk_1=uk_2=uk_3=0; ek=ek_1=ek_2=ek_3=0;ea = 1; /开总中断while(1);/*函数名:int1功能 :1号外部中断服务程序 参数 :无* 返回值:无 * */void int1() interrupt 2 using 2 float i,j;din0 = 1; /读取输入前,先输出高电平if(din0) /判同步信号到否 uk=uk_1=uk_2=uk_3=0; ek=ek_1=ek_2=ek_3=0; dac_1 =0x80; /d/a输出零 tc=1;else tc-; /判采样周期到否 if(tc=0) ek = adc_7-128; /采样当前的偏差值,并计算偏差的变化量 i=ek*kk0; /计算i=ek*kk0+ek_1*kk1+ek_2*kk2+ek_3*kk3) i=i+ek_1*kk1; i=i+ek_2*kk2; i=i+ek_3*kk3; j=uk_1*pp1; /计算j=uk_1*pp1+uk_2*pp2+uk_3*pp3 j=j+uk_2*pp2; j=j+uk_3*pp3; i=i-j; /i-j if(i0) /判控制量是否溢出,溢出赋极值 if(i=127) uk=127; else uk=(char)i; else if(i-128) uk=-128; else uk=(char)i; dac_1=uk+128; /d/a输出控制量 uk_3=uk_2; /控制量递推 uk_2=uk_1; uk_1=uk; ek_3=ek_2; /偏差递退 ek_2=ek_1; ek_1=ek; tc=tk; /采样周期变量恢复 /*函数名:timer0功能 :定时器0中断服务程序参数 :无 返回值:无 */void timer0() interrupt 1 using 1str = !str; /产生a/d启动信号th0 = t0_h; /重新装入初值tl0 = t0_l;5 工作总结与体会经过两天多的设计,计算机控制课程设计即将结束。通过这几天的学习,我们小组确实掌握了许多。不同于以往的课程设计,计算机控制课设的包含面相当的广泛,不仅包括对上课时的理论基础的回顾还有对数学工具matlab的学习掌握及单片机的使用。单片机这块还包含程序编程与原理图设计,这使得课程设计的包含面非常广泛,是一次对前面所学习科目的综合设计。正因为所涉及项目颇多,起初我们小组毫无头绪,不过得益于校图书馆海量的图书文献与网上中文数据库的帮助,我们迅速理清了思路,合理分工,最终完成了这次课程设计。最后,谈谈个人体会。这次的课程设计与以前的个人单打独斗式的课设不同,是团队合作模式。最后设计的顺利成型也得归功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论