How to update a signal in Simulink

8 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Fangjun Jiang
Fangjun Jiang il 30 Mar 2020
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 Commenti
Fangjun Jiang
Fangjun Jiang il 31 Mar 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 il 31 Mar 2020
Thanks a lot for help. This worked out fine for me.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Simulink Functions in Help Center e File Exchange

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by