《计算机控制》课程设计报告无波纹最小拍控制设计.doc

上传人:文库蛋蛋多 文档编号:2956127 上传时间:2023-03-05 格式:DOC 页数:17 大小:554KB
返回 下载 相关 举报
《计算机控制》课程设计报告无波纹最小拍控制设计.doc_第1页
第1页 / 共17页
《计算机控制》课程设计报告无波纹最小拍控制设计.doc_第2页
第2页 / 共17页
《计算机控制》课程设计报告无波纹最小拍控制设计.doc_第3页
第3页 / 共17页
《计算机控制》课程设计报告无波纹最小拍控制设计.doc_第4页
第4页 / 共17页
《计算机控制》课程设计报告无波纹最小拍控制设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《《计算机控制》课程设计报告无波纹最小拍控制设计.doc》由会员分享,可在线阅读,更多相关《《计算机控制》课程设计报告无波纹最小拍控制设计.doc(17页珍藏版)》请在三一办公上搜索。

1、计算机控制课程设计报告题目: 无波纹最小拍控制设计 计算机控制课程设计任务书专 业电气工程及其自动化班 级0802301学 生 指导教师 题 目无波纹最小拍控制设计设计时间2010年 6月 25 日 至 2010 年7 月 2 日 共 1 周设计要求设计任务:无波纹最小拍控制设计采用零阶保持器的单位反馈离散系统,被控对象为,要求系统在单位斜坡输入时,实现无波纹最小拍控制,用离散设计法设计数字控制器。方案设计:1. 采用Matlab完成控制系统的建立、分析、设计和模拟仿真;2. 选择元器件,完成电路设计,控制器采用MCS-51系列单片机(传感器、功率接口以及人机接口等可以暂不涉及),使用Prot

2、el绘制原理图;3. 控制算法采用单片机汇编语言编程实现(应通过编译,无语法错误)。报告内容:1. 控制系统仿真和设计步骤,应包含Matlab仿真的性能曲线、采样周期T的选择、数字控制器脉冲传递函数和差分方程形式;2. 元器件选型过程,电路设计过程,绘制的Protel原理图;3. 算法流程图,含有详细注释的源程序;4. 设计工作总结及心得体会;5. 列出所查阅的参考资料。指导教师签字: 系(教研室)主任签字:2010年 7 月 5 日目 录计算机控制课程设计任务书21 设计任务与理论基础41.1设计任务41.2 离散化设计方法42 控制器的设计与仿真52.1无波纹最小拍控制器的设计52.1.1

3、 Z传递函数G(z)52.1.2闭环Z传递函数(z)52.1.3 Z传递函数 D(z)62.1.4 数字控制器的差分方程形式62.2 Simulink仿真73 电路设计93.1 器件选择93.2 电路设计103.2.1 总电路图103.2.2 8051外围电路103.2.3ADC0809模块113.2.4 DAC0832模块外围电路124流程图与程序124.1 流程图124.2 源程序代码135 工作总结与体会16附:参考文献171 设计任务与理论基础1.1设计任务无波纹最小拍控制设计采用零阶保持器的单位反馈离散系统,被控对象为,要求系统在单位斜坡输入时,实现无波纹最小拍控制,用离散设计法设计

4、数字控制器。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.

5、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

6、=(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); %加控制器后的闭环传函程序

7、运行如下: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.未离散化后输出 图

8、2-6 由仿真图可知控制器输出在3拍后达到恒定,同时系统输出不产生波纹经MATLAB下的分析设计与SIMULINK下的模型仿真,我们认为当前设计完全符合最小拍无波纹系统的要求。下面将具体讨论硬件电路的设计与程序算法。3 电路设计3.1 器件选择由于本设计对单片机的要求不高,因此控制器选择传统的8051单片机即可满足要求,同时由于系统精度要求不高,可选用8位AD与DA。模数转换芯片采用ADC0809,数模转换芯片采用DAC0832。由于系统采用总线结构,需要锁存器74HC373。ADC0809的时钟可由ALE二分频得到,需要D触发器74LS74, 由于ADC0809的时钟所限,单片机晶振可选择为

9、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与单片机连接方式如

10、下所示:图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

11、 #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; /声明采样周期变量,/采样周

12、期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;ti

13、me = 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功能

14、 :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+E

15、K_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; /偏差递退 E

16、K_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的学习掌握及单片机的使用。单片机这块还包含程序编程与原理图

17、设计,这使得课程设计的包含面非常广泛,是一次对前面所学习科目的综合设计。正因为所涉及项目颇多,起初我们小组毫无头绪,不过得益于校图书馆海量的图书文献与网上中文数据库的帮助,我们迅速理清了思路,合理分工,最终完成了这次课程设计。最后,谈谈个人体会。这次的课程设计与以前的个人单打独斗式的课设不同,是团队合作模式。最后设计的顺利成型也得归功于合理的分工和有效的团队领导。这也是本次课程设计我本人最大的收获,这对这之后的PLC课程设计与未来的工作能有很大的帮助。附:参考文献【1】郭天祥主编.51单片机C语言教程 电子工业出版社,2009.1【2】魏立峰 王宝兴编著.单片机原理与应用技术北京大学出版社,2006.8【3】林飞 杜欣编著.电力电子应用技术的MATLAB仿真中国电力出版社,2008【4】及力主编.电子CAD-基于Protel99SE北京邮电大学出版社,2008

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

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号