Why I do not see the correct transfer function

I am trying to build a feedback system and use the connect() function to build it. But some how I can not get the correct transfer function. Here is my code:
G1 = tf([1,[1,0]]); G2 = tf(1,[1 1 0]); G3 = tf(1,[1,1,0]);
G4 = tf(-2, 1); G5 = tf(-1,1); G6 = tf(1,[1,0]);
G7 = tf(-1,[1,1]);
Sys = append(G1,G2,G3,G4,G5,G6,G7);
Q = [1 6 5; 2 1 7; 3 2 0; 4 3 0; 5 4 0; 6 2 0; 7 3 0];
INPUTS = 1;
OUTPUTS = 4;
G = connect(Sys, Q, INPUTS, OUTPUTS);
tf(G)
Here is my error:
Warning: The closed-loop model may be improper because of singular algebraic loops.
ans =
0
Static gain.
Please help

 Accepted Answer

Hi Zeyuan,
Is G1 defined correctly? If it is, or if stil having trouble after correcting it, it would be easier to help with a block diagram drawing of the system to be modeled. You can upload a figure using the paperclip icon on the Insert menu if needed.
G1 = tf([1,[1,0]]), G2 = tf(1,[1 1 0]); G3 = tf(1,[1,1,0]);
G1 = From input 1 to output: 1 From input 2 to output: 1 From input 3 to output: 0 Static gain.
G4 = tf(-2, 1); G5 = tf(-1,1); G6 = tf(1,[1,0]);
G7 = tf(-1,[1,1]);
Sys = append(G1,G2,G3,G4,G5,G6,G7);
Q = [1 6 5; 2 1 7; 3 2 0; 4 3 0; 5 4 0; 6 2 0; 7 3 0];
INPUTS = 1;
OUTPUTS = 4;
G = connect(Sys, Q, INPUTS, OUTPUTS);
Warning: The closed-loop model may be improper because of singular algebraic loops.

More Answers (1)

You probably meant to write
G1 = tf(1,[1,0]);
But there is no way to tell unless you specify to us what you intended to do.

Categories

Find more on Control System Toolbox in Help Center and File Exchange

Products

Release

R2025a

Asked:

on 16 Jul 2026

Commented:

on 16 Jul 2026

Community Treasure Hunt

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

Start Hunting!