当前位置:文档之家› 雷达物位计-软件算法说明

雷达物位计-软件算法说明

1.法兰距离计算1.1.流程图1.2.信号加窗信号加窗用于减小频谱泄露,可选择三种窗函数之一:矩形窗、汉宁窗、布莱克曼窗。

假设中频信号电压采样数组为v[N],采样点数为N(N=1199);加窗实际上是构建一个N点的数组w[N],将v[N]和w[N]进行点乘运算;信号加窗后的输出数组x[N]可表示为:x[n]=v[n]∗w[n](0≤n<N)(1-1)1)矩形窗矩形窗的w[N]是一个全1的数组,相当于对v[N]不进行加窗处理。

2)汉宁窗汉宁窗的w[N]表示如下:w[n]=0.5−0.5cos(2πnN)(0≤n<N)(1-2) 3)布莱克曼窗布莱克曼窗的w[N]表示如下:w[n]=0.42−0.5cos(2πnN )+0.08cos(4πnN)(0≤n<N)(1-3)1.3.信号补零将N(N=1199)点的数组x[N]扩展成M(M=4096)点的数组y[M]:y[n]={ x[n](0≤n<N) 0 (N≤n<M)(1-4)1.4.FFT运算对M点的数组y[M]进行实数快速傅里叶变换并求模,具体算法请参考数字信号处理相关书籍;TMS320F28335有现成的库函数RFFT_f32(RFFT_F32_STRUCT *)、RFFT_f32_mag(RFFT_F32_STRUCT *)供调用, FFT运算的输出为数组Y[M/2]。

1.5.频谱峰值探测根据MATLAB信号处理工具箱中Peak Finder的算法思路:处于两个波谷间且大于波谷一定阈值的点即为波峰;对应的流程图为:频谱峰值探测的输出为波峰索引数组。

1.6.回波筛选有效回波必须满足一定的位置条件和幅值条件。

系统的距离分辨单元为:∆D=C2B ∗11994096(1-5)式中,C—真空中光速B—扫频带宽则回波的位置和幅度可以表示为:D=∆D∗i−TCLA=Y[i](1-6)式中,i—波峰索引TCL— TCL长度1)位置条件有效回波位置必须处于盲区和罐底之间,将处于该范围之外的回波剔除。

2)幅值条件有两种幅值条件:统一阈值、ATP阈值。

统一阈值是将峰值小于某阈值的回波剔除;ATP阈值是由位置——阈值构成的一条折线,将峰值处于折线下方的回波剔除。

回波筛选的输出为回波索引数组。

1.7.谱估计对回波索引数组中的每一个回波(D,Y[i]),根据该回波前后各1个点(D−∆D,Y[i−1])、(D+∆D,Y[i+1])的值,利用二次曲线拟合法估算回波的真实位置为:D0=D+Y[i−1]−Y[i+1]2(Y[i−1]+Y[i+1]−2Y[i])∗∆D(1-7)回波的幅度为:A0=(D0−D)(D0−D−∆D)Y[i−1]−2(D0−D−∆D)(D0−D+∆D)Y[i]+(D0−D)(D0−D+∆D)Y[i+1]2∆D2(1-8)1.8.回波跟踪如果选择首回波算法,则回波跟踪过程可以用如下状态机表示:如果选择回波搜索算法,则回波跟踪过程可以用如下状态机表示:跟踪窗口内有回波/注:如果激活缓慢搜索,则搜索窗口初始化为跟踪窗口;否则,搜索窗口初始化为0~100m回波跟踪的输出为液面状态、位置和幅度。

1.9.滤波处理有三种滤波方法:跳跃滤波、阻尼、最小二乘法滤波;其中阻尼不能和最小二乘法滤波同时使用,但跳跃滤波能和阻尼或最小二乘法滤波同时使用。

1)跳跃滤波跳跃滤波用于减少液面的大幅度快速抖动,跳跃滤波用到两个参数:跳跃滤波阈值JFilt_Thresh、跳跃滤波延迟JFilt_Delay,其算法思路如下:i. 如果当前液位与前一时刻液位输出值相距大于JFilt_Thresh ,跳跃滤波计数器累加;否则跳跃滤波计数器清零, 用当前液位值作为当前时刻的输出。

ii. 如果跳跃滤波计数器大于JFilt_Delay ,用当前液位值作为当前时刻的输出;否则用前一时刻液位输出值作为当前时刻的输出。

2) 阻尼阻尼用距离滤波因子来度量,施加阻尼后系统的输出为:D n ′=D n−1′+(D n −D n−1′)∗DistFiltFactor(1-9)式中,D n ′ — 当前时间输出值 D n−1′ — 前一时刻的输出值 D n — 当前时刻的测量值DistFiltFactor — 距离滤波因子距离滤波因子和阻尼时间常数之间可用如下关系式表示:DistFiltFactor =1−e −∆TT(1-10)式中,T — 时间常数,单位为s∆T —液位计算的时间间隔(0.1s)3) 最小二乘法滤波最小二乘法滤波用于快速跟踪液位的变化,其算法步骤如下:iii. 利用前N (N=10)个时刻的输出值D ′(0)、D ′(∆T )、D ′(2∆T )、…、D ′((N −1)∆T),根据最小二乘法,拟合一条输出随时间变化的直线:D ′′(t )=a +b ∗t (1-11)iv. 利用拟合直线,计算当前时刻的预测值:TankHeight_R OffsetDist_GBottomOffsetDist_C+Level+Ullage +Flange_DD′′(N∆T)=a+b∗N∆T (1-12) v.根据当前时刻的预测值和测量值,计算当前时刻的输出值:D′(N∆T)=D′′(N∆T)+[D(N∆T)−D′′(N∆T)]∗DistFiltFactor(1-13) 式中,D(N∆T)—当前时刻的测量值。

注:最小二乘法线性拟合见附录A。

2.液位计算以用户定义的液位零点为参考点,计算出的液位值为:Level=TankHeight_R−Flange_D−OffsetDist_G+CalibrationLevel+LevelOffset (2-1)式中,TankHeight_R—储罐高度Flange_D—上一步计算出来的法兰距离OffsetDist_G—距离偏移量CalibrationLevel—液位校准值LevelOffset—液位修正量3.距离计算以用户定义的距离零点为参考点,计算出的距离值为:Ullage=Flange_D+OffsetDist_G−CalibrationLevel+UllageOffset(3-1) 式中,UllageOffset—距离修正量4.体积计算有4种体积计算方法:插值法、理想球罐法、理想垂直圆柱罐法、理想水平圆柱罐法。

1)插值法使用拉格朗日插值法进行体积计算;假设体积插值表可表示为(L0,V0)、(L1,V1)、…、(L N−1,V N−1),并且满足L0<L1<⋯<L N−1、V0<V1<V N−1;首先将液位转换为以插值表参考零点为基准:Level_V=TankHeight_R−Flange_D−OffsetDist_G+CalibrationLevel+LevelOffs(4-1)式中,LevelOffs—插值表液位偏移量①线性插值寻找点(L i,V i)、(L i+1,V i+1),使得L i≤Level_V<L i+1,使用下式计算体积值:V′=Level_V−L i+1L i−L i+1∗V i+Level_V−L iL i+1−L iV i+1(4-2)如果Level_V<L0,用(L0,V0)、(L1,V1)进行计算;如果Level_V≥L N−1,用(L N−2,V N−2)、(L N−1,V N−1)计算。

②二次曲线插值法寻找点(L i,V i)、(L i+1,V i+1),使得L i≤Level_V<L i+1,使用下式计算体积值:V′=(Level_V−L i+1)(Level_V−L i+2)(L i−L i+1)(L i−L i+2)∗V i+(Level_V−L i)(Level_V−L i+2)(L i+1−L i)(L i+1−L i+2)∗V i+1+(Level_V−L i)(Level_V−L i+1)(L i+2−L i)(L i+2−L i+1)∗V i+2 (4-3) 如果Level_V<L0,用(L0,V0)、(L1,V1)、(L2,V2)计算;如果Level_V≥L N−2,用(L N−3,V N−3)、(L N−2,V N−2)、(L N−1,V N−1)计算。

插值法的体积输出值为:Volume=V′+VolumeOffs(4-4)式中,VolumeOffs—体积修正量2)理想球罐法Level_V=TankHeight_R−Flange_D−OffsetDist_G+CalibrationLevel+ZeroLevelToBottomVolume=1π(3L1−2Level_V)∗Level_V2+VolumeOffs6(4-5) 式中,ZeroLevelToBottom—液位零点到罐底的距离L1—球罐直径3)理想垂直圆柱罐法Level_V=TankHeight_R−Flange_D−OffsetDist_G+CalibrationLevel+ZeroLevelToBottomπL12∗Level_V+VolumeOffsVolume=14(4-6) 式中,L1—圆柱体直径4)理想水平圆柱罐法Level_V=TankHeight_R−Flange_D−OffsetDist_G+CalibrationLevel+ZeroLevelToBottomVolume=14atan2(√L12−(L1−2Level_V)2,(L1−2Level_V))∗L12−14(L1−2Level_V)∗√L12−(L1−2Level_V)2+ VolumeOffs(4-7)式中,L1—圆柱体直径L2—圆柱体高度5.液位速率计算液位速率由下式计算:LevelRate=Level_V−Level_V ′∆T(5-1) 式中,Level_V′—上一时刻的液位值∆T—液位计算的时间间隔(0.1s)附录A 最小二乘法线性拟合最小二乘法线性拟合就是将一组符合Y=a+bX 关系的测量数据,用计算的方法求出最佳的a 和b 。

假设直线方程的表达式为:bx a y +=要根据测量数据求出最佳的a 和b 。

对满足线性关系的一组等精度测量数据(x i ,y i ),假定自变量x i 的误差可以忽略,则在同一x i 下,测量点y i 和直线上的点a+bx i 的偏差d i 如下:111bx a y d --= 222bx a y d --=n n n bx a y d --=显然最好测量点都在直线上(即d 1=d 2=……=d n =0),求出的a 和b 是最理想的,但测量点不可能都在直线上,这样只有考虑d 1、d 2、……、d n 为最小,也就是考虑d 1+d 2+……+d n 为最小,但因d 1、d 2、……、d n 有正有负,加起来可能相互抵消,因此不可取;而|d 1|+ |d 2|+……+ |d n |又不好解方程,因而不可行。

相关主题