def testFeedback(self): h1 = TransferFunction([1], [1, 2, 2]) omega = np.logspace(-1, 2, 10) f1 = FRD(h1, omega) np.testing.assert_array_almost_equal( f1.feedback(1).frequency_response([0.1, 1.0, 10])[0], h1.feedback(1).frequency_response([0.1, 1.0, 10])[0]) # Make sure default argument also works np.testing.assert_array_almost_equal( f1.feedback().frequency_response([0.1, 1.0, 10])[0], h1.feedback().frequency_response([0.1, 1.0, 10])[0])
def testFeedback(self): h1 = TransferFunction([1], [1, 2, 2]) omega = np.logspace(-1, 2, 10) f1 = FRD(h1, omega) np.testing.assert_array_almost_equal( f1.feedback(1).freqresp([0.1, 1.0, 10])[0], h1.feedback(1).freqresp([0.1, 1.0, 10])[0]) # Make sure default argument also works np.testing.assert_array_almost_equal( f1.feedback().freqresp([0.1, 1.0, 10])[0], h1.feedback().freqresp([0.1, 1.0, 10])[0])
def test_size_mismatch(self): sys1 = FRD(ct.rss(2, 2, 2), np.logspace(-1, 1, 10)) # Different number of inputs sys2 = FRD(ct.rss(3, 1, 2), np.logspace(-1, 1, 10)) with pytest.raises(ValueError): FRD.__add__(sys1, sys2) # Different number of outputs sys2 = FRD(ct.rss(3, 2, 1), np.logspace(-1, 1, 10)) with pytest.raises(ValueError): FRD.__add__(sys1, sys2) # Inputs and outputs don't match with pytest.raises(ValueError): FRD.__mul__(sys2, sys1) # Feedback mismatch with pytest.raises(ValueError): FRD.feedback(sys2, sys1)