count the duration for which variable value is zero in simulink

t=(1:1:24); I=[0 0 0 1 1 1 2 2 2 5 5 5 10 10 10 15 15 15 5 5 5 0 0 0];
If these are the inputs in Simulink using a lookup
How can I determine the period for which the variabe (I) has the value of 0
Any help on this will be appreciated
Thanks.
regards Manish

2 件のコメント

K E
K E 2012 年 7 月 24 日
Do you need the duration that I=0 during the simulation, or after it has finished?
Manish
Manish 2012 年 7 月 24 日
During the Simulation.

サインインしてコメントする。

 採用された回答

C.J. Harris
C.J. Harris 2012 年 7 月 23 日

1 投票

I'd take the input and convert it into a logical signal (1's and 0's), inverse this signal using a NOT block. Convert this back to a number (again, 1's and 0's) and feed it through an integrator block. The integrator output will then increase by a factor of 1 each second the input is non-zero. This output will then equal the amount of time your signal was zero.

4 件のコメント

Manish
Manish 2012 年 7 月 24 日
This logic gives me the total number of instances when the value is zero. What I need is, the count should start when the variable Value is zero and reset the count when the variable value becomes nozero. Which means I need to determine the period for which the value is continuously zero.
Thanks would appreciate your inputs.
C.J. Harris
C.J. Harris 2012 年 7 月 24 日
In this case add a reset condition to the integrator. Reset the integrator whenever it receives a non-zero value.
Manish
Manish 2012 年 7 月 24 日
Thanks C.J.Harris it was really helpful. Just one last question will this logic be applicable if I want to check it for a variable value like 1 or 2 instead of zero?
C.J. Harris
C.J. Harris 2012 年 7 月 25 日
Yes, you would need a slight modification though. Instead of converting the signal straight to a logical you would have to compare it against a constant.

サインインしてコメントする。

その他の回答 (0 件)

製品

Community Treasure Hunt

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

Start Hunting!

Translated by