コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
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)