直流电机转速测量与控制系统的设计概要.docx
- 文档编号:29355472
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:30
- 大小:330.86KB
直流电机转速测量与控制系统的设计概要.docx
《直流电机转速测量与控制系统的设计概要.docx》由会员分享,可在线阅读,更多相关《直流电机转速测量与控制系统的设计概要.docx(30页珍藏版)》请在冰豆网上搜索。
直流电机转速测量与控制系统的设计概要
目录
1.《智能仪器综合设计》课程设计任务书2
1.1课程设计任务3
1.2课程设计目的3
1.3课程设计要求3
1.4课程设计内容3
1.5课程设计报告要求3
1.6课程设计进度安排4
1.7课程设计考核办法4
2.设计方案5
2.1总体方案5
2.2PID算法5
2.2.1PID控制的基本组成5
2.2.2PID控制中的主要技术指标分析6
2.3PWM脉冲控制8
3.硬件模块9
3.1主体模块9
3.2显示与键盘模块10
3.3转动源模块12
3.4复位电路13
4.软件模块14
4.1主程序流程图14
4.2初始化模块14
4.3中断模块16
5.收获与体会18
参考文献19
附录20
1.《智能仪器综合设计》课程设计任务书
题目:
直流电机转速测量与控制系统的设计
1.1课程设计任务
日常生活和生产中,需要对各种电机的转速进行测量。
该综合设计要求完成基于AT89C52单片机的直流电机转速测量与控制系统的设计。
采用光电式传感器进行信号的转换,再经过整形、放大等电路处理,将信号送入单片机进行数据处理,能够对设定的电机转速进行自动PID调节,自动调节的效果可通过LabVIEW软件编写的上位机进行观察和调整。
1.2课程设计目的
通过本次课程设计使学生掌握:
1)微机接口技术与I/O通道电路的设计及实现方法;2)控制程序的设计及实现方法;3)微机控制系统的实际调试技巧。
从而提高学生对微机实时控制系统的设计和调试能力。
1.3课程设计要求
1、该装置要求在智能仪器综合实验平台上完成软件编程与实现。
2、用数码管来分别显示工作状态、设定速度和实际速度。
3、用3只按钮来分别作为开机/关机键、速度设定上升键和下降键。
4、速度设定范围500~3000转/分,在某个速度设置点,要求使用PID控制。
1.4课程设计内容
1、硬件电路原理图;
2、软件流程图及程序;
3、实物调试及结果。
1.5课程设计报告要求
报告中提供如下内容:
1、目录
2、正文
(1)课程设计任务书;
(2)总体设计方案;
(3)硬件原理图(protel软件);
(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%。
2.设计方案
2.1总体方案
本次课程任务使用改变PWM脉冲控制直流电机转速。
按动按键对MCU设定值,将产生的PWM波输送给电机驱动部分,转动源模块开始工作,光电转速传感器测得代表直流电动机速度的脉冲信号并将其反馈给MCU,MCU在比较转速设定值和实际值的基础上,以PID控制算法来调节PWM波,从而对电动机速度进行控制,LED用于显示转速的设定值和实际值。
图2.1方案流程图
2.2PID算法
PID控制的基本原理
2.2.1PID控制的基本组成
PID控制由反馈系统偏差的比例(P)、积分(I)和微分(D)的线性组合而成,这3种基本控制规律各具特点。
P比例控制:
比例控制器在控制输入信号e(t)变化时,只改变信号的幅值而不改变信号的相位,采用比例控制可以提高系统的开环增益。
该控制为主要控制部分。
D微分控制:
微分控制器对输入信号取微分或差分,微分反映的是系统的变化率,因此微分控制是一种超前预测性调节,可以预测系统的变化,增大系统的阻尼,提高相角裕度起到改善系统性能的作用。
但是,微分对干扰也有很大的放大作用,过大的微分会使系统震荡加剧。
I积分控制:
积分是一种累加作用,它记录了系统变化的历史,因此,积分控制反映的是控制中历史对当前系统的作用。
积分控制往系统中加入了零极点,可以提高系统的型别(控制系统型别即为开环传递函数的零极点的重数,它表争了系统跟随输入信号的能力),消除静差,提高系统的无差度,但会使系统的震荡加剧,超调增大,动态性能降低,故一般不单独使用,而是与PD控制相结合。
PID的复合控制:
综合以上几种控制规律的优点,使系统同时获得很好的动态和稳态性能。
PID控制规律的基本输入/输出关系可用微分方程表示:
(1)
式中,e(t)为控制器的输入偏差信号;
为比例控制增益;
为积分时间常数;
为微分时间常数。
相应的传递函数为:
(2)
若
则式
(2)还可以写成
(3)
式中
,
。
由式(3)可见,PID控制器向原系统增加了一个零极点,从而使系统从0型提高到1型,还提供两个负实零点,同时提高系统稳态性能和动态性能。
PID控制器可由模拟执行元件或具有运算功能的数字器件实现。
数字PID的实现需要式
(1)进行离散化,取采样周期为T,改写式(3),得
(4)
式中,
,
为控制器输出的控制量,式中(4)即为数字PID控制器的直接算法。
也可取其递推算法;
(5)
式中,
,
,
的选取一般取决于经验以及实验现场的调整。
2.2.2PID控制中的主要技术指标分析
⏹动态指标
超调δ%,单位阶跃响应的最大值
,超过稳态值h(∞)的百分比,即
(6)
若
则响应无超调。
超调量反映的是系统的振荡性.
调节时间、单位阶跃响应h(t)与稳态值h(∞)之间的偏差达到规定的允许范围(±2%或±5%),且以后不再超出此范围的最短时间。
调节时间描述系统响应的快慢。
一个好的控制系统应该有尽可能小的超调和尽可能短的调节时间,且超调量与调节时间在很多情况下是矛盾的:
小的超调量要求系统有大的阻尼系数,而阻尼系数过大又会使响应速度下降。
不同的系统对两个指标的要求有所不同。
通过选择适当的控制方法可以使这两个指标达到平衡,使系统的整体性能达到最优。
在PID控制中,加入微分项就是为了增大系统的阻尼,同时由于微分控制是一种超前控制,因此,会加快响应速度。
⏹稳态误差
稳态误差由系统的结构、输入作用类型决定。
定义
为系统的稳态误差。
为了提高系统的无差度,可以提高系统的型别(加入积分项)和增大系统的开环放大系数的措施。
需要注意的是:
积分级数太多和开环放大系数过大都会造成系统不稳定,因此,要合理选择。
图2.2和图2.3、图2.4、图2.5、图2.6为理想情况和实际情况下常遇到的PID控制的阶跃响应曲线
图2.2理想响应曲线图2.3无超调量
图2.4超调量偏大图2.5积分时间太长
图2.6超调量偏大积分时间偏小
2.3PWM脉冲控制
在采样控制理论中有一个重要的结论:
冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。
冲量即指窄脉冲的面积。
这里所说的效果基本相同,是指环节的输出响应波形基本相同。
如果把各输出波形用傅立叶变换分析,则其低频段非常接近,仅在高频段略有差异。
例如图2.7中a、b、c所示的三个窄脉冲形状不同,其中图2.7的a为矩形脉冲,图2.7的b为三角脉冲,图2.7的c为正弦半波脉冲,但它们的面积(即冲量)都等于1,那么,当它们分别加在具有惯性的同一环节上时,其输出响应基本相同。
图2.7三个脉冲形状
直流电动机的转速调节主要有三种方法:
调节电枢供电的电压、减弱励磁磁通和改变电枢回路电阻。
由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可获得平稳的直流电流,低速特性好、稳速精度高、调速范围宽。
同样,由于开关频率高,快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,因此主电路损耗小、装置效率高;直流电源采用不可控整流时,电网功率因数比相控整流器高,故采用。
3.硬件模块
3.1主体模块
主体模块使用AT89C51单片机
图3.1AT89C51单片机
其组成有一个8位CPU、一个偏内振荡器及时钟电、128字节的片内数据存储器、4KB的片内程序存储器、可寻址的64KB字节外部数据存储器和64KB字节外部程序存储器的控制电路、21字节的专用寄存器、4个8位并行I/O接口、一个全双工的串行口、2个16位的定时器/计数器和一个布尔处理机。
在MCS-51系列单片机中具有5个中断源和2个中断优先级,片内采用单一总线结构连接。
51单片机优点众多性价比优异;集成度高、体积小、有很高的可靠性;控制功能强;扩展性能好,非常容易构成各种应用系统。
3.2显示与键盘模块
显示与键盘模块使用按键与数码管实现,P1.0、P1.1分别实现减速与加速控制,P1.7实现设置转速,数码管实现实时显示转速。
图3.2按键连接
图3.3数码管显示
3.3转动源模块
设计采用了红外光电传感器,进行非接触式检测。
当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平,而当没有物体挡在中间时则输出为高电平,从而形成一个脉冲。
系统在光电传感器收发端间加入电动机,并在电动机的转轴上安装一转盘。
在这个转盘的边沿处挖出若干个圆形过孔,把传感器的检测部分放在圆孔的圆心位置。
每当转盘随着后轮旋转的时候,传感器将向外输出若干个脉冲。
把这些脉冲通过一系列的波形整形成单片机可以识别的TTL电平,即可算出轮子即时的转速。
转盘的圆孔的个数决定了测量的精度,个数越多,精度越高。
这样就可以在单位时间内尽可能多地得到脉冲数,从而避免了因为两个过孔之间的距离过大,而正好在过孔之间或者是在下个过孔之前停止了,造成较大的误差。
设计中转盘的圆孔的实际个数受到技术的限制。
为了达到预定的效果设计在转盘过孔的设计上采用6个过孔,从而留下了6个同等的间距。
这样在以后的软件设计中能够较为方便的计算出脉冲频率。
脉冲发生源的硬件结构图如图3.1所示.。
图3.4脉冲发生源硬件结构图(左为正视图,右为侧视图)
3.4复位电路
复位是单片机的初始化操作,以便使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。
除了进入系统的正常初始化之外,当单片机系统在运行出错或操作错误使系统处于思索状态时,也可按复位键重新启动。
89C51单片机复位信号的输入端是RST引脚,高电平有效。
RST端的外部复位电路有两种操作方式:
上电自动复位和按键手动复位。
按键手动复位有电平方式和脉冲方式两种。
图3.5复位电路
单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。
4.软件模块
4.1主程序流程图
在一个完整的系统中,只有硬件部分是不能完成相应设计任务的,所以在该系统中软件部分是非常重要的,按照要求和系统运行过程设计出主程序流程如图4.1所示。
图4.1主程序流程图
4.2初始化模块
AT89C52有两个定时器/计数器T0和T1,每个定时器/计数器均可设置成为16位,也可以设置成为13位进行定时或计数。
计数器的功能是对T0或T1外来脉冲的进行计数,外部输入脉冲负跳变时,计数器进行加1。
定时功能是通过计数器的计数来实现的,每个机器周期产生1个计数脉冲,即每个机器周期计数器加1,因此定时时间等于计数个数乘以机器周期。
定时器工作时,每接收到1个计数脉冲(或机器周期)则在设定的初值基础上自动加1,当所有位都位1时,再加1就会产生溢出,将向CPU提出定时器溢出中断身请。
当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定时值和计数值将不同,从而可以适应不同的定时或计数控制。
定时器有4种工作方式:
方式0、方式1、方式2和方式3,在此对工作方式不做具体介绍。
工作方式寄存器TMOD的设定:
GATE
C/T
M1
M0
GATE
C/T
M1
M0
TMOD各位的含义如下:
GATE:
门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。
C/T:
定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式.M1、M0:
为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如下表3-1:
M1M0=00为方式0;M1M0=01为方式1;
表3-1M1、M0为工作方式选择位
M0
M1
工作方式
方式说明
0
0
0
13位定时/计数器
0
1
1
16位定时/计数器
1
0
2
8位自动重置定时/计数器
1
1
3
两个8位定时/计数器(只有T0有)
图4.2定时计数子程序流程图
对定时器T0与计数器T1的初始化程序如下
voidtime01_initiat()
{
TMOD=0X11;//计数器0和定时器1
TL0=0Xfc;
TH0=0X4b;//计数器0赋初值
TH1=0X4C;
TL1=0X00;//定时器1赋初值
EA=1;//所有中断开放
PT0=1;//定时器T0中断为高优先级
ET0=1;//允许T0溢出中断
ET1=1;//允许T1溢出中断
TR0=0;//
TR1=0;//
IT0=1;//跳沿触发方式
EX0=0;//禁止外部中断0中断
4.3中断模块
AT89C52单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄存器IE的各位来控制的。
中断允许寄存器IE的字节地址为A8H,可以进行位寻址.
表4-2中断位寻址表
IE
D7
D6
D5
D4
D3
D2
D1
D0
(A8H)
EA
ET2
ES
E1
EX1
ET0
EX0
EA:
中断允许总控位。
EA=0,屏蔽所有的中断请求;EA=1,开放中断。
ET2:
定时器/计数器T2的溢出中断允许位
ES:
串行口中断允许位。
ET1:
定时器/计数器T1的溢出中断允许位。
EX1:
外部中断INT1的中断允许位。
ET0:
定时器/计数器T0的溢出中断允许位。
EX0:
外部中断INT0的中断允许位。
4.3显示模块
本系统采用动态数码管显示,所以程序如下:
voiddisplay_num4(uintnum)
{
uintqian;
uintbai;
uintshi;
uintge;//定义qian,bai,shi,ge
qian=num/1000;
if(qian==0)qian=10;
display_num1(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)shi=10;
display_num1(shi,2);//十位
ge=num%10;
display_num1(ge,1);//个位
}
图4.3显示程序流程图
5.收获与体会
经过了一番努力,在老师和同学的帮助下,我顺利结束了此次的课程设计,在这个过程中,我了解了许多,感悟了许多。
实践是检验真理的唯一标准,经过这次作品设计,我深深理解了这句话,在经过了仿真与实物的运用后,单片机各个部分的功能显得明确而具体。
这在作品设计之前只知道概念的我看来简直不可思议,所以说,只有将理论与实际结合起来,才能让人映像深刻并真正理解。
这次实习是我学习生活中不可缺少的重要经历,其收获与意义可见一斑。
首先,我可以将自己所学的知识应用于实际的工作中,理论和实际是不可分的,在实践中学的知识得到了巩固,解决问题的能力也得到了锻炼,其次,本次实习开阔了我的视野,使我对法律在现实中的运作有所了解。
通过这次设计,我深刻理解到要做好一件事情,必须有系统的思维方式和方法,要有耐心和恒心去钻研努力,要善于运用资源丰富充实自己,要有整体的目光来看待事物,再从局部到整体慢慢实现,这样才会有效率。
参考文献
[1]刘金锟.先进PID控制MATLAB仿真(第2版)[M].北京:
电子工业出版社,2006.
[2]郑阿奇主编.MATLAB实用教程[M].北京:
电子工业出版社,2004.
[3]张思雨.预测控制算法和PID控制算法[J],燕山大学工学硕士学位论文,2003.
[4]蔡美琴等.MCS-51系列单片机系统及其应用第二版,高等教育出版社.
[5]李全利.单片机原理及其接口技术,高等教育出版社.
[6]刘文定,王东林.过程控制系统的MATLAB仿真,机械工业出版社.
附录
#include"reg52.h"
#include"math.h"
#defineucharunsignedchar
#defineuintunsignedint
ucharcodexianshi[11]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xbE,0xE0,0xFE,0xF6,0x00};
sbitPWM=P1^7;
sbitkey1=P1^0;
sbitkey2=P1^1;
sbitkey3=P1^2;
uintwide=50;//脉宽计数
uintt1=0;//低电平脉宽
uintt2=0;//一个周期
uinttime_low=0;
uinttime_high=100;
bithigh_flag=0;
bitlow_flag=0;
bitstate_flag=0;
uintset_count=50;//设定转速值
uintrun_count=0;//实际频率的读取
uintstop_count=0;//电机转速存储变量
uinttime=0;
inten=0,en_1=0,en_2=0;//定义三个时刻的误差存储变量
floata0=1.7,a1=0.3,a2=0.002,un=0;//定义PID计算参公式的参数
voiddelay1_ms(uinttime);
voiddelay(uinttime);
voiddisplay_num1(uintdat,ucharnum1);
voiddisplay_num4(uintnum);
voidtime01_initiat(void);
voidkey_precess(void);
voidpid(void);
voidmain()
{
time01_initiat();//初始化定时器0和定时器1
while
(1)
{
key_precess();//键盘扫描函数
}
}
//1ms延时函数
voiddelay1_ms(uinttime)
{
uinti,j;
for(i=0;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 直流电机 转速 测量 控制系统 设计 概要
![提示](https://static.bdocx.com/images/bang_tan.gif)