目录1.课题简介1.1课程设计内容…………………………………………………………1.2课程设计要求…………………………………………………………2.方案设计2.1设计步骤……………………………………………………2.2控制系统总框图及系统工作原理…………………………3.硬件电路设计3.1被控对象设计………………………………………………3.2硬件电路连接图……………………………………………4.控制算法设计……………………………………5.软件编程设计5.1流程图………………………………………………………5.2程序设计……………………………………………………6.实验结果与分析…………………………………7.心得体会…………………………………………1课题简介(宋体4号加粗)11.1课程设计内容设计以89C51单片机、ADC、DAC等电路和运放电路组成的被控对象构成的单闭环反馈控制系统。1.硬件电路设计:89C51最小系统加上模入电路ADC0809和模出电路TLC7528;由运放构成的被控对象。矚慫润厲钐瘗睞枥庑赖。2.控制算法:最少拍控制。3.软件设计:主程序、定时中断程序、A/D转换程序、滤波程序、D/A输出程序、最少拍控制程序等。1.2课程设计要求1.模入电路能接受双极性电压输入(-5V~+5V),模出电路能输出双极性电压(-5V~+5V)。2.被控对象5()(0.81)Gsss3.设计无纹波最少拍控制器。被控对象有积分环节的按斜坡输入信号设计控制器,否则按阶跃输入信号设计控制器。聞創沟燴鐺險爱氇谴净。4.定时中断间隔可在10-50ms中选取,采样周期取采样中断间隔的整数倍,可取1000-2000ms,由实验结果确定。残骛楼諍锩瀨濟溆塹籟。5.滤波方法可选择平均值法,中值法等。2方案设计2.1设计步骤先进行硬件设计,根据Gz改造被控对象进行最少拍控制算法计算读范例程序,画出流程图,进行修改调试实验结果2.2控制系统总框图及系统工作原理误差E=R-C经运放运算得到,并由模数转换器采集。最少拍控制算法由软件程序和单片机实现。输出U经数模转换器和零阶保持器转换成模拟信号送至被控对象。被控对象由两只运放及阻容元件构成。酽锕极額閉镇桧猪訣锥。最少拍控制算法D(z)1Tses5(0.81)ssREC23硬件电路设计3.1被控对象5(0.81)ss由两只运放及阻容元件构成R1=100k,C1=2μf,R2=200k,R3=200k,C2=4μf3.2硬件电路原理图4控制算法设计34.111112.146(10.5785)()(1)(10.2865)zzGzzz被控对象含有一个积分环节,采用单位速度输入信号,q=2D=0,q=2,v=1,w=1,j=1m=w+d=1n=v-j+q=24.2112()(10.5785)(1.49920.8657)zzzz121()(1)(10.5)ezzz11110.466(10.2865)(1.49920.8657)()(1)(10.5)zzDzzz1212()0.5()0.5()0.466()0.6036(1)0.1156(2)UzzUzzUzEzzEzzEz()0.5(1)0.5(2)0.466()0.6036(1)0.1156(2)ukukukekekek45*****软件编程设计5.1流程图系统初始化变量初始化等待中断主程序D/A输出清零变量初始化采样周期变量赋初值同步信号到否?采样周期到否?采样周期变量减一中断返回求误差E(k)计算D(z)模拟延时处理输出控制量U(k)采样周期变量赋初值采样中断服务程序是是否5.2程序文件名:Dalin_2W.C功能描述:大林算法实验程序*****************************************/#includereg51.h#includeabsacc.h#includemath.h/*****************************************宏定义*****************************************/#defineucharunsignedchar#defineuintunsignedint#defineADC_7XBYTE[0x0600]//定义模数转换IO地址#defineDAC_1XBYTE[0x0640]//定义D/A第一路的IO地址/*****************************************全局变量定义5*****************************************/sbitstr=P1^7;//定义A/D启动信号sbitDIN0=P1^0;//声明同步信号sbitDOUT0=P1^4;//用于控制采保产生纯滞后一拍uintdatatime;//声明变量,用于定时uchardatat0_h,t0_l;//用于存储定时器0的初值intTK=100;//声明采样周期变量,//采样周期=TK*10msintTC;//TK的变量floatKK0=0.466;//系数kk0floatKK1=-0.6036;//系数kk1floatKK2=0.1152;//系数kk2floatKK3=0;//系数kk3floatPP1=0.5;//系数pp1floatPP2=0.5;//系数pp2floatPP3=0;//系数pp3floatG=1;//增益调整floatUK;//当前时刻的D/A输出intEK;//当前时刻的偏差intEK_1,EK_2,EK_3;//前3次采样时刻的控制量和偏差floatUK_1,UK_2,UK_3;/*****************************************主函数*****************************************/voidmain(void){TMOD=0x01;time=10;//定时10mst0_h=(65536-1000*time)/256;//计算定时器0初值t0_l=(65536-1000*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;DOUT0=1;EA=1;//开总中断6while(1);}/**********************************************函数名:INT1功能:1号外部中断服务程序参数:无*返回值:无************************************************/voidint1()interrupt2using2{floati,j,SUM;intK;charbb;DIN0=1;//读取输入前,先输出高电平if(DIN0)//判同步信号到否{UK=UK_1=UK_2=UK_3=0;EK=EK_1=EK_2=EK_3=0;DOUT0=1;DAC_1=0x80;//D/A输出零TC=1;SUM=0;K=6;}else{TC--;//判采样周期到否if(TC==0){if(K==0){EK=SUM/6;SUM=0;K=6;i=KK0*EK+KK1*EK_1+KK2*EK_2;//计算i=KK*0EK*+KK1*EK_1+EK_2*KK2彈贸摄尔霁毙攬砖卤庑。j=PP1*UK_1+PP2*UK_2+PP3*UK_3;//计算j=PP1*UK_1+PP2*UK_2+PP3*UK_3謀荞抟箧飆鐸怼类蒋薔。UK=G*i+j;if(UK0)//判控制量是否溢出,溢出赋极值{if(UK127)7bb=127;elsebb=(char)UK;}else{if(UK-128)bb=-128;elsebb=(char)UK;}DAC_1=bb+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;//采样周期变量恢复}else{DOUT0=1;DOUT0=1;DOUT0=0;EK=ADC_7-128;//采样当前的偏差值,并计算偏差的变化量SUM=SUM+EK;K--;TC++;}}}}/**********************************************函数名:Timer0功能:定时器0中断服务程序参数:无返回值:无***********************************************/voidTimer0()interrupt1using1{TH0=t0_h;//重新装入初值8TL0=t0_l;str=0;str=1;//产生A/D启动信号}6实验结果与分析6.1示波器图形6.2***********97小结与体会课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。厦礴恳蹒骈時盡继價骚。说实话,课程设计真的有点累.然而,当我一着手清理自己的设计成果,漫漫回味这10天的心路历程,一种少有的成功喜悦即刻使倦意顿消.虽然这是我刚学会走完的第一步,也是人生的一点小小的胜利,然而它令我感到自己成熟的许多,另我有了一中”春眠不知晓”的感悟.通过课程设计,使我深深体会到,干任何事都必须耐心,细致.课程设计过程中,许多计算有时不免令我感到有些心烦意乱:有2次因为不小心我计算出错,只能毫不情意地重来.但一想起老师平时对我们耐心的教导,想到今后自己应当承担的社会责任,想到世界上因为某些细小失误而出现的令世人无比震惊的事故,我不禁时刻提示自己,一定要养成一种高度负责,认真对待的良好习惯。硬件设计原理图需用Protel软件画图,因为长时间没有使用,发现自己对软件的应用很生疏,这次的课程设计使我又重新掌握了软件的使用,同时了解到不管曾经自己对一门手艺有多驾熟就轻,随着时间的流逝总会生疏,所以若以后要从事有关专业方面的工作,这些专业相关软件还是要经常练练的。茕桢广鳓鯡选块网羈泪。这次课程设计使我在工作作风上得到了一次难得的磨练.短短10天的课程设计,使我发现了自己所掌握的知识是真正如此的缺乏,自己综合应用所学的专业知识能力是如此的不足,几年来的学习了那么多的课程,今天才知道自己并不会用.想到这里,我真的心急了,老师却对我说,这说明课程设计确实使你有收获了.老师的亲切鼓励了我的信心,使我更加自信。鹅娅尽損鹌惨歷茏鴛賴。最后,我要感谢我的搭档,感谢她在失败中对我的鼓励,让我懂得了分工合作的重要性。10参考文献(列出你所利用的参考文献。格式参见下。)[1]于海生主编,微型计算机控制技术,北京:清华大学出版社,1999[2]张艳兵等编著,计算机控制技术,北京:国防工业出版社,2008[3]张毅刚主编,单片机原理及应用,北京:高等教育出版社,2004[4]陈涛编著,单片机应用及C51程序设计,北京:机械工业出版社,2008[5]楼然苗,李光飞编著,单片机课程设计指导,北京:北京航空航天大学出版社,2007[7]控制、电子技术类杂志、报刊