Main Content

Series Interconnection of Passive Systems

This example illustrates the properties of a series interconnection of passive systems.

Series Interconnection of Passive Systems

Consider an interconnection of two subsystems G1 and G2 in series. The interconnected system H is given by the mapping from input u to output y2.

In contrast with parallel and feedback interconnections, passivity of the subsystems G1 and G2 does not guarantee passivity for the interconnected system H. Take for example


Both systems are passive as confirmed by

G1 = tf([5 3 1],[1,2,1]);
ans = logical

G2 = tf([1,1,5,.1],[1,2,3,4]);
ans = logical

However the series interconnection of G1 and G2 is not passive:

H = G2*G1;
ans = logical

This is confirmed by verifying that the Nyquist plot of G2G1 is not positive real.


Passivity Indices for Series Interconnection

While the series interconnection of passive systems is not passive in general, there is a relationship between the passivity indices of G1 and G2 and the passivity indices of H=G2G1. Let ν1 and ν2 denote the input passivity indices for G1 and G2, and let ρ1 and ρ2 denote the output passivity indices. If all these indices are positive, then the input passivity index ν and the output passivity index ρ for the series interconnection H satisfy


In other words, the shortage of passivity at the inputs or outputs of H is no worse than the right-hand-side expressions. For details, see the paper by Arcak, M. and Sontag, E.D., "Diagonal stability of a class of cyclic systems and its connection with the secant criterion," Automatica, Vol 42, No. 9, 2006, pp. 1531-1537. Verify these lower bounds for the example above.

% Output passivity index for G1
rho1 = getPassiveIndex(G1,'output');
% Output passivity index for G2
rho2 = getPassiveIndex(G2,'output');
% Input passivity index for H=G2*G1
nu = getPassiveIndex(H,'input')
nu = -1.2886
% Lower bound
ans = -2.4194

Similarly, verify the lower bound for the output passivity index of H.

% Input passivity index for G1
nu1 = getPassiveIndex(G1,'input');
% Input passivity index for G2
nu2 = getPassiveIndex(G2,'input');
% Output passivity index for H=G2*G1
rho = getPassiveIndex(H,'output')
rho = -0.6966
% Lower bound
ans = -6.0000

See Also


Related Topics