Atmega16在开关磁阻电机调速系统中的应用

分享到:

作者:刘扬超 孙慎言 李巍巍

  1 引言

  目前,随着汽车工业的发展,能源短缺问题日趋严峻。为此,国家科技部启动了“863电动汽车重大专项”,而开关磁阻电机(Switched Reluctance Motor,简称SRM)以其启动转矩大、调速范围宽等优点被作为未来电动汽车的理想驱动电机之一。开关磁阻电机是一种必须在控制器协调控制下才能运转起来的电机,因而控制器性能的好坏直接影响电机的运转性能。以往控制系统所采用的CPU主要有三种类型:一是采用51系列8位单片机,这种处理器处理速度相对缓慢,功能简单,外围电路比较复杂。二是采用196系列16位单片机,这种处理器处理速度比较快,但由于内部外设模块不够丰富,因而外围电路仍相对复杂。三是采用240系列DSP,这种处理器处理速度快,内部外设模块丰富,但芯片价格昂贵,所以不能得到较广泛的应用。本文选用Atmel公司出品的Atmega16作为CPU来控制开关磁阻电机,大大提高了性价比。

  2 AVR系列单片机

  AVR单片机是目前最新的单片机系列之一,具有速度高、片内硬件资源丰富等优点,可作为真正意义上的单片机使用。它的最大特点是低功耗和高速度,其掉电方式、闲置方式至工作方式下的耗电约为1μA~2.5μA。该系列单片机采用现代微处理器流水管线预取指令技术,淘汰了机器周期的概念。它以时钟周期为指令执行的基本时间单位,每个时钟周期可执行一条指令。时钟频率通常采用4MHz~8MHz,故最短的指令执行时间为250ns~25ns。在12MHz频率下,指令的吞吐量为12MIPS,这是一般MCS-51单片机速度的12倍。AVR系列片内含有模拟比较器,与输入捕捉功能配合可进行多种模拟控制和转换。它借鉴了某些机型的高速输入输出HSIO和可编程计数阵列PCA的概念,实现了本身的输入捕捉、输出比较和脉冲宽度调制输出功能,从而成为脉冲信号测量、开关量按时控制及某些直流马达调速的得力工具。在软件开发方面,AVR单片机内含容量不等的闪速程序存储器(Flash Memory,简称Flash),可反复擦写至少1000次,极大地方便了产品开发和软件修改。Flash存储器中的程序可由PC机串行下载,亦可在通用写入器上以并行方式写入。

  3 开关磁阻电机工作原理

  所谓磁阻电机是指电机各磁路的磁阻随转子位置而改变,因而电机的磁场能量也将随转子位置的变化而变化,并将磁能变换成机械能。这种结构与步进电动机相似,开关磁阻电动机的运行亦遵循“磁阻最小原理”,即磁通总是沿着磁阻最小的路径闭合。而具有一定形状的铁心在移动到最小磁阻位置时,必使自己的主轴线与磁场的主轴线重合。图1为四相开关磁阻电机结构图,当定子D-D‘极励磁时,所产生的磁力会力图使转子旋转到转子极轴线1-1’与定子极轴线D-D’重合的位置,并使D相励磁绕组的电感最大。若以图1中定、转子所对的位置作为起始位置,然后依次给D-A-B-C相绕组通电,转子会逆着励磁顺序以逆时针方向连续旋转;反之,若依次给B-A-D-C相通电,则转子会沿顺时针方式转动。可见,开关磁阻电动机的转向与相绕组的电流方向无关,而仅取决于相绕组通电的顺序。

  4 系统设计要求及结构实现

  对于额定功率为0.75kW、转速为50~2000r.p.m的8/6极SRM,在低速时可采用PWM方式来控制,而在高速时则应采用单脉冲控制。电机转子每转过15°,位置传感器PIA和PIB会发生变化并产生一次相中断,之后MSP430依据外部操作要求(如正传或反转)及当前状态来决定下一次输出状态并送给数字比较器,当与下一次中断信号一致时,它会向CPU发送一次中断,并输出相信号给逻辑电路,最后驱动电动机。同时依据此中断信号计算转速,以作为高速单脉冲工作状态的参考点(对于高速单脉冲,由于在高速时没有足够时间精确计算开关角的大小,因而本设计采取每相固定导通30°的控制方式,其实现方法待后详述)。

  当转速给定后,即可采用调节电位器输出模拟量送给Atmega16的A/D模块。系统中的LED用于显示转换速等信息,键盘用于设定各参量(如方向等)。其控制结构框图如图2所示。

  4.1 PWM控制

  AVR的T/C1除具有定时、计数、输入捕捉和输出比较功能外,还可构成两个脉冲宽度调制PWM输出通道。由于经缓冲的PWM输出可驱动电机,且其转速正比于OCR1A或OCR1B寄存器的内容。因此,可以利用OCR1A输出PWM波,再将该信号与各路相输出信号相与后输出,从而实现控制各路相信号以及低速调速之目的。

  4.2 高速单脉冲控制

  采用高速单脉冲控制方式时,可使关断角保持不变,从而使开通角在较宽的范围内进行调节,最终实现高速高速。由于AVR系列单片机具有输入捕捉功能,因此可将PIA或PIB信号送给ICP脚,然后让ICP1寄存器首先捕捉脉冲上升沿发生的时间,接着再捕捉下一次上升沿发生的时间,然后用这段时间除以相间隔的角度15°就可得到标准单脉冲数。当然,由于中断处理需要一定的时间,所以要通过软件修正。这样就可以高精度控制高速运转时的开通角和关断角,从而实现高速单脉冲的软件控制。

  5 软件示例

  5.1 相输出子程序示例

;正转相输出
.def xiin=r16 ;相输入信号寄存器
;====================
xinoutz:in xiin,pind ;将相输入信号送给寄存器
andi xiin,$03 ;相与只剩下相信号
cpi xiin,$01 ;是否da输出
brbc 1,daout ;相等,da输出
cpi xiin,$03 ;是否ab输出
brbc 1,about ;相等,ab输出
cpi xiin,$02 ;是否bc输出
brbc 1,bcout ;相等,bc输出
cpi xiin,$00 ;是否cd输出
brbc 1,cdout ;相等,cd输出
;====================
;反转相输出
;====================
xinoutf:in xiin,pind ;将相输入信号送给寄存器
andi xiin,$00 ;相与只剩下相信号
cpi xiin,$01 ;是否da输出
brbc 1,daout ;相等,da输出
cpi xiin,$02 ;是否ab输出
brbc 1,about ;相等,ab输出
cpi xiin,$03 ;是否bc输出
brbc 1,bcout ;相等,bc输出
cpi xiin,$01 ;是否cd输出
brbc 1,cdout ;相等,cd输出
;====================
daout:sbic pinb,4 ;开通a相低电平有效
sbic pinb,7 ;开通d相?
sbis pinb,5
sbis pinb,6
ret
about:sbic pinb,4 ;开通a相
sbic pinb,6 ;开通b相
sbis pinb,5
sbis pinb,7
ret
bcout:sbic pinb,5 ;开通c相
sbic pinb,6 ;开通b相?
sbis pinb,7
sbis pinb,4
ret
cdout:sbic pinb,5 ;开通c相
sbis pinb,7 ;开通d相?
sbis pinb,4
sbis pinb,6
ret

.include "m16def.inc"
.org $001c
rjmp adcint
.def channel=r29 ;模拟通道号
.def lresult=r2 ;转换低字节
.def hresult=r3 ;转换高字节
.def temp=r16
.equ sample=$0060 ;采样数据1缓冲区首地址
.equ sample2=$0063 ;采样数据2缓冲区首地址
.def round=r17 ;显示回合计数器
.def outer=r19 ;存放外环计数器
.def inner=r18 ;存放内环计数器
.equ slabel=$0400 ;字符码首地址
.def hxian=r2 ;存放预显示高字节
.def lxian=r1 ;存放预显示低字节
;采集显示速度占用系统资源r1r2s3r4r16,$60~$69
adcin:ldi channel,$04 ;从4通道开始
out admux,channel
ldi r16,$ee ;自由运行方式
out adcsr,r16 ;启动转换
clr xh ;建立sram指针
ldi x1,$60
inc channel ;通道号增1
out admux,channel ;选通道4
sbi adcsr,3 ;开启ad中断
ldi r28,$03 ;转换次数
adhere:rjmp adhere ;等待中断
adcint:in lresult,adcl ;读转换结果
in hresult,adch
st x+,lresult
dec r28
brne adnextc
rjmp adret
adnextc:ldi r28,$03 ;转换次数
inc channel ;通道号加1
out admux,channel ;选下一个通道
cpi x1,$70 ;转换的是通道7吗
brme adret ;否,返回
cbi ADCSR,7 ;是,停止转换
adret:reti

  6 结束语

  实际使用证明:Atmel公司出品的Atmega16系列单片机具有处理速度快,内部外设功能模块丰富等优点,是一种性价比较高的单片机,特别适用于电池供电、便携式以及电机驱动等系统。本文的开关磁阻电机充分利用了该单片机丰富的内部外设模块,因而简化了外围电路,大大提高了性价比。

继续阅读
基于Atmega16的电流采样电路设计

文中研制了一套模拟并网发电系统,实现了频率跟踪、最大功率跟踪、相位跟踪、输入欠压保护、输出过流保护、反孤岛效应等功能

51单片机、AVR单片机和PIC单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一个小经验,让你的AVR单片机功耗超低

休眠电流要最小:掉电模式必须的,然后能关闭的功能全部关闭,关闭BOD检测,关闭看门狗,电压越低越好,1.8V,频率越低越好。

51、AVR与PIC,三种单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

14个官方视频教程,助您学习AVR系列单片机

AVR® Insights — 第1集 — AVR存储器 AVR® Insights — 第2集 — 边写边读存储器 AVR® Insights — 第3集 — 端口 AVR® Insights — 第4集 — 休眠模式 AVR® Insights — 第5集 &mdash

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss