电机与拖动系统课程设计复习过程.docx
《电机与拖动系统课程设计复习过程.docx》由会员分享,可在线阅读,更多相关《电机与拖动系统课程设计复习过程.docx(17页珍藏版)》请在冰豆网上搜索。
电机与拖动系统课程设计复习过程
电机与拖动系统课程设计
课程设计说明书
设计名称:
题目:
学生姓名:
专业:
班级:
学号:
指导教师:
日期:
年月日
课程设计任务书
专业年级班
一、设计题目
微型直流电动机的数字控制器设计
二、主要内容和具体要求
1、设置有正转、反转、加速、减速按键;
2、显示马达的运行状态(正反转、停止),显示转速;
3、测量马达的反电动势系数;
4、测量马达的力矩系数;
5、创建马达的数学模型;
6、实现比例控制;
7、实现比例积分控制。
三、进度安排
6月16~17号:
了解任务要求,确定具体方案
6月18~19号:
电机控制程序设计
6月20~21号:
键盘电路、lcd12864液晶屏子程序设计
6月22~24号:
上位机通信程序设计
6月25~26号:
电机PI控制设计
四、完成后应上交的材料
直流电机数字控制器论文
五、总评成绩
姓名-学号
成绩
分组序号
同组人员(签名)
本人贡献排名
指导教师(签名)
指导教师签名日期年月日
系主任审核日期年月日
摘要
本文主要设计一个基于STC12C5A60S2单片机的直流电机PWM控制系统。
PWM控制提高了调速范围,提高了调速精度,改善了快速性能、功率和功率因数。
系统在设计中被控对象采用5V的直流电机,以MCS-51单片机为控制核心,采用LCD12864液晶作为显示元件,进行软硬件的设计。
硬件电路由protel设计制作,主要设计了液晶显示电路、键盘控制电路、复位电路、测速电路、驱动电路和测压电路。
软件设计在Keil开发平台用C语言编写,程序采用模块化设计方案,包括液初始化程序、晶显示程序、键盘控制程序。
本系统PWM控制直流电机采用调压调速的方法,整体设计包括软件和硬件两个部分。
通过利用单片机产生PWM控制信号控制直流电机,详细介绍脉宽调制(PWM)控制原理,直流电机的工作原理和数学模型以及用H型桥电路基本原理设计的驱动电路。
通过硬件电路的模拟情况,说明系统运行正常,各个功能模块实现是可行的,控制精度比较高,能够满足系统的基本要求。
关键词:
单片机PWM脉宽调制控制直流电机L298N驱动
1、设计任务分析
本课题设计主要的目的是为了能够准确及时的控制直流电动机的正转、反转、停止、加速和减速功能可以准确调节控制直流电机的转速。
设计要求中央控制芯片具有定时计数的功能,一定的程序存储空间,还要有足够的IO外接端口。
由于本设计以LCD12864作为人机交流的显示界面,所以要求中央控制芯片具有一定的电流驱动能力。
LCD、电机控制信号、LED指示灯、独立按钮,电压采集这些都需要占用大量IO接口,所以要求中央控制芯片要有足够多的外部接口以满足需要。
本设计要求能准确控制电机的转向以及转速,所以要求电机的控制芯片就有较强的调速控制功能以及转向控制功能。
本设计要求所采用的的直流电机转速具有一定的可调空间以及足够的灵敏度。
2、总体方案设计
2.1系统控制方案选择
方案1:
采用STC公司的STC89C52RC。
此单片机价格低,资源多,高性价比,应用广泛,无论是从内部构造,还是编程方面,51系列单片机都相对简单容易掌握和使用。
方案2:
STC12C5A60S2不但和8051指令、管脚完全兼容,而且速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S)。
STC系列单片机支持串口程序烧写,对开发设备的要求很低,开发时间也大大缩短。
由于本设计需要检测电机电路的电流,而且要与上位机通信,方案2的stc12C5A60S2芯片具有2个串口,内部集成8路高速10位A/D转换(250K/S),能更好地实现我们需要的功能,所以我们选取方案2,即STC12C5A60S2芯片作为我们的控制芯片。
以下是STC12C5A60S2芯片的功能
1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051; 2.工作电压:
STC12C5A60S2系列工作电压:
5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:
3.6V-2.2V(3V单片机);
3.工作频率范围:
0 - 35MHz,相当于普通8051的 0~420MHz;
4.用户应用程序空间8K /16K / 20K / 32K / 40K
/ 48K/ 52K / 60K / 62K字节;
5.片上集成1280字节RAM;
6.通用I/O口(36/40/44个),复位后为:
准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:
准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55Ma;
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;
8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM);
9. 看门狗;
10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地);
11.外部掉电检测电路:
在P4.6口有一个低压门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%;
12.时钟源:
外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:
5.0V单片机为:
11MHz~15.5MHz,3.3V单片机为:
8MHz~12MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准;
13.共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器;
14. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟;
15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块, INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3);
16. PWM(2路)/PCA(可编程计数器阵列,2路)
——也可用来当2路D/A使用
——也可用来再实现2个定时器
——也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持);
17.A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)
18.通用全双工异步串行口(UART),由STC12
系列是高速的8051,可再用定时器或PCA软件实现多串口;
19.STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3);
20.工作温度范围:
-40-+85℃(工业级)/0-75℃(商业级)21.封装:
PDIP-40,LQFP-44,LQFP-48I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。
STC12C5A60S2的引脚如图2-1所示
图2-1
最小系统包括系统时钟电路,复位电路、单片机芯片引脚借口,保证了单片机能够正常的工作。
如图2-2所示
图2-2
2.2电机驱动模块
用普通直流电机。
直流电机运转平稳精度有一定的保证。
直流电机控制的精确度虽然没有步进电机那样高但完全可以满足本题目的要求。
通过单片机的PWM输出同样可以控制直流电机的旋转速度实现电动车的速度控制。
并且直流电机相对于步进电机价格经济。
采用电机驱动芯片L298N。
L298N为单块集成电路高电压、高电流、四通道驱动,可直接的对电机进行控制,无须隔离电路。
通过单片机的I/O输入改变芯片控制端的电平即可以对电机进行正反转、停止的操作,非常方便,亦能满足直流减速电机的大电流要求。
调试时在依照芯片手册,用程序输入对应的码值,能够实现对应的动作。
图2-3
图2-4
本项目驱动直流电机,实现电机的正反转与测速和遥控。
输入输出逻辑表真值表2-5
通道1
通道2
输入
输出控制电机1
输入
输出控制电机2
EnA
In1
In2
OUT1
OUT2
转向
EnB
In3
In4
OUT3
OUT4
转向
1
0
0
0
0
停止
1
0
0
0
0
停止
0
1
0
1
反传
0
1
0
1
反传
1
0
1
0
正转
1
0
1
0
正转
1
1
0
0
停止
1
1
1
1
停止
0
X
X
0
0
停止
0
X
X
0
0
停止
其中“0”为低电平;“1”为高电平;“X”为任何状态。
表2-5L298N输入输出逻辑真值表
2.3显示模块
显示模块我使用了lcd12864液晶屏。
带中文字库的12864是一种具有4位/8位并行、2线或3线串行多种界面方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的界面方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
图2-6LCD12864与单片机连线图
2.3.1上位机通信
另外,我们也使用VB软件做了上位机与单片机通信。
通过上位机界面更好地实现人机沟通。
VisualBasic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。
从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。
它源自于BASIC编程语言。
VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。
程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
图2-7上位机界面
2.4测压模块
由于我们采用的系统芯片内部集成AD转换功能,所以我们直接通过在与驱动模块moto串联电阻,由P1.7口来检测电机的电压。
图2-8测压电路
2.5按键模块
键盘模块中,我采用独立式按键电路。
特点:
1)每个键独立地接入一根数据输入线。
2)平时所有的数据输入线都连接成高电平;
3)当任何一个按键压下时,与之相连的数据输入线被拉成低电平。
4)要判断是否有键按下,只要位处理指令即可。
独立连接式键盘优点是结构简单、使用方便,但随着键数的增多,所占用的IO口线也增加。
该系统的键盘由4个独立键盘构成。
键盘的一脚接在单片机的P1.0至P1.4脚上,另外一脚接在电源地上,当有键盘按下时对应的键盘就会有一低电平送到单片机内部。
为消除触点式按键开关的机械抖动,单片机内部有程序进行消抖处理,然后确定那一个键盘被按下后来执行程序完成该系统的指定工作。
按键键盘原理图如图所示:
图2-9按键图
2.6测速模块
我们使用光电编码器来检测电机的转速。
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。
这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。
光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。
由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。
图2-10测速模块
3、系统软件设计
3.1系统流程
图3-1
3.2显示模块软件设计
3.2.1LCD12864显示程序设计
voidlcd_init()
{
LCD_PSB=1;//并口方式
write_com(0x30);//基本指令操作
write_com(0x0C);//显示开,关光标
write_com(0x01);//清除LCD的显示内容
}
通过初始化程序使lcd12864开始工作
3.2.2上位机通信显示
下面是VB某段程序:
图3-2
3.3按键驱动程序设计
voidwork()//电机工作状态
{
if(zz==0)//正转
{
delay(10);
if(zz==0)
{
t=1;t2=1;
}
}
if(fz==0)//反转
{
delay(10);
if(fz==0)
{
t=2;t2=2;
}
}
if(jias==0)//加速
{
delay(10);
if(jias==0)
t=3;
}
if(jians==0)//减速
{
delay(10);
if(jians==0)
{t=4;}
}
if(tz==0)//停
{
delay(10);
if(tz==0)
t=5;
}
switch(t)
{
case1:
zhengzhuan();break;
case2:
fanzhuan();break;
case3:
jiasu();break;
case4:
jiansu();break;
case5:
stop();break;
default:
t=0;
}
}
3.4测压程序设计
我们采用系统芯片内部AD转换模块,在单片机P1.7口检测电机电压,然后通过计算得出电机电枢电流。
程序计算公式:
VAL=ADC_RES*4+ADC_RESL;//AD转换值VOL=(VAL*4.78)/1024;//AD转换的测得值
3.5测速模块程序设计
通过外部中断0检测光电编码器的高低电平变化,从而计算出转速脉冲,通过公式得出转速。
每秒计数一次脉冲数w2,电机每转一圈就有10个脉冲,所以转速
N=w2*60/10=w2*6//转速r/min
3.6上位机数字PI控制设计
使用逼近算法,每隔一秒比较一次测得转速值与输入转速值的大小,然后发出加速或减速指令给单片机,让单片机控制电机的转速追随输入值。
3.7马达的反电动势系数和力矩系数
数据:
电压/V
4.6
3.4
2.4
1.6
转速/R/MIN
720
400
250
100
图3-3
反电动势系数Ce=[(3.4-2.4)/(400-250)+(4.6-1.6)/(720-100)]/2
=0.0058V/rpm
力矩系数CM=9.55*Ce=9.55*0.0058=0.055V/rpm
3.8马达数学模型
电机动态结构图如下
图3-4
其开环传递函数是
(3-1)
设
=0,从给定输入作用上看,闭环传递函数是
(3-2)
4、心得体会
经过两周的课程设计,有很多新的感受和体会。
这次采用的STC12C5A60S2单片机,是我不熟悉的芯片,我一边翻阅芯片资料一边设计电机系统,虽然开始有点痛苦,可是其中的乐趣确实让我很享受。
这次液晶显示屏采用了LCD12864,并且使用了上位机通信,让我在更加深入了解单片机工作原理的同时,也学到了一点VB软件程序设计的知识。
当然,在这次课程设计中也出现了不少问题。
我们采取了模块化编程解决了多文件系统问题,在变量用于多个文件的问题上,我们采取了头文件声明全局变量的方法。
这次课程设计,既是对以往所学的单片机编程知识和电力拖动自动控制系统的一次总结,也是一次考验!
5、参考文献
[1]李庆亮.C语言程序设计实用教程.机械工业出版社
[2]王新颖.单片机原理及应用设计.北京大学出版社
[3]陈伯时.电力拖动自动控制系统——运动控制系统机械工业出版社
[4]王兆安.电力电子技术.机械工业出版社
[5]胡学钢.数据结构算法设计指导.北京:
清华大学出版社