# bug #62292: [octave forge] (control) Generic close loop formula doesn't show same result than feedback function

 Submitter: Pablo Scinardo Submitted: Mon 11 Apr 2022 02:49:41 PM UTC Category: Octave Forge Package Severity: 3 - Normal Priority: 5 - Normal Item Group: Incorrect Result Status: Works For Me Assigned to: None Originator Name: pabloscinardo Open/Closed:  * Closed Release:  * 6.4.0 Operating System:  * Microsoft Windows Fixed Release: None Planned Release: None
* Mandatory Fields

Comment Type & Canned Response:

## Discussion

Tue 06 Sep 2022 01:55:43 PM UTC, comment #3:

Found this bug was still marked as open. Closing as per the intent of comment #2.

Arun Giridhar <arungiridhar>
Tue 17 May 2022 08:12:01 PM UTC, comment #2:

one month without further comment. closing report.

Nicholas Jankowski <nrjank>
Mon 11 Apr 2022 07:12:32 PM UTC, comment #1:

The both transfer functions of the closed loop are describing the same system. It's just, that in the longer form, the common roots and zeros are not canceled.

You can check that the transfer functions are equivalent by

GD1 = G1/(1+G1*G2);
GD2 = 1/(1/G1+G2);
% Bode plot
bode (GD1, GD2)
% tf -> ss -> tf
tf (ss (GD1))
tf (ss (GD2))

Btw: Matlab is giving the same result.

Torsten Lilge <ttl>
Mon 11 Apr 2022 02:49:41 PM UTC, original submission:

Generic loop back formula:

G
Sys =  --------------
1 + G * H

It shows wrong result.

But changing the loop back formula:
1
Sys =  --------------
1/G + H

The result is right, the same than feedback(G,H) funcion

Follow some example on Octave 6.4.0

>> num1 =[10];

>> den1 =[1 2 10];

>> G1=tf(num1,den1)

Transfer function 'G1' from input 'u1' to output ...

10
y1:  --------------
s^2 + 2 s + 10

Continuous-time model.

>> num2 =[0 5];

>> den2 =[1 5];

>> G2=tf(num1,den1)

Transfer function 'G2' from input 'u1' to output ...

10
y1:  --------------
s^2 + 2 s + 10

Continuous-time model.

>> feedback(G1,G2)

Transfer function 'ans' from input 'u1' to output ...

10 s^2 + 20 s + 100
y1:  ---------------------------------
s^4 + 4 s^3 + 24 s^2 + 40 s + 200

Continuous-time model.

>> G1/(1+(G1*G2))

Transfer function 'ans' from input 'u1' to output ...

10 s^4 + 40 s^3 + 240 s^2 + 400 s + 1000
y1:  -------------------------------------------------------
s^6 + 6 s^5 + 42 s^4 + 128 s^3 + 520 s^2 + 800 s + 2000

Continuous-time model.

>> 1/((1/G1)+G2)

Transfer function 'ans' from input 'u1' to output ...

10 s^2 + 20 s + 100
y1:  ---------------------------------
s^4 + 4 s^3 + 24 s^2 + 40 s + 200

Continuous-time model.

Pablo Scinardo <pabloscinardo>

## Attached Files

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

Comment:

No files currently attached

## Dependencies

Depends on the following items: None found

Items that depend on this one: None found

Carbon-Copy List
• -email is unavailable- added by arungiridhar (Posted a comment)
• -email is unavailable- added by nrjank (Posted a comment)
• -email is unavailable- added by ttl (Posted a comment)
• -email is unavailable- added by pabloscinardo (Submitted the item)
•

There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

Only project members can vote.