MATLAB Answers


How to iterate in simulink?

Asked by Daniel
on 10 Nov 2013
Latest activity Commented on by Daniel
on 11 Nov 2013


I have the following problem, I want to iterate two variables in Simulink. In normal code it would look like this:


I used For Iterate Block but it doesn't work. I'm getting an error:

"Trouble solving algebraic loop containing 'untitled/For Iterator Subsystem1' at time 0. Stopping simulation. There may be a singularity in the solution. If the model is correct, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances)."

Here's what i have done in Simulink


Log in to comment.

1 Answer

Answer by Azzi Abdelmalek
on 10 Nov 2013
Edited by Azzi Abdelmalek
on 10 Nov 2013
 Accepted Answer

% x(i+1)=x(i)+4*(x(i)-y(i));
% can be written as
% x(i+1)-5x(i)=-4y(i)
% z X(z)-5X(z)=-4Y(z)
% H(z)=-4/(z-5)
To get the result you can use a discrete transfer function with 
denominator=[1 -5]
% input signal=y
% output signal x


Thanks, that helped me. I have one more question, how do I include initial conditions x(1)=400 and y(1)=100?

set initial values of your unit delay block to 400 and 100

thanks one more time, that is what i was looking for.

Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today