poeu Posted October 7, 2020 Posted October 7, 2020 Hi, I have a signal that grows and then decreases over a condition. I would like to calculate only the average rate of growth, that is from the start value to the maximum. The signal does not grow monotically, which means that the rate locally decreases before the maximum is attained. I tried to calculate the rate with this formula, but Seeq would not accept it: $signal_start = $signal.aggregate(startValue(), $condition, middleKey(), 0s) $signal_max = $signal.aggregate(maxValue(), $condition, middleKey(), 0s) $rate = ($signal_max - $signal_start)/($signal.maxKey($condition) - $signal.startKey($condition)) Would you have any suggestion how one could do this without using the derivative() function? Thank you very much in advance for your answer.
Seeq Team Joe Reckamp Posted October 7, 2020 Seeq Team Posted October 7, 2020 Hi poeu, Here's one method for doing what you want: $max = $signal.aggregate(maxValue(),$condition,maxKey()).todiscrete() $start = $signal.aggregate(startValue(),$condition,maxKey()).todiscrete() $time = timesince($condition, 1min) ($max-$start)/$time In this formula, I'm first calculating the maximum value within the condition and storing that at the timestamp where the maximum was found. I then take the start value an also put that at the max key. Finally, I use timesince to get the calculated time (you can change the units depending on how long your capsule is) at that max timestamp. Note that your condition will need to have a maximum duration so you may need to add a $condition.removelongerthan(40h) or equivalent prior to the above formulas if your condition does not already have a max duration.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now