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

 Akzeptierte Antwort

Paul
Paul am 16 Jul. 2026
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.

Weitere Antworten (1)

Jasper Gerritsen
Jasper Gerritsen am 16 Jul. 2026
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.

Kategorien

Produkte

Version

R2025a

Gefragt:

am 16 Jul. 2026

Kommentiert:

am 16 Jul. 2026

Community Treasure Hunt

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

Start Hunting!

Translated by