Пример #1
0
    def test_fir_model_numerical_derivatives(self):
        mdl = Linear(N=0, M=2, Ny=1, Nu=1)
        y = []
        u = [2, 1]
        params = [1, 2]

        dy, du, dparams = mdl.derivatives(y, u, params)

        dy_numeric, du_numeric, \
            dparams_numeric = mdl._numeric_derivatives(y, u, params)

        assert_array_almost_equal(dy, dy_numeric)
        assert_array_almost_equal(du, du_numeric)
        assert_array_almost_equal(dparams, dparams_numeric)
Пример #2
0
    def test_siso_numerical_approx(self):
        # Define model
        N = 2
        M = 2
        Ny = 1
        Nu = 1
        mdl = Linear(N, M)
        Nparams = mdl.Nparams

        # Define ynext and derivatives
        y = np.array([1.23, 2.41])
        u = np.array([2.54, 23])
        params = [1, 5.46, 3.23, 4]
        dy, du, dparams = mdl.derivatives(y, u, params)

        # Compute the same derivatives numerically
        dy_numeric, du_numeric, \
            dparams_numeric = mdl._numeric_derivatives(y, u,
                                                       params)

        # Check
        assert_array_almost_equal(dy, dy_numeric)
        assert_array_almost_equal(du, du_numeric)
        assert_array_almost_equal(dparams, dparams_numeric)
Пример #3
0
    def test_mimo_numerical_approx_twoinputs_threeoutputs(self):
        # Define model
        N = 3
        M = 2
        Ny = 2
        Nu = 3
        mdl = Linear(N, M, Ny, Nu)
        Nparams = mdl.Nparams

        # Define ynext and derivatives
        y = np.array([[12, 2.41], [3, 1.23], [2.41, 5]])
        u = np.array([[4.5, 6.4, 10], [2.23, 2.41, 521]])
        params = np.arange(Nparams)
        dy, du, dparams = mdl.derivatives(y, u, params)

        # Compute the same derivatives numerically
        dy_numeric, du_numeric, \
            dparams_numeric = mdl._numeric_derivatives(y, u,
                                                       params)

        # Check
        assert_array_almost_equal(dy, dy_numeric)
        assert_array_almost_equal(du, du_numeric)
        assert_array_almost_equal(dparams, dparams_numeric)