循环负载中的转折点识别

Turning Points identification in cycle load

我有一个矢量,sigma=[s1, s2, s3, s4, s5, s6, s7],它是在循环加载中绘制的:


图循环负载

我见过很少的解决这个问题的方法,但遗憾的是还没有用于 MATLAB。

如何识别转折点?
如何识别非转折点? (s2,s6)

我假设一些 sigma 值看起来与您绘制的相似。请注意开头的额外零,它没有在您的图中标记,但从图中看起来它是一个数据点:

>> sigma = [0 3 -1 -3 1 -2 0.5 3.5]
>> sign(diff(sigma))

ans =

     1    -1    -1     1    -1     1     1

这告诉我 sigma 在哪里增加,在哪里减少,如果我们再次进行 diff,diff 值为零的地方将是非转折点,非零将是转折点

>> diff(sign(diff(sigma)))

ans =

    -2     0     2    -2     2     0

第一个元素对应于图中的第一个点(不是我数组中 sigma 的第一个值)。 -ve 值表示凹形,+ve 表示凸形转折点。请注意这个结果如何只有六个元素对应七个点,那是因为第七个点是不确定的。

>>turning = find(diff(sign(diff(sigma)))) 
>>nonTurningIdx = find(diff(sign(diff(sigma))) == 0)

turning =

     1     3     4     5


nonTurningIdx =

     2     6