1、 计算机控制技术课 程 设 计学生姓名: 学 号: 专业班级: 电气工程及其自动化(1)班 指导教师: 二一二 年 十 月 二十九 日2目 录1.课程设计目的 32.课程设计题目和要求 33.设计内容 34.设计总结 .104.参考书目 .115.附录31.课程设计目的通过本课程设计, 主要训练和培养学生的以下能力:(1).查阅资料:搜集与本设计有关部门的资料(包括从已发表的文献中和从生产现场中搜集)的能力;(2).方案的选择:树立既考虑技术上的先进性与可行性,又考虑经济上的合理性,并注意提高分析和解决实际问题的能力;(3).迅速准确的进行工程计算的能力,计算机应用能力;(4).用简洁的文字,
2、清晰的图表来表达自己设计思想的能力。2.课程设计题目和要求题目:PWM 温度自动控制系统的设计 要求:1.要求设计温度控制系统,设定温度为 230 度,采用电阻丝作为加热器件,要求无余差,超调小,加热速度快。2.硬件采用 51 系列单片机,采用固态继电器作为控制元件。3 采用 keil c 作为编程语言,采用结构化的设计方法。4.要求用 protel 设计出硬件电路图。5 画出系统控制框图。6 画出软件流程图。3.设计内容3.1 PID 控制原理将偏差的比例,积分和微分通过线性组合构成控制量,用这一控制对被控对象进行控制,这一样的控制器称 PID 控制器43.1.1模拟 PID 控制原理在模拟
3、控制系统中,控制器最常用的控制规律是 PID 控制。为了说明控制器的原理,以图 1.1 的例子说明。给定输入信号 n0(t)与实际输出信号 n(t)进行比较,其差值 e(t)=n0(t)-n(t),经过 PID 控制器调整输出控制信号 u(t),u(t)对目标进行作用,使其按照期望运行。常规的模拟 PID 控制系统原理框图如同 1.2 所示。该系统有模拟 PID 和被控对象组成。图中 r(t)是给定的期望值,y(t)是系统的实际输出值,给定值与实际输出值,给定值与实际值构成控制偏差 e(t):e(t)作为 PID 控制的输入,u(t)作为 PID 控制的输出和被控对象的输入。构成PID 和被控
4、对象的输入。构成 PID 控制的规律为:其中:Kp 为控制器的比例系数Ti 为控制器的积分时间,也称积分系数Td 为控制器的未分时间,也称微分系数53.1.2 带死区 PID 的算法带死区的 PID 控制作用:消除由于频繁动作所引起的振荡计算机中带死区的 PID:3.2 系统控制框图程序模块 )( )()( )1()()( 00kyrke-p ukpTjpKudkjip63.3 程序模块1、主程序2、AD 转换程序3、pid 计算程序4、延时程序5、定时器中断服务程序3.4 Protel 硬件电路图7采样 AD 转换反馈值刷新输出值计算刷新输出值定时器初值更新扫描给定值刷新给定值35 软件设计
5、3.5.1 设计流程图:主要程序流程说明:主程序首先进行初始化,包括 pid 参数设定,定时器设置,中断设置及赋初值。然后循环做四件事:通过 AD 转换对反馈值采样,根据设定值减反馈值计算偏差进而计算输出值,根据输出值算出定时器初值,扫描给定按键刷新给定值。通过不断循环改变定时器初值以改变占空比,实现 PWM 控制。3.5.2 程序#include sbit A=P20;/模拟通道选择位sbit BB=P21;sbit C=P22;sbit ST=P24; sbit EOC=P25; 8sbit OE=P26; sbit P27=P27;/PWM 脉冲输出sbit P10=P10; sbit
6、P17=P17; void ad();/模数转换void pid();/pid 计算int a=0,b=0,out=0;double p=0.4,i=0.1,d=0;/系数设定double s=0,e0=0,elast=0,in=200;void delay(long i)/延时int j=255;while(i-)for(;j0;j-);main()A=BB=C=0; OE=1; TMOD=0x11; TH0=0xD8; TL0=0xF0;EA=1 ET0=1;ET1=1; TR0=1; while(1)ad();/模数转换9pid();a=(65535-out*39)/0x100;b=(6
7、5535-out*39)%0x100;/T1 低 8 位if(P10=0) in+;delay(100);if(P17=0) in-;delay(100); /模数转换void ad()ST=0;ST=1;ST=0;/启动转换while(EOC=0); /等待转换结束/pid 计算void pid()e0=in-P0;/偏差值out=p*(e0+i*s+d*(e0-elast);/由公式计算输出值s=s+e0;/累计偏差elast=e0; void int0() interrupt 1 using 0/定时器 0 服务子程序 (interrupt 1 定时器 0) TH0=0xD8;TL0=0
8、xF0;/定时器 0 初值10P27=1;/输出高电平TR1=1;/开定时器 1TH1=a;/定时器 1 初值TL1=b;void int3() interrupt 3 using 0/定时器 1 服务子程序TR1=0;/关定时器 1P27=0;/输出低电平4.设计总结经过一周的课程设计,使我深刻的感受到所学知识的综合使用,像 PID 的运用,单片机的运用,C 语言编程,protel 画原理图,检测与转换技术的传感器等,一开始设计时还真有点迷茫,只能重新翻开以前的书本,才一点一点的理解过来,有了思路。而且以前不是特别明白或根本就不懂的地方,通过重新学习和实践弄懂了不少,对它们的原理有了更深的认
9、识。也使我感受到了理论与实践相结合的重要性,不但使我对所掌握的知识有了更深刻的认识,还提高了我独立思考能力。遇到不懂的地方要的动手查阅资料或问同学、老师。这次设计为以后的学习、生活打下良好的基础,同时也暴露了自己的一些不足之处,基础知识不够扎实,不太懂得知识的综合利用,在以后的时间里要多加注重,以提高自己综合能力。115 参考书目1 于海生.计算机控制技术.北京:机械工业出版社,2007.52 李群芳.单片机原理、接口及应用(第二版) .北京:清华大学出版社,2010.93叶东毅.C 语言程序设计教程.厦门:厦门大学出版社.2009.54徐兵.过程控制.北京:机械工业出版社.2004.85 王春鸣,陈刚,张素贞. 专家 PID 控制器. 石油化工自动化,2002, (5):25-27附录 :硬件电路原理图