概述
DSP 擅长于数学运算,嵌入式DSP电机控制芯片把DSP内核与一系列功能强大的控制外设集成到一个芯片上,这样便能以快速的DSP内核作为计算引擎,加上片内的A/D模块提高了电机控制带宽,并且允许低成本实现更加复杂垢控制和无传感器的算法,因此能控制交流感应电动机、无刷直流电动机和开关磁阻电机,需不需要速度或位置传感器,甚至特殊的电流传感方式。这些计算能力和优化的外设使它很容易的完成更多的功能,如功率因数的校正;在不增加控制器成本的情况下,满足某些特殊应用的要求,如洗衣机的平衡控制。
新经济将我们带进一个全数字的世界,更多的数字信息将要涌入家庭,如网络冰箱就是量例。嵌入式DSP使控制器甚至是电器之间建立通信成为易事。最新的嵌入式DSP带调试用的JTAG和为家庭网络控制用的CAN总线。DSP计算引擎将与更先进的外设集成,提供一种单片解决方案。因此优化的外设是可编程的,并且处于软件的实时控制之下,所以嵌入式DSP可提供更加灵活多样的控制特征,且易于升级。
本文将从嵌入式DSP电机控制芯片的基本特征开始,介绍一下基于DSP的磁场定向控制和扩展卡尔曼滤波算法。
嵌入式DSP电机控制芯片
不同的厂商,他们的DSP电机控制芯片在DSP内核、外设、编程语言以及其它半导体技术中均有不同。先进的DSP内核与优化的外设结合,不仅可用于电机控制,也可以用于通信和其它功率电子控制。由于每个应用之间在外设方面相差很大。为所有的应用设计一个嵌入式的电机控制芯片是不经济的,也是不现实的。通常,都会有一系列产品为不同的应用而优化。外设至少应包括3~6相16位PWM产生器、多重辅助PWM计数器、模拟量采集系统、参考电压、串行通信口、通用I/O口,另外也可以包括编程器接口、CAN总线和JTAG接口、DMA控制器、DPI口等等。
一些嵌入式DSP具有片内Flash存储器,如ADI的DashDSP系列。在产品开发的不同阶段可以很方便地通过PC与DSP的通信来修改软件,从而方便地进行可重复编程。Flash存储器的软件可以移植到基于ROM的产品来大批量生产。
PWM模块提供了灵活可编程的多相PWM波形,可用来驱动交流感应电动机、无刷直流电动机或开关磁阻电动机。辅助PWM输出可用来提供前端的功率因数校正或开关电源控制。另外,通过适当的滤波网络,也可以用作简单的A/D转换。
嵌入式DSP电机控制芯片使用单积分式、总和增量式或流水闪速技术的A/D系统。它的多通道模拟量采样系统通常有10~12位的分辨率,与不同应用所选的不同型号有关系。
采用扩展卡尔曼预测算法的无刷直流电动机无传感器控制
相对于交流感应电动机,无刷直流电动机由于其特性更接近于有刷直流电动机而具有多方面的优势;同时也由于无刷直流电动机大都采用了永磁转子,具有更高的效率,因此特性适合于家用电器。它本身生来具有旋转平稳、噪声低电机尺寸小等显著特点,也使使其得到了许多家用电器厂家的青睐,在风扇、洗衣机、冰箱及空调压缩机中,都开始采用无刷直流尽可能动机。
无刷直流电动机的控制有别于有刷直流电动机或交流感应电机,它需要一些位置传感信息来选择正确的换流顺序,而家电产品对费用的敏感,使得增加传感部件所带来的额外费用不受接受,也不切实际;同时容易降低系统的可靠性,而且对于象压缩机一类密封的无刷直流电动机,安装位置传感器是非常不现实的,也是不允许的。在这种情况下,无刷直流电动机的无传感器控制将被广泛采用,使之在家电领域铖为一个热门话题。
有多种算法可以实现无传感器控制,传统的方法(过零检测法)大都采用检测不导通相反电势的过零点判断转子的位置,根据过零点信息及换相逻辑来选择最佳的换流顺序。这些方法已经在许多家电上采用,如直流变频冰箱及直流变频空调。但由于过零检测法只能检测一些特定的点,而且随着电机转速在大范围内变化,反电势的变频率也会变化,检测电路中的滤波器件会带来一定的相移,这会大大影响检测过零点的准确性;同时由于功率器件上续流二极管的反向电流作用,在大电流情况下也会对过零点的检测带来一定的影响。
针对这些问题,采用扩展卡尔曼预测算法来估算无刷直流电动机转子的瞬时位置与速度信息,为无刷直流电动机无传感器控制提供了一种较好的解决方法。而且采用美国ADI的嵌入式DSP电机控制器,只需要一片28脚的ADMC328即可很方便地实现该算法。
图1 表示了用扩展卡尔曼预测算法(简称EKE)估算无刷直流电动机转子角度(位置)和速度的原理框图,图中虚线框内即为一片嵌入式DSP电机控制器,三对电阻网络用于测量非导通相的反电势信号,并将该信号送到嵌入式DSP电机控制器的ADC端。从图中可看出该方法采用了双闭环控制,用EKE算法估算出电机转子速度,对外环闭环,实现速度环控制。同时还能估算出转子位置,实现无传感器换相,而完全不依赖于过零点检测。在直流母线上可用一个采样电阻来测量导通相的电流,作为内环反馈以实现电流(力矩)控制。
在DSP中进行递推处理时,EKE算法便转子速度和位置的估算变成反电势噪声输入,它包括两步:第一步是用状态量和基于前一状态量输出进行预估算;第二步是完成校正过程,运用反电势测量数据和观测器模型去优化修正前面估算的状态量。
要完成EKE算法,首先需建立一个连续的时域系统模型。在本应用中,线性系统模型可用方程(1)描述:
X=Fx+Gu(1)
可将连续的时域系统模型转换成离散域线性系统模型,通过对连续的时域系统模型按相当于PWM频率2倍的采样频率采样,得到离散域系统模型:
X(k+1)=φkXk+Γkuk+σk(2)
这里,状态向量其中ωk、σk是系统所包含的代表转子速率和角度(位置)的两维离散状态变量;uk是转矩信号,可为确定性输入;系统随机干扰(模型噪声)σk是零均值白色高斯噪声,定义其协方差阵为。
在该应用中,只有观测器模型是非线性的,它可描述如下:
Zk=hkXk+Vk(3)
这里hk是一个非线性函数,它应该是关于不导通相的反电势的最近似的关系式,涉及转子位置和速度——系统的状态变量。测量噪声是零均值白色高斯噪声,定义其协方差阵为Rk。
在EKE 中,非线性观测器模型可在最新状态预测点线性化。非线性函数如果足够平滑,可在最新状态点上展开成泰勒级数,这就保证了对观测器模型而言,现有的线性近似是最好的近似,所选取的轨迹也是最新近的轨迹。该函数的确定,对于EKE算法能否得到正确的预测起到了关键作用。
用方程(2)对状态量进行预先状态估算,通过忽略模型噪声,然后将预先估算值加上用卡尔曼增益Kk加权进行修正的测量残差来得到预测值,这可表示如下:
xk=xk+Kk(zk-zk -)(4)
为了在(4)中得到最优估计,采用如下卡尔曼增益:
Kk=Pk -HkT(HkT+Rk) -1(5)
整个递推过程可由图2所示垢流程图来描述,显然对转子速度和角度估算的EKE实际上是一个DSP算法,由DSP把反电势的离散测量值处理成转子速度和角度的最优估算,它可以按线性轨迹进行线性化。递推过程用最优估算值Xk作为x的tk时刻的参考值去预测(xk+1)-。因此它实际上是一个近似最优的滤波器件设计,常称为次最优滤波。EKE算法的执行包含了大量的矩阵运算,它可以用嵌入式DSP电机控制器方便地进行处理。