循环负载中的转折点识别
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
我有一个矢量,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