Asked by Nicholas
on 18 Jun 2013

Hello,

I am using Simulink and have a variable set to zero in an enabled subsystem. I send the signal out of the subsystem and am trying to update it as x = x + 1 where x is the signal. After simulink goes through all the blocks once and gets back to where x = x + 1 the x is reset to 0. I have a breakpoint in the enabled subsystem where I initialized it and it never goes back there. Any ideas would be appreciated. Thank you!

Answer by Nicholas
on 19 Jun 2013

Accepted answer

Actually, I think I figured out what I needed to do. So I declared x as global and found the data store memory block. After I found the block I found http://www.mathworks.com/help/simulink/ug/using-global-data-with-the-matlab-function-block.html#bsdud7d-1 Thank you very much for your time and interest in helping me.

Answer by Erwin Torreao Dassen
on 18 Jun 2013

Edited by Erwin Torreao Dassen
on 18 Jun 2013

Is this a custom matlab function block? In that case try declaring the variable persistent. (UPDATED)

Erwin Torreao Dassen
on 19 Jun 2013

I'm not sure I understand what you trying to achieve. My guess of what is happening is that your matlab-function block that defines x = 0 is being used as input outside the subsystem. If that is the case the first block outside this subsytem will always receive 0 as input signal and it will never output more than 1... In fact, your matlab-function block is just a "constant" block.

What is the behavior you want to obtain?

Regards, Erwin

Nicholas
on 19 Jun 2013

Opportunities for recent engineering grads.

## 2 Comments

## Kaustubha Govind (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/79426#comment_155615

Could you please explain what block(s) you use to implement the

x=x+1part?## Nicholas (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/79426#comment_155618

I am using MatLAB Function blocks. For a simplified example I am using a Matlab function block in the enabled subsystem that defines x = 0; Then I output the signal to the input of another MAtLAB function block outside of the subsystem where x = x + 1; I have a pulse generator for the enable of the subsystem