直流电机转速测量与控制系统的设计说明.docx

上传人:scccc 文档编号:14035978 上传时间:2022-01-31 格式:DOCX 页数:24 大小:199.78KB
返回 下载 相关 举报
直流电机转速测量与控制系统的设计说明.docx_第1页
第1页 / 共24页
直流电机转速测量与控制系统的设计说明.docx_第2页
第2页 / 共24页
直流电机转速测量与控制系统的设计说明.docx_第3页
第3页 / 共24页
直流电机转速测量与控制系统的设计说明.docx_第4页
第4页 / 共24页
直流电机转速测量与控制系统的设计说明.docx_第5页
第5页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《直流电机转速测量与控制系统的设计说明.docx》由会员分享,可在线阅读,更多相关《直流电机转速测量与控制系统的设计说明.docx(24页珍藏版)》请在三一文库上搜索。

1、常熟理匸学院实训任务报告书目录1. 智能仪器综合设计课程设计任务书21. 1课程设计任务31.2课程设计目的31.3课程设计要求31.4课程设计容31.5课程设计报告要求31.6课程设计进度安排41.7课程设计考核办法42. 设计方案52. 1总体方案52. 2PID 算法52. 2. 1PID控制的基本组成52. 2. 2PID控制中的主要技术指标分析62. 3PWM脉冲控制83. 硬件模块93. 1主体模块93.2显示与键盘模块103. 3转动源模块123.4复位电路134. 软件模块144. 1主程序流程图144. 2初始化模块144.3中断模块165. 收获与体会18参考文献19附录2

2、0161智能仪器综合设计课程设计任务书题目:直流电机转速测量与控制系统的设计1.1课程设计任务日常生活和生产中,需要对各种电机的转速进行测量。该综合设计要求完成基于 AT89C52单片机的直流电机转速测量与控制系统的设计。采用光电式传感器进行信号的 转换,再经过整形、放大等电路处理,将信号送入单片机进行数据处理,能够对设定的 电机转速进行自动PID调节,自动调节的效果可通过LabVIEW软件编写的上位机进行观 察和调整。12课程设计目的通过本次课程设计使学生掌握:1)微机接口技术与I/O通道电路的设计及实现方 法;2)控制程序的设计及实现方法;3)微机控制系统的实际调试技巧。从而提髙学生 对微

3、机实时控制系统的设计和调试能力。1.3课程设计要求1、该装置要求在智能仪器综合实验平台上完成软件编程与实现。2、用数码管来分别显示工作状态、设定速度和实际速度。3、用3只按钮来分别作为开机/关机键、速度设定上升键和下降键。4、速度设定围5003000转/分,在某个速度设置点,要求使用PID控制。1. 4课程设计容1、硬件电路原理图;2、软件流程图及程序;3、实物调试及结果。1. 5课程设计报告要求报告中提供如下容:1、目录2、正文(1)课程设计任务书;(2)总体设计方案;(3)硬件原理图(protel软件);(4)程序流程图及清单(子程序不提供清单,但应列表反映每一个子程序的名 称及其功能);

4、(5)实物调试及结果。3、收获、体会4、参考文献1. 6课程设计进度安排周次工作日工作容第周1布置课程设计任务,查找相关资料2熟悉单片机、模数转换器3完成总体设计方案4画出硬件原理图及程序流程图5搭建硬件电路第周1调试硬件电路2完成软件的构思并画出流程图3编写程序并调试4编写程序并调试5编写程序并调试第周1编写程序并调试2编写程序并调试及准备课程设计报告3编写程序并调试及准备课程设计报告4完成课程设计报告并按规定时间提交5答辩1. 7课程设计考核办法本课程设计满分为100分,从课程设计平时表现、课程设计报告及课程设计答辩三 个方面进行评分,其所占比例分别为20%、40%. 40%o2.设计方案

5、2. 1总体方案本次课程任务使用改变PWH脉冲控制直流电机转速。按动按键对MCU设定值,将产 生的PWH波输送给电机驱动部分,转动源模块开始工作,光电转速传感器测得代表直流 电动机速度的脉冲信号并将其反馈给MCU, MCU在比较转速设定值和实际值的基础上, 以PID控制算法来调节PWM波,从而对电动机速度进行控制,LED用于显示转速的设定 值和实际值。图2. 1方案流程图2. 2PID算法PID控制的基本原理2. 2.1PID控制的基本组成PID控制由反馈系统偏差的比例(P)、积分(I)和微分(D)的线性组合而成,这 3种基本控制规律各具特点。P比例控制:比例控制莽在控制输入信号e(t)变化时

6、,只改变信号的幅值而不改变 信号的相位,采用比例控制可以提高系统的开环增益。该控制为主要控制部分。D微分控制:微分控制器对输入信号取微分或差分,微分反映的是系统的变化率, 因此微分控制是一种超前预测性调节,可以预测系统的变化,增大系统的阻尼,提高相 角裕度起到改善系统性能的作用。但是,微分对干扰也有很大的放大作用,过大的微分会使系统震荡加剧。I积分控制:积分是一种累加作用,它记录了系统变化的历史,因此,积分控制反 映的是控制中历史对当前系统的作用。积分控制往系统中加入了零极点,可以提高系统 的型别(控制系统型别即为开环传递函数的零极点的重数,它表争了系统跟随输入信号 的能力),消除静差,提高系

7、统的无差度,但会使系统的震荡加剧,超调增大,动态性 能降低,故一般不单独使用,而是与PD控制相结合。PID的复合控制:综合以上几种控制规律的优点,使系统同时获得很好的动态和稳 态性能。PI:控制规律的基本输入/输出关系可用微分方程表示:式中,e(t)为控制器的输入偏差信号;K为比例控制增益;7;为积分时间常数;为 微分时间常数。相应的传递函数为:(2)(3)如W+护加)7;=1/27;1 +尸梵若41则式(2)还可以写成G($)=(DJT式中由式(3)可见,PID控制器向原系统增加了 一个零极点,从而使系统从0型提高到1型,还提供两 个负实零点,同时提高系统稳态性能和动态性能。PID控制器可由

8、模拟执行元件或具有运算功能的 数字器件实现。数字PID的实现需要式进行离散化,取釆样周期为T ,改写式(3),得1 z,e -en叫=Kp(en + -dejT + Td= Kpen + Kt 工勺 + Kd (en 丿()1Z(4)式中,K严KpTITK产KpTJT为控制器输出的控制量,式中(4)即为数字PID控 制器的直接算法。也可取其递推算法;叫=匕一 bi =心(q -耳_J +匕+ Kd (q - NJ -efl_2)( 5)式中,Kp, S K。的选取一般取决于经验以及实验现场的调整。2. 2. 2PID控制中的主要技术指标分析动态指标超调6% ,单位阶跃响应的最大值/?(),超过

9、稳态值h(-)的百分比,即8% =/亿)-心)心)xlOO%若h(fjXTAL1P曲 DUPD.1D1PD2WD2XTAL2PC .WUHPLJSftDSpen*PDDS on ? ran?irLJ.I1P2IW卩2伽P22XM0PSENP2JW11ALEP2.UA12阴P2M”P2.715pintn rvpvnP1.1P5.1/1XDP12K2AU1UP13P3J0NT1P1.4P3XnuPISPFP15P35VURP1.7P3.7 用 D133ATO9CS123於捋J736更我口 无21222321252627羽1D1112CZ1 I1S16仃图3. 1 AT89C51单片机其组成有一个8

10、位CPU、一个偏振荡器及时钟电、128字节的片数据存储器、4KB的 片程序存储器、可寻址的64KB字节外部数据存储器和64KB字节外部程序存储器的控 制电路、21字节的专用寄存器.4个8位并行I/O接口. 一个全双工的串行口、2个 16位的定时器/计数器和一个布尔处理机。在MCS-51系列单片机中具有5个中断源 和2个中断优先级,片采用单一总线结构连接。51单片机优点众多性价比优异;集成度高、体积小、有很高的可靠性;控制功能强; 扩展性能好,非常容易构成各种应用系统。3. 2显示与键盘模块显示与键盘模块使用按键与数码管实现,P1.O.P1.1分别实现减速与加速控制.P1.7 实现设置转速,数码

11、管实现实时显示转速。C1C218U1i-XTALI31-XTAL2PSENALE EAP1flP1.1P12P1JP1.4-P15 P1SP1.7PDUftDD P0.1JWD1 PD2AD2 P恥 D3 pciwm PDDS P影 D6 PD.TDrP2W3 P2.1X0S P21Q P23(M g4 、UD*O nxs 尹ux3 yEDU* plu LOMA/、二 QK3 -ituo、1c、: 、 _?D*a7 .二衣入】图3. 3数码管显示3. 3转动源模块设计采用了红外光电传感器,进行非接触式检测。当有物体挡在红外光电发光二极 管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平,

12、而当没有物体挡在中 间时则输出为高电平,从而形成一个脉冲。系统在光电传感器收发端间加入电动机,并 在电动机的转轴上安装一转盘。在这个转盘的边沿处挖出若干个圆形过孔,把传感器的 检测部分放在圆孔的圆心位置。每当转盘随着后轮旋转的时候,传感器将向外输出若干 个脉冲。把这些脉冲通过一系列的波形整形成单片机可以识别的TTL电平,即可算出轮 子即时的转速。转盘的圆孔的个数决定了测量的精度,个数越多,精度越高。这样就可 以在单位时间尽可能多地得到脉冲数,从而避免了因为两个过孔之间的距离过大,而正 好在过孔之间或者是在下个过孔之前停止了,造成较大的误差。设计中转盘的圆孔的实 际个数受到技术的限制。为了达到预

13、定的效果设计在转盘过孔的设计上采用6个过孔, 从而留下了 6个同等的间距。这样在以后的软件设计中能够较为方便的计算出脉冲频率。 脉冲发生源的硬件结构图如图3. 1所示.o图3.4脉冲发生源硬件结构图(左为正视图,右为侧视图)3.4复位电路复位是单片机的初始化操作,以便使CPU和系统中其他部件都处于一个确定的初始 状态,并从这个状态开始工作。除了进入系统的正常初始化之外,当单片机系统在运行 出错或操作错误使系统处于思索状态时,也可按复位键重新启动。89C51单片机复位信号的输入端是RST引脚,髙电平有效。RST端的外部复位电路 有两种操作方式:上电自动复位和按键手动复位。按键手动复位有电平方式和

14、脉冲方式 两种。4-5VVcc.c80C52JJ22pFRST/VPDrLVss(a)上电复位电路其中包括使程序计数器PC = 000011,单片机的复位操作使单片机进入初始化状态, 这表明程序从0000H地址单元开始执行。4.软件模块4.1主程序流程图在一个完整的系统中,只有硬件部分是不能完成相应设计任务的,所以在该系统中 软件部分是非常重要的,按照要求和系统运行过程设计出主程序流程如图4. 1所示。开始初始化定时器计时器刷新数码管延时2ms显示图4.1主程序流程图4. 2初始化模块AT89C52有两个定时器/计数器TO和T1,每个定时器/计数器均可设置成为16位, 也可以设置成为13位进行

15、定时或计数。计数器的功能是对TO或T1外来脉冲的进行计 数,外部输入脉冲负跳变时,计数器进行加1。定时功能是通过计数器的计数来实现的, 每个机器周期产生1个计数脉冲,即每个机器周期计数器加1,因此定时时间等于计数 个数乘以机器周期。定时器工作时,每接收到1个计数脉冲(或机器周期)则在设定的初值基础上自动加1,当所有位都位1时,再加1就会产生溢出,将向CPU提出定时器 溢出中断身请。当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定 时值和计数值将不同,从而可以适应不同的定时或计数控制。定时器有4种工作方式: 方式0、方式1、方式2和方式3,在此对工作方式不做具体介绍。工作方式寄存器

16、TH0D的设定:GATC/TMlM0GATC/TMlMOEETM0D各位的含义如下:GATE: H控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。C/T:定时或计数方式选择位,当C/T=l时工作于计数方式;当C/T二0时工作于定 时方式.Ml, M0:为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式 进行选择,选择情况如下表3-1: M1MO=OO为方式0:M1MO=O1为方式1;表3-1 Ml. M0为工作方式选择位M0M1工作方式方式说明00013位定时/计数器01116位定时/计数器1028位自动重置定时/计数器113两个8位定时/计数器(只有T0有)化并启动

17、定时器图4. 2定时计数子程序流程图 对定时器T0与计数器T1的初始化程序如下void timeOlinitiat() 一TM()D=OX 11; /计数器0和定时器1TLO=OXfc;TH0=0X4b;/计数器0赋初值TH1=OX4C;TL1=OXOO;/定时器1赋初值EA=1;/所有中断开放PTO=1;/定时器TO中断为高优先级ETO=1; /允许TO溢出中断ET1=1; 允许T1溢出中断TRO=O; /TR1=O; /ITO=1; /跳沿触发方式EXO=O: /禁止外部中断0中断43中断模块AT89C52单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是 由部的中断允许寄存

18、器IE的各位来控制的。中断允许寄存器IE的字节地址为A8H,可 以进行位寻址.表4-2中断位寻址表IE7DD6D5D4D3D2DIDO(A8H)AEET2ESElEX10ET0EXEA:中断允许总控位。EA=O,屏蔽所有的中断请求;EA二1,开放中断。 ET2:定时器/计数器T2的溢出中断允许位ES:串行口中断允许位。ET1:定时器/计数器T1的溢出中断允许位。EX1:外部中断INT1的中断允许位。ETO:定时器/计数器TO的溢出中断允许位。EXO:外部中断INTO的中断允许位。4. 3显示模块本系统采用动态数码管显示,所以程序如下:void displaym4(uint num)uint q

19、ian; uint bai:uint shi:uint ge; /定义 qian,bai,shi,geqian=num/1000;if(qian=O) qian=10; display numl (qian, 4): 千位 bai=num%1000;bai=bai/100;if(qian=10&bai=0) bai=10; display numl (bai, 3) ;/百位shi=num%100;shi=shi/10;if (qian=10&bai=10&shi0)shi=10;di splay numl (shi, 2) ;/十位ge=num%10;display num! (ge, 1)

20、 ;/个位开始显示缓存初始LED显示初始化数码显示图4. 3显示程序流程图5.收获与体会经过了一番努力,在老师和同学的帮助下,我顺利结束了此次的课程设计,在这个 过程中,我了解了许多,感悟了许多。实践是检验真理的唯一标准,经过这次作品设计,我深深理解了这句话,在经过了 仿真与实物的运用后,单片机各个部分的功能显得明确而具体。这在作品设计之前只知 道概念的我看来简直不可思议,所以说,只有将理论与实际结合起来,才能让人映像深 刻并真正理解。这次实习是我学习生活中不可缺少的重要经历,其收获与意义可见一斑。首先,我 可以将自己所学的知识应用于实际的工作中,理论和实际是不可分的,在实践中学的知 识得到了

21、巩固,解决问题的能力也得到了锻炼,其次,本次实习开阔了我的视野,使我 对法律在现实中的运作有所了解。通过这次设计,我深刻理解到要做好一件事情,必须有系统的思维方式和方法,要 有耐心和恒心去钻研努力,要善于运用资源丰富充实自己,要有整体的目光来看待事物, 再从局部到整体慢慢实现,这样才会有效率。参考文献1 金規先进PID控制MATLAB仿真(第2版)M.:电子工业,2006.2 阿奇主编.MATLAB实用教程M.:电子工业,2004.3 思雨预测控制算法和PID控制算法J,燕山大学工学硕士学位论文,2003.4 蔡美琴等.MCS-51系列单片机系统及其应用第二版,高等教育.5 全利单片机原理及其

22、接口技术,高等教育.6 文定,王东林过程控制系统的MATLAB仿真,机械工业.附录#includeMreg52. h#include mathh#define uchar unsigned char#define uint unsigned intucharcodexianshi11 = 0xFC, 0x60, OxDA,0xF2,0x66,0xB6,OxbE,OxEO,OxFE,0xF6,0x00; sbit PWM二P7;sbit keyl二P0;sbit key2二Pl;sbit key3=Pl 2;uint wide=50; /脉宽计数 uint tl=0: /低电平脉宽 uint t

23、2=0; /个周期 uint time_low=0;uint time_high=100; bit high flag=0;bit low flag=0;bit state_flag=O;uint set_count=50;/设定转速值uint run count=0;/实际频率的读取uint stop_count=0;/电机转速存储变量uint time=0;int en=0,en_l=0,en_2=0;/定义三个时刻的误差存储变量float a0=l. 7,al=0. 3,a2 =0. 002,un=0; 定义 PID 计算参公式的参数 void delayIms(uint time):v

24、oid delay(uint time):void displayml(uint dat,uchar numl):void displaym4(uint num):void timeOl_initiat(void);void key_precess(void):void pid(void);void main() time01_initiat(); /初始化定时器0和定时器1 while(l)key_precess() ;/键盘扫描函数/1ms延时函数void delayIms(uint time) uint i,j;for(i=0;itime;i+)for(j=0;j123;j+);指定的位

25、上显示指定的一位数据void displayml(uint dat,uchar numl)PO=xianshi dat ; /段显 switch(numl)case 1:P2=0x01;break;case 2:P2=0x02;break;case 3:P2=0x04;break;case 4:P2=0x08;break;default: break;delay1 ms ;四位数据显示函数void displaym4(uint num) 一uint qian;uint bai;uint shi;uint ge;qian=num/1000;if (qian=0) qian=10; display

26、 numl (qian,4);bai=num%1000;bai=bai/100;if(qian=10&bai =0) bai=10; display num1 (bai,3); shi=num%100;shi=shi/10;if(qian=10&bai=10&shi=0)display num1 (shi,2);ge=num%10;display numl (ge,1); 一四位数据显示函数void displaym4_l(uint num) uint qian;uint bai;uint shi;uint ge;qian=num/1000;if (qian=0)qian=10;display

27、 numl (qian,4); bai二num%1000;bai=bai/100;if(qian=10&bai=0) bai=10; display numl (bai,3);shi二num%100;shi=shi/10;if(qian=10&bai=10&shi=0) display numl (shi,2); ge=num%10;display numl (ge,1); 一void delay(uint time)uint i;for (i=0;itime&keyl=l;i+) display num4 1(stop_count*10);shi=10;shi=10;void delayl

28、(uint num)uint i;for (i=0;i300) set_count=50; _ 一if (keyl=l&key2=l&key3=0&state_flag=0) /KEY3 为按键减/ while(key3=0);delayl(20);if(set_count50) set_count-=l;if(set_count=50) set_count=300; 一 if(state_flag=0) 如果系统处于设置模式,则关闭定时器中断和外部中断,同 时初始化部分变量PWM = 0;EX0=0;TRO二0;TR1=O;run count=0;stop_count=0;time=0;tl

29、=0;t2=0;displaynumd(set_count*10);if(state_flag=l) /如果系统处于运行模式则显示电机的实际转速值display num4_l(stopcount*10);void pid(void) /PID 计算输出量en=set_count-stop count;un=aO*en-al*en l+a2*en 2;/计算输出量if(un 400)un = 400;if(un 900)wide=900:/防止超限,确保计算饿wide值有效if(wide10)wide=10;外部中断0用于电机转速测量void int0() interrupt 0EXO二0;ru

30、n_count+;EXO二1;/定时器0用于产生PWH ,占空比通过PID计算获得void timeO() interrupt 1TL0=0X9c;THO=OXFF; /计数器0赋初值lOOusTRO=O;if (1 ow_flag=0) 11+; /低电平时间计时t2+;if(t2=1000) 用于确定PWM的周期,t2乘以定时器的中断周期即为PWM的 周期PWM=1;t2=0;low_flag=0;)if (tl=wide)/wide的值即为低电平的时间PWM二0;tl=0;low_flag=l;TRO二1;void timel() interrupt 3THl=0X4b;TLl=0Xfc; /50ms 定时TR1=O;time+;if (time=20)/定时2s到,读取到的值run_count即为电机每秒的转速值stop_count=runcount ;time=0;runcount=0;pidO; 调用PID算法)TR1=1;

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1