34电机转动控制实验.docx
- 文档编号:27463697
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:15
- 大小:175.42KB
34电机转动控制实验.docx
《34电机转动控制实验.docx》由会员分享,可在线阅读,更多相关《34电机转动控制实验.docx(15页珍藏版)》请在冰豆网上搜索。
34电机转动控制实验
3.4电机转动控制实验
一、实验目的
1.熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。
2.编程实现ARM系统的PWM输出和I/O输出,前者用于控制直流电机,后者用于控制步进电机。
3.了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。
4.掌握带有PWM和I/O的CPU编程实现其相应功能的主要方法。
二、实验内容
学习步进电机和直流电机的工作原理,了解实现两个电机转动对于系统的软件和硬件要求。
学习ARM知识,掌握PWM的生成方法,同时也要掌握I/O的控制方法。
1.通过超级终端来控制直流电机与步进电机的切换。
三、预备知识
1、用ARMADS1.2集成开发环境,编写和调试程序的基本过程。
2、ARM应用程序的框架结构。
3、会使用SourceInsight3编辑C语言源程序。
4、掌握通过ARM自带的A/D转换器的使用。
5、了解直流电机的基本原理。
6、了解步进电机的基本原理,掌握环形脉冲分配的方法。
四、实验设备及工具
硬件:
ARM嵌入式开发平台、用于ARM920T的JTAG仿真器、PC机Pentium100以上。
软件:
PC机操作系统Win2000或WinXP、ARMADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序
五、实验原理及说明
1.直流电机
1)直流电动机的PWM电路原理
晶体管的导通时间也被称为导通角а,若改变调制晶体管的开与关的时间,也就是说通过改变导通角а的大小,如图6-1所示,来改变加在负载上的平均电压的大小,以实现对电动机的变速控制,称为脉宽调制(PWM)变速控制。
在PWM变速控制中,系统采用直流电源,放大器的频率是固定,变速控制通过调节脉宽来实现。
构成PWM的功率转换电路或者采用"H"桥式驱动,或者采用"T"式驱动。
由于"T"式电路要求双电源供电,而且功率晶体管承受的反向电压为电源电压的两倍。
因此只适用于小功率低电压的电动机系统。
而"H"桥式驱动电路只需一个电源,功率晶体管的耐压相对要求也低些,所以应用得较广泛,尤其用在耐高压的电动机系统中。
图6-1脉宽调制(PWM)变速原理
2)直流电动机的PWM等效电路
如图7-2-a所示:
是一个直流电动机的PWM控制电路的等效电路。
在这个等效电路中,传送到负载(电动机)上的功率值决定于开关频率、导通角度及负载电感的大小。
开关频率的大小主要和所用功率器件的种类有关,对于双极结型晶体管(GTR),一般为lkHz至5kHz,小功率时(100W,5A以下)可以取高些,这决定于晶体管的特性。
对于绝缘栅双极晶体管(IGBT),一般为5kHz至l2kHz;对于场效应晶体管(MOSFET),频率可高达2OkHz。
另外,开关频率还和电动机电感有关,电感小的应该取得高些。
图6-2a)等效电路b)PWM电路中电流和电压波讨论
当接通电源时,电动机两端加上电压UP,电动机储能,电流增加,当电源中断时,电枢电感所储的能量通过续流二极管VD继续流动,而储藏的能量呈下降的趋势。
除功率值以外,电枢电流的脉动量也与电动机的转速无关,仅与开关周期、正向导通时间及电机的电磁时间常数有关。
3)直流电动机PWM电路举例
图6-3为直流电动机PWM电路的一个例子。
它属于"H"桥式双极模式PWM电路。
图6-3直流电动机PWM电路举例
电路主要由四部分组成,即三角波形成电路、脉宽调制电路、信号延迟及信号分配电
路和功率电路。
电路中各点波形如图6-4所示。
其中信号延迟电路是为了防止"共态直通"而设置的。
一般延迟时间调整在(10~30)ps之内,根据晶体管特性而定。
其原理简单叙述如下:
功率电路主要由四个功率晶体管和四个续流二极管组成。
四个功率晶体管分为两组,V1与V4、V2与V3分别为一组,同一组的晶体管同时导通,同时关断。
基极的驱动信号Ub1=Ub2,Ub3=Ub4。
其工作过程为:
·在t1’—t2期间,Ub1>0与Ub4>0,V1与V4导通,V2与V3截止,电枢电流沿回路l流通。
·在t2—T+t1’期间,Ub1<0与Ub4<0,V1与V4截止,Ub2>0与Ub3>0但此时由于电枢电感储藏着能量,将维持电流在原来的方向上流动,此时电流沿回路2流通;经过跨接于V2与V3上的续流二极管VD4、VD5。
受二极管正向压降的限制,V2与V3不能导通。
·T+t1’之后,重复前面的过程。
·反向运转时,具有相似的过程。
图6-4PWM电路中各点波形
4)开发平台中直流电机驱动的实现
开发板中的直流电机的驱动部分如图7-3所示;由于S3C2410X芯片自带PWM定时器,所以控制部分省去了三角波产生电路、脉冲调制电路和PWM信号延迟及信号分配电路,取而代之的是S3C2410X芯片的定时器0、1组成的双极性PWM发生器。
PWM发生器用到的寄存器主要有以下几个:
(1)TCFG0
表6-1TCFG0寄存器
Register
Address
R/W
Description
ResetValue
TCFG0
0x51000000
R/W
Configuresthetwo8-bitprescalers
0x00000000
TCFG0
Bit
Description
InitialState
Reserved
[31:
24]
0x00
Deadzonelength
[23:
16]
These8bitsdeterminethedeadzonelength.The1unittimeofthedeadzonelengthisequaltothatoftimer0.
0x00
Prescaler1
[15:
8]
These8bitsdetermineprescalervalueforTimer2,3and4.
0x00
Prescaler0
[7:
0]
These8bitsdetermineprescalervalueforTimer0and1.
0x00
参考:
Deadzonelength=0;prescalervalue=2。
(2)TCFG1
表6-2TCFG1寄存器
Register
Address
R/W
Description
ResetValue
TCFG1
0x51000004
R/W
5-MUX&DMAmodeselectonregister
0x00000000
TCFG1
Bit
Description
InitialState
Reserved
[31:
24]
00000000
DMAmode
[23:
20]
SelectDMArequestchannel
0000=Noselect(allinterrupt)
0001=Timer0
0010=Timer1
0011=Timer2
0100=Timer3
0101=Timer4
0110=Reserved
0000
MUX4
[19:
16]
SelectMUXinputforPWMTimer4.
0000=1/20001=1/40010=1/8
0011=1/1601xx=ExternalTCLK1
0000
MUX3
[15:
12]
SelectMUXinputforPWMTimer3.
0000=1/20001=1/40010=1/8
0011=1/1601xx=ExternalTCLK1
0000
MUX2
[11:
8]
SelectMUXinputforPWMTimer2.
0000=1/20001=1/40010=1/8
0011=1/1601xx=ExternalTCLK1
0000
MUX1
[7:
4]
SelectMUXinputforPWMTimer1.
0000=1/20001=1/40010=1/8
0011=1/1601xx=ExternalTCLK0
0000
MUX0
[3:
0]
SelectMUXinputforPWMTimer0.
0000=1/20001=1/40010=1/8
0011=1/1601xx=ExternalTCLK0
0000
时钟输入频率=PCLK/(prescalervalue+1)/(dividervalue)。
prescalervalue有TCFG0决定;dividervalue由TCFG1决定。
参考:
无DMA模式,dividervalue=2。
本系统中PCLK=50.7MHz
(3)TCON
表7-3TCON寄存器
Register
Address
R/W
Description
ResetValue
TCON
0x51000008
R/W
Timercontrolregister
0x00000000
TCON
Bit
Description
Initialstate
Timer4autoreloadon/off
[22]
Determineautoreloadon/offforTimer4.0=One-shot1=Intervalmode(autoreload)
0
Timer4manualupdate(note)
[21]
DeterminethemanualupdateforTimer4.0=Nooperation1=UpdateTCNTB4
0
Timer4start/stop
[20]
Determinestart/stopforTimer4.0=Stop1=StartforTimer4
0
Timer3autoreloadon/off
[19]
Determineautoreloadon/offforTimer3.0=One-shot1=Intervalmode(autoreload)
0
Timer3outputinverteron/off
[18]
Determineoutputinverteron/offforTimer3.0=Inverteroff1=InverteronforTOUT3
0
Timer3manualupdate(note)
[17]
DeterminemanualupdateforTimer3.0=Nooperation1=UpdateTCNTB3&TCMPB3
0
Timer3start/stop
[16]
Determinestart/stopforTimer3.0=Stop1=StartforTimer3
0
Timer2autoreloadon/off
[15]
Determineautoreloadon/offforTimer2.0=One-shot1=Intervalmode(autoreload)
0
Timer2outputinverteron/off
[14]
Determineoutputinverteron/offforTimer2.0=Inverteroff1=InverteronforTOUT2
0
Timer2manualupdate(note)
[13]
DeterminethemanualupdateforTimer2.0=Nooperation1=UpdateTCNTB2&TCMPB2
0
Timer2start/stop
[12]
Determinestart/stopforTimer2.0=Stop1=StartforTimer2
0
Timer1autoreloadon/off
[11]
Determinetheautoreloadon/offforTimer1.0=One-shot1=Intervalmode(autoreload)
0
Timer1outputinverteron/off
[10]
Determinetheoutputinverteron/offforTimer1.0=Inverteroff1=InverteronforTOUT1
0
Timer1manualupdate(note)
[9]
DeterminethemanualupdateforTimer1.0=Nooperation1=UpdateTCNTB1&TCMPB1
0
Timer1start/stop
[8]
Determinestart/stopforTimer1.0=Stop1=StartforTimer1
0
TCON
Bit
Description
Initialstate
Reserved
[7:
5]
Reserved
Deadzoneenable
[4]
Determinethedeadzoneoperation.0=Disable1=Enable
0
Timer0autoreloadon/off
[3]
Determineautoreloadon/offforTimer0.0=One-shot1=Intervalmode(autoreload)
0
Timer0outputinverteron/off
[2]
Determinetheoutputinverteron/offforTimer0.0=Inverteroff1=InverteronforTOUT0
0
Timer0manualupdate(note)
[1]
DeterminethemanualupdateforTimer0.0=Nooperation1=UpdateTCNTB0&TCMPB0
0
Timer0start/stop
[0]
Determinestart/stopforTimer0.0=Stop1=StartforTimer0
0
参考:
deadzoneoperationenable;Inverteroff
(4)TCNTB0&TCMPB0
表7-4TCNTB0&TCMPB0
Register
Address
R/W
Description
ResetValue
TCNTB0
0x5100000C
R/W
Timer0countbufferregister
0x00000000
TCMPB0
0x51000010
R/W
Timer0comparebufferregister
0x00000000
TCMPB0
Bit
Description
InitialState
Timer0comparebufferregister
[15:
0]
SetcomparebuffervalueforTimer0
0x00000000
TCNTB0
Bit
Description
InitialState
Timer0countbufferregister
[15:
0]
SetcountbuffervalueforTimer0
0x00000000
TCNTB0决定了脉冲的频率,TCMPB0决定了正脉冲的宽度。
当TCMPB0=TCNTB0/2时,正负脉冲宽度相同;当TCMPB0由0变到TCNTB0时,负脉冲宽度不断增加。
参考:
脉冲频率为1Hz。
(5)TCNTO0
表7-5TCNTO0
Register
Address
R/W
Description
ResetValue
TCNTO0
0x51000014
R
Timer0countobservationregister
0x00000000
TCNTO0
Bit
Description
InitialState
Timer0observationregister
[15:
0]
SetcountobservationvalueforTimer0
0x00000000
2.步进电机
1)步进电机概述
步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。
单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。
多相步进电动机有多相方波脉冲驱动,用途很广。
使用多相步进电动机时,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各相绕组。
每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转过一定的角度(称为步距角)。
正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。
由于步进电动机能直接接收数字量的输入,所以特别适合于微机控制。
2)步进电机的种类
目前常用的步进电机有三类:
1、反应式步进电动机(VR)。
它的结构简单,生产成本低,步距角可以做的相当小,但动态性能相对较差。
2、永磁式步进电动机(PM)。
它的出力大,动态性能好;但步距角一般比较大。
3、混合步进电动机(HB)。
它综合了反应式和永磁式两者的优点,步距角小,出力大,动态性能好,是性能较好的一类步进电动机。
3)步进电机的工作原理
现以反应式三相步进电机为例说明其工作原理。
定子铁心上有六个形状相同的大齿,相邻两个大齿之间的夹角为60度。
每个大齿上都套有一个线圈,径向相对的两个线圈串联起来成为一相绕组。
各个大齿的内表面上又有若干个均匀分布的小齿。
转子是一个圆柱形铁心,外表面上圆周方向均匀的布满了小齿。
转子小齿的齿距是和定子相同的。
设计时应使转子齿数能被二整除。
但某一相绕组通电,而转子可自由旋转时,该相两个大齿下的各个小齿将吸引相近的转子小齿,使电动机转动到转子小齿与该相定子小齿对齐的位置,而其它两相的各个大齿下的小齿必定和转子的小齿分别错开正负1/3的齿距,形成“齿错位”,从而形成电磁引力使电动机连续的转动下去。
和反应式步进电动机不同,永磁式步进电动机的绕组电流要求正,反向流动,故驱动电路一般要做成双极性驱动。
混合式步进电动机的绕组电流也要求正,反向流动,故驱动电路通常也要做成双极性。
4)开发板中步进电机控制的实现
本开发板中使用的步进电机为四相步进电机。
转子小齿数为64。
系统中采用四路I/O进行并行控制,ARM控制器直接发出多相脉冲信号,在通过功率放大后,进入步进电机的各相绕组。
这样就不再需要脉冲分配器。
脉冲分配器的功能可以由纯软件的方法实现。
图6-5四相步进电机在开发板中的接法
四相步距电机的控制方法有四相单四拍,四相单、双八拍和四相双四拍三种控制方式。
步距角的计算公式为:
θb=
其中:
m为相数,控制方法是四相单四拍和四相双四拍时C为1,控制方法是四相单、双八拍时C为2,Zk为转子小齿数。
本系统中采用的是四相单、双八拍控制方法,所以步距角为360°/512。
但步进电机经过一个1/8的减速器引出,实际的步距角应为360°/512/8。
开发平台中使用EXI/O的高四位控制四相步进电机的四个相。
按照四相单、双八拍控制方法,电机正转时的控制顺序为A→AB→B→BC→C→CD→D→DA。
EXI/O的高四位的值参见表7-6。
表7-6电机正转时,EXI/O的高四位的值
十六进制
二进制
通电状态
1H
0001
A
3H
0011
AB
2H
0010
B
6H
0110
BC
4H
0100
C
CH
1100
CD
8H
1000
D
9H
1001
DA
反转时,只要将控制信号按相反的顺序给出即可。
可以通过宏SETEXIOBITMASK(bit,mask)(EXIO.h)来设置扩展I/O口,其中mask参数为0xf0。
六、实验步骤
1.新建工程,将“Exp4电机转动控制实验”中的文件添加到工程。
2.编写直流电机初始化数(MotorCtrl.c)
图6-6直流电机初始化数
3.控制直流电机
图6-7控制直流电机
4.控制步进电机
图6-8控制步进电机
七、思考题
1.简述PWM的基本原理,思考其基本参数的变化对电机转动的影响。
2.步进电机的基本工作原理是什么?
简述软件实现的脉冲分配器的方法。
3.思考四相步进电机的各相先后导通的所有可能,确定步距角的变化,自己动手编出程序,在试验平台上验证。
4.PWM与系统模拟电压是如何对应转化的?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 34 电机 转动 控制 实验