- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
法兰距离计算
流程图
信号加窗
信号加窗用于减小频谱泄露,可选择三种窗函数之一:矩形窗、汉宁窗、布莱克曼窗。假设中频信号电压采样数组为v[N],采样点数为N(N=1199);加窗实际上是构建一个N点的数组w[N],将v[N]和w[N]进行点乘运算;信号加窗后的输出数组x[N]可表示为:
xn
矩形窗
矩形窗的w[N]是一个全1的数组,相当于对v[N]不进行加窗处理。
汉宁窗
汉宁窗的w[N]表示如下:
wn
布莱克曼窗
布莱克曼窗的w[N]表示如下:
wn
信号补零
将N(N=1199)点的数组x[N]扩展成M(M=4096)点的数组y[M]:
yn
FFT运算
对M点的数组y[M]进行实数快速傅里叶变换并求模,具体算法请参考数字信号处理相关书籍;TMS320F28335有现成的库函数RFFT_f32(RFFT_F32_STRUCT *)、RFFT_f32_mag(RFFT_F32_STRUCT *)供调用, FFT运算的输出为数组Y[M/2]。
频谱峰值探测
根据MATLAB信号处理工具箱中Peak Finder的算法思路:处于两个波谷间且大于波谷一定阈值的点即为波峰;对应的流程图为:
频谱峰值探测的输出为波峰索引数组。
回波筛选
有效回波必须满足一定的位置条件和幅值条件。系统的距离分辨单元为:
?D=C
式中,C — 真空中光速
B — 扫频带宽
则回波的位置和幅度可以表示为:
D=?D*i-TCL
A=Y[i] (1-6)
式中,i — 波峰索引
TCL — TCL长度
位置条件
有效回波位置必须处于盲区和罐底之间,将处于该范围之外的回波剔除。
幅值条件
有两种幅值条件:统一阈值、ATP阈值。统一阈值是将峰值小于某阈值的回波剔除;ATP阈值是由位置——阈值构成的一条折线,将峰值处于折线下方的回波剔除。
回波筛选的输出为回波索引数组。
谱估计
对回波索引数组中的每一个回波D,Yi,根据该回波前后各1个点D-?D,Yi-1
D0
回波的幅度为:
A0
回波跟踪
如果选择首回波算法,则回波跟踪过程可以用如下状态机表示:
如果选择回波搜索算法,则回波跟踪过程可以用如下状态机表示:
回波跟踪的输出为液面状态、位置和幅度。
滤波处理
有三种滤波方法:跳跃滤波、阻尼、最小二乘法滤波;其中阻尼不能和最小二乘法滤波同时使用,但跳跃滤波能和阻尼或最小二乘法滤波同时使用。
跳跃滤波
跳跃滤波用于减少液面的大幅度快速抖动,跳跃滤波用到两个参数:跳跃滤波阈值JFilt_Thresh、跳跃滤波延迟JFilt_Delay,其算法思路如下:
如果当前液位与前一时刻液位输出值相距大于JFilt_Thresh,跳跃滤波计数器累加;否则跳跃滤波计数器清零, 用当前液位值作为当前时刻的输出。
如果跳跃滤波计数器大于JFilt_Delay,用当前液位值作为当前时刻的输出;否则用前一时刻液位输出值作为当前时刻的输出。
阻尼
阻尼用距离滤波因子来度量,施加阻尼后系统的输出为:
Dn=
式中,Dn —
Dn-1 —
Dn — 当前时刻的
DistFiltFactor — 距离滤波因子
距离滤波因子和阻尼时间常数之间可用如下关系式表示:
DistFiltFactor=1-e-?TT
式中,T — 时间常数,单位为s
?T —液位计算的时间间隔(0.1s)
最小二乘法滤波
最小二乘法滤波用于快速跟踪液位的变化,其算法步骤如下:
利用前N(N=10)个时刻的输出值D0、D?T、D2?T
Dt=a+b*t
利用拟合直线,计算当前时刻的预测值:
DN?T=a+b*N?T
根据当前时刻的预测值和测量值,计算当前时刻的输出值:
DN?T=D
式中,DN?T
注:最小二乘法线性拟合见附录A。
液位计算
以用户定义的液位零点为参考点,计算出的液位值为:
Level=TankHeight_R-Flange_D-OffsetDist_G+CalibrationLevel+LevelOffset (2-1)
式中,TankHeight_R — 储罐高度
Flange_D — 上一步计算出来的法兰距离
OffsetDist_G — 距离偏移量
CalibrationLevel — 液位校准值
文档评论(0)