Example #1
0
    def test_mee_coe_mee(self):
        mee = convert.mod_angles(convert.mee_coe(coe_sltn))
        coe = convert.coe_mee(mee)
        mee2 = convert.mod_angles(convert.mee_coe(coe))
        diff = convert.mod_angles(np.abs(mee - mee2), angle_indices=[5])
        indices_2pi = np.where(2 * np.pi - tol < diff)
        diff[indices_2pi] -= 2 * np.pi

        np.testing.assert_allclose(diff, 0., rtol=0, atol=tol)
Example #2
0
    def test_meefl_meeMl_meefl(self):
        meefl = convert.mod_angles(convert.mee_coe(coe_sltn))
        meeMl = convert.meeMl_meefl(meefl)
        meefl2 = convert.mod_angles(convert.meefl_meeMl(meeMl))
        diff = convert.mod_angles(np.abs(meefl - meefl2), angle_indices=[0])
        indices_2pi = np.where(2 * np.pi - tol < diff)
        diff[indices_2pi] -= 2 * np.pi

        np.testing.assert_allclose(diff, 0., rtol=0, atol=tol)
Example #3
0
    def test_coeM_coef_coeM(self):
        coeM = convert.mod_angles(convert.coeM_coef(coe_sltn))
        coef = convert.coef_coeM(coeM)
        coeM2 = convert.mod_angles(convert.coeM_coef(coef))
        diff = convert.mod_angles(np.abs(coeM - coeM2), angle_indices=[0])
        indices_2pi = np.where(2 * np.pi - tol < diff)
        diff[indices_2pi] -= 2 * np.pi

        np.testing.assert_allclose(diff, 0., rtol=0, atol=tol)
Example #4
0
    def test_rv_meeMl0_rv(self):
        T = np.linspace(0, 10, num=m)
        rv = convert.rv_coe(coe_sltn)
        meeMl0 = convert.meeMl0_rv(T, rv)
        rv2 = convert.mod_angles(convert.rv_meeMl0(T, meeMl0))
        diff = convert.mod_angles(np.abs(rv - rv2))
        indices_2pi = np.where(2 * np.pi - tol < diff)
        diff[indices_2pi] -= 2 * np.pi

        np.testing.assert_allclose(diff, 0., rtol=0, atol=tol)
Example #5
0
    def test_coe_meeMl0_coe(self):
        T = np.linspace(0, 10, num=m)
        coe = coe_0
        meeMl0 = convert.meeMl0_coe(T, coe)
        coe2 = convert.mod_angles(convert.coe_meeMl0(T, meeMl0))
        diff = convert.mod_angles(np.abs(coe - coe2))
        indices_2pi = np.where(2 * np.pi - tol < diff)
        diff[indices_2pi] -= 2 * np.pi

        np.testing.assert_allclose(diff, 0., rtol=0, atol=tol)
Example #6
0
    def test_mee_meeMl0_mee(self):
        T = np.linspace(0, 10, num=m)
        mee = convert.mod_angles(convert.mee_coe(coe_sltn))
        meeMl0 = convert.meeMl0_mee(T, mee)
        mee2 = convert.mod_angles(convert.mee_meeMl0(T, meeMl0))
        diff = convert.mod_angles(np.abs(mee - mee2), angle_indices=[5])
        indices_2pi = np.where(2 * np.pi - tol < diff)
        diff[indices_2pi] -= 2 * np.pi

        np.testing.assert_allclose(diff, 0., rtol=0, atol=tol)
Example #7
0
    def test_compare_meeEl_meefl_to_coeE_coef(self):
        coef = convert.mod_angles(coe_sltn)
        meefl = convert.mee_coe(coef)

        coeE = convert.coeE_coef(coef)
        meeEl = convert.meeEl_meefl(meefl)
        El1 = convert.mee_coe(coeE)[:, 5:]
        El2 = meeEl[:, 5:]

        diff = convert.mod_angles(El1 - El2, angle_indices=[0])
        indices_2pi = np.where(2 * np.pi - tol < diff)
        diff[indices_2pi] -= 2 * np.pi

        np.testing.assert_allclose(diff, 0., rtol=0, atol=tol)
Example #8
0
    def test_compare_meefl_meeEl_to_coef_coeE(self):
        coeE = convert.mod_angles(coe_sltn)
        meeEl = convert.mee_coe(coeE)

        coef = convert.coef_coeE(coeE)
        meefl = convert.meefl_meeEl(meeEl)
        fl1 = convert.mee_coe(coef)[:, 5:]
        fl2 = meefl[:, 5:]

        diff = convert.mod_angles(np.abs(fl1 - fl2), angle_indices=[0])
        indices_2pi = np.where(2 * np.pi - tol < diff)
        diff[indices_2pi] -= 2 * np.pi

        np.testing.assert_allclose(diff, 0., rtol=0, atol=tol)
Example #9
0
    def test_rv_mee_rv(self):
        mee = convert.mod_angles(convert.mee_coe(coe_sltn))
        rv = convert.rv_mee(mee)
        mee = convert.mee_rv(rv)
        rv2 = convert.rv_mee(mee)

        np.testing.assert_allclose(rv, rv2, rtol=0, atol=tol)
Example #10
0
    def test_compare_zonal_to_coe(self):
        X0_mee = mee_0
        X0_coe = coe_0
        order_H = 6
        kep_dyn_mee = mee.KeplerianDynamics()
        zon_grav_mee = mee.ZonalGravity(order=order_H)
        sysmee = utl.SystemDynamics(kep_dyn_mee, zon_grav_mee)
        kep_dyn_coe = coe.KeplerianDynamics()
        zon_grav_coe = coe.ZonalGravity(order=order_H)
        syscoe = utl.SystemDynamics(kep_dyn_coe, zon_grav_coe)

        segs_per_orbit = 6
        orbits = 1
        segments = orbits * segs_per_orbit
        domains = [k * period / segs_per_orbit for k in range(segments + 1)]
        seg_number = len(domains) - 1
        N = (order_mcpi, ) * seg_number
        mcpi_mee = mcpyi.MCPI(sysmee, domains, N, 'warm', X0_mee, tol)
        mcpi_coe = mcpyi.MCPI(syscoe, domains, N, 'warm', X0_coe, tol)
        X_mee = mcpi_mee.solve_serial()(T)
        X_coe = mcpi_coe.solve_serial()(T)

        diff = convert.mod_angles(np.abs(X_coe - convert.coe_mee(X_mee)))
        indices_2pi = np.where(2 * np.pi - tol < diff)
        diff[indices_2pi] -= 2 * np.pi

        np.testing.assert_allclose(diff, 0., rtol=0, atol=tol)
Example #11
0
    def test_coe_rv_coe(self):
        coe = coe_sltn
        rv = convert.rv_coe(coe)
        coe2 = convert.coe_rv(rv)
        diff = convert.mod_angles(np.abs(coe - coe2),
                                  angle_indices=[2, 3, 4, 5])
        indices_2pi = np.where(2 * np.pi - tol < diff)
        diff[indices_2pi] -= 2 * np.pi

        np.testing.assert_allclose(diff, 0., rtol=0, atol=tol * 10)
Example #12
0
    def test_compare_zonal_to_mee(self):
        X0_meeMl0 = meeMl0_0
        X0_mee = mee_0
        order_H = 6
        kep_dyn_meeMl0 = meeMl0.KeplerianDynamics()
        zon_grav_meeMl0 = meeMl0.ZonalGravity(order=order_H)
        sysmeeMl0 = utl.SystemDynamics(kep_dyn_meeMl0, zon_grav_meeMl0)
        kep_dyn_mee = mee.KeplerianDynamics()
        zon_grav_mee = mee.ZonalGravity(order=order_H)
        sysmee = utl.SystemDynamics(kep_dyn_mee, zon_grav_mee)

        segs_per_orbit = 6
        segments = orbits * segs_per_orbit
        domains = [k * period / segs_per_orbit for k in range(segments + 1)]
        seg_number = len(domains) - 1
        N = (order_mcpi, ) * seg_number
        mcpi_meeMl0 = mcpyi.MCPI(sysmeeMl0, domains, N, 'warm', X0_meeMl0, tol)
        mcpi_mee = mcpyi.MCPI(sysmee, domains, N, 'warm', X0_mee, tol)

        X_meeMl0 = mcpi_meeMl0.solve_serial()(T)
        X_mee = mcpi_mee.solve_serial()(T)
        diff = convert.mod_angles(X_mee - convert.mee_meeMl0(T, X_meeMl0))

        np.testing.assert_allclose(diff, 0.0, rtol=0, atol=tol * 10)
Example #13
0
    def test_compare_constant_h_thrust_to_rv(self):
        X0_meeMl0 = meeMl0_0
        X0_rv = rv_0
        u = np.array([[0., 0., 1e-6]])
        kep_dyn_meeMl0 = meeMl0.KeplerianDynamics()
        conthrust_meeMl0 = meeMl0.ConstantThrust(u)
        sysmeeMl0 = utl.SystemDynamics(kep_dyn_meeMl0, conthrust_meeMl0)
        kep_dyn_rv = rv.KeplerianDynamics()
        conthrust_rv = rv.ConstantThrust(u)
        sysrv = utl.SystemDynamics(kep_dyn_rv, conthrust_rv)

        segments = orbits * segs_per_orbit
        domains = [k * period / segs_per_orbit for k in range(segments + 1)]
        seg_number = len(domains) - 1
        N = (order_mcpi, ) * seg_number
        mcpi_meeMl0 = mcpyi.MCPI(sysmeeMl0, domains, N, 'warm', X0_meeMl0, tol)
        mcpi_rv = mcpyi.MCPI(sysrv, domains, N, 'warm', X0_rv, tol)

        X_meeMl0 = mcpi_meeMl0.solve_serial()(T)
        X_rv = mcpi_rv.solve_serial()(T)
        diff = convert.mod_angles(X_meeMl0 -
                                  convert.meeMl0_mee(T, convert.mee_rv(X_rv)))

        np.testing.assert_allclose(diff, 0.0, rtol=0, atol=tol * 10)