How to find the settling time
6 views (last 30 days)
Show older comments
Hi,
Below is my time series data, and I want to find the settling time of each variable, column1 is time, column2~4 are my variables.
Criterion is: if standard deviation >=0.05 then it is called a change, want to catch where the data change is >=0.05(Stdev) and keep stable, then it is called settling time.
For example: v2 change twice and settled at two time (5sec & 15sec), where as v1 only settled at 7sec.
My definition of change: change from 0 to a constant value. v1 changed from 0 to 1 at 7sec, and keep very stable near 1.
Time v1 v2 v3
1 0 0 0
2 0 0 0
3 0 0 0
4 0 0 0
5 0 1 1
6 0 1 1
7 1 1 1
8 0.989 1 1
9 0.979 1 1
10 0.988 1 1
11 0.999 0 0
12 1 0 0
13 1 0 0
14 1 0 0
15 1 1 0
16 1 1 0
17 1 1 0
18 1 1 0
19 1 1 1
20 1 1 1
21 1 1 1
22 1 1 1
23 1 1 1
24 1 1 1
25 1 1 1
26 1 1 1
27 1 1 1
28 1 1 1
29 1 1 1
I open to welcome if any other method to catch the settling time(s). Some variables change twice or thrice.
My desired output:
v1 7
v2 5 15
v3 5 19
0 Comments
Answers (1)
Birdman
on 6 Dec 2017
SetTimeV1=find(diff(v1)>0.05)+1
SetTimeV2=find(diff(v2)>0.05)+1
SetTimeV3=find(diff(v3)>0.05)+1
4 Comments
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!