MATLAB Answers

Unable to properly feedback an updated signal in simulink

1 view (last 30 days)
Hello,
I'm trying to make a toy example work using simulink. I have a particle that i want to go in a circle. Basically what I want to do is to rotate progressively by 10 deg over 36 sec (so it makes a full circle).
How to code this in simulink? For the rotation, I used the 2d rotation matrix about z. I am basically having trouble feeding back the updated velocity as the new reference.

  0 Comments

Sign in to comment.

Accepted Answer

Ameer Hamza
Ameer Hamza on 20 Oct 2020
If you directly feed it back, you will create an algebraic loop, which is sometimes difficult to solve. Feedback through a delay block https://in.mathworks.com/help/simulink/slref/delay.html. Give a delay of 1 between output and feedback input.

  4 Comments

Show 1 older comment
Ameer Hamza
Ameer Hamza on 20 Oct 2020
Remove the Vo from outside the model and inside the MATLAB function block, write something like this
if t == 0
v = 10;
end

Sign in to comment.

More Answers (1)

Paul
Paul on 20 Oct 2020
Is there a reason why you wan to use a feedack loop where none really exists? Keep in mind that feedback loop is sampled and therefore the model is not integrating a continuous velocity. Why not just implement the equation for velocity directly, like so:

  1 Comment

Anthony Maalouly
Anthony Maalouly on 20 Oct 2020
Yes there is a reason. Essentially, I want to use that feedback loop for a similar problem where I am controlling a particle and I want to add delta_v vectors under certain conditions. This toy example that I asked above simulated it well.
I do agree with you, one should not use feedback where no feedback is directly needed, and the solution above works as expected.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!