Matlab 循环载荷下的转折点识别

Matlab 循环载荷下的转折点识别,matlab,turning-point,Matlab,Turning Point,我有一个向量,sigma=[s1,s2,s3,s4,s5,s6,s7],它在循环加载中绘制: 图3循环载荷 我见过一些解决这个问题的方法,但不幸的是,MATLAB还没有 我如何确定转折点? 如何识别非转折点?(s2,s6)我假设一些西格玛值,这些值看起来与您绘制的类似。请注意开始处的额外零,该零在绘图中未标记,但从绘图中看,它似乎是一个数据点: >> sigma = [0 3 -1 -3 1 -2 0.5 3.5] >> sign(diff(sigma)) ans =

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


图3循环载荷

我见过一些解决这个问题的方法,但不幸的是,MATLAB还没有

我如何确定转折点?

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

我假设一些西格玛值,这些值看起来与您绘制的类似。请注意开始处的额外零,该零在绘图中未标记,但从绘图中看,它似乎是一个数据点:

>> 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
第一个元素对应于绘图中的第一个点(不是我数组中的第一个σ值)-ve值表示凹面,+ve表示凸面转折点。请注意,这个结果对于七个点只有六个元素,这是因为第七个点是不确定的

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

turning =

     1     3     4     5


nonTurningIdx =

     2     6

我假设了一些西格玛值,这些值看起来和你所画的相似。请注意开始处的额外零,该零在绘图中未标记,但从绘图中看,它似乎是一个数据点:

>> 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
第一个元素对应于绘图中的第一个点(不是我数组中的第一个σ值)-ve值表示凹面,+ve表示凸面转折点。请注意,这个结果对于七个点只有六个元素,这是因为第七个点是不确定的

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

turning =

     1     3     4     5


nonTurningIdx =

     2     6

非常感谢某个人!!每个循环加载都以零开始是正确的吗?我是否必须检查数组始终以零开始?如果不是因为输入形式,我是否必须在数组的开头添加一个零,这样代码才能工作?比如,如果我放置一个向量
sigma=[0,0,1]
。西格玛(1)不是一个转折点,但西格玛(2)我加了一个零,因为从你的图上看,它看起来像是一个数据点。事实上,如果零不在数据中,则绘图中标记为1的点将是不确定的,这意味着无法确定它是在转动还是不转动(因为它前面没有点)。加零与否完全取决于你,因为只有你知道这样做是否合乎逻辑。对于sigma=[0,0,1],sigma(2)是一个转折点,这就是算法在执行它时所指示的。非常感谢某些人!!每个循环加载都以零开始是正确的吗?我是否必须检查数组始终以零开始?如果不是因为输入形式,我是否必须在数组的开头添加一个零,这样代码才能工作?比如,如果我放置一个向量
sigma=[0,0,1]
。西格玛(1)不是一个转折点,但西格玛(2)我加了一个零,因为从你的图上看,它看起来像是一个数据点。事实上,如果零不在数据中,则绘图中标记为1的点将是不确定的,这意味着无法确定它是在转动还是不转动(因为它前面没有点)。加零与否完全取决于你,因为只有你知道这样做是否合乎逻辑。对于sigma=[0,0,1],sigma(2)是一个转折点,这是算法在执行它时所指示的。好的,我的循环加载现在被转换,我将始终得到一个具有以下样式的向量:
sigma=[0,0,0,k,-k,k,0,k,-k]
。正如你所看到的,它只有零和相同的参数正和负。有没有一种新的方法/更好的方法来定义转折点?好的,我的循环加载现在被转换了,我总是得到一个具有以下风格的向量:
sigma=[0,0,0,k,-k,k,0,k,-k]
。正如你所看到的,它只有零和相同的参数正和负。是否有新的/更好的方法来定义转折点?