cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - If community subscription notifications are filling up your inbox you can set up a daily digest and get all your notifications in a single email. X

Identifying stationary and transient behavior of data in Mathcad

bcardoso
2-Explorer

Identifying stationary and transient behavior of data in Mathcad

Hello!

I have started working with Mathcad recently and I have been trying to "filter" my data in order to separete stationary and transient behaviors.

My data is a two-collum matrix with time and temperature. I need to identify the begining and the end of a start up of a system, which will result in an increase of temperature and afterwars the temperature will be stationary.

Has anyone tryed that before with Mathcad??

Thank you for your attention.

Best Regards,

Bruno

ACCEPTED SOLUTION

Accepted Solutions
Werner_E
25-Diamond I
(To:Werner_E)

I have added units, as Valery suggested.

Is there a way to avoid having to specify the threshold (temperature difference) in Kelvin instead of the preferred degree Celsius?

Sorry, found it myself:

transient4.png

Added this and edited the sheet to reflect a possible change of ORIGIN in all expressions (the separation of the data in t and T was not ORIGIN-aware in the previous sheets).

View solution in original post

18 REPLIES 18

You've come to the right place.

Can you post an example of what you've tried so far? (Click "Use advanced editor" on the top right to post a file.)

Dear Fred,

Right now my file is very messy. I will clean it up to post it as soon as possible.

Thank you for your attention.

Bruno

I think you can at first to create a plot on your data an see.

Hello,

As you asked, I am sending the plot of my data.

I had a first experience with Mathcad 14 and this is my first file with Mathcad Prime 2.0.

I was speaking with some colleagues and they suggested that I tried a "moving window" method in which I would check my data for a given instance of time, t, then, I would subtract the value of the t+4 (ie. the data ahead of the one I am checking) of the value at t and if the result is higher than a specified value that I determine, I could identify the beginning of the start up.

Example:

At t=5minutes, my temperature is 300ºC, I would compare it to when t=20minutes (assuming I am collecting data at every 5 minutes) and that at t= 20minutes the temperature is 350. If I set the difference to 20ºC, the filter would have to identify this as the start of my start up.

The thing is that I do not have much experience in programming. Maybe you guys can check if the logic is correct and maybe give me some tips or an alternative way to make this or even any file that you may have done something similar.

Thank you very much for your attention.

Regards,

Bruno

Some one so:

time-series.png

Werner_E
25-Diamond I
(To:bcardoso)

Is it only me ? When I try too see more of the data array and I go through it using the tabulator key, whenever I go beyond the last visible value, I get (reproduceable) an exception error.

I attach the mentioned logfile (slightly cleaned up) if anyone cares.

error.png

What Windows OS are you using?

Werner_E
25-Diamond I
(To:VladimirN)

VladimirN. schrieb:

What Windows OS are you using?

Windows XP SP3 and only 1GB of RAM.

I had just open a new discussion on that theme

Ok.

Werner_E
25-Diamond I
(To:bcardoso)

As of my problems with Prime I wrote that sliding window in Mathcad 15 and converted the file to Prime.

Hope it helps.

transient2.png

Werner_E
25-Diamond I
(To:Werner_E)

I have added units, as Valery suggested.

Is there a way to avoid having to specify the threshold (temperature difference) in Kelvin instead of the preferred degree Celsius?

And, yes, the function as it is written now returns the index of the center of the window in contrary what the text in the file says.

transient3.png

Werner_E
25-Diamond I
(To:Werner_E)

I have added units, as Valery suggested.

Is there a way to avoid having to specify the threshold (temperature difference) in Kelvin instead of the preferred degree Celsius?

Sorry, found it myself:

transient4.png

Added this and edited the sheet to reflect a possible change of ORIGIN in all expressions (the separation of the data in t and T was not ORIGIN-aware in the previous sheets).

bcardoso
2-Explorer
(To:Werner_E)

Thank you all for the help!!!

I am at home and I only have Mathcad at my job.

Tomorrow morning I will check the files that Werner sent. For what I looked it seems to work as we were thinking.

I will reply right after I check the files.

Once again thank you very much for your attention and help.

Best regards,

Bruno

Werner_E
25-Diamond I
(To:bcardoso)

Thank you all for the help!!!

You are welcome.

Tomorrow morning I will check the files that Werner sent. For what I looked it seems to work as we were thinking.

You only need to check the last one (transient4.mcdx) 🙂

bcardoso
2-Explorer
(To:Werner_E)

Hello!!

I have tested and the file works the way we needed! Thank you Werner and Valery very much for your attention and your help!!

I have adapted the file in order to identify the end of the transient as well. I am sending it so you guys can check it.

Once again thank you guys very much!!

Best Regards,

Bruno

Werner_E
25-Diamond I
(To:bcardoso)

Fine that it helped.

Sometimes if there is a great deal of randomness or measuring errors superimposing the data it may help to smooth the signal before applying a filter.

See attached sheet. I have altered my function so it detects negative temperature differences as well and used it to determine the end of the transient (when data is declinig the first time after start. Probably you may stay with your function which defines the endpoint when the data is still increasing but change of increasement is slowing down.

Regards

Werner

bcardoso
2-Explorer
(To:Werner_E)

Dear Werner,

I have evaluated your last file and the getindex routine is just perfect for what we needed. It works perfectly to identify the beginning and the end of the transient!

Maybe I will not use the smoothing filter, but it is also a great toll.

Once again, thank you very much for your attention and your help!!

Best regards,

Bruno

Werner_E
25-Diamond I
(To:bcardoso)

I have evaluated your last file and the getindex routine is just perfect for what we needed. It works perfectly to identify the beginning and the end of the transient!

Glad it worked for you. The only drawback of getindex as it is now is, that it is not able to be triggered when temp is still climbing but increment of growth is slowing down. It can only be triggered when temp is falling the first time after growth. But if thats precise enough - good. Otherwise you may use the routine you have introduced yourself.

Once again, thank you very much for your attention and your help!!

You are welcome

Werner

Announcements

Top Tags