循环加载中的转弯点识别

时间:2016-11-11 19:55:32

标签: matlab turning-point

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

cycle load
图。循环加载

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

如何识别转折点?
如何识别非转折点? (S2,S6)

1 个答案:

答案 0 :(得分:1)

我假设一些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(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