To access block data in this case ‘position’ value and use this to limit ‘velocity’, you can use a “feedback loop”. You can do that through following steps:
- Branch the output of 'Interpreted MATLAB Fcn' and pass it to a ‘unit delay’ block.
- On that signal, apply any conditions through which you can calculate by what value to limit 'velocity'.
- Add or subtract this signal as per your need, to the original 'velocity' signal.
We can do the above without the first step as well but it will introduce an ‘algebraic loop’ which is not desirable, you can know more about them on this page:
Here is an image for your reference, where velocity is reduced by ‘10’ when computed position ‘u’ gets greater than ‘1000’ during simulation. Input ‘X’ is a vector containing values from ’10,20…100’ and value of ‘a’ is ‘10’.