rrz0
rrz0

Reputation: 2302

How to use `feedback` function in Matlab?

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.

Upvotes: 2

Views: 16242

Answers (1)

CroCo
CroCo

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

Related Questions