有多种算法可以实现无传感器控制,传统的方法(过零检测法)大都采用检测不导通相反电势的过零点判断转子的位置,根据过零点信息及换相逻辑来选择最佳的换流顺序。这些方法已经在许多家电上采用,如直流变频冰箱及直流变频空调。但由于过零检测法只能检测一些特定的点,而且随着电机转速在大范围内变化,反电势的变频率也会变化,检测电路中的滤波器件会带来一定的相移,这会大大影响检测过零点的准确性;同时由于功率器件上续流二极管的反向电流作用,在大电流情况下也会对过零点的检测带来一定的影响。
针对这些问题,采用扩展卡尔曼预测算法来估算无刷直流电动机转子的瞬时位置与速度信息,为无刷直流电动机无传感器控制提供了一种较好的解决方法。而且采用美国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)