MATLAB Answers


How to find f(t-1) if f(t) is given using simulink

Asked by Rakesh Jain on 13 Jul 2018 at 5:51
Latest activity Commented on by Rakesh Jain on 14 Jul 2018 at 5:24

I have an equation, something like this

lambda = sign [f(t)]*f(t-1)]

I am computing f(t) from the function block. So, it can be said that f(t) is the output of some function block in simulink. Now I need to find f(t-1), and then of course, find the lambda, which is based on the sign of the product. My doubt is, given f(t) as an output from the function block of simulink, how can I find f(t-1), and finally how to find the lambda.

As it can be seen from the simulink model screenshot, I have delE_by_delW_1 (call it f(t)) as an output of the function block. I want delE_by_delW_1 at time t-1 to find the lambda. Here, I am using unit delay block. But, the output it gives is as if unit delay block is not there. So, how should I solve this problem?


Can you share your model?

Sure, I will just attach it here

@Birdman Please check. I have attached the .mdl file. It might appear quite involved, but my primary doubt is that given in the question

Sign in to comment.


1 Answer

Answer by Nanditha Nirmal on 13 Jul 2018 at 22:30


According to the documentation, the unit delay block is for discrete signals. I am guessing your function f(t) is a continuous time signal and hence you should try using the Memory Block. Then, to calculate lambda you can input the product to the Sign Block. I have included a rough picture below.

  1 Comment

As far as I know (though I am not sure), the memory block doesn't provide a delay. But I had tried using the memory block too. It gives the same output, as if the memory block does not exist at all

Sign in to comment.