How to measure the steady state amplitude of a control system output

Dear Matlab Answers,
Hello. I have included below an image concerning my problem
Here I have a sinusoidal weaveform that has an initial transient then settles to a steady state amplitude. It looks odd ebcause the plot is so dense, but the data is all sinsoidal with a transient offset. The data is represented as an array of time points and an array of ampltiude points. (tout and Y). How can I write an algorithm to detect when the transient is complete and return the final steady state amplitude? Technically, this is not only a MATLAB question, but a solution written in MATLAB code is preffered.

5 comentarios

Is this the response of your model to a sinusoidal input?
Does this question only concern LTI systems with a single sinusoidal input?
If so, do you know a priori the frequency of the input or is that something that the algorithm has to determine?
The frequency of the injected signal is under control of the app. If that is not the case then you would need to use some form of a spectrum analyzer.
@Paul Dear Paul, thank you for your comment. Thank you to other commenters as well. I need to be able to analyuze the data WITHOUT ACCESS TO THE INPUT SIGNAL, and WITHOUT ACCESS TO THE SIMULINK MODEL. I need to find a statistical approach. I am basically looking for an algorithm that can seperate the transient from the steady state component in ANY signal, knowing that the steady state is some sinusoid of a singe frequency.
I basically want to high pass filter my signal, then measure the amplitude using (max(data)-min(data))/2. How can I do a high pass filter on a signal in MATLAB given only data?

Iniciar sesión para comentar.

 Respuesta aceptada

Michael Sohnen
Michael Sohnen el 9 de Mzo. de 2021
I figured it out. If you have some idea of what frequencies will be present in the signal, just use the highpass command. In my problem, I know the exact sampling rate, so it works. I highpass the data with a lower cutoff of 1 hertz and then measure the amplitude using max and min.
Thanks all.
Best,
Mike

4 comentarios

Glad you found a solution that works. But I want to point ot that your solution is making some assumptions about the problem that may or may not be warranted based on your comment above. Offhand, these assumptions are:
The system is LTI.
The inputs is a single sine wave.
The output is, in fact, in steady state at the end of the simulation.
The input sine wave frequency is greater than 1 Hz by some amount.
The sample frquency of the output is hgih enough relative to the frequency of the output.
Michael Sohnen
Michael Sohnen el 9 de Mzo. de 2021
Editada: Michael Sohnen el 9 de Mzo. de 2021
Hi. The system is far from LTI. Most of my assumptions are from empirical data from my simulation. Sorry I phrased the question as such a puzzle but I wanted to boil it down to the most pressing parts. Anyway, if you want to collaborate on my project, I am trying to publish it. I'm looking for a volunteer to help develop my experiment. We could co-author. If ur interested email me mys14@pitt.edu
If your system is "far from LTI" then there is no guarantee, in general, that the steady state output is a single sinusoid. So you have to have some idea about what's going on inside the system and what the output should be.
Good luck. Go Panthers!
Good luck to you too!

Iniciar sesión para comentar.

Más respuestas (1)

Pat Gipper
Pat Gipper el 8 de Mzo. de 2021
Try using this app. It injects a sine wave and measures the gain and phase after a number of cycles that you specify.
https://www.mathworks.com/matlabcentral/fileexchange/85448-frequency-response-analyzer

1 comentario

I was looking for something that worked exclusively on the output data, in the time domain.

Iniciar sesión para comentar.

Categorías

Más información sobre General Applications en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 7 de Mzo. de 2021

Comentada:

el 9 de Mzo. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by