I essentially need to do 'x = x + a*b' operation at every time-step in my simulation. The value of b is changing throughout the simulation and the value of x is given initially. I tried using 'memory' block for the same but wasn't able to get the desired result due to sample time mis-match. The values are getting updated every 0.2 seconds whereas the step-time is 1s.
Please suggest what blocks I should use; if possible a diagram too. I think I need a block which can act as a source but also have an option to be updated. Or any other way to carry out the above task would suffice.
I have done this in Matlab script and it was very easy there, but I need a Simulink model solution.

 Akzeptierte Antwort

Fangjun Jiang
Fangjun Jiang am 30 Mär. 2020

0 Stimmen

The true meaning of the equation is x=previous_x+a*b. Use the "Delay One Step" block (also called z-delay, unit delay, 1/z). The input is x, the output is previous_x, then construct your model.

3 Kommentare

Nishant Kumar
Nishant Kumar am 31 Mär. 2020
But how will x gets updated everytime, if at first, x has a given value.
Fangjun Jiang
Fangjun Jiang am 31 Mär. 2020
You can specify the initial value for the z-delay block. It "gets updated everytime" when the simulation is run.
Nishant Kumar
Nishant Kumar am 31 Mär. 2020
Thanks a lot for help. This worked out fine for me.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Simulink finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by