Пример #1
0
def test_State_to_array():
    G = State(1, 1, 1)
    H = State(5)
    with assert_raises(TypeError):
        G.to_array()

    assert_equal(H.to_array(), np.array([[5]]))
    H = State(np.ones((4, 4)))
    assert_equal(H.to_array(), np.ones((4, 4)))
Пример #2
0
def test_State_to_array():
    G = State(1, 1, 1)
    H = State(5)
    with assert_raises(ValueError):
        G.to_array()

    assert_equal(H.to_array(), np.array([[5]]))
    H = State(np.ones((4, 4)))
    assert_equal(H.to_array(), np.ones((4, 4)))
Пример #3
0
def test_State_algebra_add_radd():
    sta_siso = State(5)
    sta_mimo = State(2.0 * np.eye(3))
    dyn_siso = State(haroldcompanion([1, 3, 3, 1]), e_i(3, -1), e_i(3, 1).T)
    dyn_mimo = State(haroldcompanion([1, 3, 3, 1]), e_i(3, [1, 2]), np.eye(3))
    dyn_mimo_sq = State(haroldcompanion([1, 3, 3, 1]), np.eye(3), np.eye(3))

    G = dyn_mimo + sta_siso
    assert_array_almost_equal(G.d,
                              sta_siso.to_array() * np.ones(dyn_mimo.shape))
    assert_raises(ValueError, dyn_mimo.__add__, sta_mimo)
    G = dyn_mimo_sq + sta_mimo
    assert_array_almost_equal(G.d, 2. * np.eye(3))
    G = dyn_mimo + dyn_siso
    J = np.array([[0., 1., 0., 0., 0., 0., 0., 0.],
                  [0., 0., 1., 0., 0., 0., 1., 0.],
                  [-1., -3., -3., 0., 0., 0., 0., 1.],
                  [0., 0., 0., 0., 1., 0., 0., 0.],
                  [0., 0., 0., 0., 0., 1., 0., 0.],
                  [0., 0., 0., -1., -3., -3., 1., 1.],
                  [1., 0., 0., 0., 1., 0., 0., 0.],
                  [0., 1., 0., 0., 1., 0., 0., 0.],
                  [0., 0., 1., 0., 1., 0., 0., 0.]])
    assert_array_almost_equal(concatenate_state_matrices(G), J)
    assert_raises(ValueError, dyn_mimo.__add__, dyn_mimo_sq)
    assert_raises(ValueError, dyn_mimo.__sub__, dyn_mimo_sq)
    assert_raises(ValueError, dyn_mimo.__radd__, dyn_mimo_sq)
    assert_raises(ValueError, dyn_mimo.__rsub__, dyn_mimo_sq)
Пример #4
0
def test_State_algebra_add_radd():
    sta_siso = State(5)
    sta_mimo = State(2.0*np.eye(3))
    dyn_siso = State(haroldcompanion([1, 3, 3, 1]), e_i(3, -1), e_i(3, 1).T)
    dyn_mimo = State(haroldcompanion([1, 3, 3, 1]), e_i(3, [1, 2]), np.eye(3))
    dyn_mimo_sq = State(haroldcompanion([1, 3, 3, 1]), np.eye(3), np.eye(3))

    G = dyn_mimo + sta_siso
    assert_array_almost_equal(G.d, sta_siso.to_array()*np.ones(dyn_mimo.shape))
    assert_raises(ValueError, dyn_mimo.__add__, sta_mimo)
    G = dyn_mimo_sq + sta_mimo
    assert_array_almost_equal(G.d, 2.*np.eye(3))
    G = dyn_mimo + dyn_siso
    J = np.array([[0., 1., 0., 0., 0., 0., 0., 0.],
                  [0., 0., 1., 0., 0., 0., 1., 0.],
                  [-1., -3., -3., 0., 0., 0., 0., 1.],
                  [0., 0., 0., 0., 1., 0., 0., 0.],
                  [0., 0., 0., 0., 0., 1., 0., 0.],
                  [0., 0., 0., -1., -3., -3., 1., 1.],
                  [1., 0., 0., 0., 1., 0., 0., 0.],
                  [0., 1., 0., 0., 1., 0., 0., 0.],
                  [0., 0., 1., 0., 1., 0., 0., 0.]])
    assert_array_almost_equal(concatenate_state_matrices(G), J)
    assert_raises(ValueError, dyn_mimo.__add__, dyn_mimo_sq)
    assert_raises(ValueError, dyn_mimo.__sub__, dyn_mimo_sq)
    assert_raises(ValueError, dyn_mimo.__radd__, dyn_mimo_sq)
    assert_raises(ValueError, dyn_mimo.__rsub__, dyn_mimo_sq)