单片机课程设计-小型直流电机控制器的设计.docx_第1页
单片机课程设计-小型直流电机控制器的设计.docx_第2页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)辽 宁 工 业 大 学 单片机原理及接口技术 课程设计(论文)题目: 小型直流电机控制器的设计 院(系): 电气工程学院 专业班级: xxxxxxxxxxx 学 号: xxxxxxxxxx 学生姓名: xxxxxxx 指导教师: (签字)起止时间: 2016.6.6-2016.6.17 本科生课程设计(论文)课程设计(论文)任务及评语院(系):电气工程学院 教研室:自动化 学 号学生姓名专业班级课程设计(论文)题目小型直流电机控制器的设计课程设计(论文)任务课题完成的功能、设计任务及要求、技术参数实现功能小型直流电机控制器可以通过按键设置参数,实现电机的启动、加速、减速、急停、恒速等功能。硬件设计包括cpu选型、最小系统电路、电机驱动电路、按键电路、显示。设计任务及要求1、确定设计方案,画出方案框图。2、进行硬件电路的设计,包括元器件选择,绘制原理图。3、进行实物的制作。4、绘出程序流程图,并编写完整程序。5、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理。6、按学校规定的格式,撰写、打印设计说明书一份;设计说明书应在4000字以上。技术参数1、电机参数:512v可选,工作电流500ma以下;进度计划1、布置任务,查阅资料,确定系统设计方案(2天)2、系统硬件设计及实物制作(3天)3、系统软件设计及编写功能程序及调试(3天)4、撰写、打印设计说明书(1天)5、验收及答辩。(1天)指导教师评语及成绩 平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算摘 要在工业自动控制系统和各种智能产品中常常会用到电动机进行驱动、传动和控制,而现代智能控制系统中,对电机的控制要求越来越精确和迅速,对环境的适应要求越来越高。因此电机控制器已成为生产中必不可少的设备。本设计以stc12c5a60s2单片机为核心,可以通过按键设置参数,实现电机的启动、加速、减速、急停、恒速等功能。在设计中采用pwm技术和pid控制技术通过电机驱动对电机进行控制,并且利用lcd显示屏设计的人机界面系统显示转速的设定值及实际值等参数,通过应用pid算法对占空比的计算达到精确调速的目的。还利用了vb编程软件编写了一个简单的上位机软件,显示实际转速的变化情况的波形图,对实物的pid参数的整定提供依据。本设计的小型直流机控制器由于采用微机处理器和数字pid算法具有稳定性好,可靠性高,结构简单,可以提高控制性能。关键词:单片机;电机控制器;pid控制;pwm调速 目 录第1章 绪论1第2章 课程设计的方案22.1 概述22.2 系统组成总体结构2第3章 硬件设计33.1 单片机最小系统设计33.2 驱动电路的设计43.3 显示电路的设计63.4 测速电路的设计73.5 按键电路的设计73.6 串口通信电路的设计83.7 电源电路设计93.8 总体电路图9第4章 软件设计104.1 主程序104.2 pwm调速实现114.3 pid算法实现124.4 串口通信上位机实现14第5章 系统调试与分析16第6章 课程设计总结19参考文献20附录i21附录22iii第1章 绪论近年来,随着技术的发展和进步,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。直流电动机的起动和调速性能、过载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调速控制系统得到了很大的发展。而作为单片嵌入式系统的核心单片机,正朝着多功能、多选择、低功耗、低价格等方向发展。随着计算机档次的不断提高,功能的不断完善,单片机已越来越广泛地应用在各种领域的控制、自动化、智能化等方面,特别是在直流电动机的调速控制系统中。所以选用单片机作为控制系统的核心以提高整个系统的可靠性和可行性。对于直流电机的控制器设计,早期直流传动的控制系统采用模拟分离器件构成,由于模拟器件有其固有的缺点,如存在温漂、零漂电压,构成系统的器件较多,使得模拟直流传动系统的控制精度及可靠性较低。随着计算机控制技术的发展,微处理器已经广泛使用于直流传动系统,实现了全数字化控制。由于微处理器以数字信号工作,控制手段灵活方便,抗干扰能力强。所以,全数字直流调速控制精度、可靠性和稳定性比模拟直流调速系统大大提高。所以,直流传动控制采用微处理器实现全数字化,使直流调速系统进入一个崭新的阶段。利用微处理器控制电机完成各种新颖的、高性能的控制策略,使电机的各种潜在能力得到充分的发挥,使电机的性能更符合工业生产使用要求,还促进了电机生产商研发出各种如步进电机、无刷直流电机、开关磁阻电动机等便于控制且实用的新型电机,使电机的发展出现了新的变化。对于简单的微处理器控制电机,只需利用微处理器控制继电器、电子开关元器件,使电路开通或关断就可实现对电机的控制。现在带微处理器的可编程控制器,已经在各种的机床设备和各种的生产流水线中普遍得到应用,通过对可编程控制器进行编程就可以实现对电机的规律化控制。对于复杂的微处理器控制电机,则要利用微处理器控制电机的电压、电流、转矩、转速、转角等,使电机按给定的指令准确工作。通过微处理器控制,可使电机的性能有很大的提高。目前相比直流电机和交流电机他们各有所长,如直流电机调速性能好,但带有机械换向器,有机械磨损及换向火花等问题;交流电机,不论是异步电机还是同步电机,结构都比直流电机简单,工作也比直流电机可靠,但在频率恒定的电网上运行时,它们的速度不能方便而经济地调节。第2章 课程设计的方案2.1 概述本次设计主要是综合应用所学的知识,设计小型直流电机控制器,并在实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用在单片机课程中所学的基本理论和基本方法,并初步掌握单片机系统设计的基本方法。本设计应用于小型直流电机的控制,通过按键可以设置参数,控制器将反馈的测量速度通过pid算法自动调节直流电机转速达到设定值,控制器由7.4v蓄电池供电。系统功能介绍:小型直流电机的控制器实现对直流电机的控制。控制器通过测速传感器测量出的转速与设定转速相比较,通过pid算法自动调节pwm占空比控制电机驱动从而达到控制直流电机的目的,实现基本的加速、减速、恒速、急停功能。2.2 系统组成总体结构根据系统要求的功能,设计出系统的整体框图。如图2.1所示。图2.1 系统整体框图本系统采用单片机stc12c5a60s2作为控制核心,用5个按键来控制电机转速和运行状态,并通过lcd12864来显示设定转速和测量转速等参数,电机驱动部分则用h桥组成的高电压大电流双全桥式驱动芯片l298n组成本控制系统的驱动电路,小型直流电机则选用额定电压为7.4v,测速传感器为霍尔测速传感器。第3章 硬件设计3.1 单片机最小系统设计单片机最小系统是指由单片机和一些基本的外围电路所组成的,能使单片机正常工作的最小硬件单元电路。一般来说,它包括单片机,时钟电路和复位电路。( 1 ) 单片机stc12c5a60s2stc12c5a60s2单片机是宏晶科技生产的机器周期(1t)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成max810专用复位电路,2路pwm,8路高速10位a/d转换,针对电机控制,强干扰场合。stc12c5a60s2是一种高效的控制器,为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。( 2 ) 复位电路及时钟电路复位电路和时钟电路是维持单片机最小系统运行的基本模块。分别如图3.1和图3.2所示。 图3.1 复位电路 图3.2 时钟电路在晶振频率的选择上,虽然高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能。但是对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率对于选频信号强度和准确度都有好处由于本次设计对定时器的定时要求较高所以选取12m无源晶振接入xtal1和xtal2引脚。并联2个22pf贴片电容帮助起振。单片机最小系统如图3.3所示。图3.3 单片机最小系统3.2 驱动电路的设计由于要对直流电机进行pid闭环控制,所以需要驱动芯片驱动直流电机。 ( 1 ) uln2003a驱动芯片uln2003a是一个单片高电压、高电流的达林顿晶体管阵列集成电路。它是由7对npn达林顿管组成的,可驱动7路电机,它的高电压输出特性和阴极钳位二极管可以转换感应负载。单个达林顿对的集电极电流是500ma。达林顿管并联可以承受更大的电流。 ( 2 ) l298n芯片介绍l298n是st公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个h桥的高电压大电流双全桥式驱动器,接收标准ttl逻辑电平信号,可驱动46v、2a以下的电机。可驱动2个电机,2、3和13、14之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,6、11接控制使能端,控制电机的停转,还以接pwm信号来调节输出。芯片引脚图如图3.5所示。图3.5 l298n芯片引脚图经过分析和比较本次设计选用l298n作为电机驱动芯片比较合适,外围电路和控制方式比较简单,uln2003a接5v电压,而l298n可以接至12v,也就是说它有更强的驱动能力。而且l298n有过电流保护功能,当出现电机卡死时,可以保护电路和电机等,而且能满足正反转,急停等控制要求。由于单片机输出的电平信号是低压电流信号一般不能直接驱动外设,而需经过接口转换处理后才能驱动外设,在接口处理中还应包括隔离技术。本设计中为了将单片机控制电路和电机驱动电路进行隔离,增加抗电磁信号的干扰能力和单片机i/o口电平信号的驱动能力,为此设计用光电耦合器组成带光电隔离的电机驱动电路。其中lm7805稳压电路是为了给驱动芯片供电。l298n驱动电路如图3.6所示。图3.6 l298n驱动电路图3.3 显示电路的设计显示电路有两种方案。( 1 ) 数码管显示电路在使用数码管作为显示时,由于单片机的输出电流不够驱动显示管,我们还会加74hc573锁存器来提高单片机的输出电流,驱动数码管,而且每个数码管需要10个左右i/o口,即便使用,而测速显示的数字在4位数左右,显示设定和测量两大数据,至少需要8个数码管,这样会浪费多个i/o口,并且数码管对电量消耗很大,有与本次设计使用蓄电池供电,可能会产生电量消耗过快的现象,而从经济角度来说数码管显示电路成本却小很多。( 2 ) lcd12864液晶显示屏lcd12864液晶屏分辨率12864,内置8192个1616点汉子,和128个168点ascii字符集,可显示汉子、数字、字符等。外部电路接线简单,并且最多使用12个i/o口即可完成复杂的显示,5v供电,不需要任何锁存器,单片机可直接驱动显示,支持并行和串行数据传送,只需在程序里修改参数即可。并且可根据其内置的坐标显示汉子和数字。综上所述,数码管显示电路接线复杂,用件更多,更易出现硬件问题,而且数码管显示电路在耗电量上明显高于液晶显示电路,不利于蓄电池长期工作。在程序上,数码管的编程更加复杂,在动态显示时程序更加繁琐,而lcd12864液晶屏程序只需封装好坐标即可,程序里只需按照坐标把要显示的数据传送过去。液晶屏内置的字库足以显示大部分字。所以最终选用lcd12864液晶显示屏作为显示速度设定值和速度测量值等参数。接口模式采用串行模式,节省i/o口。lcd12864显示屏电路如图3.6所示。图3.6 lcd12864液晶显示电路3.4 测速电路的设计直流电机的测速电路有两种( 1 ) 光电开关测速其测速原理是当被检测物体经过时,物体将光电开关发射器发射足够量的光线反射到接收器,于是光电开关就产生了开关信号。直流电机每经过一个齿轮便产生一个信号,只需计算单位时间测得的信号数量与一圈的齿轮数量比即可得到单位时间的直流电机速度。其价格低,对测速精度要求不高的场合非常实用。( 2 ) 霍尔传感器测速霍尔传感器的应用十分广泛。开关型霍尔传感器主要用于测转数、转速、风速、流速、接近开关、关门告知器、报警器、自动控制电路等。其原理是传感器接近磁场时产生一个开关信号来进行测速的,具体的就是在固定位置安装传感器。在旋转部件上与之相对的地方安装小磁铁,每当旋转部件转一圈,传感器就会发出开关信号,只需计算单位时间测得的信号数量,通过简单换算便可得到单位时间的直流电机速度。由于价格低,安装方便,应用较多。经过分析比较本设计采用开关型霍尔传感器测量电机转速就可以满足设计要求,霍尔传感器的具体型号为a3114e。霍尔测速电路如图3.7所示。图3.7 霍尔测速电路3.5 按键电路的设计根据设计要求需要通过按键实现对电机的启动、停止、加速、减速、恒速、换向功能。本设计采用独立式按键电路。独立式按键是指直接用i/o口线构成的单个单个按键电路。每个独立式按键单独占有一根i/o口线,每根i/o口线上的按键工作状态不会影响其他i/o口线的工作状态,电路配置灵活,软件结构简单,在按键数量不多时,常采用这种按键电路。按键电路如图3.8所示。图3.8 按键电路3.6 串口通信电路的设计由于要对实物的pid参数的整定提供依据。因此还需要串口通信电路将电机转速信息发送到电脑上位机软件,用于显示实时转速的变化情况的曲线图。本设计采用usb转ttl通信电路,用于单片机与电脑间的通信。选择硬件电路简单且工作稳定的通信芯片ch340g。ch340g是一个usb总线的转接芯片,实现usb转串口、usb转irda红外或者usb转打印口。 在串口方式下,ch340g提供常用的modem联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到usb总线。ch340g芯片内置了usb上拉电阻,ud+和ud-引脚应该直接连接到usb总线上。支持5v电源电压或者3.3v电源电压。当使用5v工作电压时,ch340g芯片的vcc引脚输入外部5v电源,并且v3引脚应该外接容量为4700pf或者0.01uf的电源退耦电容。当使用3.3v工作电压时,ch340g芯片的v3引脚应该与vcc引脚相连接,同时输入外部的3.3v电源,并且与ch340g芯片相连接的其它电路的工作电压不能超过3.3v。支持通讯波特率50bps2mbps。串口通信电路如图3.9所示。图3.9串口通信电路3.7 电源电路设计常用的稳压电路有两种形式( 1 ) 稳压二极管稳压电路稳压二极管稳压电路其工作原理是利用稳压管两端的电压稍有变化,会引起其电流有较大的变化这一特点,通过调节与稳压管串联的限流电阻上的压降来达到稳定输出电压的目的,其缺点是电流小,一般不会大于500ma,功率低,带动负载时电压下降。( 2 ) 集成稳压芯片电路串联型稳压电路是利用电压串联负反馈的原理来调节输出电压的。集成稳压电源就是串联稳压电源的集成自动化。其优点是输出电流大,最高可达到1.5a,集成芯片有更好的稳定性和准确定,输出电压偏差相对较低。电路无需接额外电阻,简单易用。综上所述,采用集成稳压芯片所组成的电路。稳压电路如图3.4所示。图3.4 lm7805电源电路3.8 总体电路图总体电路图见附录i所示。第4章 软件设计4.1 主程序设计首先上电之后程序执行,显示屏亮,传感器测速,并周期的刷新从单片机传送回来的数据,起始的速度设定值和测量值都是零,通过按加速按钮即可实现设定速度值得增加,按减速按钮实现设定值的减小,利用p1.3口编程输出pwm脉冲信号,直接作用于驱动芯片,然后可以通过按正向按钮和反向按钮来实现电机的正向启动和反向启动,也可以在电机运行时进行换向,按钮停止则可以用来停止。传感器测量单位时间脉冲数量,通过程序计算当前速度值,自动同设定值比较,执行pid算法自动调节pwm输出脉冲实现对小型直流电机的加速减速,最终和设定速度相等。在控制器工作过程中可通过上位机控制是否串口发送速度信息。其整体流程图如图4.1所示。图4.1 整体流程图 stc12c5a60s2系列单片机的pca模块可以通过程序设定,使其工作于8位pwm模式。其中p1.3口为脉冲宽度调制器(pwm)通道,此通道可用编程决定脉冲的占空比和频率。由于产生的pwm信号不能直接驱动电机,这就需要设计合适的驱动电路,可间接的驱动电机,使其能够正常的运行。具体程序我们通过keil5编程。4.2 pwm调速实现pwm(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。pwm可以应用在许多方面,比如:电机调速、温度控制、压力控制等等。在pwm驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速,也正因为如此,pwm又被称为“开关驱动装置”,其占空比波形如图4.2所示。图4.2 pwm占空比设电机始终接通电源时,电机转速最大为vmax,设占空比为d=t1/t,则电机的平均速度为va=vmaxd,其中va指的是电机的平均速度,vmax是指电机在全通电时的最大速度,d=t1/t是指占空比。由上面的公式可见,当我们改变占空比d=t1/t时,就可以得到不同的电机平均速度va,从而达到调速的目的。严格来说,平均速度va与占空比d并非严格的线性关系,但是在一般的应用中,我们可以将其近似的看成是线性关系。基于单片机类由软件来实现pwm,在pwm调速系统中占空比d是一个重要参数在电源电压ud不变的情况下,电枢端电压的平均值取决于占空比d的大小,改变d的值可以改变电枢端电压的平均值从而达到调速的目的。改变占空比d的值有三种方法:( 1 ) 定宽调频法:保持t1不变,只改变t2,这样使周期也随之改变。( 2 ) 调宽调频法:保持t2不变,只改变t1,这样使周期也随之改变。( 3 ) 定频调宽法:保持周期t不变,同时改变t1和t。( 1 )、( 2 )两种方法在调速时改变了控制脉冲的周期,当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此常采用定频调宽法来改变占空比从而改变直流电动机电枢两端电压。实现脉宽的自由调整时有三种方法:( 1 ) 采用定时器作为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几s。( 2 ) 采用单片机内部模块方式,stc12c5a60s2系列单片机的pca模块可以通过程序设定,使其工作于8位pwm模式。其中频率和占空比都可通过寄存器简单设置。误差小,编程简单。由于pwm是8位的,所以:pwm的频率=pca时钟输入源频率256 (4-1)pca时钟输入源可以从以下8种中选择一种:sysclk,syslck/2,sysclk/4,sysclk/6,sysclk/8,sysclk/12,定时器0的溢出,eci/p3.4输入。占空比可以通过设置ccapxl和ccapxh寄存器中的值去改变(ccapxl 和ccapxh中的数值相等,对于stc12c5a60s2单片机x可以为0或1)。pwm占空比=(256-ccapxl=ccapxh)256 (4-2)综上所述,最终选用单片机内部的pca模块来产生pwm,此种方式可简化硬件电路,操作性强,精度高。4.3 pid算法实现小型直流电机的闭环调速核心算法为pid算法,它根据每次采样的数据与设定值进行比较得出偏差e(k),对偏差进行比例、积分、微分运算最终利用运算结果控制pwm脉冲的占空比来实现对加在电机两端电压的稳定调节,进而控制电机转速。而pid算法分为模拟pid算法和数字pid算法,本次设计使用的是数字pid算法。在数字pid算法中又分为位置式和增量式,而增量式pid算法更加普遍并且其运用更加广泛和成熟,所以采用增量式pid算法,其运算公式为:du(k)=kpek-ek-1+kiek+kdek-2ek-1+ek-2uk=du(k)+uk-1 (4-3)其中pid各校正环节的作用;( 1 ) 比例环节:及时成比例的反映控制系统的偏差信号e(k),偏差一旦产生,控制器立即产生调节作用,以减少偏差。( 2 ) 积分环节:主要用于消除静差提高系统的无差度。积分作用的强弱取决于积分时间常数ki,ki越大,积分做那个用越弱,反之则越强。( 3 ) 微分环节:能够反映偏差信号的变化趋势,即偏差信号的变化速率,并能在偏差信号值变大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。pid算法流程图如图4.3所示。图4.3 pid算法流程图当进入pid调节子程序时,首先需要根据系统给定值和实际测量值来计算偏差,然后通过增量式pid计算出控制量,接着对控制量的大小进行判断,当控制量大于256时,使控制量等于256,即为最大输出;当控制量小于0时,使控制量等于0,即为最小输出。通过将控制量,偏差值移位后,将控制量大小转换为pwm的占空比大小,由此就可以决定电机驱动的输出电压,即为直流电机的电枢电压,进而确定了电机的转速。pid控制器参数,依据经验,一般pid参数确定的步骤如下:( 1 ) 确定比例系数kp时,首先去掉pid的积分项和微分项,使之成为纯比例调节。输入设定为系统允许输出最大值的一半,比例系数kp由零开始逐渐增大,直至系统出现振荡,再反过来,从此时的比例系数kp逐渐减小,直至系统振荡消失。经实际调整kp设定值为15。( 2 ) 比例系数kp确定之后,设定一个较大的积分时间常数ti,然后逐渐减小ti,直至系统出现振荡,然后再反过来,逐渐增大ti,直至系统振荡消失。经实际调整ti设定为30。( 3 ) 微分时间常数td,根据实际经验调整为1.5。4.4 串口通信上位机实现在visual basic 6.0环境下,开发pc机程序可利用visual basic 6.0提供的mscomm串行控件来完成。mscomm控件串口具有完善的串口数据发送和接收功能。通过该控件,pc机可以利用串行口与其他设备轻松的实现连接,简单高效地实现设备间的通讯。mscomm控件提供了两种信息处理方式:即事件驱动方式和查询方式。由于事件驱动方式在处理串行端口交互时程序相应及时,可靠性高,是一种非常有效的方法,所以本设计采用事件驱动方式。在具体使用mscomm控件时需要建立串口连接所用到的属性,本设计将波特率设置为9600bps,数据位为8,停止位为1,无奇偶校验。当各个属性都设置好后,通过output属性设置来向下位机发出控制命令,程序通过rthreshold的值来触发mscomm的oncomm事件,从而实现数据的接收。图形显示设计主要是程序运行后能够实时显示电机转速,本设计采用picturebox控件进行设计。主要用到的函数picturebox1.line用来画线。将每次从单片机接收的数据进行简单处理,转换成在picturebox中显示的图形。通过软件的启动按钮可以向单片机发送命令,然后单片机才可以将实时电机转速信息发送到上位机,经过数据处理后显示在上位机的图形显示区。当按下停止按钮时,将命令发送到单片机,这样就可以停止发送数据。上位机窗口如图4.4所示。图4.4 上位机窗口图第5章 系统调试与分析由于刚上电未进行按键设置参数,电机处于停止状态,测量速度为零。实物图片在上电时如图5.1所示。 图5.1 系统上电实物图通过加速按键来增加速度设定值为66rs,此时再按电机的正向启动按钮或反向启动按钮让电机启动,待电机转速稳定后实际转速达到设定值。如图5.2所示。图5.2电机转速稳定图然后,通过减速按键减小设定速度值为50rs,电机在pid闭环控制下很快将速度减小设定值,系统稳定后如图5.3所示。图5.3电机减速转速稳定图当按下换向时,电机会立即改变转向,lcd显示屏上的状态显示参数会由right变为left。如图5.4所示。图5.3电机改变转向图当转速稳定后,便是恒速运行功能,当按下停止按钮时,电机测量速度极剧减小为零此时电机也停止运行,在lcd显示屏上的状态显示参数变为stop,实现了电机的急停功能。如图5.5所示图5.5电机急停图利用上位机软件调整好的pid参数,并在软件的图像显示区显示电机从启动到恒速运行,再到急停时的转速变化情况波形图。如图5.6所示。图5.6电机运行波形图在电机运行期间发现测量转速不是很稳定,有时总是在很小范围波动,经过分析和多次测试后不是程序和pid参数整定的问题,而是测速传感器的测量效果影响的。第6章 课程设计总结通过这次对小型直流电机控制器的设计,我对小型电机控制器和转速单闭环调速系统有了更加清晰的认识,同时也对pid控制算法有了深入的认识。另外,在做设计的过程中我也学会了用一些基本程序调试的方法,例如利用vb上位机软件进行pid参数整定。并且这次课程设计应用到keil5软件,设计时借助keil5软件进行程序调试,进一步熟悉了c语言及其应用,并对课上所学的汇编语言有了更深的了解。这次课程设计,运用增强型51单片机stc12c5a60s2为核心,设计了直流电机的转速控制系统。实现了对小型直流电机的启动、加速、减速、恒速、急停等功能。在系统设计时,查阅相关资料学习了pid控制算法和pwm调速原理,对电机的控制有了更深的理解,并且在实际的调试中应用了经验法,经过多次尝试得出最终的pid参数,在pwm调速设置时,周期的设定值是根据电机的参数来设定。在绘制原理图时使用altium designer10软件对电路进行分析,大大简化了计算和绘图步骤,即使电路改动也可以简单修改,使自己熟练地掌握了altium designer10绘图的技巧。书写课程设计说明书时使用microsoft word 2010软件,使我掌握了许多关于word编辑和排版技巧,提高了自身对一些基本软件的应用技能。这次课程设计不仅增加了我的知识积累,让我有机会将课堂上所学的单片机理论知识运用到实际中,掌握了数字pid算法的使用及编程方法,学习了如何进行系统设计及相关技巧,为今后的工作和学习奠定了坚实的基础。这次课程设计不仅还让我懂得自主学习的重要性,还认识到做什么事情都要持之以恒,就一定有所收获。参考文献1 郭天祥.新概念51单片机c语言教程m.北京:电子工业出版社,2009.2 王兆安.电力电子技术m.北京:机械工业出版社,2006.3 李英辉.基于单片机的直流电机控制j.科建园地.2014,12(24):23-26.4 马建国.孟宪元.电子设计自动化技术基础m.北京:清华大学出版社,2004.5 孙传友.测控系统原理与设计m.北京:北京航空航天大学出版社,2003.6 陈杰.传感器与检测技术m.北京:高等教育出版社,2002.7 吴梦龙,王靖.常见控制回路pid参数整定方法j.工业, 2016,(5) :12-19.8 雷红淼,程耀瑜.基于l298n的直流电机驱动电路优化设计j.数字技术与应用, 2012,(2):118-118.9 陈心怡.数字式pid控制器的研究与设计j.机械工程师, 2014,(5):122-123.10 丛国进,李传伟.基于霍尔器件的直流电机速度pid控制设计j.仪表技术, 2012,(6):20-22.11 曹应明.基于stc单片机的直流电机调速系统设计j.计量与测试技术, 2014,(11):28-29.12 张涛,张晓宇,王辉俊.基于pwm和pid的直流电动机控制系统设计与制作j. 实验室研究与探索, 2014, 33(7):134-138.13 赵坤,张伟.积分分离pid算法在直流电机中的研究应用j.物联网技术, 2016,(2):65-66.14 王春凤,李旭春,薜文轩.pwm直流调速系统实验的教学实践.实验室研究与探索j.2012,31(8):32-34.15 曾伟钦,徐东升,冉志勇.基于串口通信的直流电机pid调速系统设计j.电子设计工程, 2012, 20(19):126-128.附录i总体电路图附录#include #include lcd12864.h#include delay.h#define uchar unsigned char #define uint unsigned int #define thc0 0xa2#define tlc0 0x40 /2ms/* 本地变量声明 */bit enable=0;uint num=0;uint inpluse=0;/脉冲计数int e ,e1 ,e2 ;/pid 偏差float uk ,uk1 ,duk ;/pid输出值float kp=15,ki=30,kd=1.5;/pid控制系数int out=0;int speedset=50;uint pwm=0;/脉冲宽度uint duty=0;/占空比bit flag=0;/电机启动标志位bit flag1=0;/pid启动标志位uchar code dis0=right;uchar code dis1=left ;uchar code dis2=stop ;/* 按键输入控制端定义 */sbit s1=p20;/正向启动sbit s2=p21;/反向启动sbit s3=p22;/停止sbit s4=p23;/加速sbit s5=p24;/减速/*l298输入控制端定义*/sbit in1=p11;sbit in2=p12;void int0_init(void) /外部中断0初始化函数ex0=1;/int0中断允许it0=1;/触发方式为下降沿触发ea=1;/全局中断打开void pwm_init (void) / pwm初始化函数 cmod=0x0a; /设置pca定时器 cl=0x00; ch=0x00; ccapm0=0x42; /pwm0设置pca工作方式为pwm方式(0100 0010) ccap0l=0x00; /设置pwm0初始值与ccap0h相同 ccap0h=0x00; / pwm0初始时为0 cr=1; /启动pca定时器void pwm0_set (unsigned char a) / pwm0占空比设置函数 ccap0l= a; ccap0h= a; void timer0init(void)/定时器0初始化函数/2毫秒12.000mhzauxr |= 0x80;/定时器时钟1t模式tmod &= 0xf0;/设置定时器模式tmod |= 0x01;/设置定时器模式tl0 = 0x40; /设置定时初值th0 = 0xa2;/设置定时初值tf0 = 0;/清除tf0标志tr0 = 1; /定时器0开始计时et0=1; ea=1; void uartinit(void)/串口初始化/9600bps12.000mhzpcon &= 0x7f;/波特率不倍速scon = 0x50;/8位数据,可变波特率auxr |= 0x04;/独立波特率发生器时钟为fosc,即1tbrt = 0xd9;/设定独立波特率发生器重装值auxr |= 0x01;/串口1选择独立波特率发生器为波特率发生器auxr |= 0x10;/启动独立波特率发生器es = 1; /允许串口中断 ea = 1; /开总中断void send(uint dat) /发送数据 sbuf=(dat/100)+ 48;/ 发送 百 位 while(!ti);ti=0;sbuf=(dat/10%10)+ 48;/ 发送 十 位 while(!ti);ti=0;sbuf=(dat%10)+48;/ 发送 个位 while(!ti);ti=0;void keyscan() /按键处理函数if(s1=0&flag=1)delay_ms(20);if(s1=0) in1=1; in2=0;flag1=1;lcd_displine(3, 4,dis0);if(s2=0) delay_ms(20);if(s2=0&flag=1)in1=0; in2=1;flag1=1;lcd_displine(3, 4,dis1);if(s3=0) delay_ms(20);if(s3=0) in1=1; in2=1; flag1=0; lcd_displine(3, 4,dis2);if(s4=0)delay_ms(20);if(s4=0)while(s4=0); /等待按键松开speedset=speedset+1;flag=1;if(speedset122)speedset=122;if(s5=0)delay_ms(20);if(s5=0)while(s5=0); /等待按键松开speedset=speedset-1;flag=1; if(speedset=256)out=256;else if(out=100)/200mstime=0;num=(inpluse

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论