有比“积分的平均值”更好的名字吗?

机器算法验证 术语
2022-03-25 10:26:28

我正在测试我的业务销售的节气门位置传感器 (TPS),并打印电压对节气门轴旋转的响应图。TPS 是一种旋转传感器90° 量程,输出就像一个电位器,全开为 5V(或传感器的输入值),初始开度为 0 到 0.5V 之间的某个值。用 PIC32 控制器构建了一个测试台,每 0.75° 进行一次电压测量,黑线连接这些测量。

我的一种产品倾向于使远离(和低于)理想线的局部低幅度变化。这个问题是关于我量化这些局部“下降”的算法;测量倾角过程的好名称或描述是什么?(下面是完整的解释)在下图中,下降发生在图的左侧三分之一处,无论我会通过还是失败这部分都是边缘情况:

打印出可疑部分

所以我建立了一个倾角检测器(stackoverflow qa about the algorithm)来量化我的直觉。我最初以为我在测量“面积”。该图基于上面的打印输出和我试图以图形方式解释算法的尝试。在 17 和 31 之间有 13 个样本持续下降:

放大的“倾角”显示的采样数据

测试数据进入一个数组,我为从一个数据点“上升”到下一个数据点创建另一个数组,我称之为deltas. 我使用一个库来获取平均值和标准偏差deltas.

分析deltas数组如下图所示,其中斜率已从上图中移除。最初,我认为这是“标准化”或“统一”数据,因为 x 轴是相等的步长,我现在只处理数据点之间的上升。在研究这个问题时,我记得这是导数,dydx的原始数据。

导数分析...?

我走过deltas找到有 5 个或更多相邻负值的序列。蓝色条是一系列低于所有数据平均值的数据点deltas. 蓝色条的值是:

0.7+1.2+1.3+1.4+1.8+2.5+2.9+3.0+2.5+2.0+1.5+1.0+1.2

他们总和23,表示面积(或积分)。我的第一个想法是“我刚刚整合了导数”,这应该意味着我可以取回原始数据,尽管我确信有一个术语。

绿线是通过将面积除以倾角长度得出的这些“低于平均值”的平均值:

23÷13=1.77

在对 100 多个零件进行测试期间,我发现我的绿线平均下降幅度小于2.6是可以接受的。对整个数据集计算的标准偏差对这些下降没有足够严格的测试,因为没有足够的总面积,它们仍然落在我为好的零件设定的限制范围内。我观察地选择了标准差3.0成为我允许的最高水平。

为标准偏差设置一个足够严格以使该部分失败的截止值将是如此严格,以至于使原本看起来有很大情节的部分失败。我也有一个尖峰检测器,如果有的话,它会使零件失效|deltasavg|>avg+stddev.

距离 Calc 1 已经快 20 年了,所以请放轻松,但这感觉很像一位教授使用微积分和位移方程来解释如何在赛车中,一个加速度较小但保持较高角速度的竞争对手可以击败另一个选手下一个转弯的加速度更大:通过上一个转弯的速度更快,初始速度越高意味着他的速度(位移)下的区域越大。

将其转化为我的问题,我觉得我的绿线就像加速度,原始数据的二阶导数。

我访问了维基百科,重新阅读了微积分的基础知识以及导数和积分的定义,学习了通过离散测量将曲线下面积相加的正确术语,如数值积分对积分的平均值进行更多的谷歌搜索,我被引导到非线性和数字信号处理的主题。平均积分似乎是量化数据的流行指标

积分的平均值有术语吗?(1.77,绿线)?
...或使用它来评估数据的过程?

1个回答

首先,这是对您的项目和问题的一个很好的描述。而且我非常喜欢你自制的测量框架,它非常酷……那么,你所说的“平均积分”到底有什么关系呢?

如果您对工作的更广泛定位感兴趣,您想做的通常被称为异常检测在其最简单的设置中,它涉及将时间序列中的值与先前值的标准偏差进行比较。那么规则是如果

x[n]>αSD(x[1:n1])=>x[n] is outlier
在哪里x[n]是个nth系列中的价值,SD(x[1:n1])是所有先前值之间的标准差1st(n1)th值,和α是您选择的一些合适的参数,例如 1 或 2,具体取决于您希望检测器的灵敏度。您当然可以将此公式调整为仅在本地工作(在某个长度间隔上h),
x[n]>αSD(x[nh1:n1])=>x[n] is outlier

如果我理解正确,您正在寻找一种方法来自动测试您的设备,即在执行整个测试(绘制整个对角线)后将设备声明为好/故障。在这种情况下,只需将上述公式视为比较x[n]针对所有值的标准偏差。

出于将设备分类为故障的目的,您可能还需要考虑其他规则:

  • 如果任何偏差 (delta) 大于所有 delta 的 SD 的某个倍数
  • 如果偏差的平方和大于某个阈值
  • 如果正负增量之和的比率不近似相等(如果您更喜欢两个方向上的较小误差而不是单个方向上的强偏差,这可能很有用)

当然,您可以找到更多规则并使用布尔逻辑将它们连接起来,但我认为您可以通过上述三个方法走得更远。

最后但并非最不重要的一点是,一旦设置好,您将需要测试分类器(分类器是将输入映射到类的系统/模型,在您的情况下,每个设备的数据映射到“好”或“故障”)。通过手动标记每个设备的性能来创建测试集。然后查看ROC,它基本上告诉您系统从返回的设备中正确拾取的设备数量与拾取的故障设备数量之间的偏移量。