基于改进型卡尔曼滤波的电机速度数据处理方法

2018-09-28 06:17肖金壮
微特电机 2018年9期
关键词:协方差卡尔曼滤波编码器

赵 帅,肖金壮,郭 一

(河北大学,保定 071000)

0 引 言

伺服系统中电机转速是闭环控制必不可少的反馈量,其速度检测传感器多为光电编码器,通过编码器输出的两路正交脉冲来确定速度大小及方向。目前主流的测速方法为M法、T法、M/T法[1-3]。M法通过测量单位时间编码器脉冲数确定速度大小,适合高速测量;T法通过测量编码器脉冲脉宽确定速度大小,适合低速测量;M/T法测量单位时间编码器脉冲数,同时测量脉宽。相对M法或T法,M/T法测量范围更宽,准确度更高,但算法相对复杂。以上方法在实际应用中均存在噪声,其中T法的噪声较大。文献[4]采用阈值法切换M法与T法,即高速时利用M法,低速时利用T法,降低算法复杂度,未实现对噪声的滤波。文献[5]使用FPGA在M/T法的基础上动态估计电机速度,提高了动态特性,但只采用简单硬件滤波。文献[6]使用FPGA在M/T法的基础上引入滑动窗思想,提高算法动态性能,没进行噪声滤波。为抑制测量噪声,同时提高算法动态性能,本文提出改进型卡尔曼滤波测速法。

1 改进型卡尔曼滤波电机测速法

1.1 卡尔曼滤波

卡尔曼滤波[7-8]是20世纪60年代发展起来的一种现代理论,多数据融合的重要工具,通过递归更新状态,每次更新状态只通过上一次的状态最优估计值和最新的观测值融合计算得出,其中状态最优估计值维数小于等于观测值维数。使用卡尔曼滤波器对电机速度滤波时采用其离散形式。其离散化的状态方程由以下差分方程式(1)~式(6)描述。

(1)

式中:Fk为状态转移矩阵;Bk为控制输入矩阵;wk为过程噪声向量。

(2)

式中:Qk为过程激励噪声协方差矩阵。

当前时刻的测量值zk:

zk=Hkxk+vk

(3)

式中:Hk为转换矩阵;vk为测量噪声向量。

(4)

式中:Kk为卡尔曼系数,可由式(6)得到。

由式(2)得出的估计协方差计算当前时刻协方差矩阵Pk|k:

(5)

计算卡尔曼系数:

(6)

式中:Rk为观测噪声协方差矩阵。

1.2 改进型卡尔曼滤波电机测速原理

本文提出一种改进型卡尔曼滤波算法对电机速度进行滤波,其状态最优估计值与观测值均为一维,即速度。计算流程如图1所示。其中,vM是M法测得速度值,vT是T法测得速度值。

图1 计算流程图

算法过程具体描述如下:

同时计算当前时刻M法和T法的相对误差[4]εMk和εTk:

(7)

(8)

式中:Qpk为当前时刻检测时间ΔT内测量的编码器脉冲数;Qck为当前时刻一个编码器脉冲内系统时钟脉冲数。

比较2个当前时刻相对误差,误差小的测速法测出的速度值vεs作为当前时刻的观测值,误差大的测速法测出的速度值vεb与上一时刻得到的最优估计速度值进行平均值滤波,所得数据作为当前时刻估计值。因滤波时无输入,即uk=0,同时令wk=0,忽略过程噪声。当前时刻估计值由下式计算:

(9)

(10)

为减少算法复杂度,令过程激励噪声协方差为常数q。

忽略测量噪声,当前时刻的测量值vk:

vk=vεs

(11)

(12)

式中:Kk为卡尔曼系数,可由以下式(14)得到。

由式(10)得出的估计协方差计算当前时刻协方差pk|k:

(13)

卡尔曼系数:

(14)

为减少算法复杂度,令观测噪声协方差r为常值。

通过以上递归过程可保证良好动态性能,同时对电机速度数据进行噪声抑制。

2 仿真对比实验

本文利用MATLAB在离线情况下对采集的伺服电机速度数据进行仿真,将本文的算法测速结果与传统卡尔曼滤波算法测速结果对比,实验数据采集及结果分析如下所述。

2.1 电机速度数据采集

本实验平台为伺服系统,如图2所示,该系统由Panasonic的MSMA042A1G型电机和MSDA043A1A型伺服单元组成,电机尾部装有2500线的光电编码器,并通过工控机控制,其控制与采集流程如图3所示。

图2 系统平台

图3 原始速度数据

工控机内装有实时操作系统,可通过Simulink编程对伺服系统实时控制,在速度模式下,编码器将速度反馈到工控机,在工控机内执行PD控制,达到本文所需的各种电机速度状态。使用STM32F103C8T6采集速度数据,经伺服单元产生编码器差分信号,该信号经AM26LS32芯片变为单端信号,此信号可直接输入到STM32F103C8T6中。M法测速时配置定时器为外部脉冲模式,令ΔT=5ms,T法测速时配置为捕获模式,计数器时钟为18 MHz,分别测量M法和T法低速300r/min和高速3 000 r/min的数据,M法采集ΔT内测量的编码器脉冲数,T法采集一个编码器脉冲内系统时钟脉冲数。每组采集300个数据,共4组数据。将M法测量的2组数据合并为1组,以模拟速度突变时的信号。该组前1/2部分模拟300 r/min的数据,后1/2部分模拟3 000 r/min的数据。同样,将T法测量数据按照相同规则合并为1组,使2种方法测量数据对称。

2.2 仿真结果

使用传统卡尔曼滤波算法与改进的卡尔曼滤波算法分别对数据处理。令2种算法的q=0.000 05,r=0.08,其仿真图如图4所示。其中,实线是本文算法所得滤波结果曲线,虚线是传统卡尔曼滤波算法滤波结果曲线。通过对比可见,在电机转速出现阶跃时,2种算法均可实现噪声滤波,传统卡尔曼滤波算法有明显滞后。

图4 同参数仿真图

为了减小滞后,令传统算法的参数q=0.00005,r=0.001,本文的算法参数不变。其滤波结果曲线如图5所示。同样,实线为本文算法速度曲线,虚线为传统算法速度曲线。可见,传统算法滞后减小,但噪声明显变大,而本文的算法滞后较小,滤波效果优于传统算法。

图5 不同参数仿真图

3 结 语

本文采用改进型卡尔曼滤波算法对电机速度数据进行处理。首先介绍了卡尔曼滤波算法原理,然后通过比较M法与T法的相对误差,确定估计值与观测值,并推导出改进型卡尔曼滤波算法,最后通过MATLAB在离线状态下,利用本文算法与传统算法对采集到的电机速度数据进行处理。结果表明,相对传统卡尔曼滤波算法,本文算法可保证较好的动态特性,同时具有较好噪声抑制效果。

猜你喜欢
协方差卡尔曼滤波编码器
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
融合CNN和Transformer编码器的变声语音鉴别与还原
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于双增量码道的绝对式编码器设计
用于检验散斑协方差矩阵估计性能的白化度评价方法
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于有色噪声的改进卡尔曼滤波方法
多元线性模型中回归系数矩阵的可估函数和协方差阵的同时Bayes估计及优良性
应用旋转磁场编码器实现角度测量
二维随机变量边缘分布函数的教学探索