刘擎文,胡永美
(博世汽车部件(长沙)有限公司,长沙 410100)
小功率永磁直流电动机广泛应用于工业及军事领域,无论是对电动机转速或者转子角度的精确控制,还是对电动机使用状态的监控以及故障诊断,都涉及到电动机模型的参数辨识。大部分文献分析的重点都是假设电动机的基本参数(包括电阻、反电动势、转动惯量等)是已知的,然后再计算相应的电动机转速和电流,并与实测值进行比较[1],或是对计算后的转速和电流等进行信号处理[2-3]。这些分析模型的精度都严重依赖于初始提供的电动机参数的准确性,然而,这些基本参数相比转速和电流的测量精度更低,需要用到更昂贵的传感器。并且,每个电动机会由于制造带来的差异而造成基本参数上略有变化,因此并不推荐直接用厂家提供的数据用于后续的精确控制。
为了解决以上问题,并为以后的分析提供更为准确的设计参数,有的文章着重探讨在转速、电流等已知的情况下来估计电动机基本参数。文献[4]提出分别基于粒子群优化、蚁群优化和人工蜂群优化的生物类算法,但这类算法的代价函数的搜索空间都是六维的,且搜索方向不具有指向性,并且作者还基于经验提前限定了搜索空间范围,避免陷入局部最优,因此该方法并不满足参数辨识的实时性要求。有的文章[5]则是通过引入方块脉冲函数,将非线性电动机动态模型方程离散化,较大地提高了计算效率。但作者的计算过程都是基于空载条件,转速、电流的微小波动会较大地影响其对应微分的估计。并且作者在计算摩擦系数和转动惯量时,直接利用了反电动势常数和转矩常数的代数关系,这会将反电动势常数的计算误差引入后续的摩擦系数和转动惯量的计算中,因此,其计算精度有进一步提高的空间。
本文则是在文献[5]的基础上进行改进,讨论的也是更为一般的电动机工况:
(1) 外部负载不为零;
(2) 电动机的起动转矩不为零;
(3) 考虑电源电压的波动。
通过提取电动机机械特性曲线和电流特性曲线对应的电压、电流、外部负载和转速,实现实时计算电动机基本参数的目的。并且,利用反电动势常数和转矩常数的代数关系作为约束条件,通过参数递归的方式,不断修正两者之间的代数误差,最终实现电动机参数辨识的目的。
永磁直流电动机的动态模型包括电压平衡方程和转矩平衡方程:
(1)
(2)
(3)
T0与电动机的内部损耗有关,近似表示:
(4)
(5)
(6)
将式(5)和式(6)改写成:
(7)
(8)
为了精确计算相应的系数,电流、电压、转速和转矩必须是已知的,而后者可以通过测量电动机的机械特性曲线和电流特性曲线得到,如图1所示。
(a) 忽略压降时的电动机性能曲线
(b) 考虑压降时的电动机性能曲线
在外接电压恒定的情况下,若忽略电动机从电源到端子的压降(由线束、外接电器元件等引起),电动机(特别是小功率永磁直流电动机)的两条性能曲线近似为直线。当考虑压降时,两条曲线近似为抛物线,特别是接近堵转区域时曲线斜率的绝对值明显增加(由于磁饱和效应与外部电阻引起的压降共同作用)。因此,本文计算过程中并不会假设输入电压为常数。相反,当记录端电压(非电源电压)时能更好地排除电源到端子压降引起的干扰,提高计算的精度;并且能保证后续的矩阵最小二乘法计算满足可逆性条件(矩阵为满秩矩阵)。
为了得到电流、转速相应的一阶导数,还必须知道电流和转速的时域特性。直接根据采集数据通过差分的形式得到相应微分的近似值,会极大地受到测量系统采样和传感器精度的影响,而微分的计算精度直接影响了整个参数辨识的精度。为了解决这个问题,本文引入方块脉冲函数[6]。首先将微分方程转化为积分方程的形式,再通过方块脉冲函数将积分离散化,极大地降低了累计误差。
首先,分别将式(7)和式(8)两边同时积分,得:
(9)
(10)
i(t)和n(t)分别对应于0~T时刻区间内的电流和转速,i(0)和n(0)为相应的初始条件。当利用方块脉冲函数来近似表示i(t),n(t),u(t)和T2(t)时:
i(t)≈IWT
(11)
n(t)≈NWT
(12)
u(t)≈UWT
(13)
T2(t)≈T2WT
(14)
I=[i1i2…im]
(15)
N=[n1n2…nm]
(16)
U=[u1u2…um]
(17)
T2=[T2,1T2,2…T2,m]
(18)
W=[φ1φ2…φm]
(19)
式中:W为方块脉冲函数[6]。电流、转速、电压和负载的第k个分量分别如下:
(20)
(21)
(22)
(23)
m为0~T时刻区间内方块脉冲的个数,h=T/m,h表示方块脉冲的步长。当h足够小时:
(24)
(25)
(26)
(27)
当利用方块脉冲函数来近似电流、转速、电压和负载的积分时[7]:
(28)
(29)
(30)
(31)
式中:
(32)
把式(11)~式(14)以及式(28)~式(31)代回式(9)和式(10),可以将积分运算转化为代数运算。即:
IWT-i0EWT=A1IHWT+A2NHWT+A3UHWT
(33)
NWT-n0EWT=B1IHWT+B2NHWT+
(34)
(35)
(36)
通过引入正则项,得:
(37)
式中:
(38)
λ为正则化参数。这里两式符号相反是为了保证后续求解收敛。显然,直接求解方程组非常困难,本文采用参数递归的方式。不妨设初始状态j=0时,满足以下关系:
(39)
当j≥1时,满足:
(40)
(41)
将求得的A1,j,A2,j,A3,j,B1,j,B2,j,B3,j代回式(40),直至满足:
(42)
ε为足够小的残差。理想情况下,只经过一次计算便得到‖K1‖=0,即并不需要参数递归便能求得所有需要计算的电动机参数。然而,现实中由于测量误差和空载转矩的影响,直接计算得到的Ke和KT代数关系会存在一定的差值。可以看出,参数递归的本质其实是利用Ke和KT必须满足的代数关系,来修正通过测量系统测得的I和N,从而进一步缩小参数辨识的计算误差。这也是本文区别于其他电动机参数辨识文章的主要内容之一。
为了验证这方法的有效性,本文将计算参数与Simulink的仿真结果进行对比,并把计算后的参数代回Simulink电动机模型,将模拟的输出转速和电流数据与实测值对比。其中,实测值取自博世长沙生产的NSA-iB座椅水平调节电动机性能测试结果,电动机的示意图如图2所示,测量数据如图3所示。
图2 NSA-iB座椅水平调节电动机
(a) 输入电压与负载转矩
(b) 输出转速与电流
在获得电动机测量的原始数据后,可以通过Simulink的“Parameter Estimation”模块得到电动机的基本参数值。首先在Simulink环境下建立电动机的基本模型,如图4所示,此时的模型输入为电压和负载转矩;输出为转速和电流。测量数据的描述如表1所示。
表1 测量数据说明
从图3中看出,输入电压为恒定值,输入负载呈阶梯状,因此相应得到的转速和电流也为阶梯变换的曲线。这里,之所以测试的曲线为阶梯型,是因为在实际的应用环境中往往更关注于某些特定的负载以及相应输出转速的稳定程度,因此本测量系统在程序设计时才会考虑把负载设计成阶梯变化。当然,即使是输入负载呈线性变化,或者测试电压也并非恒定值,Simulink仿真以及本文提到的正则化参数辨识也同样能得到电动机的基本参数。
Simulink环境下的“Parameter Estimation”模块进行参数辨识的逻辑是通过不断修正电动机的基本参数,使得计算得到的输出转速和电流不断逼进实测的转速和电流,收敛条件是最小均方误差小于设定值,或者相邻两次迭代的最小均方误差的差值小于设定值(这时容易陷入局部收敛)。Parameter Estimation模块最大的优势是能够自适应选择不同的优化算法,收敛速度的快慢以及是否收敛于全局最优取决于初始值以及搜索空间设定的合理性。而本文提出的正则化参数辨识相比仿真计算,同样需要不断迭代,但并不需要对参数初始值进行假设,即使只迭代一次也能够获得较高的精度。因此,能够大大缩短计算时间,满足在线辨识电动机基本参数的要求。
利用本文的正则化参数辨识法,得到的电动机基本参数,与通过Simulink Parameter Estimation模块仿真得到的基本参数的对比,如表2所示。
表2 电动机参数计算值对比
将电动机参数代回Simulink模型,如图4所示,计算得到的转速和电流曲线,如图5所示。
图4 电动机的Simulink模型
(a) 实测与仿真转速对比
(b) 实测与仿真电流对比
从表2中看出,Ra,fr,Ke,KT,J*和L非常接近,验证了正则化参数辨识的精度。相比于Simulink仿真计算,本方法的计算速度要快得多,原因主要是:即使不迭代,也能保证较高的精度,即能够保证初值尽量接近最终解;迭代一定是朝着收敛的方向。而Simulink仿真计算初始值的设定需要预设一个好的参考值,还需要预设搜索范围,并且容易陷入局部最小。因此,正则化参数辨识相比Simulink仿真,能够同时保证预测的准确性与实时性。
从图5中还可以看出,无论是通过Simulink仿真,还是通过正则化参数辨识得出的转速和电流曲线,都能较好地拟合实测曲线。并且两种方法拟合的曲线几乎重合,主要原因也是参数设定非常接近。当然,两种方法得出的曲线都与实测值有一定的差异,其原因可能是来自于测量误差,以及对于转速和电流相应导数处理时引入的误差。当然,为了进一步减小与实测值的差异,可以尝试将原测量曲线分成若干段,并针对每段不断调整电动机参数来拟合。
本文研究了一种新的永磁直流电动机正则化参数辨识法,能够实时、准确地估计电动机参数。与其它参数辨识法相比,引入了Ke和KT的相对关系作为正则项,能够进一步提高参数辨识的精度,并且适用于变负载、变电压的工况。无论是与Simulink仿真,还是实验数据对比,都证明了本方法有较高的精度,为后续的电动机在线故障监测或者转自转速精确控制提供更可靠的电动机参数值。