单片机实现两相异步电机的SVPWM控制
要钱的.大哥
脉冲信号就是像流水灯差不多,用两个口。
例如:
用到P1^0和P1^1;把P10制低电平,P11制高电平,延时一段时间后,P10制高电平 P11制低电平,如此循环,看程序:
#include "reg52.h"
sbit P10=P1^0;
sbit P11=P1^1;
void delay(unsigned int x)
P10=0;P11=1;
delay(1000);
P10=1;P11=0;
delay(1000);
}
}1-B1-B1A0;
两相四线程序 接P1口
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={0xfd,0xfb,0xf7,0xef};
uint i;
void delay(uint x)
{
uint y;
for(;x>0;x--)
{
for(y=0;y<124;y++);
void main()
while(1)
P1=tab[i];
i++;
if(i==4)
{
i=0;
}
delay(20);
扩展资料:
同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS,和WINBOND等;
常说的已经停产的89C51指的是ATMEL公司的 AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取代了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。
参考资料来源:百度百科-步进电机
摘 要:本文论述了以单片机AT89C51为控制器的步进电机的控制系统,内容主要包括该系统的硬件组成,步进电机运行过程的详细分析,PC机与AT89C51单片机之间的串行通信以及AT89C51单片机对步进电机的控制程序流程图等。关键字:单片机; 通信; 步进电动机
1 引言
平为TTL电平,为了取得一致的传输信号,因此需要采用电平转换在电气时代的今天,电动机一直在现代化的生产和生活中起芯片MAX485。根据实际需求选用AT89C51单片机,但由于其数着十分重要的作用。无论是在工农业生产还是在日常生活中的家据存储区只有256个单元,需要扩展片外数据存储器6264。此外用电器,都大量地使用着各种各样的电动机。因此对电动机的控采用脉冲分配器CH250实现单片机对步进电动机的通电换向即脉制变得越来越重要了。电动机的控制技术的发展得力于微电子技冲分配,通过光电耦合器4N25实现步进电动机与单片机的电气隔术、电力电子技术、传感器技术、永磁材料技术、自动控制技术、离,由于单片机本身的驱动能力有限,因此需要采用专门的驱动电微机应用技术的最新发展成就。正是这些技术的进步使电动机控路单电压驱动来实现功率放大,从而为电动机提供足够大的电流。制技术在近二十多年内发生了翻天覆地的变化。其中电动机的控总体的硬件方框图如图1所示:制部分已由模拟控制逐渐让位于以单片机为主的微处理器控制。本文采用硬件和软件相结合的办法实现单片机对步进电动机的运动控制。
2 硬件部分
[2]
PC机与AT89C51单片机 之间的串行通信在硬件上是由转换器ATC-106和电平转换芯片MAX485来完成的。由于PC机图1 总体的硬件框图采用的是RS-232C接口标准,根据项目要求与生产中的实际情况,需要采用传输距离较远的RS-485,因此需要采用RS-232C
3 软件部分
收稿日期:2007-05-18
通过软件实现PC机与单片机间的异步串行通信。PC机采用查询的方式发送和接收数据,单片机采用中断的方式接收PC机 T —— 步进电动机运行第 +1 步时所用的时间
N
1+N
1
1
传送的信息,从而确定步进电动机的旋转方向,走的总的脉冲数; 即匀速运行每一步所需要的时间采用软件延时法控制脉冲的分配,从而控制步进电动机的整个运 由于采用软件延时的方法来控制单片机发出脉冲的时间间行过程。 隔即通过改变脉冲的频率来改变步进电动机的运行速度。在步进电动机匀加速运行阶段,只需按电动机每走一步所需要的时间
3.1 步进电动机运行的分析
[4]
来调用延时子程序即可。根据步进电动机 的加减速要有严格的控制要求,那就是保证在
-VV
1-
ii
不失步和过冲的前提下,用最快的速度和最短的时间移动到指定
=a
(6)
+
TT
1-
ii
位置。本设计要求步进电动机的速度按图2所示运行。
—— 步进电动机匀加速运行阶段走第i步时的速度
V
i
—— 步进电动机匀加速运行阶段走第i步时所用的时间
T
i
由于步进电动机在匀加速运行阶段走最后一步时的速度与匀速运行时的速度V相同
V
N
1
L
L
=V= 又因为 = 将其代入
=
且
V V
V
V
N
1+N
1
1
1-i
i
T
T
i
1-i
(2-6)
TL
TL
-
1-ii
整理得到
a=
+TT
-1ii
2
2
+
+
(7)
TaT
0=LT
TaTL
( )
-
1-ii
i
1-ii
图2 步进电动机的运行过程
通过软件调用一个开平方函数就可以求得首先令i=
N
1
由图可知匀加速阶段与匀减速阶段的加速度和减速度大小等直到 、T ,这样就可以求出步进电动机匀
、
、
T
1
T
T
T
2
1-N
3-N
2-N
1
1
1
相同,方向相反,加减速的时间相同,因此只需算出加速段走的步加速运行阶段从静止开始每走一步所用的时间。电动机在升速数就可以知道减速时所走的步数,二者是一样的。计算过程如下:过程中所走的总的步数即脉冲数为 ,从静止开始步进电动机
N
1
首先,恒速运行时的速度V是由用户设置的,因此是一个已在匀加速阶段每走一步,升速阶段的总步数就减1,通过软件延时知量。加速度a,一个脉冲走过的距离L,整个运行过程所走的步的方法来控制走每一步所用的时间,加速阶段的延时时间是逐渐数即总的脉冲数P也都是给定值。运行方向是根据用户的要求,这样进行下
、
直到 、 、
变短的,依次为 、
T
T
T
T
T
T
1
3-N
2
2-N
1
N
1-N
1
1
1
由软件确定的。去,直到 =0,加速过程结束,进入恒速运行阶段。步进电动机
N
1
接着计算步进电动机运行时间
N
在恒速过程中走的总步数为 ,从恒速运行开始,电动机每走一
3
—— 为步进电动机匀加速运行时所用
根据
tatV =1 1
步,恒速总步数就减1,因为恒速运行时走每一步用的时间都是相的时间同的,因此软件延时的时间均为 ,直到恒速总步数减为0,恒
T
V
1+N
1
可以求出t =
(1)
1
a
速过程结束,进入减速运行阶段。由于匀减速运行的过程是加速由于匀加速阶段与匀减速阶段的加速度大小相同,因此匀过程的逆过程,在匀加速运行阶段,步进电动机走的总的步数为
t
加速运行阶段所用的时间t 与匀减速运行时所用的时间 是相
2
1
,且 =N ,减速阶段电动机每走一步,减速总步数就减1,
N
N
1
1
2
2
2
at
。因为是匀加速运行,所以S=同的,即t =
,由a和t
t
1
1
1
2
2
软件延时的时间是逐渐变常的,依次为 、
、 、 直
T
T
T T
N
1-N
2-N 3-N
1
1
1 1
求出步进电动机匀加速运行阶段走过的总的距离,通过
2
到 、 ,减速总步数减为0,减速过程结束,电动机停止运行。
T
S
T
at
21
2
1
1
N
=
(2)
=
1
L
L 3.2 通信软件的设计
可以求出匀加速运行阶段步进电动机走的总步数即脉冲
[5]
PC机与AT89C51的串行通信程序 由两部分组成:一部分数。由于步进电动机匀减速运行阶段是匀加速运行阶段的逆过是PC机的通信程序,另一部分是AT89C51的通信程序。PC机程,因此匀减速运行阶段所走的步数与匀加速运行阶段所走
N
2
发送时,AT89C51单片机一定接收;PC机接收时,AT89C51单片的步数 是相同的,即 = ,由P、 和 可以求出步进电
N N N
N N
1
1
2
1 2
机肯定发送。而且对应发送和接收的字符要相同,否则不能达到动机匀速运行阶段走的总步数即脉冲数为 ,即
N
3
正常通信的目的。此次设计PC机采用8086/8088汇编语言编
N=P- - =P-2
(3)
N
N
N 1
3 1
2
写,AT89C51单片机端采用MCS-51语言编写。为了保证数据步进电动机匀速运行时走每一步即每一个脉冲所需要的时通信的可靠性,制定通信协议如下:间是相同的,根据
① PC机与AT89C51单片机都可以发送和接收
L
(4)
V=
② PC机与AT89C51单片机的通信波特率为9600bps,采
T
1+N
1
L
(5)
因此
T
=
用的晶振频率为24MHZ,定时器T1工作在模式2,SMOD设置
为1,TH1的预设值为0CH,TL1的预设值为00H。
③ PC机与AT89C51单片机均采用串行口方式3。
④ 帧格式为:1位起始位,8位数据位,1位偶效验位,1位停止位。
⑤ PC机发送的数据帧为:
表1 PC机发送数据帧表
帧起始标志为 02H,假设电动机的运行标号为5号,对应的ASCII码值为30H,35H两个字节表示。若命令为传送命令MOV则用0表示,其对应的ASCII码值为30H,用一个字节表示。D表示步进电动机运行的方向标志,若为0则表示电动机正转,其对应的ASCII码值为30H;若为1,则表示电动机反转,其对应的ASCII码值为31H。P表示PC机传送给单片机的总的走的脉冲数。若传送的命令为设置命令SET则用1表示,其对应的ASCII码值为31H,用一个字节表示。需要单片机设置的参数有:a, V和 L;为了便于PC机与AT89C51的通信编程,数据的长度取6个字节。传送的数据只有5个字节,剩余的1个字节均用ASCII码值30H补足,对应的为0。这样做不影响效验和。若为传送命令帧,则效验和定义为方向信号D与总的脉冲数P的十六进制之和再转换为相对应的ASCII码值。若为设置命令帧,则效验和定义为a、V与L的十六进制之和再转换为D对应的ASCII码值。帧结束标志为03H。
⑥ PC机采用查询的方式发送和接收数据,AT89C51单片机采用串行口中断的方式接收和发送数据。
3.3 控制软件的设计控制步进电动机匀加速、恒速、匀减速运行的程序流程图如图2。图2 控制步进电机的程序流程图
4 结束语
参考文献:
[1] 韩全立。单片机控制技术及应用[M]。北京:电子工业出采用本方案可以很好的实现对步进电动机的控制。目前此版社,2004方案已经成功应用于电机控制的工厂等并取得了良好的效益,并
[2] 求是科技。单片机典型模块设计实例导航[M]。北京:人正试图将其进一步完善以应用于压缩机、洗衣机等日常设备中。民邮电出版社,2004
[3] 胡汉才,单片机原理及系统设计[M]。北京:清华大学出当然,随着控制产品与控制技术的发展,步进电机的控制也会得到版社,2002进一步完善。
[4] 王晓明。电动机的单片机控制[M]。北京:北京航天航空大学出版社,2002
[5] 杨金岩,郑应强,张振仁。8051单片机数据传输接口扩展技术与应用实例[M]。北京:人民邮电出版社,2005
什么是两相电
两相电一般指两相电源。通用型变频器绝大多数是交—直—交型变频器,通常尤以电压器变 频器为通用,其主回路图,它是变频器的核心电路,由整流回路(交—直交换),直流滤波电路(能耗电路)及逆变电路(直—交变换)组成,当然 还包括有限流电路、制动电路、控制电路等组成部分。当位于同一桥臂上的...
电机三相只有两相能否使用热继电器?
可以,电机三相只有两相可以使用热继电器。热继电器主要用来对异步电动机进行过载保护,它的工作原理是过载电流通过热元件后,使双金属片加热弯曲去推动动作机构来带动触点动作,从而将电动机控制电路断开实现电动机断电停车,起到过载保护的作用。鉴于双金属片受热弯曲过程中,热量的传递需要较长的时间,因此,...
两个电容的两相电机怎么接线,有几种接法,如图,急求
两种。顺、逆转控制均的2种接法:当单相正弦电流通过定子绕组时,电机就会产生一个交变磁场,这个磁场的强弱和方向随时间作正弦规律变化,但在空间方位上是固定的,所以又称这个磁场是交变脉动磁场。这个交变脉动磁场可分解为两个以相同转速、旋转方向互为相反的旋转磁场,当转子静止时,这两个旋转磁场在...
三相异步电动机怎么改装成两相电的电动机
就没有两相电这说法,要么3相要么单相 原来的三相电动机改接一下也行,其改法如下:1、原来电机接线如果是星接,可改成三角接法,采用相应容量的电容移相(裂相)就能使用。 2、不改变原接法配上电容也可用,但效率会降低。 3、在电源电压220V的情况下,电容量可按20-30微法\/KW选取,最好选用...
三相异步电机怎样改两相电,怎样接电容?
1、不是两相电,应该是单相电,三相电动机是1,5KW,Y型接法的,如下图所示。2、拆开接线盒,就会看见和标牌上一样的4组接线点,如下图所示。3、把带插头的两根线接在如图所示的接线柱上。注意别插在电源上。一根接三绕组的公共点,另一根任接一组,如下图所示。4、将电容接入电机,电容的一根...
电机工作原理
它是利用通电线圈产生旋转磁场并作用于转子形成磁电动力旋转扭矩。基于电磁感应定律和电磁力定律。电动机的分类:1、按工作电源分类,可分为直流电动机和交流电动机。其中交流电动机还分为单相电动机和三相电动机。2、按结构及工作原理分类,可分为直流电动机,异步电动机和同步电动机。3、按起动与运行...
请问一下两相及电动机的正反转原理及相关元件.重要的是两相是采用什么元...
我想你说的应该是在异步电动机的副绕组中串联了一个移相电容,然后和主绕组并联后通入单相交流电,这样副绕组就和主绕组有90度的相位差,从而能够产生起动转矩(因为否则转子导体的左右的受力抵消,无法产生转矩)。这里的两相和三相交流电里的不一样,并不是有两相电源,而是因为主副绕组的相位不同,...
请用SET,RST编程实现三相异步电动机正反转控制任务?
如图所示,X0正转启动,X1反转启动,X2停止,Y0正转接触器,Y1反转接触器。望采纳。。。
同步电动机和异步电动机的区别
同步机和异步机,都是交流电机,利用了三相交流的一个有趣的特点:简单来说,如果三个线圈像搅拌器一样排列(家里用来打鸡蛋的那种),三个线圈互不接触,分别施加ABC三相电压,这样就产生了三相电流,然后就发生了有趣的事情。在线圈围成的空间出现一个与外加电压频率相同的旋转磁场(因此为了更深入的...
我想了解双馈风电机的工作原理,从初期开始。 可以介绍几本书看看吧...
交流励磁发电机主要的运行方式有以下三种:1) 运行于变速恒频方式;2) 运行于无功大范围调节的方式;3) 运行于发电-电动方式。异步发电机是指异步电机处于发电的工作状态,从其激励方式有电网电源励磁发电(他励)和并联电容自励发电(自励)两种情况。 1、电网电源励磁发电:是将异步电机接到电网上,电机内的定子绕组产生...
徐罗天地: 298就是个H桥供电的,就写程序来说没多大关系,主要是你得测出或者查出步进电机的相序,然后按相序给IO电平就可以,每次给一个,中间间隔的时间用个可变的延时,通过改变延时来改变速度,反转嘛,你就反顺序给就可以了.不知道你具体要什么的程序,程序太大,告你给思路吧. 哥们儿,你还是自己加油吧,用汇编写这个是比较麻烦的.不过提醒你,一定要查出或测出步进相序才行.
平江区13355219751: svpwm 和矢量控制是一个东西吗?应用在 异步电机 和永磁同步电机上时有什么不同? - ?
徐罗天地: SVPWM和矢量控制不是一个东西~~,SVPWM是Space Vector Pulse Width Modul的意思,翻译成空间矢量脉宽调制,它是一种PWM技术的调制方法,他的思想是通过pwm调制形成的pwm波在接入电机三相定子绕组中时,使电机的定子产生圆...
平江区13355219751: 想对永磁同步电机进行SVPWM控制,不知道能不能选用AVR单片机MEGA128?
徐罗天地: 够也不太好吧,用软件实现,稳定性和抗干扰性都差,不如直接用带有多路SPWM的单片机,专门针对电机控制的我知道的就是EG89M52,你也可到各类型单片机官网找看看针对电机控制的单片机芯片
平江区13355219751: 28335的SVPWM怎么编写? - ?
徐罗天地: 有人用TMS570做电机控制么, NHET实现SVPWM.交流交流.28335有专门的模块,应该不难吧.既然支持浮点运算,用SIMULINK搭一个再用RTW自动生成代码就好了.我的NHET是手编的,但是从Ualpha Ubeta 到占空比的过程是用SIMULINK RTW实现的,很方便,绝对无BUG.
平江区13355219751: PMSM永磁同步电机SVPWM怎么实现调速? - ?
徐罗天地: 10k载波 则采样周期0.0001s 当pmsm转动 源于Ua和Ub所构成的Uref 开始旋转 我们实际控制是转速n 通过PI调节 使转动速度跟踪给定值 得到Ua和Ub 通过公式变换 得到各管子不同的作用时间, 也就是说 当管子作用时间长时, 转速就上去了
平江区13355219751: 89C52单片机控制两相步进电机的程序 - ?
徐罗天地: ORG 0030H MOV R1,#00H MAIN:JB P3.2,RRR P3.2为1 右转 MOV DPTR,#TAB 否则左转 TAB为左转时序 SJMP TT RRR:MOV DPTR,#TAB1 TT:MOV A,R1 MOVC A,@A+DPTR MOV P2,A LCALL DELAY INC R1 下一拍 CJNE R1,#04H,TT MOV ...
平江区13355219751: 要实现svpwm控制,为什么要先进行3 - 2变换??
徐罗天地: 静止abc坐标下电压量(三相),通过坐标变换,转换至两相静止坐标,如果abc坐标下电压量是对称的,则两相静止坐标下变量互相垂直,并且幅值相等.如果abc坐标下电压量是对称的,旋转电机的磁通空间矢量合成跟abc坐标下电压量是线...
平江区13355219751: 能产生SPWM和SVPWM的芯片有哪些,还有那些电动机时采用的SPWM或SVPWM技术的? - ?
徐罗天地: 现在的芯片都能产生PWM波,而要SPWM跟SVPWM是靠软件生成的.采用SPWM跟SVPWM是看你控制方式,同步 异步 都可以用任何一种或者两种.记得SPWM跟SVPWM都是PWM的调制方式,跟控制算法要分开.
平江区13355219751: 什么是Park矢量变换 - ?
徐罗天地: 1 异步电机控制的数学模型 鼠笼式异步电机在d,q两相同步旋转坐标系下的数学模型的电压方程为: 其中:usd和usq分别为d,q旋转坐标系下的定子电压;isd和isq分别为d,q旋转坐标系下的定子电流;ird和irq分别为d,q旋转坐标系下的转子电流;...
平江区13355219751: 两电平逆变器svpwm载波法调制策略怎么理解 - ?
徐罗天地: 1. 概念错误:SVPWM是一种调制策略,不是载波法调制,载波法有SPWM和载波移相.两种用的原理不一样!SVPWM空间矢量是基于电动机的,你看看电机类的书可以看懂.2. 逆变器是把直流电能(电池、蓄电瓶)转变成交流电(一般为...