ImageVerifierCode 换一换
格式:DOCX , 页数:51 ,大小:759.48KB ,
资源ID:27835691      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27835691.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(直流电机PID控制.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

直流电机PID控制.docx

1、直流电机PID控制1.设计题目 12.设计内容 13.方案总体设计与论证 14.硬件电路设计 24.1最小系统设计 24.2传感器模块 24.3负载模块 34.4键盘模块 44.5显示模块 45.软件设计 55.1主函数部分 55.2中断部分 65.3显示刷新部分 65.4按键扫描部分 75.5按键功能实现部分 85.6更新输出控制信号部分 95.7PID 控制部分 105.8LCD显示部分 115.9延时部分 116.系统调试 127.结 束 语 128 .参考文献 12附录一 系统硬件原理图 13附录二 源程序代码 14摘要本文章介绍了由51单片机以及直流电机、三极管驱动电路、矩阵键盘、

2、LCD和红外传感器构成的转速闭环控制系统。其中红外传感器负责对电机转速进行测量,并将测量 的结果反馈给控制中心,并由控制中心将之与设定值进行比较得到偏差,再由偏差产生 直接控制作用去消除偏差。文章不但介绍了基于单片机的转速控制系统的软件设计,还 涉及了硬件设计方法。文中介绍系统不但可以实现手动控制,还有无人值守,自动调速 功能。关键词直流电机闭环控制单片机矩阵键盘 LCD课程设计任务书设计题目:基于单片机的转速控制系统设计学生姓名课程名称智能义器义表设计与调试专业班级测控地 点实验楼I512起止时间2010.6.21 至 2010.7.2设 计 内 容 及 要 求要求设计的转速控制系统完成以下

3、功能:1.基本功能1按键设定并显示转速,实时显示实际转速2按键控制电机起停、正反转3PWM转速闭环控制。2.扩展功能实现与PC机的通讯:将转速的设定值和实测值发送到 PC机显示,PC机可以设定速度,发送到单片机设 计 参 数1.转速调节范围:1500转/分-3000转/分2.测速误差10%进 度 要 求1.布置任务、方案设计,硬件设计(1天)2.画电路图(1天)3.软件设计,画流程图(1天)4.程序设计和调试(6天)5.设计验收、撰写报告(1天) 详见进度安排表参 考 资 料1.程德福智能义器.机械工业出版社.2009.92.胡文金.单片机系统实训教程.重庆:重庆大学出版社,20053. 林金

4、阳.基于MC51单片机的直流电机PWM调速系统.长春工程学院学报(自然科学 版)2009年第10卷第3期苴丿、它说明1 .本表应在母次头施前一周由负责教师填与一份,院系审批后交院系办备案,一份 由负责教师留用。2 .若填写内容较多可另纸附后。 3. 一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。指导教师:教研室主任:基于单片机的转速控制系统设计1设计题目基于单片机的转速控制系统设计2设计内容设计的转速控制系统完成以下功能:a) 基本功能1按键设定并显示转速,实时显示实际转速2按键控制电机起停、正反转3PWM转速闭环控制。b) 扩展功能实现与PC机的通讯:将转速的设定值和实测值发送

5、到 PC机显示,PC机可以设 定速度,发送到单片机3方案总体设计与论证图1是基于单片机的转速控制系统的基本组成方框。 主要由测速传感器(红外对管), 电机及驱动电路,矩阵键盘,LCD( 12864),单片机(80C51)组成。测速传感器是把电 机转速转换成相应的脉冲量的器件,并将该脉冲送给单片机计数。测速传感器输出脉冲 的频率随电机转速的快慢变化而变化。单片机 8051是该系统的核心部分,一方面负责计算电机的转速,另一方面将计算得到的转速与设定转速相比较,经过计算处理,得到 相应的控制信号(PWM),并用该信号控制电机转速。通过键盘可以设定手动工作模式 (通过操作人员修改输出方波占空比实现)或

6、者自动工作模式(由操作人员输入设定转 速,单片机自动控制电机转速,使其接近设定值),输入输出方波占空比以及设定转速。 由单片机检测哪一个按键按下,实现占空比或者设定值的修改,并通过LCD实时显示设 定值以及测得转速。由上图可知系统硬件基本上由传感器模块,负载模块,键盘模块,显示模块组成。 而软件设计是紧紧围绕系统的硬件结构展开的,软件主要是配合控制硬件完成预期的设 计要求,软件的基本模块也是针对上述硬件结构进行相应操作的。下面具体阐述系统各 功能模块的设计。4硬件电路设计4.1最小系统设计本次设计中的最小系统模块中包括 CPU复位电路和晶振,其最小系统原理图如图4.1所示。Y 1C3VCCRR

7、 ES2C 1CAPS0SW SPSTC2-C APP1 12P1 23p1 34P1 45P1 56P1 67P1 78P3 313 oP3 212 oP3 515P3 414V cc31ALX 1191RY STX2 18R DALE/PWRPSENU5R ESE T 98051A HP3 7 17 七P3 6 16 o39 P0 0 /38 P0 1 y37 P0 2 丿36 P0 3 y35 P0 4 /34 P0 5 y33 P0 6 /32 P0 7 y21P2 0 /22P2 1 /23P2 2 /24P2 3 y25P2 4 726P2 5 y27P2 6 /28P2 7 R2

8、RES210P3 0 y11P3 1 /30 ALE / 29 PSEN图4.1 最小系统原理图4.2传感器模块本次设计中测速传感器选用红外对管,其有一个红外发射管一个红外接收管。发射 管和接收管位于同一平面,当其发射出的红外遇到风扇的叶片时,红外接收管接收到反 射回来的信号,输出一个脉冲,该脉冲作用于单片机的 P32引脚,在单片机的外部中断0中进行计数。其硬件图如图4.2所示。4.4键盘模块3 4本次设计中采用的4*4的非编码键盘。矩阵式非编码键盘的电路原理图如图 4.4所示。当没有键按下时,行线和列线之间是不相连。若第 N行第M列的键被按下,那么第N行与第M列的线就被接通。如果在行线上加上

9、信号,根据列线的状态,便可得知是否 有键按下。如果在行线上逐行加上一个扫描信号(本实验中用的低电平) ,就可以判断按键的位置。常用的按键识别有两种方法:一种是传统的行扫描法;另一种是速度较快 的线反转法。本实验中采用的是线反转法进行识键。S2P0 0P0 1P0 2S5S8S9S1 1S1 2P0 7P0 6P0 5P0 4P0 3图4.4 键盘模块硬件原理图4.5显示模块本设计采用ST7920控制器的LCD液晶显示器,其具有低电压,字迹清晰、能够显示 汉字和字符等特点,且编程方便,易于查看、修改。本实验中主要用到了 VSS VDD RS RW CS引脚。ST7920液晶显示器与MCI接口电路

10、原理图如图4.5所示。R4Ai l1 0 KP0987654321VCCU2SSVSR WR SC OB D 1B D 2B D 3B D 4B D 5B D 6B D 7B D图4.5 显示模块硬件原理图5软件设计5.1主函数部分该函数首先初始化定时器 0和外部中断0,然后判断启动键是否按下,如果按下则 控制LCD显示数据,如果启动键没有按下,则继续等待。程序执行过程中,主要通过循环扫描各标志位,如果设定速度、工作模式或者电机 实时转速有所改动,就刷新LCD显示。如果按键扫描标志位允许进行按键扫描即进行按 键扫描。如果有按键按下就进行相应的按键指定功能实现。 主函数流程图如图5.1所示5.2

11、中断部分本次设计中主要用到了定时器 0和外部中断0。中断部分的流程图如图5.2所示 定时器主要用于控制PWM输出以及控制按键扫描函数的启动,采样周期,控制周期 等和时间密切相关的函数。外部中断主要用于数脉冲输入的个数。由定时器控制取值并清零的时间。在一定的 时间内采集到和电机转速相关的脉冲数,就可以计算出电机的转速。入口脉冲数加一返回图5.2 中断流程图5.3显示刷新部分该函数主要通过判断测得转速是否允许更新,来更新测得转速。判断设定速度、占 空比、是否发生变化,如果有变化则更新,如无变化则不更新。其流程图如图5.3所示图5.3 显示函数流程图刷新5.4按键扫描部分主函数通过判断一个按键扫描标

12、志位来判断是否进行按键扫描。该标志位在定时器 0中进行更改,当定时时间达到 100ms该标志位被置一。主函数在检测到该标志位为 一时调用按键扫描函数,进行按键扫描。在执行按键扫描后,该标志位被清零。按键扫 描函数流程图如图5.4所示。图5.4 按键扫描函数流程图5.5按键功能实现部分该函数被主函数调用,以实现其功能。该函数首要任务是判定到底是哪个按键按下,然后实现对应功能。如果是 11号键按下,则工作模式设定为自动模式,可以通过 09的数字键来更改设定速度,由单片机通过 PID算法来控制电机转速接近设定值。如果是 12号键按下,则工作模式设定为手动模式,可以通过09的数字键来更改占空比直接控

13、制电机转速。其流程图如图5.5所示。图5.5 按键功能实现函数流程图5.6更新输出控制信号部分如果控制时间到,定时器置一控制标志位。当主函数检测到该标志位为一,将调用 更新输出控制信号函数,并清零标志位。该函数一经调用便要判断工作模式为自动模式 还是手动模式。如果工作模式为手动模式,便计算之前输入占空比,并判断是否在规定 的范围内。如果不在规定范围内,则强制转化为最大输出或最小输出。如果工作模式为 自动模式,则判断设定值和测得值的差值是否大于设定死区。如果差值在死区范围内, 则输出上次控制量;如果差值超出了死区范围,则调用 PID算法,计算输出控制量并判 断控制量是否在允许范围内。如果不在,则

14、输出最值,如果在该范围内,则直接输出计 算得到的控制量。其流程图如图5.6所示。5.7 PID控制部分当控制时间到后,定时器置一控制标志位,由更新输出控制信号调用该函数。如果设定值和测得值的差值大于死区值, 更新输出控制信号函数便调用该函数来改变输出控制量。如果差值在死区范围内,则不调用,保持上次输出控制信号不变。该 PID控制算法为增量型PID控制算法,增量型PID算法有计算量减小,计算速度快等优点。该算法 用到的参数为经验参数,是通过大量的实验数据不停地修改得到。其流程图如图 5.7所示。图5.7 PID控制算法流程图5.8 LCD显示部分该函数主要为各显示函数调用。其工作流程为先向 LC

15、D发送控制命令,再传送待显数据,最后刷新屏幕。其流程图如图 5.8所示。5.9延时部分该函数主要被LCD 显示函数调用。该函数所延时为不确定时间值。因为该函数的延 时是通过一个空的for循环实现的。其流程图如图5.9所示。6.系统调试在该系统的构想之初有不少困惑。主要是在定时器个数的选择以及关于 PID算法。最后还是决定用1个定时器。在调试过程中遇到了不少小小的麻烦。比如在按键调试的 时候,就遇到了按键没反应的问题,后来修改程序后,按键有反应了,但新的问题又出 来了。主要是按键不好使,要么按下没反应,要么按下太久,系统把一次按键动作当成 了几次。后来在按键扫描函数中加入了等待按键弹起的语句,解

16、决了按键的灵敏问题。在调制PWM波形的时候发现电机的转速并不随输出的控制信号的改变而变化。用示 波器观察输出波形,发现输出波形并不规则。理论上应该是输出一个一定占空比的方波 啊。经过一段时间的测试,发现信号输出引脚给出了高低电平,但示波器检测出来的信 号看上去并不像给了高低电平啊,就像一个脉冲干扰。突然来个尖脉冲,然后很快衰减。 后来缩短定时器的中断时候后,该问题得到解决,输出波形正常。输出波形正常后再测 试电机转速,电机转速仍然不正常。后来才发现原来是实验箱的问题。实验箱中用于测 量电机转速的霍尔传感器和电机的供电电源是一个, 这就意味着当输出控制信号让电机停止转动的同时霍尔传感器也停止工作

17、了。后来用红外对管传感器对转速进行测试,问 题得到解决。在编写PID算法的时候,发现占空比变化剧烈,要么是 0,要么就是100,总是在两 个极值上变化。修改PID参数后问题没有得到很好解决,后来才发是因为现变量的类型 给定义错了。修改后,问题得到解决。在 PID的调试过程中还遇到不少小问题,在此就 不一一累述了。在编写完了后,发现程序并没按预定的程式那样运行,后来才发现是定时器中代码 太长的原因。后来只在定时器中保留PWM波形调制部分将一些按键扫描之类的函数都拿 到主函数中,在定时器中设立标志位。在主函数中通过判断标志位来选择调用子函数, 该问题得到了解决。7结束语这次课程设计结束在即,在此感

18、谢重庆科技学院给我们提供了一个锻炼的机会,给 我们提供场所和设备。感谢钟秉翔老师和张义辉老师不辞辛苦给我们提供解决问题的思 路和方向。在此次课程设计中我也得到了很好的锻炼,不单在硬件软件方面的能力,而 且在独立思考,解决问题,探索解决问题的方向方面的能力得到了提高。8参考文献1赵新民智能仪器设计基础哈尔滨:哈尔滨工业大学出版社,20092程德福智能仪器.北京:机械工业出版社,2009.93张毅刚单片机原理及接口技术M 哈尔滨:哈尔滨工业大学出版社 ,2007.4胡文金单片机应用技术实训教程重庆:重庆大学出版社,2005 梁森.自动检测技术及应用北京:机械工业出版社,2009附录一系统硬件原理图

19、C 1C APC 2C APV CCC APR丄Y 1R ES2U 5P12P13P16P17T1TOy STX1X2R ESE T 9RP1P1P1P1INT 1INT 00145R D W R7 176 16X 1X 21918P112P123P134Pl45P156P167P178P3313P3212 dP3515P341 4VCC31EA /VPESE T8 0 51 AHR ES2P0P0P0P0P0P0P0P0P2P2R XDTX DA LE/P39 P0 0 /35 P0 438 P0 136 P0 337 P0 232 P0 734 0 533 P0 6P22P23P24P25

20、P2628 P2 7P2724 P2 325 P2 421 P2 02 / P2 622P2 123P2 211P3130A LE29PSENaJ10 P3 0PS ENV CCP06P05P04U 9 02C 1 0C1 +V+3C1-6V7C 6T2 0R 2INR2 OUT10 410 4 _CC2 +2-1 0 4 2C 7 1C 8 41 04 5T1V CCG NDM A X2 3216141TT XD13R RX12R XD1 1TX D1091 5OU TT1 INUTT2 INDR 1 INR1 OUT5J19o4q8R RX D 37TT XD 2q6o1D B91 5 u

21、G 1O TO R SE RV OKL BOBD 1BD 2B D 3B D 4B D 5B D 6B D 7B D 审 AaL BwR0DSV V4Q 1N PP1 3U 2LC D6ES2Q 2N PN附录二源程序代码while(1)rekey=keyscan();主函数*/#include reg51.h#include display.h#include keyscan.h#include pid.hif(rekey=16) break;#define THCO Oxfc#define TLCO 0x17unsigned char/1msDispHanzi(0,0,8,行0列显示汉字D

22、ispHanzi(1,0,4,DispHanzi(2,0,4,DispHanzi(3,0,3,电机实时控制系统设定转速);测得转速);占空比););/ 第 1reflag=0,pwmflag=0,setflag=0,autoflag=1,ctr lflag=0,scanflag=1;unsigned char rekey=0,setnum8=,51,53,48,48,r,/,m,zkb3=48,49,48,;Disp Zimu(1,4,8,setnum);Disp Zimu(2,4,8,received);Disp Zimu(3,4,3,zkb);unsigned char received8

23、=,48,48,48,48,r,7,m,g=0,s=0,b=5,q=3,zg=0.while(1)zs=0,zb=1;unsigned char m=0,n=0,mode=0;unsigned int setval=0;int pwm=40;int sspeed=3500,accept,speed4;unsigned int number=0;sbit pwmout=P1A3;void display();void key_func();void pwm_ctrl();void main()TMOD=0x11;TH0=THC0;TL0=TLC0;TR0=1;ET0=1;EX0=1;IT0=1;

24、EA=1; /lnitLCD();/定时器0初始化/外部中断0初始化开启总中断if(mode=1)DispHanzi(3,6,2,手动);autoflag=0;elseDispHanzi(3,6,2, 自动);autoflag=1;display();if(scanflag=1)rekey=keyscan();scanflag=0;key_func();if(ctrlflag=1)pwm_ctrl();ctrlflag=0;a=0;void display()if(reflag=1)accept=number*15;received1=accept/1000+0x30;received2=ac

25、cept%1000/100+0x30;received3=accept%100/10+0x30;received4=accept%10+0x30;reflag=0;DispZimu(2,4,8,received);number=0;if(pwmflag=1|autoflag=1)zkb0=pwm/100+0x30;zkb1=pwm/10%10+0x30;zkb2=pwm%10+0x30;pwmflag=0;DispZimu(3,4,3,zkb);if(setflag=1)sspeed=q*1000+b*100+s*10+g;DispZimu(1,4,8,setnum);setflag=0;vo

26、id key_func()if(rekey!=0)if(rekey=11)mode=0;if(rekey=12)mode=1;#include reg51.h#include delay.hvoid send_command(unsigned charcommand_data); / 发送命令void send_data(unsigned char command_data);/发送数据void InitLCD(void); / 液晶初始化void DispHanzi(unsigned char x,unsigned chary,unsigned char how,unsigned char

27、*stri); / 汉字显示void DispZimu(unsigned char x,unsigned chary,unsigned char how,unsigned char *stri); / 字母数字都可以显示sbit CS = P1A0; / 液晶接口sbit SID = P1A1;if(rekey=1 &rekey=10)if(mode=0)if(n3)n+;elsen=0;switch(n)case1:setnum1=rekey+0x2f;q=rekey-1;break; case2:setnum2=rekey+0x2f;b=rekey-1;break; case3:setnum3=rekey+0x2f;s=rekey-1;break; case0:setnum4=rekey+0x2f;g=rekey-1;break; setflag=1;if(mode=1)if(m2)m+;elsem=0;switch(m) case1:zkb0=rekey+0x2f

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1