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

33 次查看(过去 30 天)
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.

回答(2 个)

Babak
Babak 2013-5-7
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 个评论
Babak
Babak 2013-5-8
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.

请先登录,再进行评论。


NeedsSupport
NeedsSupport 2013-5-8
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.

类别

Help CenterFile Exchange 中查找有关 Simulink 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by