查找数据关闭和上升时间的位置

时间:2015-01-12 14:00:56

标签: matlab

我的数据如下: enter image description here

我正在尝试查找有关我的数据的以下信息:

"瞬态"部分

稳定状态和稳态平均值的时间

我认为stepinfo是我最好的选择,但它似乎希望将最终值作为稳态值,而不是给我最好的结果。直到我知道它何时才能找到稳定时间的平均值....有没有办法在稳态搜索上设置一些界限?在我链接的图片上,它可能是+/- 0.25内的数据,50个数据点是稳定状态?

1 个答案:

答案 0 :(得分:0)

你能做的是:

  1. 确定在瞬态和稳态之间的交点处曲线的斜率
  2. 让您发出信号
  3. 找出图表上每个点之间的差异
  4. 找到点之间的差异低于您在
  5. 中选择的值的第一个位置

    要做到这一点,请记住:

    • 开头的差异平均为零,因此您必须跳过这些值。 一种方法是:x(x < 0.1 * max(x)) = [];这样就可以删除曲线的整个开始。无论如何,你不需要它。请务必备份x

    • 平滑信号的一种简单方法是:smooth_x = arrayfun(@(t) mean(x(t:t+k)), 1:numel(x-k))。您需要为k找到合适的值。

    • 即使平滑的曲线也会出现'#34;颠簸&#34;,因此您可能希望比较不相邻的点,例如检查diff(x(k),x(k+10))。如果这两个点之间的平均倾斜度低于您在1中选择的值,那么您很高兴。 finddiff的组合应该可以解决问题。

    平滑后,您可以使用diff查找瞬态和稳定部分的平均倾角。 我无法分辨曲线从瞬态到稳定的位置。这是你需要做出的决定。例如,它可以每10秒小于0.2升/分钟。