项目八键盘控制电机方向和转速
【教学目标】
终极目标
能利用AT89S52单片机及独立键盘,通过C语言程序实现键盘控制步进电机和直流电机的速度和方向,完成单片机输入输出控制系统的设计、运行及调试。
促成目标
1. 了解单片机产品开发的流程;
2. 了解步进电机和直流电机结构和工作原理;
3. 掌握步进电机和直流电机速度、方向控制关键技术;
4. 掌握头文件的编写方法;
5. 掌握电机速度、方向控制的电路设计和编程的方法;
6. 会利用单片机I/O口实现电机速度、方向控制。
8.1 单片机产品开发
单片机产品开发是为完成某项任务而研制开发的单片机应用系统,是以单片机为核心,配以外围电路和软件,能实现确定任务、功能的实际应用系统。根据不同的用途和要求,单片机产品的系统配置及软件也有所不同,但它们的开发流程和方法大致相同。
8.1.1 单片机产品的结构
单片机产品是由硬件和软件组成。硬件是指单片机、扩展的存储器、输入输出设备等硬件部件组成的,软件是各种工作程序的总称。一个典型单片机产品结构如图8-1所示。
图8-1典型单片机产品结构
从图8-1不难看出单片机产品所需要的一般配置:
(1)单片机。如AT89C51、AT89C52、AT89S51以及AT89S52等单片机。
(2)人机交流设备。输入设备有键盘和按键,输出设备有数码管、液晶显示模块和指示灯等。
(3)信号采集的输入通道。如出租车的测距、测速装置,温控系统的温度传感器、洗衣机的水位测量等设备。
(4)向操作对象发出各种控制信号的输出通道。如空调启动压缩机的开关电路,控制彩电的频道切换、颜色、音量等的接口电路。
(5)与其他计算机系统或智能设备实现信息交换,还需配置通信接口电路。如RS-232、RS-485等。
(6)有时还需扩展外部RAM、EEPROM用于存放数据。如彩电遥控系统中存放系统数据的存储器。
8.1.2 单片机产品开发流程
1.确定功能技术指标
单片机产品开发流程是以确定产品的功能和技术指标开始的。
首先要细致分析、研究实际问题,明确各项任务与要求,综合考虑系统的先进性、可靠性、可维护性以及成本、经济效益,拟订出合理可行的技术性能指标。
2.单片机产品总体设计
在对单片机产品进行总体设计时,应根据单片机产品提出的各项技术性能指标,拟订出性价比最高的一套方案。
首先,应根据任务的繁杂程度和技术指标要求选择机型。选定机型后,再选择产品中要用到的其它外围元器件,如传感器、执行器件等。
在总体方案设计过程中,对软件和硬件进行分工是一个首要的环节。原则上,能够由软件来完成的任务就尽可能用软件来实现,以降低硬件成本,简化硬件结构。同时,还要求大致规定各接口电路的地址、软件的结构和功能、上下位机的通信协议、程序的驻留区域及工作缓冲区等。总体方案一旦确定,系统的大致规模及软件的基本框架就确定了。
3.硬件设计
硬件设计是指应用系统的电路设计,包括主机、控制电路、存储器、I/O接口、A/D和D/A转换电路等。硬件设计时,应考虑留有充分余量,电路设计力求正确无误,因为在系统调试中不易修改硬件结构。硬件电路设计时应注意以下几个问题:
(1)程序存储器
一般可选用容量较大的EPROM芯片,如27128(16 KB)、27256(32 KB)或27512(64 KB)等。尽量避免用小容量的芯片组合扩充成大容量的存储器,程序存储器容量大些,则编程空间宽裕些,价格相差也不会太多。
(2)数据存储器和I/O接口
根据系统功能的要求,如果需要扩展外部RAM或I/O口,那么RAM芯片可选用6116(2 KB)、6264(8 KB)或62256(32 KB),原则上应尽量减少芯片数量,使译码电路简单。
I/O接口芯片一般选用8155(带有256 KB静态RAM)或8255。这类芯片具有口线多、硬件逻辑简单等特点。若口线要求很少,且仅需要简单的输入或输出功能,则可用不可编程的TTL电路或CMOS电路。
A/D和D/A电路芯片主要根据精度、速度和价格等来选用,同时还要考虑与系统的连接是否方便。
(3)地址译码电路
通常采用全译码、部分译码或线选法,应考虑充分利用存储空间和简化硬件逻辑等方面的问题。MCS-51系统有充分的存储空间,包括64 KB程序存储器和64 KB数据存储器,所以在一般的控制应用系统中,主要是考虑简化硬件逻辑。当存储器和I/O芯片较多时,可选用专用译码器74S138或74LS139等。
(4)总线驱动能力
MCS-51系列单片机的外部扩展功能很强,但4个8位并行口的负载能力是有限的。P0口能驱动8个TTL电路,P1~P3口只能驱动4个TTL电路。
在实际应用中,这些端口的负载不应超过总负载能力的70%,以保证留有一定的余量。如果满载,会降低系统的抗干扰。在外接负载较多的情况下,如果负载是MOS芯片,因负载消耗电流很小,所以影响不大。如果驱动较多的TTL电路,则应采用总线驱动电路,以提高端口的驱动能力和系统的抗干扰能力。
数据总线宜采用双向8路三态缓冲器74LS245作为总线驱动器,地址和控制总线可采用单向8路三态缓冲区74LS244作为单向总线驱动器。
(5)系统速度匹配
MCS-51系列单片机时钟频率可在2~12 MHz之间任选。在不影响系统技术性能的前提下,时钟频率选择低一些为好,这样可降低系统中对元器件工作速度的要求,从而提高系统的可靠性。
4.抗干扰措施
单片机产品的工作环境往往都是具有多种干扰源的现场,抗干扰措施在单片机产品设计中显得尤为重要。
根据干扰源引入的途径,抗干扰措施可以从以下两个方面考虑。
(1)电源供电系统
为了克服电网以及来自系统内部其它部件的干扰,可采用隔离变压器、交流稳压、线滤波器、稳压电路各级滤波等防干扰措施。
(2)电路上的考虑
为了进一步提高系统的可靠性,在硬件电路设计时,应采取一系列防干扰措施:
1)大规模IC芯片电源供电端VCC都应加高频滤波电容,根据负载电流的情况,在各级供电节点还应加足够容量的退耦电容;
2)开关量I/O通道与外界的隔离可采用光电耦合器件,特别是与继电器、可控硅等连接的通道,一定要采用隔离措施;
3)可采用CMOS器件提高工作电压(+15 V),这样干扰门限也相应提高;
4)传感器后级的变送器尽量采用电流型传输方式,因电流型比电压型抗干扰能力强;
5)电路应有合理的布线及接地方式;
6)与环境干扰的隔离可采用屏蔽措施。
5.软件设计
单片机产品的软件设计是产品研制过程中任务最繁重的一项工作,难度也比较大。对于某些较复杂的应用系统,不仅要使用汇编语言来编程,有时还要使用高级语言。
单片机产品的软件主要包括两大部分:用于管理单片机工作的监控程序和用于执行实际具体任务的功能程序。
对于监控程序,应尽可能利用现成的监控程序。为了适应各种应用的需要,现代的单片
机开发系统的监控软件功能相当强,并附有丰富的实用子程序,可供用户直接调用,例如键盘管理程序、显示程序等。因此,在设计系统硬件逻辑和确定应用系统的操作方式时,就应充分考虑这一点。这样可大大减少软件设计的工作量,提高编程效率。
对于功能程序要根据产品的功能要求来编程序。例如,外部数据采集、控制算法的实现、外设驱动、故障处理及报警程序等。
单片机产品的软件设计千差万别,不存在统一模式。进行软设计时,尽可能采用模块化结构。根据系统软件的总体构思,按照先粗后细的方法,把整个系统软件划分成多个功能独立、大小适当的模块。应明确规定各模块的功能,尽量使每个模块功能单一,各模块间的接口信息简单、完备,接口关系统一,尽可能使各模块间的联系减少到最低限度。这样,各个模块可以分别独立设计、编制和调试,最后再将各个程序模块连接成一个完整的程序进行总调试。
6.单片机产品调试
单片机产品开发必须经过调试阶段,只有经过调试才能发现问题,改正错误,最终完成开发任务。实际上,对于较复杂的程序,大多数情况下都不可能一次性就调试成功,即使是资深设计人员也是如此。
单片机产品调试包括硬件调试和软件调试。硬件调试的任务是排除系统的硬件电路故障,包括设计性错误和工艺性故障。软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。
程序调试一般是一个模块一个模块地进行,一个子程序一个子程序地调试,最后联起来统调。利用开发工具的单步和断点运行方式,通过检查应用系统的CPU现场、RAM和SFR的内容以及I/O口的状态,来检查程序的执行结果和系统I/O设备的状态变化是否正常,从中发现程序的逻辑错误、转移地址错误以及随机的录入错误等。
也可以发现硬件设计与工艺错误和软件算法错误。在调试过程中,要不断调整、修改系统的硬件和软件,直到其正确为止。联机调试运行正常后,将软件固化到EPROM中,脱机运行,并到生产现场投入实际工作,检验其可靠性和抗干扰能力,直到完全满足要求,单片机产品才算研制成功。
8.2 工作模块21 步进电机控制系统设计与实现
【工作任务】
利用AT89S52单片机及独立键盘控制步进电机的速度和方向。独立键盘有反转按键、加速按键、减速按键和正转按键。步进电机电气参数:工作电压4.5~6.5V,步进角是18?。
8.2.1 步进电机控制技术
步进电机的结构及基本知识点在工作模块5中已经介绍过了,在这里只对实现步进电机速度和方向控制的关键技术进行介绍。
1.速度控制技术
本工作模块使用的步进电机的步进角是18?,由于步进电机旋转角度与输入脉冲数目成正比,所以输入20个脉冲信号,步进电机就会旋转20个步进角,且刚好转一圈
(20?18?=360?)。那么怎么控制步进电机的转速呢?下面我们先分析如何实现步进电机转速为30转/分和转速为60转/分。
(1)转速为30转/分
旋转一圈的时间是60s/30圈=2s,旋转一个步进角的时间是2s/20=100ms(每圈20个步进角)。也就是说给一个脉冲信号,旋转一个步进角,延时100ms,再给一个脉冲信号,旋转一个步进角,延时100ms,…,这样就可以获得转速为30转/分。
(2)转速为60转/分
旋转一圈的时间是60s/60圈=1s,旋转一个步进角的时间是1s/20=50ms(每圈20个步进角)。和转速为30转/分比较,脉冲信号之间的延时时间为50ms,延时时间变短,转速提高了。
根据以上分析,我们只要改变脉冲信号之间的延时时间,即改变每步之间的延时时间,便可控制步进电机的转速。延时时间变短,转速提高,延时时间变长,转速降低。
注意:步进电机的负载转矩与转速成反比,转速越快负载转矩越小,当转速快至其极限时,步进电机不再旋转。所以每走一步,必须延时一段时间。
2. 方向控制技术
本工作模块是采用1相励磁顺序,四种励磁状态为一个循环。只要改变励磁顺序,就可以改变步进电机旋转方向。
(1)正转时,1相励磁顺序为:A→B→C→D→……
(2)反转时,1相励磁顺序为:D→C→B→A→……
8.2.2 步进电机控制系统电路设计
按照工作任务要求,步进电机控制系统电路是由AT89S52单片机最小应用系统、步进电机驱动电路、键盘电路等模块构成。
1.键盘模块设计
步进电机控制系统程序由main.h头文件、头文件包含和定义全局变量、步进电机运行函数run()以及主函数组成。
1.编写main.h头文件
为了程序的可读性和编程方便,在main.h头文件里面对用到的数据类型、接在P3口上步进电机以及接在P3口上按键进行宏定义。宏定义如下:
#ifndef __MAIN_H__
#define __MAIN_H__
#define uint unsigned int
#define uchar unsigned char
#define step_moto_port P3
#define FZ_KEY (!(P2_0))
#define UP_KEY (!(P2_1))
#define DOWN_KEY (!(P2_2))
#define ZZ_KEY (!(P2_3))
#endif
2.头文件包含和定义全局变量
#include
#include
uint speed=1000; //设置延时参数初值为最小值,既转速最快
uint speed_change=1000; //延时参数初值
uchar dir=0; //设置方向,dir=1为反转,dir=0为正转
3.步进电机运行函数run()
这里采用的是1相励磁顺序,控制状态与P3口的控制码对应关系如表8-1所示。
表8-1 控制状态与P3口的控制码的对应关系
由表8-1可以看出,正转时,初始控制码为0x01,然后控制码左移1位,获得下一位控制码。反转时,初始控制码为0x08,然后控制码右移1位,获得下一位控制码。代码如下:
void run(void)
{
speed = speed_change;
while(speed--); //延时
if(dir == 1)
/* dir = 0,正转*/
{
if(step_moto_port >= 0x08)
//如果控制码>= 0x08(一个循环完成),取初始控制码
step_moto_port=0x01;
else
//左移1位,获得下一位控制码,并从P3口输出
step_moto_port <<= 1;
}
else
/* dir = 1,反转*/
{
if(step_moto_port <= 0x01)
//如果控制码<= 0x01(一个循环完成),取初始控制码
step_moto_port=0x08;
else
//右移1位,获得下一位控制码,并从P3口输出
step_moto_port >>= 1;
}
}
4.步进电机主函数main()
void main(void)
{
step_moto_port=0x01;
while(1)
{
if(FZ_KEY) // 设置反转
{ dir = 1;
while(LEFT_KEY) run(); //等待按键释放
}
if(ZZ_KEY) // 设置正转
{ dir = 0;
while(RIGHT_KEY)run();
}
if(UP_KEY) // 加速
{ if(speed_change >= 2000)
//延时参数减量为1000,每按一次UP_KEY键减少1000
speed_change = speed_change - 1000;
while(UP_KEY)run();
}
if(DOWN_KEY) // 减速
{ if(speed_change < 20000)
//延时参数增量为1000,每按一次DOWN_KEY键增加1000
speed_change = speed_change + 1000;
while(DOWN_KEY) run();
}
run();
} // end while(1)
} // end main
步进电机控制系统程序设计好以后,打开“步进电机控制系统”Proteus电路,加载“步8-4
8.3工作模块22 直流电机控制系统设计与实现
【工作任务】
利用AT89S52单片机及独立键盘控制直流电机的速度和方向。独立键盘有反转按键、加速按键、减速按键和正转按键。直流电机电气参数:额定工作电压5.0V。
8.3.1 直流电机控制技术
1.认识直流电机
永磁式换向器直流电机,是应用很广泛的一种,只要在它上面加适当电压电机就转动。
(1)结构与工作原理
永磁式换向器直流电机是由定子(主磁极)、转子(绕组线圈)、换向片(又称整流子)、电刷等组成,定子作用是产生磁场,如图8-5所示。
图8-5 直流电机结构
直流电压加在电刷上,经换向片加到电枢绕组(转子线圈),使电枢导体有电流流过,由于电机内部有定子磁场存在,所以电枢导体将受到电磁力 f 的作用(左手定则),电枢导体产生的电磁力作用于转子,使转子以n(转/分)旋转,以便拖动机械负载。通过左手定则,可以判别电磁力f方向(即转子旋转方向),如图8-6所示。
图8-6转子旋转方向
也就是说,转于是在定子磁场作用下,得到转矩而旋转起来。当它转动时,由于磁场的相互作用,也将产生反电动势,它的大小正比于转子的速度,方向和所加的直流电压相反。
(2)永磁式换流器电机特点
1)当电机负载固定时,电机转速正比于所加的电源电压。
2)当电机直流电源固定时,电机的工作电流正比于转予负载的大小。
3)加于电机的有效电压,等于外加直流电压减去反电动势。因此当用固定电压驱动电机时,电机的速度趋向于自稳定。因为负载增加时,转子有慢下来的倾向,于是反电动势减少,而使有效电压增加,反过来又将使转子有快起来的倾向,所以总的效果使速度稳定。
4)当转子静止时,反电动势为零,电机电流最大。最大电流出现在刚起动的时候。5)转子转动的方向,可由电机上所加电压的极性来控制。
6)体积小,重量轻。起动转矩大。
由于具备上述的那些特点,所以在医疗器械、小型机床、电子仪器、计算机、气象探空
控
三
直流电机正转时三极管Q1和Q4导通,反转时三极管Q2和Q3导通,在这两种情况下,加在直流电机两端的电压极性相反。当四个三极管全部关断时,直流电机停止转动。若是Q1与Q3关断、Q2与Q4导通时,直流电机处于短路制动状态,将立即停止转动。这四种状态所对应的H桥式驱动电路状态如图8-8所示。
正转反转停止制动
图8-8 直流电机和H桥式驱动电路四种对应状态
8.3.2直流电机控制系统电路设计
按照工作任务要求,直流电机控制系统电路是由AT89S52单片机最小应用系统、H桥式驱动电路、独立键盘及直流电机构成。
P3口的P3.0、 P3.1 、P3.4和 P3.5四个引脚分别接在H桥式驱动电路的PWM1、PWM2、
8.3.3直流电机控制系统程序设计
直流电机有正转、反转、停止和制动四种运行状态。在这四种运行状态下,P3口引脚与H桥式驱动电路对应关系如表8-2所示。
表8-2 运行状态与P3口引脚的对应关系
直流电机控制系统程序主要由头文件、初始化、按键功能处理、直流电机运行中断处理
等组成。
1.编写main.h头文件
在这里只给出与工作模块21的main.h头文件不一样部分。电机驱动接口是接在P3.0、P3.1、P3.4和P3.5,为了以后能对殊功能寄存器P3口这4个寻址位进行操作,定义了4个sbit类型位变量,代码如下:
……
#define _Nop() _nop_()
……
sbit PWM1 = P3^0;
sbit PWM4 = P3^5;
sbit PWM2 = P3^1;
sbit PWM3 = P3^4;
……
2.头文件包含和定义全局变量
#include
#include
#include
bit Moto_Dir=0; //定义位变量,为0正转,为1反转
uchar irq_count; //中断次数计数器
uchar irq_count_t; //设置需要中断的次数
uchar PWM_TIME_H; //设置输出高电平的宽度
uchar PWM_TIME_L; //设置输出低电平的宽度
bit i=0; // i=1输出高电平状态,i=1输出低电平状态
3.直流电机控制系统初始化
/*使Q1、Q2、Q3、Q4同时关断,电机处于停止状态*/
PWM1=1; PWM2=1; PWM3=1; PWM4=1;
irq_count=0; //中断次数计数器清0
i=0;
PWM_TIME_H=80; //设置占空比为1:5,PWM脉冲周期是100ms
PWM_TIME_L=20;
/*定时器T1初始化*/
ET1=1; // 开T1中断
TMOD=0x11; // T1都为方式1计时*/
TH1=0xFC; TL1=0x18; // T1初值,定时时间1ms(12MHz)
TR1=1; // 定时器启动
EA=1; // 开总中断
4.直流电机控制系统按键功能处理
(1)反转按键处理
if(FZ_KEY)
{
ShortDelay();
if(FZ_KEY) // 延时去抖
{
Moto_Dir=1;
PWM3=0; PWM4=1;
}
while(FZ_KEY); //等待FZ_KEY释放
} // end if(FZ_KEY)
(2)正转按键处理
if(ZZ_KEY)
{
ShortDelay();
if(ZZ_KEY) // 延时去抖
{
Moto_Dir=0;
PWM3=1; PWM4=0;
}
while(ZZ_KEY); //等待ZZ_KEY释放
} // end if(ZZ_KEY)
(3)加速按键处理
if(UP_KEY)
{
ShortDelay();
if(UP_KEY) // 延时去抖
{
if(PWM_TIME_H > 10) //最大占空比为9:10 {
PWM_TIME_H--;
PWM_TIME_L = 100-PWM_TIME_H;
}
} // end if(UP_KEY)
while(UP_KEY);
} // end if(UP_KEY)
(4)减速按键处理
if(DOWN_KEY)
{
ShortDelay();
if(DOWN_KEY) // 延时去抖
{
if(PWM_TIME_H < 90) //最小占空比为1:10 {
PWM_TIME_H++;
PWM_TIME_L = 100-PWM_TIME_H;
}
} // end if(DOWN_KEY)
while(DOWN_KEY);
} // end if(DOWN_KEY)
5.直流电机控制系统中断处理
按照按键处理设置,控制直流电机运行。T1定时器中断发PWM脉冲,周期是100ms。interrupt 3:是T1定时器中断,using 1:选择第一组工作寄存器。代码如下:void timer1(void) interrupt 3 using 1
{
TH1=0xFC; TL1=0x18; //重装T1初值
irq_count++;
if (irq_count>=irq_count_t) //判断中断次数是否到
{
irq_count=0; //计数器清0
i=~i; //高电平或低电平状态标志转换
if(i==1)
irq_count_t = PWM_TIME_H;
else
irq_count_t = PWM_TIME_L;
if(Moto_Dir==1)
{ PWM2=~PWM2; PWM1=1; }
else
{ PWM2=1; PWM1=~PWM1; }
}
}
直流电机控制系统程序设计好以后,打开“直流电机控制系统”Proteus电路,加载“直流电机控制系统.hex”文件。进行仿真运行,观察直流电机运行是否与设计要求相符。
8.4 技能拓展步进电机智能控制
步进电机是利用输入数字信号转换成机械能量的电气设备,由于步进电机旋转角度与输入脉冲数目成正比,只要控制输入的脉冲数目便可控制步进电机转动角度。因此,常用于精确定位和精确定速,如机器人均使用步进电机作动力,并且可以精确控制机器人的动作。
8.4.1步进电机智能控制思路
通过工作模块5和工作模块21的学习,我们已经知道了步进电机必须加上驱动电路才能转动,驱动电路的信号输入端必须输入脉冲信号,若无脉冲输入时,转子保持一定的位置,维持静止状态;反之,若加入适当的脉冲信号时,转子则会以一定的角度转动,如果加入连续脉冲时,则转子旋转的角度与脉冲频率成正比。
为此,我们掌握了如何使用按键对步进电机进行方向和转速控制。但是我们如何对步进电机进行精确定位和精确定速呢?
由于步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步
一步运行的。这样,我们就可以通过以下两个方面对步进电机进行智能控制,达到精确定位和精确定速的目的。
(1)通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;
(2)通过控制脉冲频率来控制电机转动的速度和加速度,从而达到精确定速和调速的目的。
作为一种数字伺服执行元件,步进电机具有结构简单、运行可靠、控制方便、控制性能好等优点,步进电机智能控制可以广泛应用在数控机床、机器人、自动化仪表等领域。
8.4.2步进电机智能控制组成
步进电机智能控制主要包括:单片机、键盘输入模块、显示模块以及步进电机动控制模块等部分。步进电机智能控制的结构框图如图8-10所示。
图8-10 步进电机智能控制结构框图
键盘输入模块主要完成数据输入及控制输入;显示模块主要对步进电机设置和运行状态进行显示(如显示步进电机设置要旋转的数圈以及正反转指示等);步进电机控制模块主要是由单片机输出控制码到驱动电路控制步进电机的运转。
【技能训练8-1】步进电机智能控制设计
设计一个步进电机智能控制。要求能从键盘上输入步进电机转数,控制步进电机的正、反转及启停,并显示转数。
1.键盘设计
键盘采用的是矩阵式键盘,键盘电路设计参考工作模块10,键盘功能分配如下:
(1)0-9:为数字键
(2)*:正逆转转数设定完成后,按“*”启动步进马达。
(3)#:清除设定为正转及转数为00。
(4)A:设定正逆转。按“A”键则LED亮,表示反转,再按则LED指示灯灭,表示正转,再按LED亮。
2.数码管显示模块设计
数码管显示模块电路采用硬件译码输出字型码控制显示内容,数码管是阳极数码管,七段字形译码器用的是74LS47,电路设计参考技能训练3-2。
3. 步进电机控制模块设计
步进电机控制模块电路采用有施密特触发器的六反方器74LS14和高电压、大电流的达灵顿晶体管数组产品ULN2003A,电路设计参考工作模块21。
4. 步进电机智能控制电路实现
步进电机控制模块电路、键盘电路、数码管显示模块电路分别接在AT89S52单片机的P0口、P1口、P2口,接在P3.0的LED是步进电机正反转的指示灯,步进电机智能控制电
图8-11步进电机智能控制电路
5.步进电机智能控制工作过程
由键盘输入转数,设定正反转后,按确认键。单片机则根据设定由P0口送出控制码经74LS14和ULN2003A达林顿管驱动步进电机转动。同时,LED数码管显示设定的转数,步进电机每转动一圈,数码显示的数字减1,当减至零时,步进电机停止转动。LED亮,表示反转,LED指示灯灭,表示正转。步进电机智能控制C语言程序设计请参考工作模块10、工作模块21以及技能训练3-2。
【关键知识点小结】
1.单片机产品是由硬件和软件组成。硬件是指单片机、扩展的存储器、输入输出设备等硬件部件组成的,软件是各种工作程序的总称。
2.单片机产品开发过程包括确定任务、总体设计、硬件设计、软件设计、系统调试、产品化等几个阶段。它们不是绝对分开的,有时是交叉进行的。
3.步进电机速度和方向控制的关键技术。
(1)速度控制关键技术:只要改变脉冲信号之间的延时时间,即改变每步之间的延时时间,便可控制步进电机的转速。延时时间变短,转速提高,延时时间变长,转速降低。每走一步,必须延时一段时间。
(2)方向控制关键技术:只要改变励磁顺序,就可以改变步进电机旋转方向。如:正转时,1相励磁顺序为:A→B→C→D→……
反转时,1相励磁顺序为:D→C→B→A→……
4.键盘控制步进电机的方向和速度是由AT89S52单片机最小应用系统、步进电机驱动电路、键盘电路等模块构成。反转按键、加速按键、减速按键和正转按键分别接到P2口的P2.0、P2.1 、P2.2和 P2.3引脚。驱动电路采用高电压、大电流的ULN2003A,分别接到P3口的
P3.0、 P3.1 、P3.2和 P3.3引脚。
5.永磁式换向器直流电机是由定子(主磁极)、转子(绕组线圈)、换向片(又称整流子)、电刷等组成,定子作用是产生磁场。转于是在定子磁场作用下,得到转矩而旋转起来。
6. 直流电机速度和方向控制的关键技术。
(1)速度控制关键技术:调节直流电机转速最方便有效的调速方法是对电枢(即转子线圈)电压U进行控制。广泛应用脉宽调制PWM技术来控制直流电机电枢的电压。PWM控制技术就是利用半导体器件的导通与关断,把直流电压变成电压脉冲序列,通过控制电压脉冲宽度或周期以达到变压的目的。
(2)方向控制关键技术:通过改变直流电机上所加电压的极性来控制。可用H桥式驱动电路来控制直流电机的转动方向。
7.直流电机和H桥式驱动电路有四种对应状态。正转时三极管Q1和Q4导通,反转时三极管Q2和Q3导通,在这两种情况下,加在直流电机两端的电压极性相反。当四个三极管全部关断时,直流电机停止转动。若是Q1与Q3关断、Q2与Q4导通时,直流电机处于短路制动状态,将立即停止转动。
8. 键盘控制直流电机的方向和速度是由AT89S52单片机最小应用系统、H桥式驱动电路、独立键盘及直流电机构成。反转按键、加速按键、减速按键和正转按键分别接到P2口的P2.0、 P2.1 、P2.2和 P2.3引脚。H桥式驱动电路的PWM1、PWM2、PWM3和PWM4分别接在P3口的P3.0、 P3.1 、P3.4和 P3.5引脚。
【问题与讨论】
8-1 如图8-11所示,请用C语言程序完成步进电机智能控制。
8-2 请试一试对步进电机智能控制(图8-11)增加一个速度控制功能。提示:还有三个未定义键可以使用。
一、馬達型號介紹 二、微型DC馬達之應用 一般地,微型DC馬達的使用範圍相當之廣泛.根據其使用用途,大致可分為以下幾方面: 三、成品編號系統 四、DC馬達性能曲線圖之理解方法 4.1 從DC馬達之性能曲線圖,可確定在不同工作點上之馬達性能,現簡述其專用符號: No:空載轉速(rpm) Ts:堵轉力矩(g.cm)
Io:空載電流(A) Is:堵轉電流(A)
輸出功率曲線理論上是 2 Ts 為功率最大,並中心對稱. 任意一點輸出功率方程為:97500 ) .()()(cm g T rpm N W P ?= 4.2.3效率曲線: 100%I(輸入功率/W) V P(輸出功率/W) η(%)??= 4.3 性能曲線圖判定其工作點性能方法 a) 當力矩已知時,在橫軸力矩點上劃作垂直線,在與N,I,η相交點取各數值. b) 當力矩為未知值時,先用電流表量出馬達動作時之工作電流,並將該值點上電流線上,以該點劃出垂直線和力矩刻度為其工作點力矩,其餘數值同a)方法找出. 五、直流馬達的性能調節 V →端子電壓;R →馬達電阻; 5.1 改變馬達端子電壓調節性能 5.2 改變馬達電阻調節性能 5.3 改變馬達磁力強度調節性能 下面就此三種方式對馬達性能的影響進行簡要的分析: 5.1 改變馬達端子電壓調節性能 5.1.1 如果供電電源是恆壓電源,那麼改變馬達端子電壓,則馬達機械特性曲線(即速度曲線)將平行移動.改變電壓前後的馬達空載轉速比,堵轉扭力比,堵轉電流比均與電壓比成正比,而空載電流可近視認為相等。 Io o I ≈' V V Is s I '? =' V V Ts s T '? =' 最高效率max max ηη?' 注以上電壓的改變量須在馬達性能的承受的範圍內. 5.1.2 No o N ='V V No o N '? ='V Io I ='
第二章 直流电机 2.1 概述 2.1.1 直流电机的工作原理 首先,复习e=B δlv 公式,说明e 正比于B δ。结合图2.1解释v=2πRn/60 (m/s , n (r/min)); 机械角速度Ω=v/R=2πn /60 ( r/s); 电角速度ω=p Ω=p2πn/60 (rad/s) (记下来);导体或线圈。 将直流电机的简单工作原理图结构介绍清楚。包括:N 、S 磁极和A 、B 电刷静止,换向片、线圈(导体)以及电枢逆时针旋转。将其抽象成一个平面图。 假设磁力线进入磁极为正方向,离开磁极的磁通方向为负。得气隙磁密在空间得分布曲线 B δ(θ)(0≤θ=ωt ≤2π)。进而得到导体电势e(ωt)和线圈电势e AB (ωt)。 经过合理的多个线圈均匀分布设计,按照一定规律连接起来就组成电枢绕组,便可以获得近似直流电动势。 工作原理: (1) 发电机:电枢绕组中感应的交变电势,依靠换向器的换向作用,利用静止 的电刷把同一磁极 下导体电势引出,变为直流电势输出。(发电机惯例) (2) 电动机:通过电刷和换向器的共同作用,使得同磁极下的导体边流过的电 流方向不变,导体 受力方向不变,进而产生方向恒定的电磁转矩,使电机连续转动。 结论:(1)电机内部(电刷为界),线圈中产生的感应电势、流过的电流是交流量。 (2)电机外部(电刷两端),电动机运行外加直流电;发电机运行输出直流电 (3) 从原理上讲,同一台电机既可以作电动机运行又可以作发电机运行,是可逆的。 (4)电动机惯例 发电机惯例 i i u Motor u Generator
2.1.2 直流电机的主要结构部件 定子——起机械支撑,产生磁场的作用 机座、端盖、电刷、 轴承 直流电机结构 气隙——耦合磁场 转子——产生电磁转矩、产生感应电势 电枢铁心和电枢绕组 换向器、转轴、风扇 2.1.3 直流电机的额定值 额定值:指电机正常运行时各物理量的数值。此时亦称电机满载运行。否则为欠载或过载 额定功率:指输出功率W, kW 。 发电机P N =U N I N 电动机P N =ηU N I N 额定电压U N (V), 额定电流I N (A), 额定励磁电压U fN (V), 额定励磁电流I fN (A), 额定转速n N (r/min)
直流电机设计程序 3.1 主要指标 1. 额定电压 2. 额定功率 3. 额定转速 4. 额定效率 3.2 主要尺寸的确定 5. 结构型式的选择 6. 永磁材料的选择 选用烧结钕铁硼 7. 极弧系数 8. 电负荷 9. 长径比 10. 计算功率 11. 电枢直径 12. 极数 p=4 13. 极距 14. 电枢长度 cm D L a a 5.10157.0=?==λW P p N N N 76678.0378.021321'=??+=+=ηηcm D cm n B A p D a N i a 151.157.06006.0906.0766101.6'''101.63333==??????=??=取 λαδcm p D 89.54 21514.32=??==πτ
15. 气隙 δ=0.06cm 16. 电枢计算长度 3.3 绕组设计 17. 绕组形式 选用单叠绕组 18. 绕组并联支路对数 a=p=4 19. 槽数 20. 槽距 21. 预计气隙磁通 22. 电枢电动势 23. 预计导体总数 24. 每槽导体数 25. 每槽元件匝数 式中 每槽元件数 u=2 26. 实际每槽导体数 cm L L a ef 62.1006.025.102=?+=+=δ45 1533=?==a D Q cm Q D t a 05.145 1514.32=?==πwb B L ef i 34 4 1025.2106.062.1089.56.010''-?=????=?=ΦδταδV U E N N a 48.203 78 .021321=?+=+=η910 600 1025.2448 .20460'60'3=?????=Φ= -N a n p aE N δ2 .2045 910''===Q N N s 5 05.52 22.202''==?== s s W u N W 取20 5222=??==s s uW N
无刷直流电机驱动 James P. Johnson, Caterpiller公司 本章的题目是无刷直流电动机及其驱动。无刷直流电动机(BLDC)的运行仿效了有刷并励直流电动机或是永磁直流电动机的运行。通过将原直流电动机的定子、转子内外对调—变成采用包含电枢绕组的交流定子和产生磁场的转子使得该仿效得以可能。正如本章中要进一步讨论的,输入到BLDC定子绕组中的交流电流必须与转子位置同步更变,以便保持磁场定向,或优化定子电流与转子磁通的相互作用,类似于有刷直流电动机中换向器、电刷对绕组的作用。该原理的实际运用只能在开关电子学新发展的今天方可出现。BLDC电机控制是今天世界上发展最快的运动控制技术。可以预见,随着BLDC的优点愈益被大家所熟知且燃油成本持续增加,BLDC必然会进一步广泛运用。 2011-01-30 23.1 BLDC基本原理 在众文献中无刷直流电动机有许多定义。NEMA标准《运动/定位控制电动机和控制》中对“无刷直流电动机”的定义是:“无刷直流电动机是具有永久磁铁转子并具有转轴位置监测来实施电子换向的旋转自同步电机。不论其驱动电子装置是否与电动机集成在一起还是彼此分离,只要满足这一定义均为所指。”
图23.1 无刷直流电机构形 2011-01-31 若干类型的电机和驱动被归类于无刷直流电机,它们包括: 1 永磁同步电机(PMSMs); 2 梯形反电势(back - EMF)表面安装磁铁无刷直流电机; 3 正弦形表面安装磁铁无刷直流电机; 4 内嵌式磁铁无刷直流电机; 5 电机与驱动装置组合式无刷直流电机; 6 轴向磁通无刷直流电机。 图23.1给出了几种较常见的无刷直流电机的构形图。永磁同步电机反电势是正弦形的,其绕组如同其他交流电机一样通常不是满距,或是接近满距的集中式绕组。许多无刷直流电
第二章直流电机的基本结构和运行分析 直流电机是电能和机械能相互转换的旋转电机之一。将机械能转换为直流电能的电机称为直流发电机;将直流电能转换为机械能的电机称为直流电动机。直流发电机可作为各种直流电源;直流电动机具有宽广的调速范围,较强的过载能力和较大的起动转矩等特点,广泛应用于对起动和调速要求较高的生产机械,如电力机车、内燃机车、工矿机车、城市电车、电梯、轧钢机等的拖动电机。 本章介绍直流电机的工作原理和基本结构;分析直流电机的磁路系统、电路系统和电磁过程;导出感应电势和电磁转矩的一般计算方法;得出直流电机在不同运行状态的各种平衡方程式和运行特性。 第一节直流电机基本工作原理 直流电机是直流发电机和直流电动机的总称。直流电机具有可逆性,既可作直流发电机使用,也可作直流电动机使用。作直流发电机使用时,将机械能转换成直流电能输出;作直流电动机使用时,则将直流电能转换成机械能输出。 一、直流电机的模型结构 图2—1所示为一台直流电机简单模型图。N、S为定子上固定不动的两个主磁极,主磁极可以采用永久磁铁,也可以采用电磁铁,在电磁铁的励磁线圈上通以方向不变的直流电流,便形成一定极性的磁极。 图2-1 直流发电机工作原理
在两个主磁极N 、S 之间装有一个可以转动的、由铁磁材料制成的圆柱体,圆柱体表面嵌有一线圈(称为电枢绕组),线圈首末两端分别连接到两个弧形钢片(称为换向片)上。换向片之间用绝缘材料构成一整体,称为换向器,它固定在转轴上(但与转轴绝缘),随转轴一起转动,整个转动部分称为电枢。为了接通电枢内电路和外电路,在定子上装有两个固定不动的电刷A 和B ,并压在换向器上,与其滑动接触。 二、直流发电机的工作原理 1.感应电势的产生 当直流发电机的电枢被原动机拖动,并以恒速v逆时针方向旋转时,如图2-2(a)所示,线圈两个有效边ab 和cd 将切割磁力线,而感应产生电势e。其方向用右手定则确定,导体ab 位于N 极下,导体cd 位于S 极下,产生电势方向分别为b →a ,d →c 。若接通外电路,电流从换向片1→A →负载→B →换向片2。电流从电刷A 流出,具有正极性,用“+”表示;从电刷B 流入,具有负极性,用“一”表示。 当电枢转到90o 时,线圈有效边ab 和cd 转到N 、S 极之间的几何中心线上,此处磁密为零,故这一瞬时感应电势为零。 当电枢转到180o 时,导体ab 和cd 及换向片1、2位置互换,如图2-1(b)所示。导体加位于S 极下,导体cd 位于N极下,线圈两个有效边产生的感应电势方向分别为a →b ,c →d ,电势方向恰与开始瞬时相反。外电路中流过的电流从换向片2→A →负载→B →换向片1。由此可见,电刷A(B)始终与转到N(S)极下的有效边所连接的换向片接触,故电刷极性始终不变A 为“+”,B 为“―”。 由以上分析可知,线圈内部为一交变电势,但电刷引出的电势方向始终不变,为一单方向的直流电势。 2.电势的波形 根据电磁感应定律,每根导体产生的感应电势e为: Lv B e X = (V ) (2-1) 式中x B ——导体所在位置的磁通密度(T ); L ——导体切割磁力线的有效长度(m); v ——导体切割磁力线的线速度(m/s)。 要想知道电势的波形,先得找出磁密的波形,前已设电枢以恒速v 旋转,v=常数,L 在电机中不变,则x B e ∝,即导体电势随时间的变化规律与气隙磁密的分布规律相同。设想将
永磁无刷直流电动机的基本工作原理 无刷直流电动机由电动机主体和驱动器组成,是一种典型的机电一体化产品。 1. 电动机的定子绕组多做成三相对称星形接法,同三相异步电动机十分相似。电动机的转子上粘有已充磁的永磁体,为了检测电动机转子的极性,在电动机内装有位置传感器。驱动器由功率电子器件和集成电路等构成,其功能是:接受电动机的启动、停止、制动信号,以控制电动机的启动、停止和制动;接受位置传感器信号和正反转信号,用来控制逆变桥各功率管的通断,产生连续转矩;接受速度指令和速度反馈信号,用来控制和调整转速;提供保护和显示等等。 无刷直流电动机的原理简图如图一所示: 永磁无刷直流电动机的基本工作原理 主电路是一个典型的电压型交-直-交电路,逆变器提供等幅等频5-26KHZ调制波的对称交变矩形波。 永磁体N-S交替交换,使位置传感器产生相位差120°的U、V、W方波,结合正/反转信号产生有效的六状态编码信号:101、100、110、010、011、001,通过逻辑组件处理产生T1-T4导通、T1-T6导通、T3-T6导通、T3-T2导通、T5-T2导通、T5-T4导通,也就是说将直流母线电压依次加在A+B-、A+C-、B+C-、B+A-、C+A-、C+B-上,这样转子每转过一对N-S极,T1-T6功率管即按固定组合成六种状态的依次导通。每种状态下,仅有两相绕组通电,依次改变一种状态,定子绕组产生的磁场轴线在空间转动60°电角度,转子跟随定子磁场转动相当于60°电角度空间位置,转子在新位置上,使位置传感器U、V、W按约定产生一组新编码,新的编码又改变了功率管的导通组合,使定子绕组产生的磁场轴再前进60°电角度,如此循环,无刷直流电动机将产生连续转矩,拖动负载作连续旋转。正因为无刷直流电动机的换向是自身产生的,而不是由逆变器强制换向的,所以也称作自控式同步电动机。 2. 无刷直流电动机的位置传感器编码使通电的两相绕组合成磁场轴线位置超前转子磁场轴线位置,所以不论转子的起始位置处在何处,电动机在启动瞬间就会产生足够大的启动转矩,因此转子上不需另设启动绕组。 由于定子磁场轴线可视作同转子轴线垂直,在铁芯不饱和的情况下,产生的平均电磁转矩与绕组电流成正比,这正是他励直流电动机的电流-转矩特性。 电动机的转矩正比于绕组平均电流: Tm=KtIav (N·m) 电动机两相绕组反电势的差正比于电动机的角速度: ELL=Keω (V) 所以电动机绕组中的平均电流为: Iav=(Vm-ELL)/2Ra (A) 其中,Vm=δ·VDC是加在电动机线间电压平均值,VDC是直流母线电压,δ是调制波的占空比,Ra为每相绕组电阻。由此可以得到直流电动机的电磁转矩: Tm=δ·(VDC·Kt/2Ra)-Kt·(Keω/2Ra) Kt、Ke是电动机的结构常数,ω为电动机的角速度(rad/s),所以,在一定的ω时,改变占空比δ,就可以线性地改变电动机的电磁转矩,得到与他励直流电动机电枢电压控制相同的控制特性和机械特性。
直流电机控制系统设计
XX大学 课程设计 (论文) 题目直流电机控制系统设计 班级 学号 学生姓名 指导教师
沈阳航空航天大学 课程设计任务书 课程名称专业基础课程设计 院(系)自动化学院专业测控技术与仪器 班级学号姓名 课程设计题目直流电机控制系统设计 课程设计时间: 2012年7 月9 日至2012年7 月20 日 课程设计的内容及要求: 1.内容 利用51单片机开发板设计并制作一个直流电机控制系统。系统能够实时控制电机的正转、反转、启动、停止、加速、减速等。 2.要求 (1)掌握直流电机的工作原理及编程方法。 (2)掌握直流电机驱动电路的设计方法。 (3)制定设计方案,绘制系统工作框图,给出系统电路原理图。 (4)用汇编或C语言进行程序设计与调试。 (5)完成系统硬件电路的设计。 (6)撰写一篇7000字左右的课程设计报告。 指导教师年月日 负责教师年月日
学生签字年月日 目录 0 前言 (1) 1 总体方案设计 (2) 1.1 系统方案 (2) 1.2 系统构成 (2) 1.3 电路工作原理 (2) 1.4 方案选择 (3) 2 硬件电路设计 (3) 2.1 系统分析与硬件设计 (3) 2.2 单片机AT89C52 (3) 2.3 复位电路和时钟电路 (4) 2.4 直流电机驱动电路设计 (4) 2.5 键盘电路设计 (4) 3软件设计 (5) 3.1 应用软件的编制和调试 (5) 3.2 程序总体设计 (5) 3.3 仿真图形 (7) 4 调试分析 (9) 5 结论及进一步设想 (9) 参考文献 (10) 课设体会 (11) 附录1 电路原理图 (12) 附录2 程序清单 (13)
无刷直流电机工作原理详解 日期: 2014-05-28 / 作者: admin / 分类: 技术文章 1. 简介 本文要介绍电机种类中发展快速且应用广泛的无刷直流电机(以下简称BLDC)。BLDC被广泛的用于日常生活用具、汽车工业、航空、消费电子、医学电子、工业自动化等装置和仪表。顾名思义,BLDC不使用机械结构的换向电刷而直接使用电子换向器,在使用中BLDC相比有刷电机有许多的优点,比如: 能获得更好的扭矩转速特性; 高速动态响应; 高效率; 长寿命; 低噪声; 高转速。 另外,BLDC更优的扭矩和外形尺寸比使得它更适合用于对电机自身重量和大小比较敏感的场合。 2. BLDC结构和基本工作原理 BLDC属于同步电机的一种,这就意味着它的定子产生的磁场和转子产生的磁场是同频率的,所以BLDC并不会产生普通感应电机的频差现象。BLDC中又有单相、2相和3相电机的区别,相类型的不同决定其定子线圈绕组的多少。在这里我们将集中讨论的是应用最为 广泛的3相BLDC。 2.1 定子 BLDC定子是由许多硅钢片经过叠压和轴向冲压而成,每个冲槽内都有一定的线圈组成了绕组,可以参见图2.1.1。从传统意义上讲,BLDC的定子和感应电机的定子有点类似,不过在定子绕组的分布上有一定的差别。大多数的BLDC定子有3个呈星行排列的绕组,每 个绕组又由许多内部结合的钢片按照一定的方式组成,偶数个绕组分布在定子的周围组成了偶数个磁极。
BLDC的定子绕组可以分为梯形和正弦两种绕组,它们的根本区别在于由于绕组的不同连接方式使它们产生的反电动势(反电动势的相关介绍请参加EMF一节)不同,分别呈现梯形和正弦波形,故用此命名了。梯形和正弦绕组产生的反电动势的波形图如图2.1.2和图 2.1.3所示。
三相无刷直流电机系统结构及工作原理
图2.3 直流无刷电动机的原理框图位置传感器在直流无刷电动机中起着测定转子磁极位置的作用,为逻辑开关电路提供正确的换相信息,即将转子磁钢磁极的位置信号转换成电信号,然后去控制定子绕组换相。位置传感器种类较多,且各具特点。在直流无刷电动机中常见的位置传感器有以下几种:电磁式位置传感器、光电式位置传感器、磁敏式位置接近传感器【3】。 2.4基本工作原理 众所周知,一般的永磁式直流电动机的定子由永久磁钢组成,其主要的作用是在电动机气隙中产生磁场。其电枢绕组通电后产生反应磁场。其电枢绕组通电后产生反应磁场。由于电刷的换向作用,使得这两个磁场的方向在直流电动机运行的过程中始终保持相互垂直,从而产生最大转矩而驱动电动机不停地运转。直流无刷电动机为了实现无电刷换相,首先要求把一般直流电动机的电枢绕组放在定子上,把永磁磁钢放在转子上,这与传统直流永磁电动机的结构刚好相反。但仅这样做还是不行的,因为用一般直流电源给定子上各绕组供电,只能产生固定磁场,它不能与运动中转子磁钢所产生的永磁磁场相互作用,以产生单一方向的转矩来驱动转子转动。所以,直流无刷电动机除了由定子和转子组成电动机本体以外,还要由位置传感器、控制电路以及功率逻辑开关共同构成的换相装置,使得直流无刷电动机在运行过程中定子绕组所产生的的磁场和转动中的转子磁钢产生的永磁磁场,在空间始终保持在(π/2)rad左右的电角度。 2.5无刷直流电机参数 本系统采用的无刷电机参数 ·额定功率:100W ·额定电压:24V(DC) ·额定转速:3000r/min ·额定转矩:0.23N?m ·最大转矩:0.46N?m ·定位转矩:0.01N?m ·额定电流:4.0A
4.3 控制器软件设计 软件设计是控制系统最重要的一个组成部分,软件设计的好坏直接关系着整个控制系统性能的优良,控制系统的软件设计一定要具备实时性、可靠性和易维护性,对此,选择一款简单、方便的开发环境对于系统软件的整体优化以及提高整个系统的开发效率有很大的影响。目前支持STM 32系列控制芯片且应用比较广泛的主要有IAR EWARM和KEIL MDK这两个集成开发环境,本文采用的开发环境是KEIL MDK,它是ARM 公司推出的嵌入式微控制器开发软件,集成了业界领先的Vision 4开发平台,具有良好的性能,是ARM开发工具中的最好的选择,适合于不同层次的开发人员使用,尤其是它与我们经常使用的51单片机开发环境Keil C51的整体布局和使用方法类似,只有一些地方不同,操作起来比较熟练,很容易上手,极大的减小了开发人员的使用难度,缩短了开发周期,提高了开发效率,因此这款KEIL MDK得到了很多人的认可。 STM 32的软件开发主要开发方式有2种,就是基于寄存器的开发和基于库函数的开发,其中基于寄存器的开发方式就更51单片机的开发差不多,它是通过直接操作芯片内部的各个寄存器来达到控制芯片的目地,这种方式较直观,程序运行占用的资源少,但对于STM 32这种寄存器数目非常多的芯片来说,采用寄存器的开发方式会减慢开发速度,还让程序可读性降低。而基于库函数的开发方式则是对寄存器的封装,它向下处理与寄存器直接相关的配置,向上为用户提供配置寄存器的接口,这种方式大大降低了使用STM 32的条件,不仅提高了开发效率,而且程序还具有很好的可读性和移植性,因此本文采用的是基于库函数的开发方式,编程语言全采用 C 语言。
项目八键盘控制电机方向和转速 【教学目标】 终极目标 能利用AT89S52单片机及独立键盘,通过C语言程序实现键盘控制步进电机和直流电机的速度和方向,完成单片机输入输出控制系统的设计、运行及调试。 促成目标 1. 了解单片机产品开发的流程; 2. 了解步进电机和直流电机结构和工作原理; 3. 掌握步进电机和直流电机速度、方向控制关键技术; 4. 掌握头文件的编写方法; 5. 掌握电机速度、方向控制的电路设计和编程的方法; 6. 会利用单片机I/O口实现电机速度、方向控制。 8.1 单片机产品开发 单片机产品开发是为完成某项任务而研制开发的单片机应用系统,是以单片机为核心,配以外围电路和软件,能实现确定任务、功能的实际应用系统。根据不同的用途和要求,单片机产品的系统配置及软件也有所不同,但它们的开发流程和方法大致相同。 8.1.1 单片机产品的结构 单片机产品是由硬件和软件组成。硬件是指单片机、扩展的存储器、输入输出设备等硬件部件组成的,软件是各种工作程序的总称。一个典型单片机产品结构如图8-1所示。 图8-1典型单片机产品结构
从图8-1不难看出单片机产品所需要的一般配置: (1)单片机。如AT89C51、AT89C52、AT89S51以及AT89S52等单片机。 (2)人机交流设备。输入设备有键盘和按键,输出设备有数码管、液晶显示模块和指示灯等。 (3)信号采集的输入通道。如出租车的测距、测速装置,温控系统的温度传感器、洗衣机的水位测量等设备。 (4)向操作对象发出各种控制信号的输出通道。如空调启动压缩机的开关电路,控制彩电的频道切换、颜色、音量等的接口电路。 (5)与其他计算机系统或智能设备实现信息交换,还需配置通信接口电路。如RS-232、RS-485等。 (6)有时还需扩展外部RAM、EEPROM用于存放数据。如彩电遥控系统中存放系统数据的存储器。 8.1.2 单片机产品开发流程 1.确定功能技术指标 单片机产品开发流程是以确定产品的功能和技术指标开始的。 首先要细致分析、研究实际问题,明确各项任务与要求,综合考虑系统的先进性、可靠性、可维护性以及成本、经济效益,拟订出合理可行的技术性能指标。 2.单片机产品总体设计 在对单片机产品进行总体设计时,应根据单片机产品提出的各项技术性能指标,拟订出性价比最高的一套方案。 首先,应根据任务的繁杂程度和技术指标要求选择机型。选定机型后,再选择产品中要用到的其它外围元器件,如传感器、执行器件等。 在总体方案设计过程中,对软件和硬件进行分工是一个首要的环节。原则上,能够由软件来完成的任务就尽可能用软件来实现,以降低硬件成本,简化硬件结构。同时,还要求大致规定各接口电路的地址、软件的结构和功能、上下位机的通信协议、程序的驻留区域及工作缓冲区等。总体方案一旦确定,系统的大致规模及软件的基本框架就确定了。 3.硬件设计 硬件设计是指应用系统的电路设计,包括主机、控制电路、存储器、I/O接口、A/D和D/A转换电路等。硬件设计时,应考虑留有充分余量,电路设计力求正确无误,因为在系统调试中不易修改硬件结构。硬件电路设计时应注意以下几个问题: (1)程序存储器 一般可选用容量较大的EPROM芯片,如27128(16 KB)、27256(32 KB)或27512(64 KB)等。尽量避免用小容量的芯片组合扩充成大容量的存储器,程序存储器容量大些,则编程空间宽裕些,价格相差也不会太多。 (2)数据存储器和I/O接口 根据系统功能的要求,如果需要扩展外部RAM或I/O口,那么RAM芯片可选用6116(2 KB)、6264(8 KB)或62256(32 KB),原则上应尽量减少芯片数量,使译码电路简单。 I/O接口芯片一般选用8155(带有256 KB静态RAM)或8255。这类芯片具有口线多、硬件逻辑简单等特点。若口线要求很少,且仅需要简单的输入或输出功能,则可用不可编程的TTL电路或CMOS电路。
无刷直流电机的组成及工作原理 2.1 引言 直流无刷电动机一般由电子换相电路、转子位置检测电路和电动机本体三部分组成,电子换相电路一般由控制部分和驱动部分组成,而对转子位置的检测一般用位置传感器来完成。工作时,控制器根据位置传感器测得的电机转子位置有序的触发驱动电路中的各个功率管,进行有序换流,以驱动直流电动机。下文从无刷直流电动机的三个部分对其发展进行分析。 2.2 无刷直流电机的组成 2.2.1 电动机本体 无刷直流电动机在电磁结构上和有刷直流电动机基本一样,但它的电枢绕组放在定子上,转子采用的重量、简化了结构、提高了性能,使其可*性得以提高。无刷电动机的发展与永磁材料的发展是分不开的,磁性材料的发展过程基本上经历了以下几个发展阶段:铝镍钴,铁氧体磁性材料,钕铁硼(NdFeB)。钕铁硼有高磁能积,它的出现引起了磁性材料的一场革命。第三代钕铁硼永磁材料的应用,进一步减少了电机的用铜量,促使无刷电机向高效率、小型化、节能的方向发展。 目前,为提高电动机的功率密度,出现了横向磁场永磁电机,其定子齿槽与电枢线圈在空间位置上相互垂直,电机中的主磁通沿电机轴向流通,这种结构提高了气隙磁密,能够提供比传统电机大得多的输出转矩。该类型电机正处于研究开发阶段。 2.2.2 电子换相电路 控制电路:无刷直流电动机通过控制驱动电路中的功率开关器件,来控制电机的转速、转向、转矩以及保护电机,包括过流、过压、过热等保护。控制电路最初采用模拟电路,控制比较简单。如果将电路数字化,许多硬件工作可以直接由软件完成,可以减少硬件电路,提高其可靠性,同时可以提高控制电路抗干扰的能力,因而控制电路由模拟电路发展到数字电路。 驱动电路:驱动电路输出电功率,驱动电动机的电枢绕组,并受控于控制电路。驱动电路由大功率开关器件组成。正是由于晶闸管的出现,直流电动机才从有刷实现到无刷的飞跃。但由于晶闸管是只具备控制接通,而无自关断能力的半控性开关器件,其开关频率较低,不能满足无刷直流电动机性能的进一步提高。随着电力电子技术的飞速发展,出现了全控型的功率开关器件,其中有可关断晶体管(GTO)、电力场效应晶体管(MOSFET)、金属栅双极性晶体管IGBT 模块、集成门极换流晶闸管(IGCT)及近年新开发的电子注入增强栅晶体管(IEGT)。随着这些功率器件性能的不断提高,相应的无刷电动机的驱动电路也获得了飞速发展。目前,全控型开关器件正在逐渐取代线路复杂、体积庞大、功能指标低的普通晶闸管,驱动电路已从线性放大状态转换为脉宽调制的开关状态,相应的电路组成也由功率管分立电路转成模块化集成电路,为驱动电路实现智能化、高频化、小型化创造了条件。 2.2.3 转子位置检测电路
1引言无刷直流电机最本质的特征是没有机械换向器和电刷所构成的机械接触式换向机构。现在,无刷直流电机定义有俩种:一种是方波/梯形波直流电机才可以被称为无刷直流电机,而正弦波直流电机则被认为是永磁同步电机。另一种是方波/梯形波直流电机和正弦波直流电机都是无刷直流电机。国际电器制造业协会在1987年将无刷直流电机定义为“一种转子为永磁体,带转子位置信号,通过电子换相控制的自同步旋转电机”,其换相电路可以是独立的或集成于电机本体上的。本次设计采用第一种定义,把具有方波/梯形波无刷直流电机称为无刷直流电机。从20世纪90年代开始,由于人们生活水平的不断提高和现代化生产、办公自动化的发展,家用电器、工业机器人等设备都向着高效率化、小型化及高智能化发展,电机作为设备的重要组成部分,必须具有精度高、速度快、效率高等优点,因此无刷直流电机的应用也发展迅速[1]。 1.1 无刷直流电机的发展概况 无刷直流电动机是由有刷直流电动机的基础上发展过来的。 19世纪40年代,第一台直流电动机研制成功,经过70多年不断的发展,直流电机进入成熟阶段,并且运用广泛。 1955年,美国的D.Harrison申请了用晶体管换相线路代替有刷直流电动机的机械电刷的专利,形成了现代无刷直流电动机的雏形。 在20世纪60年代初,霍尔元件等位置传感器和电子换向线路的发现,标志着真正的无刷直流电机的出现。 20世纪70年代初,德国人Blaschke提出矢量控制理论,无刷直流电机的性能控制水平得到进一步的提高,极大地推动了电机在高性能领域的应用。 1987年,在北京举办的德国金属加工设备展览会上,西门子和博世两公司展出了永磁自同步伺服系统和驱动器,引起了我国有关学者的注意,自此我国开始了研制和开发电机控制系统和驱动的热潮。目前,我国无刷直流电机的系列产品越来越多,形成了生产规模。 无刷直流电动机的发展主要取决于电子电力技术的发展,无刷直流电机发展的初期,由于大功率开关器件的发展处于初级阶段,性能差,价格贵,而且受永磁材料和驱动控制技术的约束,这让无刷直流电动机问世以后的很长一段时间内,都停
无刷直流电机的工作原理 无刷直流电机的控制结构 无刷直流电机是同步电机的一种,也就是说电机转子的转速受电机定子旋转磁场的速度及转子极数(P)影响: N=120.f / P。在转子极数固定情况下,改变定子旋转磁场的频率就可以改变转子的转速。无刷直流电机即是将同步电机加上电子式控制(驱动器),控制定子旋转磁场的频率并将电机转子的转速回授至控制中心反复校正,以期达到接近直流电机特性的方式。也就是说无刷直流电机能够在额定负载范围内当负载变化时仍可以控制电机转子维持一定的转速。 无刷直流驱动器包括电源部及控制部如图 (1) :电源部提供三相电源给电机,控制部则依需求转换输入电源频率。 电源部可以直接以直流电输入(一般为24V)或以交流电输入(110V/220 V),如果输入是交流电就得先经转换器(converter)转成直流。不论是直流电输入或交流电输入要转入电机线圈前须先将直流电压由换流器(inverter)转成3相电压来驱动电机。换流器(inverter)一般由6个功率晶体管(Q1~Q6)分为上臂(Q1、Q3、Q5)/下臂(Q2、Q4、Q6)连接电机作为控制流经电机线圈的开关。控制部则提供PWM(脉冲宽度调制)决定功率晶体管开关频度及换流器(inverter)换相的时机。无刷直流电机一般希望使用在当负载变动时速度可以稳定于设定值而不会变动太大的速度控制,所以电机内部装有能感应磁场的霍尔传感器(hall-sensor),做为速度之闭回路控制,同时也做为相序控制的依据。但这只是用来做为速度控制并不能拿来做为定位控制。
(图一) 无刷直流电机的控制原理 要让电机转动起来,首先控制部就必须根据hall-sensor感应到的电机转子目前所在位置,然后依照定子绕线决定开启(或关闭)换流器(inverter)中功率晶体管的顺序,如 下(图二) inverter中之AH、BH、CH(这些称为上臂功率晶体管)及AL、BL、CL(这些称为下臂功率晶体管),使电流依序流经电机线圈产生顺向(或逆向)旋转磁场,并与转子的磁铁相互作用,如此就能使电机顺时/逆时转动。当电机转子转动到hall-sensor感应出另一组信号的位置时,控制部又再开启下一组功率晶体管,如此循环电机就可以依同一方向继续转动直到控制部决定要电机转子停止则关闭功率晶体管(或只开下臂功率晶体管);要电机转子反向则功率晶体管开启顺序相反。 基本上功率晶体管的开法可举例如下: AH、BL一组→AH、CL一组→BH、CL一组→BH、AL一组→CH、AL一组→CH、BL 一组, 但绝不能开成AH、AL或BH、BL或CH、CL。此外因为电子零件总有开关的响应时间,所以功率晶体管在关与开的交错时间要将零件的响应时间考虑进去,否则
直流电机控制系统 设计
XX大学 课程设计 (论文)题目直流电机控制系统设计 班级 学号 学生姓名 指导教师
沈阳航空航天大学 课程设计任务书 课程名称专业基础课程设计 院(系)自动化学院专业测控技术与仪器 班级学号姓名 课程设计题目直流电机控制系统设计 课程设计时间: 7 月 9 日至 7 月 20 日 课程设计的内容及要求: 1.内容 利用51单片机开发板设计并制作一个直流电机控制系统。系统能够实时控制电机的正转、反转、启动、停止、加速、减速等。 2.要求 (1)掌握直流电机的工作原理及编程方法。 (2)掌握直流电机驱动电路的设计方法。 (3)制定设计方案,绘制系统工作框图,给出系统电路原理图。 (4)用汇编或C语言进行程序设计与调试。 (5)完成系统硬件电路的设计。 (6)撰写一篇7000字左右的课程设计报告。
指导教师年月日 负责教师年月日 学生签字年月日 目录 0 前言...................................................................................... 错误!未定义书签。 1 总体方案设计 ...................................................................... 错误!未定义书签。 1.1 系统方案 ...................................................................... 错误!未定义书签。 1.2 系统构成 ...................................................................... 错误!未定义书签。 1.3 电路工作原理............................................................... 错误!未定义书签。 1.4 方案选择 ...................................................................... 错误!未定义书签。 2 硬件电路设计 ...................................................................... 错误!未定义书签。 2.1 系统分析与硬件设计................................................... 错误!未定义书签。 2.2 单片机AT89C52............................................................ 错误!未定义书签。 2.3 复位电路和时钟电路................................................... 错误!未定义书签。 2.4 直流电机驱动电路设计 ............................................... 错误!未定义书签。 2.5 键盘电路设计............................................................... 错误!未定义书签。 3 软件设计 ............................................................................ 错误!未定义书签。 3.1 应用软件的编制和调试 ............................................... 错误!未定义书签。 3.2 程序总体设计............................................................... 错误!未定义书签。 3.3 仿真图形 ...................................................................... 错误!未定义书签。 4 调试分析 .............................................................................. 错误!未定义书签。
第三章、用EL-DSPMCKIV实现无刷直流电动机PWM 控制方案 实验概述: 本实验是一个无刷直流电动机的PWM控制系统。结构简单,用到的模块也较少。下面给出每个模块的输入与输出量名称及其量值格式 (一)、无刷直流电动机PWM 控制原理简介 无刷直流电动机从结构上讲更接近永磁同步电动机(我们在下一章节中做详细介绍),控制方法也很简单,主要是通过检测转子的位置传感器给出的转子磁极位置信号来确定励磁的方向,从而保证转矩角在90 度附近变化,保证电机工作的高效率。定子换相是通过转子位置信号来控制,转矩的大小则通过PWM的方法控制有效占空比来调控。 我公司提供过两种直流无刷电机,一种以前提供过的57BL-02直流无刷电机的额定电压为24V,额定转速为1600rpm,转子极数为4,也就是2 极对,还有一种是现在提供的57BL-0730N1直流无刷电机,该电机额定转速为3000rpm,转子极数为10,也就是5极对,这两种电机的转子位置都由霍尔传感器提供,同时由此计算出电机的转速,控制程序样例没有电流环。 (二)、系统组成方案及功能模块划分 本实验为开环和闭环实验,通过几个模块信号处理最终用BLDCPWM模块产生IPM 驱动信号来控制直流无刷电机转动。
下图为一个开环控制的系统功能框图,参考占空比信号经由RMP2CNTL 模块处理,变成缓变信号送到PWM产生模块。霍尔传感器的输出脉冲信号,经由DSP的CAP1、CAP2、CAP3端口被DSP获取。通过霍尔提供的转子位置信息HALL3_DRV模块判断转子位置,并将该转子位置信息通过计数器传递给BLDC_3PWM_DRV 模块,该模块通过占空比输入、设定开关频率以及转子的位置信息产生相应的PWM 信号作用于逆变器中的开关管,从而驱动电动机旋转。
综合设计报告 单位:自动化学院 学生姓名: 专业:测控技术与仪器 班级:0820801 学号: 指导老师: 成绩: 设计时间:2011 年12 月 重庆邮电大学自动化学院制
一、题目 直流电机调速与控制系统设计。 二、技术要求 设计直流电机调速与控制系统,要求如下: 1、学习直流电机调速与控制的基本原理; 2、了解直流电机速度脉冲检测原理; 3、利用51单片机和合适的电机驱动芯片设计控制器及速度检测电路; 4、使用C语言编写控制程序,通过实时串口能够完成和上位机的通信; 5、选择合适控制平台,绘制系统的组建结构图,给出完整的设计流程图。 6、要求电机能实现正反转控制; 7、系统具有实时显示电机速度功能; 8、电机的设定速度由电位器输入; 9、电机的速度调节误差应在允许的误差范围内。 三、给定条件 1、《直流电机驱动原理》,《单片机原理及接口技术》等参考资料; 2、电阻、电容等各种分离元件、IC、直流电机、电源等; 3、STC12C5A60S2单片机、LM298以及PC机; 四、设计 1. 确定总体方案; 2. 画出系统结构图; 3. 选择以电机控制芯片和单片机及速度检测电路,设计硬件电路; 4. 设计串口及通信程序,完成和上位机的通信; 5. 画出程序流程图并编写调试代码,完成报告;
直流电机调速与控制 摘要:当今社会,电动机作为最主要的机电能量转换装置,其应用范围已遍及国民经济的各个领域和人们的日常生活。无论是在工农业生产,交通运输,国防,航空航天,医疗卫生,商务和办公设备中,还是在日常生活的家用电器和消费电子产品(如电冰箱,空调,DVD等)中,都大量使用着各种各样的电动机。据资料显示,在所有动力资源中,百分之九十以上来自电动机。同样,我国生产的电能中有百分之六十是用于电动机的。电动机与人的生活息息相关,密不可分。电气时代,电动机的调速控制一般采用模拟法、PID控制等,对电动机的简单控制应用比较多。简单控制是指对电动机进行启动,制动,正反转控制和顺序控制。这类控制可通过继电器,光耦、可编程控制器和开关元件来实现。还有一类控制叫复杂控制,是指对电动机的转速,转角,转矩,电压,电流,功率等物理量进行控制。 本电机控制系统基于51内核的单片机设计,采用LM298直流电机驱动器,利用PWM 脉宽调制控制电机,并通过光耦管测速,经单片机I/O口定时采样,最后通过闭环反馈控制系统实现电机转速的精确控制,其中电机的设定速度由电位器经A/D通过输入,系统的状显示与控制由上位机实现。经过设计和调试,本控制系统能实现电机转速较小误差的控制,系统具有上位机显示转速和控制电机开启、停止和正反转等功能。具有一定的实际应用意义。关键字:直流电机、反馈控制、51内核、PWM脉宽调制、LM298 一、系统原理及功能概述 1、系统设计原理 本电机控制系统采用基于51内核的单片机设计,主要用于电机的测速与转速控制,硬件方面设计有可调电源模块,串口电路模块、电机测速模块、速度脉冲信号调理电路模块、直流电机驱动模块等电路;软件方面采用基于C语言的编程语言,能实现系统与上位机的通信,并实时显示电机的转速和控制电机的运行状态,如开启、停止、正反转等。 单片机选用了51升级系列的STC12c5a60s2作为主控制器,该芯片完全兼容之前较低版本的所有51指令,同时它还自带2路PWM控制器、2个定时器、2个串行口支持独立的波特率发生器、3路可编程时钟输出、8路10位AD转换器、一个SPI接口等,
PID闭环速度调节器采用比例积分微分控制 闭环速度调节器采用比例积分微分控制(简称PID控制),其输出是输入的比例、积分和微分的函数。PID调节器控制结构简单,参数容易整定,不必求出被控对象的数学模型,因此PID 调节器得到了广泛的应用。 PID调节器虽然易于使用,但在设计、调试无刷直流电机控制器的过程中应注意:PID调节器易受干扰、采样精度的影响,且受数字量上下限的影响易产生上下限积分饱和而失去调节作用。所以,在不影响控制精度的前提下对PID控制算法加以改进,关系到整个无刷直流电机控制器设计的成败。 2速度设定值和电机转速的获取 为在单片机中实现PID调节,需要得到电机速度设定值(通过A/D变换器)和电机的实际转速,这需要通过精心的设计才能完成。 无刷直流电机的实际转速可通过测量转子位置传感器(通常是霍尔传感器)信号得到,在电机转动过程中,通过霍尔传感器可以得到如图2所示的周期信号。 由图2可知,电机每转一圈,每一相霍尔传感器产生2个周期的方波,且其周期与电机转速成反比,因此可以利用霍尔传感器信号得到电机的实际转速。为尽可能缩短一次速度采样的时间,可测得任意一相霍尔传感器的一个正脉冲的宽度,则电机的实际转速为:但由于利用霍尔传感器信号测速,所以测量电机转速时的采样周期是变化的,低速时采样周期要长些,这影响了PID 调节器的输出,导致电机低速时的动态特性变差。解决的办法是将三相霍尔传感器信号相“与”,产生3倍于一相霍尔传感器信号频率的倍频信号,这样可缩短一次速度采样的时间,但得增加额外的硬件开销。直接利用霍尔传感器信号测速虽然方便易行,但这种测速方法对霍尔传感器在电机定子圆周上的定位有较严格的要求,当霍尔传感器在电机定子圆周上定位有误差时,相邻2个正脉冲的宽度不一致,会导致较大的测速误差,影响PID调节器的调节性能。若对测速精度要求较高时,可采用增量式光电码盘,但同样会增加了电路的复杂性和硬件的开销。 电机速度设定值可以通过一定范围内的电压来表示。系统中采用了串行A/D(如ADS7818)来实现速度设定值的采样。但在电机调速的过程中,电机控制器的功率输出部分会对A/D模拟输入电压产生干扰,进行抗干扰处理。 3非线性变速积分的PID算法 (1)PID算法的数字实现 离散形式的PID表达式为: 其中:KP,KI,KD分别为调节器的比例、积分和微分系数;E(k),E(k-1)分别为第k 次和k-1次时的期望偏差值;P(k)为第k次时调节器的输出。 比例环节的作用是对信号的偏差瞬间做出反应,KP越大,控制作用越强,但过大的KP会导致系统振荡,破坏系统的稳定性。积分环节的作用虽然可以消除静态误差,但也会降低系统的响应速度,增加系统的超调量,甚至使系统出现等幅振荡,减小KI可以降低系统的超调量,但会减慢系统的响应过程。微分环节的作用是阻止偏差的变化,有助于减小超调量,克服振荡,使系统趋于稳定,但其对干扰敏感,不利于系统的鲁棒性。 (2)经典PID算法的积分饱和现象 当电机转速的设定值突然改变,或电机的转速发生突变时,会引起偏差的阶跃,使|E(k)|增大,PID的输出P(k)将急剧增加或减小,以至于超过控制量的上下限Pmax,此时的实际控制量只能限制在Pmax,电机的转速M(k)虽然不断上升,但由于控制量受到限制,其增长的速度减慢,偏差E(k)将比正常情况下持续更长的时间保持在较大的偏差值,从而使得PID 算式中的积分项不断地得到累积。当电机转速超过设定值后,开始出现负的偏差,但由于积分项已有相当大的累积值,还要经过相当一段时间后控制量才能脱离饱和区,这就是正向积分饱和,反向积分饱和与此类似。解决的办法:一是缩短PID的采样周期(这一点单片机往往达不到),