@@ -68,8 +68,13 @@ def test_interconnect_implicit():
68
68
ki = ct .tf (random .uniform (1 ,10 ), [1 ,0 ])
69
69
C = ct .tf2io (kp + ki ,inputs = 'e' ,outputs = 'u' ,name = 'C' )
70
70
71
+ # same but static C2
72
+ C2 = ct .tf (random .uniform (1 ,10 ),1 ,
73
+ inputs = 'e' ,outputs = 'u' ,name = 'C2' )
74
+
71
75
# Block diagram computation
72
76
Tss = ct .feedback (P * C ,1 )
77
+ Tss2 = ct .feedback (P * C2 ,1 )
73
78
74
79
# Construct the interconnection explicitly
75
80
Tio_exp = ct .interconnect (
@@ -93,6 +98,15 @@ def test_interconnect_implicit():
93
98
np .testing .assert_almost_equal (Tio_sum .C ,Tss .C )
94
99
np .testing .assert_almost_equal (Tio_sum .D ,Tss .D )
95
100
101
+ # test whether signal names work for static system C2
102
+ Tio_sum2 = ct .interconnect (
103
+ [C2 ,P ,sumblk ],inputs = 'r' ,outputs = 'y' )
104
+
105
+ np .testing .assert_almost_equal (Tio_sum2 .A ,Tss2 .A )
106
+ np .testing .assert_almost_equal (Tio_sum2 .B ,Tss2 .B )
107
+ np .testing .assert_almost_equal (Tio_sum2 .C ,Tss2 .C )
108
+ np .testing .assert_almost_equal (Tio_sum2 .D ,Tss2 .D )
109
+
96
110
# Setting connections to False should lead to an empty connection map
97
111
empty = ct .interconnect (
98
112
(C ,P ,sumblk ),connections = False ,inplist = ['r' ],outlist = ['y' ])
@@ -237,17 +251,17 @@ def test_linear_interconnect():
237
251
ss_ctrl = ct .ss (1 ,2 ,1 ,2 ,inputs = 'e' ,outputs = 'u' )
238
252
ss_plant = ct .ss (1 ,2 ,1 ,2 ,inputs = 'u' ,outputs = 'y' )
239
253
nl_ctrl = ct .NonlinearIOSystem (
240
- lambda t ,x ,u ,params :x * x ,
254
+ lambda t ,x ,u ,params :x * x ,
241
255
lambda t ,x ,u ,params :u * x ,states = 1 ,inputs = 'e' ,outputs = 'u' )
242
256
nl_plant = ct .NonlinearIOSystem (
243
- lambda t ,x ,u ,params :x * x ,
257
+ lambda t ,x ,u ,params :x * x ,
244
258
lambda t ,x ,u ,params :u * x ,states = 1 ,inputs = 'u' ,outputs = 'y' )
245
259
246
260
assert isinstance (ct .interconnect ((tf_ctrl ,tf_plant ),inputs = 'e' ,outputs = 'y' ),ct .LinearIOSystem )
247
261
assert isinstance (ct .interconnect ((ss_ctrl ,ss_plant ),inputs = 'e' ,outputs = 'y' ),ct .LinearIOSystem )
248
262
assert isinstance (ct .interconnect ((tf_ctrl ,ss_plant ),inputs = 'e' ,outputs = 'y' ),ct .LinearIOSystem )
249
263
assert isinstance (ct .interconnect ((ss_ctrl ,tf_plant ),inputs = 'e' ,outputs = 'y' ),ct .LinearIOSystem )
250
-
264
+
251
265
assert ~ isinstance (ct .interconnect ((nl_ctrl ,ss_plant ),inputs = 'e' ,outputs = 'y' ),ct .LinearIOSystem )
252
266
assert ~ isinstance (ct .interconnect ((nl_ctrl ,tf_plant ),inputs = 'e' ,outputs = 'y' ),ct .LinearIOSystem )
253
267
assert ~ isinstance (ct .interconnect ((ss_ctrl ,nl_plant ),inputs = 'e' ,outputs = 'y' ),ct .LinearIOSystem )