Simulink bloc to check if a condition is true during a period of time

44 vues (au cours des 30 derniers jours)
NeedsSupport
NeedsSupport le 7 Mai 2013
Hi everyone, I wish to thank you for your time. I need to create a Simulink block: the input of the block is x, the output is outp. the simulation time is 10 steps (the unit I use to express time is the step of the simulation time, not seconds or minutes). The Simulink block does the following: if (x<0.9 during 5 steps of simulation time) then outp=1; Although it looks very easy but I have no idea on how to check the time condition. Any help is welcome. Thank you very much.

Réponses (2)

Babak
Babak le 7 Mai 2013
You can use a "Weighted Sample Time" block to know what's the sampling time and an "If" block to create a condition.
If you only care about counting the sampling times passed, you can also use a "Counter Free-Running" block that starts counting from 0 as soon as the simulation starts.
When you open the Simulink Library Browser, search for these three blocks' names and use them to make your model.
  1 commentaire
Babak
Babak le 8 Mai 2013
in the weighted sample time, you can chose Ts only (or 1/Ts only) and u don't need an input. Output is not dependent on the input because the output is either Ts only (or 1/Ts only). But if you want to add something to Ts or multiply or divide,... you can use other options and it does the operation for you. Ts is the sampling time. I don't thin you need weighted sample time.. a counter works good enough for your case.

Connectez-vous pour commenter.


NeedsSupport
NeedsSupport le 8 Mai 2013
Thank you for your help. i just wonder what should be the input for the weighted sample time? a constant (=1) didn't work for me, and the clock didn't work either.

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by