基于STC12C5A16S2单片机的PWM电机调速系统Word格式文档下载.docx
- 文档编号:20064704
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:19
- 大小:369.49KB
基于STC12C5A16S2单片机的PWM电机调速系统Word格式文档下载.docx
《基于STC12C5A16S2单片机的PWM电机调速系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于STC12C5A16S2单片机的PWM电机调速系统Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
6.实时在上位机显示直流电机的转速。
2.2系统构成(尽量采取图示描述)
电机转速控制系统主要由上位机及下位机构成。
上位机就是PC机,完成电机转速系统速度设定和控制参数的设定,实时显示电机的转速。
下位机由电源、检测单元,控制单元以及驱动电机单元组成。
如图2-1所示。
图2-1电机转速控制系统结构框图
2.3主要设备及元器件选型(说明选择依据)
电机转速控制系统主要的设备及元器件:
综合训练1号电路板、STC12C5A60S2系列单片机、L298N电机驱动芯片、7805电压转换芯片、光电开关、发光二极管、电阻、电容、串行通信线、普通直流电机。
2.4系统核心处理策略(控制算法、信号处理方法等)
电机转速控制系统采用自制光电传感器实时检测反馈脉冲信号,经单片机处理获得直流电机的实时速度,与给定速度比较得速度偏差e;
速度偏差e,通过PID算法计算获得所要求的PWM占空比,形成PWM控制电压驱动直流电动机运转,直至偏差e为0,实现普通直流电机的速度调节。
在电机转速控制系统中,对直流电机的速度的控制采用了常用的PID控制算法,即比例、积分、微分算法。
一个系统要正常工作,起码的条件是要保证系统的稳定性,即系统不产生持续的振荡,甚至扩散的振荡。
衡量一个系统的控制品质还有其他一些指标,分为稳态指标和动态指标两大类。
稳态指标最重要的是稳态误差,在本例中就是稳态下的速度误差。
动态指标主要包括:
调节时间,超调量和振荡次数。
PID控制中的每一项对系统的性能会产生不同的影响。
PID算法包括3项:
比例项、积分项和微分项。
比例控制是根据被控制量(在本控制系统中是电机的实时转速)的期望值与实测值之差(控制误差)驱动被控对象(电机);
积分控制是根据控制误差的积分去驱动被控对象;
微分控制是根据控制误差的微分(在数字系统中就是差分)去驱动被控对象。
根据系统品质要求,为上述3个控制项选择合适的比例常数——
、
和
并把它们综合起来,产生一个综合的控制作用,就构成了PID控制算法。
在本系统中,我们将实际转速值与预置转速值比较,得出差值。
单片机通过对该差值进行PID运算,得出控制量,再由单片机输出控制参数,由PWM输出电路改变电机两端的有效电压,最终达到控制转速的目的。
2.5系统软硬件功能划分
直流电机控制环节由转速检测环节、单片机控制环节、电机驱动电路以及上位机软件组成。
其中转速检测环节和电机的驱动电路环节属于该系统的硬件环节;
而单片机控制环节和上位机软件属于该系统的软件环节。
下面对系统的硬件和软件功能分别进行表述。
2.5.1系统硬件功能
电机转速控制系统中,系统的硬件功能主要有:
电机转速的检测环节和电机驱动电路环节。
电机转速的检测环节是目的是检测电机的实际转速,本系统是通过间接的方法获得电机的转速,它通过光电开关的打开与关闭这两种状态的交替次数计算出电机的实际转速。
电机转速控制系统的电机驱动电路环节采用L298N驱动芯片产生电机驱动信号,直接驱动直流电机运行。
由电机检测环节检测到的上一时刻的速度,与设定值作比较,得出速度偏差e,单片机内部对偏差信号e经PID运算后,输出PWM控制信号给驱动芯片L298N,根据PWM波形的占空比不同,施加在电机输入端的电压不同,从而达到对电机速度形成闭环控制。
2.5.2系统软件功能
电机转速控制系统的软件分为上位机软件与下位机软件。
上位机软件主要完成向下位机设置电机的设定速度;
设置PID调节的比例系数Kp、积分系数Ki、微分系数Kd;
显示电机的实时转速并绘图。
其软件流程图如图2-2所示,图2-3是上位机串口中断服务程序流程图。
图2-2上位机软件流程图
图2-3上位机串口中断程序流程图
下位机软件主要完成读入检测电路输入的脉冲个数,间接计算出电机的实际转速,然后根据PID算法计算出输出的PWM波形的占空比,然后由PCA0模块输出PWM波,这样子就可以改变普通直流电机两端的电压,以实现控制电机转速的目的。
其流程图如图2-4所示,图2-5是下位机定时器中断流程图,图2-6是下位机串口服务程序流程图。
图2-4下位机软件流程图
图2-5下位机定时器中断程序流程图
图2-6下位机串口中断程序流程图
2.6其他(人机交互、结构设计等)
上位机的界面是采用VC编写,主要完成的功能有:
其截面图如图2-7所示。
图2-7VC编写的上位机界面
3详细设计
直流电机控制环节由电源电压转换电路环节、转速检测环节、单片机控制环节、电机驱动电路以及上位机软件组成。
其中系统的硬件环节有转速检测环节和电机的驱动电路环节;
而系统的软件环节有单片机控制环节和上位机软件。
下面对系统的硬件设计和软件设计分别进行介绍。
3.1硬件设计
硬件设计首先要确定系统的输入输出的,然后进行各个功能子系统的设计。
3.1.1输入与输出(确定输入、输出性质、数量和指标要求)
在电机转速控制系统中首先确定系统的输入与输出。
把该系统分为电源电压转换电路、最小系统电路(单片机控制系统)、电机转速检测电路和电机驱动电路这四个子系统。
其各个子系统的输入输出变量如下表所示。
输入变量
输出变量
电源电压转换电路
12V
5V
最小系统
(单片机控制部分)
5V电源
转速检测的脉冲信号
PWM波形电压信号
串口输入信号
电机控制的使能信号
电机转速检测电路
电机驱动电路
12V电源
电机电压信号
表3-1电机转速控制系统的输入输出变量
3.1.2功能划分(以框图形式表示)
硬件设计按功能划分为四个部分:
电源电压转换电路、最小系统电路(单片机控制系统)、电机转速检测电路和电机驱动电路。
如图3-1所示。
图3-1下位机功能划分示意图
3.1.3电源电压转换电路(元器件选型、硬件原理及功能描述)
电源电压转换电路主要是为电机转速检测电路提供+5V的电源,电压转换电路主要由LM7805电压转换芯片组成。
此电路产生的+5V电源电压稳定,可靠性高。
此电路还包括系统上电指示LED,通过它可以很方便的判断系统是否上电。
图3-2电源电压转换电路
3.1.4最小系统电路(单片机控制系统)
最小系统电路(如图3-3所示)包括:
STC12C5A08S2芯片、MAX232电平转换芯片、振荡电路、电源单元、输入输出部分、通信电路及复位电路。
芯片选择宏晶所产的STC12C5A08S2型号的单片机,其功能齐全,性价比高,最重要的是,是在采用的是增强型51内核,指令兼容51,而且有ISP下载功能,只需用串口通信电路就能下载程序,免去了编程器。
MAX232电平转换芯片是RS-232标准串口设计的单电源电平转换芯片,将电脑用的RS-232串口电平和单片机的TTL电平相互转化的。
在最小系统电路(如图3-3所示)中,该最小系统集成直流电源模块(采用USB供电,直流5V电源),USB模块,串口通讯模块,STC12C5A16S2单片机,22.1184MHz晶振时序模块等。
图3-3单片机最小控制系统
3.1.5电机转速检测电路
电机转速检测电路(如图3-4所示)选择价格便宜、功能单一的光电开关(GK105A)来实现对转速的检测。
图3-4所示电路中,R10起限流电阻的作用,当有光直射回来时,光电开关中的三极管导通,R11的下端变为低电平;
当没有光直射回来时,光电开关中的三极管不导通,R11的下端为高电平。
图3-4电机转速检测电路
3.1.4电机驱动电路
直流电机驱动电路的组成如图3-5所示,电机驱动电路主要由L298N驱动芯片组成。
图3-5电机驱动电路
L298N是一款单片集成的高电压、高电流、双路全桥式电机驱动,设计用于连接标准TTL逻辑电平,驱动电感负载(诸如继电器、线圈、直流电机和步进电机)。
L298N可以用来驱动两个电机,但是在本设计中我们只用来驱动一个普通的直流电机。
INPUT1输入PWM波,INPUT2接低电平,使能端ENABLEA输入高低电平,来驱动电机。
其控制逻辑表如下:
ENA
IN1
IN2
电机运转情况
H
L
正转
反转
刹停
X
停止
表3-2L298N逻辑关系
由表3-2可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。
同为低电平电机停止,同为高电平电机刹停。
3.1.6系统原理图及元器件清单
系统的原理图就是由以上的电源电压转换电路、最小系统电路(单片机控制系统)、电机转速检测电路和电机驱动电路这四部分组成,各个部分的原理图见图3-2到图3-5所示。
电机转速控制系统的元器件清单如下表3-3所示:
表3-3电机转速控制系统的元器件清单
3.2软件设计
电机转速控制系统的软件设计分为下位机控制程序设计、上位机显示程序设计和传输的数据格式设计。
3.2.1下位机控制程序设计(以框图形式表示,确定主程序框架)
单片机控制软件的功能主要有:
单片机的初始化、计算电机的实时转速、发送实时速度给上位机、根据PID参数计算输入信号的占空比、PCA0模块输出PWM波形、定时器中断、PCA1模块的捕获电平上升沿中断、串口中断。
其流程图见图3-4所示。
图3-4单片机控制流程
图3-5是下位机定时器中断流程图,图3-6是PCA1模块的捕获电平上升沿中断服务流程图。
图3-7是下位机串口服务程序流程图。
图3-5下位机定时器中断服务程序流程图
图3-6PCA1模块的捕获电平上升沿中断服务程序流程图
图3-7下位机串口服务程序流程图
3.2.2上位机显示程序设计
上位机的软件流程有:
初始化界面及其参数、设置电机的转速、设置PID参数、串口中断。
其流程如图3-8所示。
图3-8上位机软件流程图
上位机的界面是用VC6.0编写的。
界面如图3-9所示。
图3-9VC6.0编写的上位机界面
图3-10是上位机串口中断服务程序流程图。
图3-10上位机串口中断服务程序流程图
3.2.3数据传输格式设计
在电机转速控制系统中涉及到上位机向单片机发送设置的电机转速、设置PID参数,下位机要向上位机发送电机的实时转速,这就要设计他们之间的数据传输格式。
下位机通过串口向上位机发送的数据只有电机的实时转速,所以设计其格式为四个字节的数据包。
其中第一个字节发送0xFF,数据发送的起始字节;
第二位是电机实时转速的高位字节;
第三位是电机实时转速的低位字节;
第四位发送的数据是0x00,数据发送的终止字节。
其结构如图3-11所示。
0xFF
转速的高字节
转速的低字节
0x00
图3-11下位机向上位机传输数据格式
上位机通过串口向下位机发送的数据有:
电机的启动、电机的停止、PID的比例系数Kp、PID的积分系数Ki、PID的微分系数Kd、设置电机的转速,所设计的发送数据包为五个字节,其中第一个字节是数据的起始字节0xFF;
第二个字节是所要设置数据的标号(电机启动——0x01,电机停止——0x02,比例系数Kp——0x03,积分系数Ki——0x04,微分系数Kd——0x05,电机的转速——0x06);
第三位是所要发送数据的高字节,第四位是数据的低字节;
第五位是停止字节0x00。
其结构如图3-12所示。
数据标号
数据的高字节
数据的低字节
图3-12上位机向下位机发送数据格式
4调试与测试
在设计了电机转速控制系统的硬件和软件之后,就可以编写软件程序和焊接电路板。
有了硬件电路板,就能够进行软件调试。
4.1调试(主要控制参数或策略确定方法、实验结果、出现问题与解决方法)
在电机转速控制系统中,PID的参数影响着控制精度,对于该系统,我选择的PID参数如下所示:
PID算法中的参数Kp是误差放大倍数,Kp加大,使系统的动作灵敏,速度加快,稳态误差减小;
Kp偏大,振荡次数加多,调节时间加长;
Kp太大时,系统会趋于不稳定;
Kp太小,又会使系统的动作缓慢。
经过反复试验,我的Kp选为15-30。
Ki是调整控制精度的,Ki太小,系统超调量大,增大Ki可以消除稳态误差,提高系统的控制精度。
经调试,Ki选为20左右。
Kd可以改善动态特性,Kd只有取得合适,才能使超调量较小,减短调节时间。
本系统的Kd选为20左右。
在系统的调试过程中,遇到了许多的问题,例如:
(1)板子连接好后,单片机的输出电平不一致,解决方法是将单片机的地线和12V的外接电源的地线接到一起,达到公地的目的。
(2)串口发送数据与接收数据的不一致,在发现问题之后,设置断点,查看发送数据与接收数据,发现问题出现在自己设置的数据类上面,修改数据类型之后,串口发送数据正确。
(3)还有就是协议的问题,没有设置好,导致发送的数据无法接收,最后完善自己以前的协议内容,数据发送与接受正常,满足自己的传输要求。
4.2测试(测试内容及结果)
在调试完程序之后,基本保证程序能够正常的完成所要求的基本功能之后,然后将程序下载到单片机里,用串口和PC机相连,联调程序。
基本上能够使电机的转速在设定的范围内。
在设置电机转速在1300r/min时,控制效果如图4-1所示。
当设置为2000r/min时,控制效果如图4-2所示。
当设置为3000r/min时,控制效果如图4-3所示。
当设置为4000r/min时,控制效果如图4-4所示。
当设置为45000r/min时,控制效果如图4-5所示。
图4-1在设置电机转速在1300r/min时,控制效果图
图4-2在设置电机转速在2000r/min时,控制效果图
图4-3在设置电机转速在3000r/min时,控制效果图
图4-4在设置电机转速在4000r/min时,控制效果图
图4-5在设置电机转速在4500r/min时,控制效果图
5结论(是否达到系统设计目标、存在问题及原因)
本设计题目为电机转速控制系统,速度要求:
1300——4500r/min,控制普通直流电机旋转,光电传感器检测电机的转速,具有速度设置功能。
经过认真学习和努力,最终在老师和同学的帮助下,实现了对直流电机转速的控制:
在上位机界面中,输入电机转速,发送给单片机,由单片机经驱动电路,驱动直流电机运转,用光电开关检测电机转速,反馈回单片机,经PID调节使电机实际运转速度逼近设定速度,并将反馈速度发送到上位机进行显示。
经过一段时间的调试,实现的电机转速控制,误差在30r/min的范围内,基本实现设计要求。
这个误差是因为检测电路的测量精度引起的(检测电路能够测量的最小速度变化是30r/min)。
如果增大风叶的齿数,可以减小实验的误差。
在本次的系统设计中,我了解到了如何进行硬件设计,掌握了AltiumDesigner10的使用方法并利用其画原理图,掌握了单片机的编程软件Keil的使用方法,熟练地使用Keil给单片机编写程序并调试程序,虽然在调试的过程中遇到了比较多的问题,但是在自己不懈的努力和朋友的帮助下,最终将其一一解决。
通过这次的系统设计,我将书本上学习到的控制方法运用到了实际的系统之中,体会到了PID调节在系统控制中的作用,并深刻的认识到PID的三个参数对于系统的性能的影响。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC12C5A16S2 单片机 PWM 电机 调速 系统