《计算机控制技术》课程设计单闭环直流电机调速系统1设计目的计算机控制技术课程是集微机原理、计算机技术、控制理论、电子电路、自动控制系统、工业控制过程等课程基础知识一体的应用性课程,具有很强的实践性,通过这次课程设计进一步加深对计算机控制技术课程的理解,掌握计算机控制系统硬件和软件的设计思路,以及对相关课程理论知识的理解和融会贯通,提高运用已有的专业理论知识分析实际应用问题的能力和解决实际问题的技能,培养独立自主、综合分析与创新性应用的能力。2设计任务2.1设计题目单闭环直流电机调速系统实现一个单闭环直流电机调压调速控制,用键盘实现对直流电机的起/停、正/反转控制,速度调节要求既可用键盘数字量设定也可用电位器连续调节,需要有速度显示电路。扩展要求能够利用串口通信方式在PC上设置和显示速度曲线并且进行数据保存和查看。2.2设计要求2.2.1基本设计要求(1)根据系统控制要求设计控制整体方案;包括微处理芯片选用,系统构成框图,确定参数测范围等;(2)选用参数检测元件及变送器;系统硬件电路设计,包括输入接口电路、逻辑电路、操作键盘、输出电路、显示电路;(3)建立数学模型,确定控制算法;(4)设计功率驱动电路;(5)制作电路板,搭建系统,调试。2.2.2扩展设计要求(1)在已能正常运行的微计算机控制系统的基础上,通过串口与PC连接;(2)编写人机界面控制和显示程序;编写微机通信程序;实现人机实时交互。3方案比较方案一:采用继电器对电动机的开或关进行控制。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案二:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。方案三:采用由电力电子器件组成的H型PWM电路。用单片机控制电力电子器件使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在电力电子器件的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。兼于方案三调速特性优良、调整平滑、调整范围广、过载能力大,因此本设计采用方案三。4单闭环直流电机调速系统设计4.1单闭环调速原理4.1.1闭环系统框图4.1.2调速原理直流电机转速有:常数KeKa不变,Ra比较小。所以调节Ua就能调节n。nnIKRKUKRIUnddaeed0aaaUIU4.2系统框图4.3系统基本原理通过键盘按键控制电机的启停、正反转、加速和减速,单片机接收键盘信号与反馈信号进行比较处理,也可以通过电位器调速,将模拟调节量转换为数字量后送给单片机处理,电机的速度由传感器测量后回馈给单片机处理,单片机接收到各路信号后控制显示器显示特定的内容,同时控制电机驱动电路工作,从而控制直流电机的转速。5系统硬件电路设计5.1电机驱动电路电机驱动电路主要有L298N和四个二极管组成,其中PWM驱动原理如下i.Ud是有效值,调节占空比就能调节Ud进而调节n.ii.PWM驱动器由L298来实现的,L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。3iii.如图4,L298的封装和功能表。通过改变C、D的状态来改变电机的正反转和急停和调节占空比进而调速;Ven直接接高电位。是对C、D分别输出0和PWM波或者PWM波和0来进行的,初始化的占空比为50%。5.2测速电路测速电路用自制的光电编码盘,通过红外接收发射管和施密特触发器组成。当接收管接收到发射管发出的低电平信号,再通过施密特整形送给单片机的INT0,进而通过程序进行计算速度。图5测速整形电路5.3显示电路LCD1602显示电路用于显示转速设定值与当前值。5.4键盘0-9按键为数值的设定,CLR为后退按键,ENT为确定键,KEY为键盘输入按键,REP为电位器调速按键,RUN为运行/正转按键,F为运行/反转按键,STOP为停止按键。图6LCD显示电路图7键盘控制电路5.5模拟调速电路模拟调速电路由电位器分压输出给定电压,再经过AD转换器ADC0831输入的单片机中。5.6电源电路56V/0.5A的外部输入电压Vin经过由MC7805ACK与两个由470Pf、一个100uf的电解电容组成的稳压电路,稳压成5V的电压,供系统使用。图8模拟调速电路图9电源电路5.7串口通信电路主要用来烧写程序进去单片机。MAX232将ttl电平转换成可以和电脑串口匹配的电压。从而与PC机进行通信。6图10串口通信电路图11STC-ISP上图位stc单片机专用ISp下载软件。5.8晶振和复位电路左边为复位电路、右边为12M的晶振电路,这两块与单片机组成最小系统。76软件设计如图12,主程序是先初始化LCD1602和中断,然后进入转速设定和调节循环。其中INT0中断是用来测试辅助的,TO和T1配合参数PWM波和调节占空比(其中PWM为一个8位二进制数0-255),转速的反馈调节主要是进行优化的P调节。如题13和图14,是T0和T1的中断服务程序,TO设定256us的循环和初始化T1,然后对电机进行正转、反转、停机(急停)三个判断;T1中断服务程序只负责关闭T1中断。如图14,外部中断INT0处理调理好的测试脉冲,中断服务程序对每一个测速脉冲对变量n进行加+,返回到主函数的测速程序。PWM的优化型P控制算法,对转速比较尽兴分级调节,当实际值无设定值相差超过1000rpm时PWM调整15,相差超过500rpm时调整10,相差超过300时图12晶振和复位电路调整6,相差超过100时调整2,相差小于100时调整1。89图12主程序程序框图107电路与程序仿真和软件调试7.1Proteus仿真电路可以导入HXE文件,对编写好的程序和电路图进行仿真。117.2Keil程序编写与编译。128硬件焊接与调试8.1焊接与高度单片机最小系统的焊接,成功后进行下一步。串口通信电路焊接,焊完进行串行通信,通过与PC机进行通信、刷写程序进入单片机,成功进行下一步。键盘电路与LCD1062显示电路焊接,程序已经写进单片机里面,可以进行参数设置来检查按键与显示是否正常,成功进行下一步。模拟调速电路焊接,焊完进行模拟调速设置,从显示器能观察是否正常。电机驱动电路焊接,焊完进行调试,发现电机接上之后系统不稳定,经分析发现是电源功率不足,电源是一个6V0.5A的小型电源,正好驱动芯片L298的电源电路分开供电,用另外的电源给电机供电,改装完后系统正常,进行下一步。测速电路焊接,连接到单片机后一切正常。整体焊接完成后对软件进行实物调试,通过不断的运行测试和重新刷写程序,主要克服的问题有:调速反应迟钝、速度显示精度、PWM调试算法。成品系统。138.2系统参数与实验数据系统的调试参数:转速测量误差范围:+—30rpm所使用电机PWM调压范围:0—7.5V所使用电机PWM稳定调速范围:正转时390—2460rpm反转时390—2700rpm调试结果表格设定转速420610100012001600180020002400实际转速42060099012001580180020102400偏差值010100-200100上述调试结果表明:实际转速跟设定转速的差值不超过30rpm,效果较好,符合设计要求。149结论在此次课程设计中,设计了PWM单闭环调速系统,它由STC89C52RC单片机的I/O口输出PWM信号,直接用TTL电平控制驱动芯片L298实现对电动机进行调速,这样能够充分发挥单片机的效能,对于简易速度控制系统的实现提供了一种有效的途径。软件方面,它采用计数法加软件延时法进行设计的思路,为采用纯软件对电机速度的平滑调节提供了一种不错的解决方案。运行实验表明,系统硬件接口电路简单,工作稳定可靠,满足了调速的功能要求,有很好的可操作性和维护性,具有较大的理论及实用价值。10心得体会通过这次课程设计,我们在收获知识的同时,还收获了阅历,收获了成熟。在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在课程设计上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契。我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。课程设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆!11致谢感谢我们的指导老师,不管在选题阶段,还是在设计阶段,在制作阶段,正是她给予我不断的指导与鼓励,我们才能顺利地完成我的课程设计,她那种对待学生和蔼亲切,对待工作一丝不苟的品质和精神值得我们每一个人学习。借此,向我们的指导老师毕老师表示衷心的感谢。在此我要感谢我的同学们,在电路设计、程序编写和焊接过程遇到困难时,正是由于同学们的指导我们才能顺利地完成本次课程设计。1516附录(一)小组分工情况表17附录二总电路图18附录(三)元器件清单序号名称型号、规格数量1单片机芯片STC12C5A08S212插座DIP4013电解电容10uf54排针2排58位数据线26MAX23217插座DIP1638串口1对9LCDLCD1602110插孔(排孔)2排11电位器10k112功率电阻10欧0.5w113触电按键1814上拉电阻10k1015排阻8位10k216电位器20k117AD芯片ADC0831118插座DIP8119DC电机RS-365(10w左右)120PWML298121施密特触发器74LS14122插座DIP14223红外对管2套24二极管1N4007425电解电容1uf526瓷片电容100n1027瓷片电容0.1u528瓷片电容30p529万用版2302位电源插孔及插线231连接用线1捆32发光二极管1033互锁开关3附录(四)控制程序#includereg52.h#includeintrins.h#defineLCM_DataP0//数据接口#defineucharunsignedchar#defineuintunsignedintucharcodeuctech[]={SSpeed=};ucharcodenet[]={RSpeed=};ucharcodeData[]={'0','1','2','3','4','5','6','7','8','9'};ucharidataplus[8]={0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03};ucharSSpeed[4]={0,0,0,0};ucharRSpeed[4]={0,0,0,0};uchark;FLAG;ucharPWM=0x7f;//赋初值uintn=0;num=0;//T0中断次数和INT0中断次数uintspeed;//实际转速uintSetSpeed;//数字和模拟速度设定值20sbitD=P2^0;sbitA=P2^1;sbitRun=P2^2;sbitFan=P2^3;sbitStop=P2^4;sbitLCM_E=P2^5;//定义接口sbitLCM_RW=P2^6;sbitLCM_RS=P2^7;sbitIN1=P3^4;/