大家好,上次我们学习了曲线图波峰波谷取值算法,今天我们来学习下工控行业用得比较多的拐点取值。
好了废话少说,直接打开软件导入 《找拐点测试曲线.xlsx》

然后我们直接进入动作步界面,新建根节点和动作子节点

现在我们选中 节点 找拐点 然后点击鼠标右键,在右键菜单中选择编辑动作步,然后按如下步骤找到拐点取值功能指令:动作步编辑页面->模块选择->功能曲线->功能指令->曲线拐点计算

我们可以看到曲线拐点参数配置页面里的参数,曲线图对象和曲线对象我们在波峰波谷取值已经介绍过了,这两个参数就是我们告诉程序去哪个曲线图里用哪条曲线进行操作。下面的参数我给大家详细讲讲。

在讲解参数用法前,我先给大家介绍下FZHOP硬件版找拐点的算法原理,知道这个原理后,大家就会比较容易理解参数该如何使用了
FZHOP的拐点查找功能是通过一条固定点数的曲线在我们的目标曲线上逐点滑移,每移动一次就会计算当前曲线所围成的多边形面积大小,当这条曲线完整的从目标曲线的一端移动到另一端的时候,我们就能得到整个过程中的多边形面积值,然后我们对这些数值求最大值,我们就找到了我们需要的拐点位置。实际上这个算法就是计算目标曲线上我们规定范围内的多边形面积最大值。(当然这里大家不用去担心计算量太大的问题,我们的程序效率是非常高的,即便是上百万的点滑移,也不会超过1秒的执行时间,所以大家完全可以放心使用)

这个算法是我们目前对拐点的定义的一个最直接的计算方法,也应该是比较准确的计算方法。
好了现在来看看我们的参数
曲线范围下限、曲线范围上限:这两个参数功能是一体的,我就给大家一起讲了。前面我们也提到了,为了准确的找到拐点我们并不是直接对整条曲线进行操作的,而是通过目标曲线X轴的范围去限制我们的查找范围(当然如果范围参数未设置,程序将会直接对整条曲线进行操作)。这样我们就能更容易、更准确的找到我们的曲线拐点了。如下图所示,我们可以在蓝色曲线范围内找红色标记的拐点,也可以在绿线范围内找橙色标记的拐点。
计算曲线的比例:这个参数就是我们之前提到的用一条固定点数的曲线去滑移的参数了。由于我们的目标曲线点数并不是固定的,加上滑移曲线得和拐点尺度接近我们才能更准确的找到。所以这里给出了一种定义滑移曲线的方法,就是按比例从我们的范围曲线上去计算滑移曲线的点数(注意不是目标曲线的比例)。这个方法可以让我们大概判断出拐点在范围曲线上的比例值,然后将该比例值输入给我们的参数即可,这里不需要精确数据,给一个大概就行。比如 设置为7就是我们把范围曲线的1/7用来作为滑移曲线,去进行拐点计算,设置为9就是用范围曲线的1/9去进行查找计算。
通用寄存器首地址:这个和之前的波峰波谷取值一样,是用来设置我们的查询结果的。其中计算点位的X数据存入通用寄存器首地址,Y数据存入首地址+1的地址(比如设置首地址为100,则通用寄存器100里就存储着点X轴的值,101就存储着点Y轴的值)。写数值和用@+数值是相同的,@@是指针引用
下面我们就来试试找拐点,首先我们找红色标记的拐点吧,这个拐点的范围大概在105.2到105.4,所以范围我们可以直接确定,但是比例值我们需要进行一些调试才能得到,首先我们目测拐点位置大概在105.33附近
现在我们调整下界面,以方便我们进行比例值的调整

好了接下来我们就可以进行参数调整了。
诶,当我们把比例值设置为3的时候,我们的X轴位置就和我们的目标值接近了,这表示1/3的范围曲线长度能更好的找到我们的拐点。我们在曲线界面去看看拐点位置吧
我把具体的参数值贴一下
这就是我们的曲线找拐点功能,接下来我们去找找橙色曲线标记的拐点吧
从曲线上看拐点范围可以设定在105.6到106.4之间,目测拐点位置在105.8附近
可以看到当我们把比例值设置为2的时候最接近拐点,这里主要是圆弧半径较大,范围曲线1/2的长度和圆弧长度更接近。
这个算法所针对的是同一种产品在测试过程中,曲线形状和尺度偏差不大的条件下适用的,而且算法本身具备一定的自适应性。如果产品本身在相同测试条件下曲线很不规则,或者变化很大,那么这个算法就不适用了。不过这种情况一般很少,毕竟工业产品是需要保证产品状态一致性的,所以这个算法能适用于大多数的自动化测试条件。
好了今天的教程就到这里了,最近在集成python到FZHOP开发版,所以这个教程出得有点慢,不过效果还是很不错的,有兴趣的同学可以加QQ群209783211,下面是硬件版下载链接,希望大家可以多多支持。我们下期再见。
硬件版下载链接:https://pan.baidu.com/s/1BJAwhylmey7NgqqkJv9FIQ
提取码:FZHP