APP下载

基于STM32的增量式编码器测速设计及实验验证

2020-01-03

计算机测量与控制 2019年12期
关键词:升降机卡尔曼滤波编码器

(合肥工业大学 电子科学与应用物理学院,安徽 合肥 230009)

0 引言

施工升降机的防坠安全器是在升降机的限定距离内快速制动锁定吊笼,及时刹车,起到保护地面人员的生命安全和防止被吊工件物体损坏的装置。当前,为保证防坠安全器有效可靠,对防坠安全器性能的检测方法主要有试验台法和实验架法[1],并且由于施工现场环境位于室外,有震动、粉尘、电磁干扰等不利因素,对防坠安全器制动速度的实时检测仍没有一个可靠的电子测量手段[2]。因此本文设计了一种基于STM32的增量式编码器测速模块,编码器通过联轴器连接齿轮并与齿条啮合,升降机吊笼运动带动齿轮旋转,后测速模块测量编码器的转速,达到实时检测施工升降机升降速度的目的[3]。根据齿轮渐进式防坠安全器的标准GB/T 34025-2017《施工升降机用齿轮渐进式防坠安全器》规定齿轮渐进式防坠安全器最大制动速度414r/ min、误差范围为1%,实测防坠器动作速度(平均值)为110(r/min)。因此本文在速度标定实验台上进行了速度(100~1000 r/min)标定实验。由于施工现场噪声较大,环境复杂,会对采用增量式编码器及单片机作为前端数据采集模块这一精度与灵敏度较高的电子器件产生噪声干扰。为了降低环境因素对信号实时采集的影响[3],有效还原测量结果的真实性,需对测量结果进行信号滤波处理,而数据滤波可以有效降低受环境噪声干扰产生的测量偏差,以验证数据采集系统的可靠性,实现对施工升降机速度的准确测量。本文通过卡尔曼滤波(Kalman filtering)算法对数据结果进行处理,结果表明本设计满足齿轮渐进式防坠安全器测速标准的要求。

1 卡尔曼滤波算法原理

卡尔曼滤波算法在通信、信息控制等领域应用广泛。它是一种建立在线性系统的空间状态基础上,根据上一时刻系统状态(测量和预估最优值)和扰动来估算系统当前状态的最优值,其采用状态空间的描述法和递归形式,得到与真实值误差最小的估计值。对于整个滤波过程可描述为已知当前系统的最优估计(上一时刻的系统状态及输入和扰动对当前系统作用的最优解)结合下一时刻的输入量和系统扰动推算下一时刻整个系统的状态过程。并且卡尔曼滤波算法针对计算量较小的数值滤波需求具有良好的处理能力,对于有噪声扰动(高斯白噪声)的非平稳系统状态具有更好的分析能力[4],其具有三个基本的特征:一是卡尔曼滤波是适用于有限维、离散和线性系统的算法,均可转换为以状态空间描述的系统,二是系统测量值(输入量)并不能确定当前系统状态且与增益无关,三是系统状态量与控制量服从高斯分布时,才可有卡尔曼滤波递归公式计算得到的高斯随机变量的条件均值和方差,以此得到最优估计值。因此针对本文的测速环境和滤波需求,卡尔曼滤波是一种最优的数字滤波和信号处理器。

为了很好地描述卡尔曼滤波过程,需引入一个离散控制过程的系统,并用式(1)的线性随机微分状态方程和式(2)的观测方程来表示[5]。

状态方程:

Xk=AX(k-1)+BU(k-1)+W(k-1)

(1)

观测方程:

Zk=HXk+Vk

(2)

上述两式中,k时刻的状态量、观测值和观测噪声分别为Xk、Zk和Vk,k-1时刻的状态量、控制量和系统噪声分别为Xk-1、Uk-1(无控制量则为零)和Wk-1,A、B、H为系统参数,若是多模系统则都为矩阵。

实际运用中,所要滤波的系统除要满足上述两个基本公式之外,由上文叙述的卡尔曼滤波基本特征可知还需假定系统为高斯白噪声激发的线性动态系统且每次测量值还需含有高斯白噪声分量。在满足这些条件之下,整个卡尔曼滤波可分为两个步骤即预测和更新,其中预测过程是指前一时刻的状态最优估值来估计当前状态的最优值,更新过程是指利用预测过程得到的当前时刻最优估值更新当前系统的状态量,因此卡尔曼滤波算法是一种不断迭代递归的预测-更新方法。则用于描述卡预测过程的方程见式(3)及(4),描述状态更新方程则由式(5)、(6)和(7)三个方程组成[5]。

(3)

Pkp=APk-1AT+Q

(4)

当前状态卡尔曼滤波增益:

(5)

当前状态最优估算值:

(6)

均方差更新公式:

Pk=(I-KkH)Pkp

(7)

本文建立的速度测量系统中,升降机速度可认为是连续变化的,同时整个坠落过程中并没有额外增加系统控制量,因此卡尔曼滤波迭代方程中可选定A=1,BUk-1=0,H=1。但由于测速系统在不同的环境下速度值不同,因此,Q和R的值将通过具体的实验确定。

2 硬件设计

2.1 速度传感器

设计中主要由增量式编码器和信号采集模块组成速度传感器。

2.1.1 增量式编码器

现场对施工升降机进行测试实验时,增量式编码器通过联接器硬连接在齿轮上,是直接采集齿轮转速的前端器件,因此对编码器的选型变得尤为重要,其精度直接影响测速的准确性[7-9]。文中采用的增量式编码器(HN3806-1200-AB)分度为1200脉冲/转、每分钟最大转速5000 rpm,能够识别0.3°的转角变化,在具有较高测速精度的同时,还拥有抗震、抗冲击的能力,能很好地应用于现场工作环境。

2.1.2 信号采集模块

设计中选用的微处理器为意法半导体公司的STM32F103工控板作为信号采集和处理单元,其主要具有CAN总线、RS232全双工串行总线等工业上常用的通信接口,512 kB的Flash容量,RAM大小为64 kB,还拥有80个通用I/O口和8个16位通用定时器,适合作为数据采集和处理的控制模块。

信号采集模块内部连接如图1所示。首先增量式编码器的A、B相分别与单片机的PA1、PA0两个I/O口引脚实现信号线连接,其次,当编码器输出脉冲信号时,由单片机接收并处理,数据处理完成后通过PA9、PA10两个串口将表示速度的信号电平传输至用于信号电平转换的MAX232模块,最后,通过DB9航空插头实现与上位机的硬连接,达到实时采集速度数据的目的。

图1 信号采集模块连接示意图

2.2 速度标定实验台

为了检验信号采集模块实时采集速度数据的准确性,在速度标定实验台上进行了多次速度标定实验,实验采用TSTA(东元)系列的伺服电机及伺服驱动器,且试验台内置了分辨率为8192ppr的编码器,在设定额定转速条件下,电压变动率(±10%)对伺服系统的影响在±0.2%以下,而负载变动率(0~100%)伺服系统的影响也在±0.03%以下,具有很高的速度控制精度且标定试验台本身的误差为0.049%。实验原理示意图如图2所示。

如图2所示,伺服电机通过联接器与编码器相连,当伺服控制系统设置标定转速时,由伺服驱动器驱动编码器旋转,速度稳定后,由信号采集模块对编码器的输出脉冲计数并定时测速,后通过DB9接口传输至上位机PC,做进一步的优化和显示。编码器转速计算公式见式(8)。

(8)

N为时间T内单片机读到的脉冲个数,T为单片机定时时间(s),M为增量编码器的线数。

3 软件设计

为提高采样精度,降低速度误差率,采用变M算法即对编码器输出的脉冲数4倍叠加[10]、计数时的上下溢预处理和定时器16位扩展成32位等处理,可保证在没有强电干扰或巨大噪声等恶劣环境下,基本不丢失脉冲。并且在STM32正交编码模式下,计数器会根据增量编码器的速度和方向自动进行修改,其内容始终表示编码器的位置,计数方向对应于所连传感器的旋转方向[11]。且STM32单片机正交编码模式自带的计数方向识别,抖动滤波处理让编码器的使用更加高效,精准,这是不使用其他类型单片机作为系统微处理器的主要原因[12-13]。该模式下,理论可测速度值为1/4~232/4(r/min),因此在给定的误差下,本设计理论上完全可以应用于低速环境下测速。

信号采集模块-编码器硬件配置过程中,将STM32F103工控板的PA0、PA1两个I/O口先配置成数据输入输出串口,并与编码器的B、A相信号线连接,用于接收编码器的输入脉冲信号;将STM32F103集成的定时器TIM2配置成正交编码器模式,对从增量式编码器接收的每一个脉冲信号的上升沿和下降沿各计数一次;将定时器TIM3配置成定时中断模式,用于计算定时中断周期内的编码器转速,并通过DB9接口实时速度数据传输至上位机,完成数据采集与处理,其数据采集处理流程如图3所示。

图3 脉冲计数、定时测速程序流程图

工控板通电进行数据采集和处理之前,数据采集模块需先完成程序初始化,主要包括串口初始化和定时器初始化等。

3.1 串口初始化

设计中使用两个I/O口与上位机通信,两个I/O口用于接收编码器脉冲信号。程序通过调用GPIO_init()函数初始化I/O口,将输入信号脉冲的I/O口配置成浮空输入,用于全双工通信的I/O口配置为复用推挽输出和浮空输入,最后设置校验位、停止位和波特率等做串口通信协议匹配。

3.2 定时器初始化

信号采集单元功能设计核心是利用定时器定时对编码器信号脉冲计数。首先将一个定时器初始化为正交编码器模式,用于对脉冲信号计数,另一个定时器初始化为定时中断模式,实现周期性的数据处理

4 误差分析

为对本设计的速度测量范围和可靠性进行分析,在速度标定实验台上进行了多次标定实验,在数据采样周期为10、15、20、25、30 ms和速度标定试验台标定速度范围为100~1000 r/min条件下,本系统测量的速度误差和方差如图4、5所示(已叠加标定试验台本身的误差0.049%)。

图4 速度误差与转速的关系

图5 速度方差转速的关系

考虑到施工升降机的速度平均值为1 m/s即159 r/min左右,如图4、5所示,速度200 r/min以内采样周期为25 ms误差率更为稳定,数据离散型也较小。可以看出,速度为500~510 r/min时,速度误差和方差发生了剧增,所以为得到极限测量值,在标定速度为500~510 r/min,采样周期为25 ms条件下又进行了多次标定实验,实验结果见表1。

表1 采样周期25 ms,速度误差

用origin做处理后的结果如图6所示。

图6 采样周期25 ms,速度误差与转速的关系

如图6所示,速度在502 r/min之后,误差会有一个很大的增加,因此本系统对速度的极限测量值为502 r/min。因此被测速度在100~502 r/min范围内,系统测量精度较高。由上述分析可知速度在100~500 r/min之间时,误差率都在1%以内,而一旦超过500 r/min 时误差会快速增大,超过510 r/min时误差急剧增大。且该速度范围内的数据离散程度大致相同,表示实验采用的算法能够使单片机稳定采样,反之,当转速超过500 r/min时误差率,方差迅速增大,单片机不能准确采样,数据离散程度急剧增大。

但是由图4、5可知,误差均大于0,说明存在系统误差,这是由于标定试验台测试时抖动引起的噪声影响。为了更加准确的得到系统检测速度的误差范围,采用卡尔曼滤波的方法对数据进行处理。实际检测中,由于施工升降机实际工作的转速分别约为159 r/min和382 r/min,因此选取了5个需标定的转速点分别为100、200、300、400、500 r/min,并分别在采样周期为10、15、20、25、30 ms时,利用MATLAB分析软件对每组数据采集点进行滤波仿真分析,处理结果如图7所示。

图7 转速测量及滤波曲线

如图7所示,在对测量数据进行卡尔曼滤波处理前,转速测量曲线存在较大的波动,而滤波之后,转速测量值明显收敛于速度标定曲线。因此分别对不同采用周期、不同标定转速的测量数据进行滤波处理,并分析得到每组实验转速平均值,然后比较不同条件下测量速度的误差变化,转速验证试验的测量结果如图8所示。

图8 滤波后的转速误差

通过图8中转速验证实验的测量结果可以看出,在设定的采样周期范围内,转速测量结果受采样周期的变化影响较小,并且转速范围在100~500 r/min之间的测量误差均约为±1%,满足齿轮渐进式防坠安全器对动作速度测量的检测要求。

5 结论

标定速度超过500 r/min时,误差开始增大,且要考虑现场干扰等情况,被测物速度不宜超过500 r/min即3 m/s。因此本设计采用的算法适合在低速情况下测量。

根据施工升降机的安全标准GB/T 34025-2017,防坠安全器的最大制动速度为414转/min 且速度误差1%,并且一般施工升降机的平均实测速度为110 r/min。数据分析表明,测量速度范围在100~500 r/min之间时,误差率都在±1%以内,因此本设计完全符合工程施工安全要求,可应用于施工升降机的实时检测。

猜你喜欢

升降机卡尔曼滤波编码器
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
融合CNN和Transformer编码器的变声语音鉴别与还原
“升降机”
设定多圈绝对值编码器当前圈数的方法
脉冲星方位误差估计的两步卡尔曼滤波算法
转炉系统常用编码器选型及调试
舞台机械技术与设备系列谈(二)
——编码器
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
升降机
基于递推更新卡尔曼滤波的磁偶极子目标跟踪