本发明涉及一种基于滤波的物体重量高精度估计方法,属于信息技术领域。
背景技术:
投料机是一种原料添加设备,在一些条件较为恶劣且对添加原料的速度及添加量要求较为严苛的工业过程,比如冶炼过程,需要将原料送入高温熔炉中,一方面,温度较高,人无法靠近,另一方面,要求送入料层的厚度以及送料速度必须均匀一致,利用人力无法完成该项工作,因此需要使用专用设备投料机。
投料机在下料过程中,需要根据具体的投料要求确定投料时间和投料的重量,通常是通过称重传感器进行测重,当重量达到设定值时,给予投料机电机减速的信号,从而渐渐停止下料。
称重传感器在测重过程中,自身的精度会受内部噪声和外部坏境干扰的影响,下放的料也会给传感器带来一定的冲击误差,从而影响称重传感器的测量精度。另外电机停止转动后仍然会有一部分的或在空中、或在投料口处的余料会继续下放。这些因素造成的误差会从多个方面影响称重传感器的测量精度,也就是说称重传感器的在任意时刻的实际测量值与该时刻投料机的实际投料值之间存在一定的误差,如果以称重传感器的测量值来控制投料机电机减速或者停止,那么势必会造成投料机无法进行精准重量值的投料。
因此需要在投料过程中对投料机各个时刻的实际投料值进行估计,使得该估计值尽量贴近投料机在各个时刻的真实投料值,进而根据该估计值来控制投料机电机减速或者停止,使得投料机能够进行精准投料。
技术实现要素:
为了进一步提高投料机的投料重量精度,本发明提供了一种基于滤波的物体重量高精度估计方法,所述方法包括:
s1根据已有的投料机投料过程中的数据建立状态转移方程和观测方程;其中投料机投料过程中的数据包括各个采样时刻投料机投入的实际重量值、各个采样时刻电机加速度值、电机运转的速度值以及各个采样时刻重力传感器测得的重量值;
s2通过第k-1次采样时的重量估计值获取第k次采样时的重量预测值,其中第1次采样时的重量估计值为初始时刻投料机的已投料的实际重量值;
s3通过卡尔曼增益,将第k次重量预测值和第k次传感器测量值取加权平均得到第k次重量估计值;
s4根据前l次采样时刻得到的重量预测值与估计值,对第l次及l次之后重量估计值进行平滑处理:
将第x∈{k,k-1,...,k-l+1}次重量预测值与第x∈{k,k-1,...,k-l+1}重量估计值分别对应作差,记为δw=[δw(k),δw(k-1),...,δw(k-l+1)],在δw里去掉一个最大值和一个最小值得到新的δw;
根据采样时间的接近程度,对去除最大值最小值之后的δw求加权平均,得到更新后的第k次重量估计值。
可选的,所述s1中建立的状态转移方程和观测方程分别为:
状态转移方程:
w(k)=aw(k-1)+v(k)+e(k)(1)
观测方程如下:
g(k)=cw(k)+h(k)(2)
其中,w(k)表示第k次采样时投料机所投料的总量的真实重量;a是状态转移矩阵;w(k-1)表示第k-1次采样时投料机所投料的总量的真实重量;v(k)表示第k次采样时电机运转的速度:
v(k)=v0+bk(3)
e(k)表示估计噪声,表示状态转移方程中重量值变化过程中的微小变化;
g(k)表示第k次采样时传感器测得的测量重量;c是量测转移矩阵;h(k)表示观测噪声,表示第k次采样时真实重量w(k)与第k次采样时传感器测得的测量重量g(k)的误差;
b为电机的加速度矩阵,k为采样次数。
可选的,所述s2包括;依据下述公式获得第k次采样时的重量预测值:
其中,w'(k)表示第k次重量预测值,
可选的,所述s3包括:
获取第k次采样时的重量预测值和第k次采样时的投料机所投料的总量的真实重量之间的误差协方差矩阵p'(k):
p'(k)=ap(k-1)at+q(5)
其中,p(k-1)表示第k-1次估计值与第k-1次采样时的投料机所投料的总量的真实重量之间的误差协方差矩阵;
根据p'(k)及p(k)获取第k次卡尔曼增益k'(k):
k'(k)=p'(k)ct[cp(k)ct+r]-1(6)
以此求得第k次重量估计值
其中,r为观测噪声h(k)的协方差。
可选的,所述s3通过卡尔曼增益,将第k次重量预测值和第k次传感器测量值取加权平均得到第k次重量估计值,包括:
k小于l时,更新协方差p(k)后令k=k+1并继续计算;若k大于等于l,则先对第k次重量估计值进行平滑处理,再更新协方差p(k)并令k=k+1后继续计算。更新公式如下:
p(k)=(1-k′(k)c)p′(k-1)(8)
可选的,所述方法中对于第l次采样时刻之后、第m次采样时刻之前各个采用时刻得到的第k次重量估计值
可选的,所述s4包括:
设置表征权值的比例系数η=[η0,η1,...,ηl-3],
其中,η0≥η1...≥ηl-3且η0+η1+...+ηl-3=1;
则平滑处理后的新的第k次重量估计值
其中,δw1t表示δw矩阵第一行的转置,δw2t表示δw矩阵第二行的转置。
可选的,状态转移矩阵
可选的,估计噪声e(k)的协方差
本申请还提供一种投料机投料总量控制方法,所述方法采用上述基于滤波的物体重量高精度估计方法对投料机投料重量进行估计,进而根据估计出的投料重量控制投料机的投料总量。
本发明有益效果是:
本发明公开了一种基于滤波的物体重量高精度估计方法,属于信息技术领域。通过根据投入的重量随电机加速度变化的规律建立状态转移方程,根据重力传感器测得的数据建立观测方程,通过第k-1次重量估计值获取第k次重量预测值,通过卡尔曼增益,将第k次重量预测值和第k次传感器测量值取加权平均得到第k次重量初步估计值,当k大于等于l并小于m时,对第k次重量初步估计值进行平滑处理,并将新的处理后的第k次重量估计值代入之后的运算,k大于等于m时结束循环;通过上述方法使得最终重量估计值与实际值之间的误差不超过0.3%;进而后续根据估计值控制电机停止,使得投料机可以实现精准重量的投料操作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例中基于滤波的重量计量高精度控制方法的流程图。
图2是本发明一个实施例中投料机电机匀加速运动估计图。
图3是本发明一个实施例中投料机电机匀速运动估计图。
图4是本发明一个实施例中投料机电机匀减速运动估计图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
投料机由电机带动进行投料操作,在投料过程中,电机的运行状态通常会经过匀加速、匀速和匀减速三个阶段。本申请技术方案通过提供一种基于滤波的重量估计方法,准确估计出投料机在各个阶段的投料重量,进而后续根据估计出的实际投料值控制电机减速或停止,使得投料机可以实现精准重量的投料操作。
实施例一:
本实施例提供一种基于滤波的物体重量高精度估计方法,参见图1,所述方法包括:
步骤101,根据投料机投入的重量随电机加速度变化的规律建立状态转移方程;并根据重力传感器测得的数据建立观测方程。
具体的,根据已有的投料机投料过程中的数据建立状态转移方程和观测方程,其中投料机投料过程中的数据包括各个采样时刻投料机投入的实际重量值、各个采样时刻电机加速度值、电机运转的速度值以及各个采样时刻重力传感器测得的重量值。
所建立的状态转移方程如下:
w(k)=aw(k-1)+v(k)+e(k)(1)
所建立的观测方程如下:
g(k)=cw(k)+h(k)(2)
其中,v(k)表示第k次采样时电机运转的速度,构造如下:
v(k)=v0+bk(3)
v0表示电机运转的初始速度,其值根据运行需求取:比如,若电机匀加速启动,则
w(k)表示第k次采样时的投料机所投料的总量的真实重量;g(k)表示第k次采样时传感器测得的测量重量;k为采样次数,k=1,2,3...;a是状态转移矩阵,取
e(k)表示估计噪声,表示状态转移方程中重量值变化过程中的微小变化,估计噪声的协方差
步骤102,通过第k-1次重量估计值
公式如下:
假设第1次采样为投料机开始投料的时刻,即第1次重量估计值取0,根据公式(4)可以获得第2次的重量预测值,也就是第2次采样时的重量预测值。
步骤103,通过卡尔曼增益,将第k次重量预测值和第k次传感器测量值取加权平均得到第k次重量估计值。
比如在步骤102获得第2次采样时的重量预测值之后,将第2次采样时的重量预测值和第2次采样时传感器测量值取加权平均得到第2次重量估计值;
获取第k次采样时的重量预测值和真实值(即第k次采样时的投料机所投料的总量的真实重量)之间的误差协方差矩阵p'(k):
p'(k)=ap(k-1)at+q(5)
其中,p(k-1)表示第k-1次估计值与第k-1次采样时的投料机所投料的总量的真实重量之间的误差协方差矩阵;
根据p'(k)及p(k)获取第k次卡尔曼增益k'(k):
k'(k)=p'(k)ct[cp(k)ct+r]-1(6)
以此求得第k次重量估计值
步骤104,判断k的值是否大于等于l。
l是根据需求取得常数值,在计算过程中的意义为:取l个数进行平滑处理。l值越大,估计得到的数据越接近真实值,但也会造成计算量的增大以及估计过头的可能。
若k小于l,更新协方差p(k)后令k=k+1并继续计算,更新公式如下:
p(k)=(1-k′(k)c)p′(k-1)(8)
若k大于等于l,继续进行下一步判断。
步骤105,判断k的值是否小于等于m。
若k小于等于m,则继续对第k次重量估计值
若k大于m,则结束循环,
其中,m是采样次数的上限值,具体取值可根据实际应用中投料机的所需投料的重量要求及设定的采样总次数确定。
步骤106,将第x∈{k,k-1,...,k-l+1}次重量预测值与第x∈{k,k-1,...,k-l+1}重量估计值分别对应作差,记为δw=[δw(k),δw(k-1),...,δw(k-l+1)],在δw里去掉一个最大值和一个最小值得到新的δw。
步骤107,根据采样时间的接近程度,对去除最大值最小值之后的δw求加权平均,并更新第k次重量估计值
具体计算如下:
设置表征权值的比例系数η=[η0,η1,...,ηl-3],权值即权重值,表示做平滑处理的几个数据的比重,这里的数据是作差后的差值。权值可以根据实际系统的经验数据或者历史数据设定。
其中,η0≥η1...≥ηl-3且η0+η1+...+ηl-3=1;
则平滑处理后的新的第k次重量估计值
其中,δw1t表示δw矩阵第一行的转置,δw2t表示δw矩阵第二行的转置。
经过上述过程处理,该步骤所得出的第k次重量估计值
综上所述,本申请通过根据投入的重量随电机加速度变化的规律建立状态转移方程,根据重力传感器测得的数据建立观测方程,通过第k-1次重量估计值获取第k次重量预测值,通过卡尔曼增益,将第k次重量预测值和第k次传感器测量值取加权平均得到第k次重量估计值,当k大于等于7并小于m时,对第k次重量估计值进行平滑处理,在第x∈{k,k-1,...,k-6}次重量估计值里去掉一个最大值和一个最小值,根据采样时间的接近程度求加权平均,并将新的处理后的第k次重量估计值代入之后的运算,若k大于等于m,则结束循环;解决了目前重量计量不准确的问题;进而后续根据估计出的实际投料值控制电机减速或停止,使得投料机可以实现精准重量的投料操作。
实施例二:
本实施例以初始速度v0为10r/s为例,提供一种基于滤波的重量计量高精度估计方法,包括对电机匀加速、匀速、匀减速三个阶段进行估计,其中,电机匀加速、匀速、匀减速各个阶段的投料机投料重量分别为745g、490g和235g,各个阶段分别采样50次;在实际应用中,可以所述方法包括:
步骤201,根据投料机投入的重量随电机加速度变化的规律建立状态转移方程;根据重力传感器测得的数据建立观测方程。
状态转移方程如下:
w(k)=aw(k-1)+v(k)+e(k)(1)
观测方程如下:
g(k)=cw(k)+h(k)(2)
其中,v(k)表示第k次采样时电机运转的速度,构造如下:
v(k)=v0+bk(3)
v0表示电机运转的初始速度,取
w(k)表示第k次采样时投料机所投料的总量的真实重量,g(k)表示第k次采样时传感器测得的测量重量。k为采样次数,k=1,2,3...50。a是状态转移矩阵,取
e(k)表示估计噪声,估计噪声的协方差
步骤202,通过第k-1次重量估计值
公式如下:
其中,
步骤203,通过卡尔曼增益,将第k次重量预测值和第k次传感器测量值取加权平均得到第k次重量估计值。
获取第k次重量预测值和真实值之间的误差协方差矩阵p'(k):
p'(k)=ap(k-1)at+q(5)
获取第k次卡尔曼增益k'(k):
k'(k)=p'(k)ct[cp(k)ct+r]-1(6)
以此求得第k次重量估计值
步骤204,判断k的值是否大于等于7。
若k小于7,更新协方差p(k)后令k=k+1并继续计算,更新公式如下:
p(k)=(1-k′(k)c)p′(k-1)(8)
若k大于等于7,继续进行下一步判断。
步骤205,判断k的值是否小于采样次数的上限值50。
若k小于等于50,则继续对第k次重量估计值
若k大于50,则结束循环,
步骤206,将第x∈{k,k-1,...,k-6}次重量预测值与第x∈{k,k-1,...,k-6}重量估计值分别对应作差,记为δw=[δw(k),δw(k-1),...,δw(k-6)],在δw里去掉一个最大值和一个最小值得到新的δw。
步骤207,根据采样时间的接近程度,对去除最大值最小值之后的δw求加权平均,并更新第k次重量估计值
具体计算如下:
设置表征权值的比例系数η=[η0,η1,...,η4],取η=[0.3,0.25,0.2,0.15,0.1]
满足η0≥η1≥η2≥η3≥η4且η0+η1+η2+η3+η4=1;
则平滑处理后的新的第k次重量估计值
其中,δw1t表示δw矩阵第一行的转置,δw2t表示δw矩阵第二行的转置。
结果分析
电机作加速度为0.2r/s2的匀加速运动时,可作估计曲线如图2所示,数据统计见表1:
表1:匀加速运动数据统计表
电机作加速度为0的匀速运动时,可作估计曲线如图3所示,数据统计见表2:
表2:匀速运动数据统计表
电机作加速度为-0.2r/s2的匀加速运动时,可作估计曲线如图4所示,数据统计见表3:
表3:匀减速运动数据统计表
注:k从1开始,
可以看到,按本发明方法进行滤波估计,电机匀加速、匀速、匀减速各个阶段第50次采样时估计值(即表1-3中的滤波值)与真实值(即表1-3中的真值)的误差分别为-0.0128%、-0.0234%和0.0930%,而总量的估计值与真实值相差不超过0.3%,达到了高精度估计,也即对投料机的投料重量的估计值与实际投料值的误差不超过0.3%。
此外,从三张曲线图可以看到,滤波估计曲线较为平滑,波动极小,稳定度高。
高精度、高稳定度的估计值为电机减速信号的发出提供了较为准确的判断,进而为提高投料重量的精确度提供了保障。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。