def test_phase_crossover_frequencies(): """Test phase_crossover_frequencies() function""" omega, gain = phase_crossover_frequencies(tsys[1][0]) assert_allclose(omega, [1.73205, 0.], atol=1.5e-3) assert_allclose(gain, [-0.5, 0.25], atol=1.5e-3) tf = TransferFunction([1], [1, 1]) omega, gain = phase_crossover_frequencies(tf) assert_allclose(omega, [0.], atol=1.5e-3) assert_allclose(gain, [1.], atol=1.5e-3) # testing MIMO, only (0,0) element is considered tf = TransferFunction([[[1], [2]], [[3], [4]]], [[[1, 2, 3, 4], [1, 1]], [[1, 1], [1, 1]]]) omega, gain = phase_crossover_frequencies(tf) assert_allclose(omega, [1.73205, 0.], atol=1.5e-3) assert_allclose(gain, [-0.5, 0.25], atol=1.5e-3)
def test_phase_crossover_frequencies_mimo(): """Test MIMO exception""" tf = TransferFunction([[[1], [2]], [[3], [4]]], [[[1, 2, 3, 4], [1, 1]], [[1, 1], [1, 1]]]) with pytest.raises(ControlMIMONotImplemented): omega, gain = phase_crossover_frequencies(tf)
def test_phase_crossover_frequencies(tfargs, omega_ref, gain_ref): """Test phase_crossover_frequencies() function""" sys = TransferFunction(*tfargs) omega, gain = phase_crossover_frequencies(sys) assert_allclose(omega, omega_ref, atol=1.5e-3) assert_allclose(gain, gain_ref, atol=1.5e-3)