Skip to content

Commit 7eeaa6d

Browse files
fixup: Add missing labels when returning TimeResponseData
1 parent 5cbc955 commit 7eeaa6d

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

control/timeresp.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1376,9 +1376,13 @@ def step_response(sys, T=None, X0=0., input=None, output=None, T_num=None,
13761376
# Figure out if the system is SISO or not
13771377
issiso = sys.issiso() or (input is not None and output is not None)
13781378

1379+
# Select only the given input and output, if any
1380+
input_index = {k: v for k, v in sys.input_index.items() if v is input} if input else sys.input_index
1381+
output_index = {k: v for k, v in sys.output_index.items() if v is output} if output else sys.output_index
1382+
13791383
return TimeResponseData(
13801384
response.time, yout, xout, uout, issiso=issiso,
1381-
output_labels=sys.output_index, input_labels=sys.input_index,
1385+
output_labels=output_index, input_labels=input_index,
13821386
state_labels=sys.state_index,
13831387
transpose=transpose, return_x=return_x, squeeze=squeeze)
13841388

@@ -1708,10 +1712,14 @@ def initial_response(sys, T=None, X0=0., input=0, output=None, T_num=None,
17081712
# Figure out if the system is SISO or not
17091713
issiso = sys.issiso() or (input is not None and output is not None)
17101714

1715+
# Select only the given input and output, if any
1716+
input_index = {k: v for k, v in sys.input_index.items() if v is input} if input else sys.input_index
1717+
output_index = {k: v for k, v in sys.output_index.items() if v is output} if output else sys.output_index
1718+
17111719
# Store the response without an input
17121720
return TimeResponseData(
17131721
response.t, response.y, response.x, None, issiso=issiso,
1714-
output_labels=sys.output_index, input_labels=sys.input_index,
1722+
output_labels=output_index, input_labels=input_index,
17151723
state_labels=sys.state_index,
17161724
transpose=transpose, return_x=return_x, squeeze=squeeze)
17171725

@@ -1875,9 +1883,13 @@ def impulse_response(sys, T=None, X0=0., input=None, output=None, T_num=None,
18751883
# Figure out if the system is SISO or not
18761884
issiso = sys.issiso() or (input is not None and output is not None)
18771885

1886+
# Select only the given input and output, if any
1887+
input_index = {k: v for k, v in sys.input_index.items() if v is input} if input else sys.input_index
1888+
output_index = {k: v for k, v in sys.output_index.items() if v is output} if output else sys.output_index
1889+
18781890
return TimeResponseData(
18791891
response.time, yout, xout, uout, issiso=issiso,
1880-
output_labels=sys.output_index, input_labels=sys.input_index,
1892+
output_labels=output_index, input_labels=input_index,
18811893
state_labels=sys.state_index,
18821894
transpose=transpose, return_x=return_x, squeeze=squeeze)
18831895

0 commit comments

Comments
 (0)