基于DSP的扩展卡尔曼滤波直流无刷电机控制

2013-07-31 17:41:31 来源:大比特半导体器件网 点击:3553

摘要:  DSP56F805 是Motorola 专门为电机控制而设计的一种16 位定点处理器。处理器内核包含MCU 和DSP两部分,可以同时实现控制和运算的功能。

1 DSP56F805介绍
DSP56F805 是Motorola 专门为电机控制而设计的一种16 位定点处理器。处理器内核包含MCU 和DSP两部分,可以同时实现控制和运算的功能。图1是DSP56F805的芯片结构框图。

DSP56F805的芯片结构框

图1 DSP56F805芯片结构框图

处理器内核采用DSP56800。这是Motorola推出的低价格16 位DSP 内核, 兼有DSP 的高效率数字信号处理能力和MCU 的实时控制能力。内核内部包括数据算术逻辑单元(ALU)、地址产生单元(AGU)、程序控制器和硬件循环单元、位操作单元、中断控制器、外部总线桥、3 个内部地址总线和1 个外部地址总线、4个内部数据总线和1 个外部数据总线以及JTAG/OnCE 调试接口。片内其它主要资源还包括:32K×16位的编程闪存、512 × 16 位的编程RAM、4K × 16 位的数据Flash, 2K× 16位的数据RAM、电压整形器、系统时钟产生、电源管理、CAN总线驱动、串行通信接口SCI 和串行外围接口SPI 等等。针对电机控制, 其结构有以下特点。① 运算。由于DSP56F805 采用Flash,所以在80MHz主频下,速度最高只能达到40MIPS。单周期16 × 16 位并行乘加器(MAC)是DSP的重要组成部分,能一次完成相乘后再相加,并同时更新两个乘数。并行指令也是DSP 特有的,可以在同一个周期完成两个或以上的指令。两个36 位累加器,可以进行32 位加法和16 × 16 位乘加运算而不产生溢出。16位双向桶状移位器可在一个周期完成多位移位操作。外部总线控制信号还可以设置为增加0、4、8、12 延时,以适应不同速度总线扩展要求。

② A/D。DSP56F805 有2 个A/D 转换模块,每个模块包括4 路12 位的通道。除单次采样方式外,对于每个模块,可以使4 路通道连续扫描,以加快A/D转换速度(除第一次1.7 μs 外, 其余每次1.2 μs);也可以同时采样2 个模块的各一路通道,消除相差。
③ PWM。DSP56F805 有2 个PWM 模块,每个模块包括6 路PWM 输出。PWM 模块的时钟周期是系统时钟周期的倍数。PWM的输出周期和占空比则是PWM 模块时钟周期的倍数,倍数可以进行调整。每次PWM 输出后、下一次PWM 输出开始前,都可以产生RELOAD中断,从而可以在中断服务程序中重新计算占空比等PWM参数,下一次PWM输出时生效。PWM输出的对齐方式除了边缘对齐外,还支持中心对齐,可以有效地降低输出电流的偏差。每路波形输出的驱动能力很强,输出极性可以编程,并能强制为高或低电平。此外, 还具有保护功能, 当发生意外事件时,响应该外部事件能立即停止输出。
④ 定时器。 除具有一般的定时器/ 计数器功能外,DSP56F805 的定时器模块2 还可以捕捉PWM 的RELOAD同步信号,然后自动启动A/D转换。在这种情况下,由于A/D转换是自动启动的,无须在RELOAD中断服务程序手工启动,即A/D转换与RELOAD中断服务同时进行。这样带来的好处是采样周期缩短, 控制精度提高。

直流无刷电机体积小、振动轻,既保留了传统直流电机的高性能调速,又用电子换相器解决了传统直流电机的炭刷这一致命缺陷,是今后家电电机发展的方向。要实现直流无刷电机一系列复杂的高性能控制算法,如EKF无传感器位置检测算法、电机闭环控制和快而精确的PWM 调制输出,需要大量的数学运算,需要使用集成了一系列外围设备(如:A/D、PWM发生器)的DSP 电机控制器。DSP56F805 的各种片内资源和支持软件包SDK功能与上述要求正好吻合,所以本文用它作系统核心,设计了一个基于EKF的无位置传感器直流无刷电机控制系统。[#page#]

2 无刷电机控制系统设计
(1)总体设计方案
本系统由一台三相直流无刷电机、半桥全控功率逆变器电子开关和DSP56F805 评估板三部分构成,硬件结构框图如图2 所示。

EKF无位置传感器直流无刷电机控制系统

图2 EKF无位置传感器直流无刷电机控制系统框图

直流无刷电机三相定子绕组两两通电,转子每转过60°电角度进行一次电流换相。系统采用双闭环控制:内环检测相电流,输入到DSP56F805 的A/D并与速度环输入的参考电流相比较,进行电流环(力矩)控制;外环用扩展卡尔曼滤波器(EKF,Extend Kalman Filter)估计的转子速度和由环境温度推出的参考速度相比较,进行速度环控制。电流内环采用比例调节,在突加给定转速的情况下提高相应的控制电压(占空比),使相电流下降引起的电流偏差迅速消除,系统保持一个高的恒电流输出,实现了最短时间达到给定转速;速度外环采用PI 调节,在稳态时使系统表现为一个无静差调速系统。扩展卡尔曼滤波器将检测到的定子绕组端电压信号和相电流信号反馈至DSP56F805 的A/D,分别作为输入变量和观测变量,利用DSP56F805 的计算能力完成所需的大量矩阵运算,最后得到状态变量,即转子角度和速度。

系统通过温度传感器检测外界热负荷: 热负荷大时,电机以较高的速度运行,单位时间负载能力增大;热负荷小时,电机降低速度运行,单位时间负载能力减小以节能;外界温度达到使用者所需房间温度后,速度降到负载能力与房间热负荷相等, 连续运行。
(2)EKF 法估计转子位置和速度的原理
无传感器电机控制是利用可检测的电压和电流信号对转子位置和速度进行估计。卡尔曼滤波器由于能够有效地抑制电机控制中遇到的噪声,因此在电机控制中得到了广泛应用。卡尔曼滤波算法在每一次采样过程中都分为两步:校正和预报。在预报中,通过测量给定输入变量,利用电机的数学模型对下一次采样过程中的状态变量如何变化进行预报,再在这个预报的状态变量基础上, 对下一次采样过程中的观测变量如何变化进行预报。在校正中,通过测量得到实际的观测变量值,与预报的观测变量相比较,将二者之差和卡尔曼增益相乘,再用乘积对预报的状态变量进行校正。另外在每一次采样过程的校正和预报中, 要同时计算状态变量的协方差。这个协方差是对状态变量估计准确度的一种测试,校正中的卡尔曼增益就是基于这个协方差得来的。当我们对于状态变量估计准确度没有把握时, 卡尔曼增益随状态变量协方差的变化而加大, 校正幅度也加大;当我们对于状态变量估计准确度有较大把握时,卡尔曼增益随状态变量协方差的变化而减小,测量噪声对状态变量校正的影响也减小。卡尔曼滤波的模型建立在变量之间的矩阵运算之上,即变量之间存在线性组合的关系。直流无刷电机是一个非线性系统,这样的变量间线性组合关系并不存在,由此引入了扩展卡尔曼滤波算法。EKF适用于被随机噪声干扰的非线性系统,其基本思想和普通卡尔曼滤波一样,只是把模型中的非线性组合关系用函数的泰勒级数(一般是二级)展开来逼近,使非线性系统变量之间也可以进行矩阵运算。
以下列出了本系统采用的模型和变量。
① 电机模型 :abc 参考框架。

系统模型:

系统模型

Fk(xk)表示k 次状态变量xk与k+1 次状态变量xk +1 之间的关系(非线性),Gk表示k 次输入变量uk与k+1 次
状态变量xk +1 之间的关系(线性),wk表示控制系统的噪声。
(由于Fk(xk ) 的非线性, EKF 计算过程中需用到它对xk的亚各比矩阵)

观测模型:

观测模型[#page#]

H 表示每次状态变量与观测变量之间的关系(线性), vk表示测量噪声。

② 状态变量:

状态变量

是三相电流, ω是转子的角速度, θ是转子的转角。

③输入变量:  是每次采样周期内各相电压的平均值。

④观测变量: 是三相的电流。

(1)温度传感器检测电路
本系统选用美国国家半导体公司的数字温度传感器LM74 测量温度。温度测量范围宽, 精度高,并可利用
其SPI 接口方便地与DSP56F805 通信,节省了A/D通道,电路如图3 所示。

 温度传感器检测电路

图3 温度传感器检测电路

其中DSP56F805 的GPI/O输出作为数字温度传感器LM74 的有效片选信号。由它们控制多片LM74,可以复用DSP56F805 的SPI 接口(数据I/O引脚MOSI 和MISO,SPI 时钟引脚SC), 同时接收多个温度输入。
(2)电机端电压检测电路
电压/ 电流检测电路是电机控制系统外围硬件的关键部分。图4 前端对输入端电压信号分压,中间经过隔离运放,后端信号经过差动放大和+5V稳压二极管构成极性转换电路, 最后送入DSP 的A/D 通道。

电机端电压检测电路

图4 电机端电压检测电路

(3)电机电流检测电路

因为无位置传感器直流无刷电机三相绕组a在任何时刻只有两相通电,所以电流检测只需两个霍尔传感器。霍尔传感器采用磁平衡式,输出的电流信号经过精密电阻转换为电压信号,再经过运放放大处理,最后送入DSP的A/D通道,
如图5 所示。

电机电流检测电路

图5 电机电流检测电路

4 软件设计
(1)前台主程序平台
前台程序的功能是完成初始化和电机预定位启动,另外还要形成无穷循环,以响应中断发生。其流程如图6 所示。

前台主程序流程图[#page#]

图6 前台主程序流程图

(2)电机预定位启动程序
为了解决启动困难的问题(因为低速时扩展卡尔曼滤波估计的转子位置和速度误差较大),采用预定位方式启动。首先,在没有位置反馈的情况下强迫转子预定位到与定子合成磁势轴线重合的位置(alignment)。第二步为启动(start ing),像同步电机一样由控制器换相,当转子转动时产生反电动势。在这个过程中同时投入反电动势检测及控制程序, 最后使电机切换到无刷电机自控换相运行方式(runn ing)。其流程如图7所示。
DSP56F805 的PWM 模块的RELOA D 中断服务程序,每个PWM 周期产生一次,同时产生同步信号,经过定时器模块2,启动A/D 通道进行采样转换。在启动阶段, 调用服务程序1。

电机预定位启动程序

图7 电机预定位启动程序

(3)PWM 中断服务程序1(启动)
设PWM 周期为200 μs, 电流环进行P 调节,速度环开环。当检测到转速足够高以使观测误差足够小时,启动阶段结束,稳态标志置位,下次中断服务调用程序2, 系统进入稳态。
(4)PWM 中断服务程序2(稳态)
设PWM 周期为200 μs,电流内环比例调节,速度外环PI调节,扩展卡尔曼滤波器估计转子角度和速度等功能都在其中完成, 流程如图8 所示。

PWM中断服务程序流程图

图8 PWM中断服务程序流程图

5 结 论
直流无刷电机的电子换相是其控制的最关键技术,一般需要用霍尔传感器将转子的位置变换为电信号,使定子各相绕组按一定次序换相。家电领域,由于对成本的敏感、密封压缩机的连线影响、壳顶高温和空间狭小等原因,无法采用位置传感器。这就要求通过反电势检测等无传感器位置检测的间接方法来获取转子的位置信号。传统的检测大都根据不导通相反电势的过零点来判断转子的位置,但只能检测一些特定的点,而且电机转速大范围变化时过零点会产生相移。针对这些问题,本文利用DSP56F805 的计算速度,在此平台上按上述算法实现的控制软件(PWM 中断服务程序)运行时间,经实测约为150 μs。用扩展卡尔曼滤波法(EKF)连续地估计转子瞬时位置和速度,稳态时这些状态变量的估计值与真实值几乎一样,使电机控制性能得到了很大提高。

本文由大比特收集整理(www.big-bit.com)

本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
Big-Bit 商务网

请使用微信扫码登陆

x
凌鸥学园天地 广告