Skip to content

Commit 94481ac

Browse files
committed
Add MIMO FRD test
1 parent 686a9b3 commit 94481ac

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

control/tests/frd_test.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,32 @@ def testAppendSiso(self):
211211
frd_app_2 = frd1.append(frd2).append(frd3)
212212
np.testing.assert_allclose(d_app_2, frd_app_2.fresp)
213213

214+
def testAppendMimo(self):
215+
# Create frequency responses
216+
rng = np.random.default_rng(1234)
217+
n = 100
218+
w = np.arange(n)
219+
d1 = rng.uniform(size=(2, 2, n)) + 1j * rng.uniform(size=(2, 2, n))
220+
d2 = rng.uniform(size=(3, 1, n)) + 1j * rng.uniform(size=(3, 1, n))
221+
d3 = rng.uniform(size=(1, 2, n)) + 1j * rng.uniform(size=(1, 2, n))
222+
frd1 = FrequencyResponseData(d1, w)
223+
frd2 = FrequencyResponseData(d2, w)
224+
frd3 = FrequencyResponseData(d3, w)
225+
# Create appended frequency responses
226+
d_app_1 = np.zeros((5, 3, d1.shape[-1]), dtype=complex)
227+
d_app_1[:2, :2, :] = d1
228+
d_app_1[2:, 2:, :] = d2
229+
d_app_2 = np.zeros((6, 5, d1.shape[-1]), dtype=complex)
230+
d_app_2[:2, :2, :] = d1
231+
d_app_2[2:5, 2:3, :] = d2
232+
d_app_2[5:, 3:, :] = d3
233+
# Test appending two FRDs
234+
frd_app_1 = frd1.append(frd2)
235+
np.testing.assert_allclose(d_app_1, frd_app_1.fresp)
236+
# Test appending three FRDs
237+
frd_app_2 = frd1.append(frd2).append(frd3)
238+
np.testing.assert_allclose(d_app_2, frd_app_2.fresp)
239+
214240
def testAuto(self):
215241
omega = np.logspace(-1, 2, 10)
216242
f1 = _convert_to_frd(1, omega)

0 commit comments

Comments
 (0)