How to allow only sequences that have had the same value for 5 seconds (in Simulink)?

2 vues (au cours des 30 derniers jours)
black_cat
black_cat le 21 Sep 2021
Modifié(e) : black_cat le 22 Sep 2021
I have an input like this:
[2, 2, 2, 2, 3, 2, 2, 2, 3, 4, 4, 4, 4]
I want to suppress oscillation and only allow sequences that have had the same value for x seconds (e.g. 5). So that it outputs the above sequence like this:
[2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3]
Is there a way to do this using blocks in Simulink?
  5 commentaires
Jonas
Jonas le 21 Sep 2021
I still don't know why it would output [2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3]. There has not been five consecutive '3' in the input data. If you want the data to only jump when the value is 5 times the same consecutively, the output will be:
  • Input: [2, 2, 2, 2, 3, 2, 2, 2, 3, 4, 4, 4, 4]
  • Output: [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
black_cat
black_cat le 21 Sep 2021
Yeah, because you assume that the consecutive number is coming from the input, but it is about the output.

Connectez-vous pour commenter.

Réponses (1)

Jonas
Jonas le 21 Sep 2021
Using only blocks, I think this should do the trick:
  1 commentaire
black_cat
black_cat le 22 Sep 2021
Modifié(e) : black_cat le 22 Sep 2021
Thank you very much. This is the solution that solved my problem:
However, this only helps me with the values that occurred in the last 5 seconds. Does anyone know how can I apply this to the last 50 seconds without adding 40 more delay blocks?

Connectez-vous pour commenter.

Tags

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by