LabVIEW中逐点(实时)滤波,每次运行数值不一样

 时间:2024-10-22 10:58:28

在LabVIEW中经常使用实时滤波(逐点滤波),输入参数都不变的情况下,如果被单次调用,每次运行的结果都会是一样的;如果被放在一个for循环或者while循环中使用,则每次运行的结果是不一样的。

工具/原料

LabVIEW

原因分析

1、进入到labview中的逐点滤波程序框图中,可以看到,在底层其实有一个首次调用的判断,如果是首次调用则会初始化滤波参数,进行一次全新的滤波,如果不是首次调用,则会续用前一次滤波的参数和结果,进而实现逐点实时滤波。

LabVIEW中逐点(实时)滤波,每次运行数值不一样
LabVIEW中逐点(实时)滤波,每次运行数值不一样

2、因此,当把逐点滤波放在循环中的时候,内存中一直存在的,除了循环的第一次外,其它次循环中,该逐点滤波都是被判断为非首次调用,因为即便输入参数不发生改变,逐点滤波也会把每一次的输入参数作为新来的数值进行计算,因此就会发生,每次循环中滤波出来的数值是不一样的,而且随着循环次数的增加,输出会慢慢逼近输入,最终会跟输入一致,就相当于是一直采集到的新的数值,但是数值的大小没有发生过改变,类似于一条直线进来后进行滤波。

LabVIEW中逐点(实时)滤波,每次运行数值不一样
LabVIEW中逐点(实时)滤波,每次运行数值不一样

3、此外,如果把该逐点滤波封装成dll,该dll也存在这种情况,因为dll一旦加载,就一直存在于内存中,即除首次外,其余时间均为非首次调用。

LabVIEW中逐点(实时)滤波,每次运行数值不一样
  • NI LabVIEW 2018怎么关闭VI属性和方法
  • LabVIEW 2018怎么开启使用回车键结束文本输入
  • labview如何打包exe文件
  • LabVIEW怎么开启默认错误列表对话框中显示警告
  • 研华-数据采集DAQ-LabVIEW
  • 热门搜索
    英语手抄报花边 快乐阅读手抄报 推普手抄报 教师手抄报 三年级手抄报图片 关于友善的手抄报 读书名言手抄报 英语圣诞节手抄报 关于清明的手抄报内容 纪念英雄手抄报