Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

How to iterate in simulink?

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

Hi,

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

X(i+1)=X(i)+4*(X(i)-Y(i));
Y(i+1)=Y(i)+2*(X(i)-Y(i));

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

0 Comments

Daniel

Products

No products are associated with this question.

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 
numerator=-4
denominator=[1 -5]
% input signal=y
% output signal x

3 Comments

Daniel on 10 Nov 2013

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

Azzi Abdelmalek on 11 Nov 2013

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

Daniel on 11 Nov 2013

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

Azzi Abdelmalek

Contact us