Matlab's feedback function is used to obtain the closed loop transfer function of a system. Example:

enter image description here

sys = feedback(sys1,sys2) returns a model object sys for the negative feedback interconnection of model objects sys1,sys2. To compute the closed-loop system with positive feedback, use sign = +1, for negative feedback we use -1.

My question arises when we have a system of the following type:

enter image description here

According to these docs, we can use feedback to create the negative feedback loop with G and C.

sys = feedback(G*C,-1)

This is a source of confusion, shouldn't the above be: sys = feedback(G*C,1,-1)? These are not the same.

However, looking at these docs, for a unit loop gain k, you can compute the closed-loop transfer function T using:

G = tf([.5 1.3],[1 1.2  1.6 0]);
T = feedback(G,1); 

enter image description here

Why are we using 1 and not -1? This is still negative feedback and not positive feedback.

  • \$\begingroup\$ feedback(g, 1) gives unitary negative feedback loop. \$feedback(g, 1)=\frac{g}{1+g}\$. That’s the syntax. \$\endgroup\$ – Chu Feb 9 '20 at 12:50
  • \$\begingroup\$ So, it seems like there is a mistake in the documentation \$\endgroup\$ – rrz0 Feb 9 '20 at 14:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.