Reputation: 2302
Matlab's feedback function is used to obtain the closed loop transfer function of a system. Example:
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:
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);
Why are we using 1
and not -1
? This is still negative feedback and not positive feedback.
Upvotes: 2
Views: 16242
Reputation: 5741
G = tf([.5 1.3],[1 1.2 1.6 0]);
T = feedback(G,1);
The one in feedback(G,1)
represents sys2
and since the function has two inputs, the default value will be a negative unity feedback according to the following line
sys = feedback(sys1,sys2) returns a model object sys for the negative feedback interconnection of model objects sys1,sys2.
Consider the following script
s = tf('s');
G = 1/s;
T1 = feedback(G,1)
T2 = feedback(G,1,-1)
T1 and T2 are same.
Upvotes: 1