当前位置: 首页>>代码示例>>Python>>正文


Python PyKEP.planet_ss方法代码示例

本文整理汇总了Python中PyKEP.planet_ss方法的典型用法代码示例。如果您正苦于以下问题:Python PyKEP.planet_ss方法的具体用法?Python PyKEP.planet_ss怎么用?Python PyKEP.planet_ss使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PyKEP的用法示例。


在下文中一共展示了PyKEP.planet_ss方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: import PyKEP [as 别名]
# 或者: from PyKEP import planet_ss [as 别名]
    def __init__(
            self,
            mass=1000,
            Tmax=0.05,
            Isp=2500,
            Vinf_0=3,
            Vinf_f=1e-12,
            nseg=10,
            departure=None,
            target=None,
            optimise4mass=False):
        """
        Constructs a low-thrust transfer between a departure planet and a target planet (Constrained Continuous Single-Objective)

        NOTE: An impulsive transcription is used to transform into an NLP the Optimal Control Problem

        USAGE: problem.py_pl2pl(self,mass=1000,Tmax=0.05,Isp=2500,Vinf_0=3,Vinf_f=0,nseg=10,departure = PyKEP.planet_ss('earth'), target = PyKEP.planet_ss('mars'))

        * mass: spacecraft mass at departure [kg]
        * Tmax: maximum allowed thrust [N]
        * Isp: spacecarft engine specific impulse [Isp]
        * Vinf_0: allowed maximum starting velocity [km/s]
        * Vinf_f: allowed maximum arrival velocity [km/s]
                  (if negative it is interpreted as a minimum arrival velocity)
        * nseg: number of segments used for the impulsive transcription
        * departure: departure planet (a PyKEP planet)
        * target: arrival planet (a PyKEP planet)
        """
        try:
            import PyKEP
        except ImportError:
            raise ImportError(
                "Error while trying 'import PyKEP': is PyKEP installed?")
        if departure is None:
            departure = PyKEP.planet_ss('earth')
        if target is None:
            target = mars = PyKEP.planet_ss('mars')
        super(py_pl2pl, self).__init__(
            9 + nseg * 3, 0, 1, 9 + nseg, nseg + 2, 1e-5)
        self.__departure = departure
        self.__target = target
        self.__sc = PyKEP.sims_flanagan.spacecraft(mass, Tmax, Isp)
        self.__Vinf_0 = Vinf_0 * 1000
        self.__Vinf_f = Vinf_f * 1000
        self.__leg = PyKEP.sims_flanagan.leg()
        self.__leg.set_mu(departure.mu_central_body)
        self.__leg.set_spacecraft(self.__sc)
        self.__nseg = nseg
        self.set_bounds(
            [0, 10, self.__sc.mass / 10, -abs(self.__Vinf_0),
             -abs(self.__Vinf_0), -abs(self.__Vinf_0), -abs(self.__Vinf_f),
             -abs(self.__Vinf_f), -abs(self.__Vinf_f)] + [-1] * 3 * nseg,
            [3000, 1500, self.__sc.mass, abs(self.__Vinf_0),
             abs(self.__Vinf_0), abs(self.__Vinf_0), abs(self.__Vinf_f), 
             abs(self.__Vinf_f), abs(self.__Vinf_f)] + [1] * 3 * nseg)
        self.__optimise4mass = optimise4mass
开发者ID:SpaceAppsXploration,项目名称:pagmo,代码行数:58,代码来源:_pl2pl.py

示例2: __init__

# 需要导入模块: import PyKEP [as 别名]
# 或者: from PyKEP import planet_ss [as 别名]
	def __init__(self,mass=1000,Tmax=0.05,Isp=2500,Vinf_0=3,Vinf_f=0,nseg=10,departure = None, target = None, optimise4mass = False):
		"""__init__(self,mass=1000,Tmax=0.05,Isp=2500,Vinf_0=3,Vinf_f=0,nseg=10,departure = erath, target = mars)"""
		try:
			import PyKEP
		except ImportError:
			print("Error while trying 'import PyKEP': is PyKEP installed?")
			raise
		if departure is None:
			departure = PyKEP.planet_ss('earth')
		if target is None:
			target = mars = PyKEP.planet_ss('mars')
		super(py_pl2pl,self).__init__(9 + nseg*3,0,1,9 + nseg,nseg+2,1e-5)
		self.__departure = departure
		self.__target = target
		self.__sc = PyKEP.sims_flanagan.spacecraft(mass,Tmax,Isp)
		self.__Vinf_0 = Vinf_0*1000
		self.__Vinf_f = Vinf_f*1000
		self.__leg = PyKEP.sims_flanagan.leg()
		self.__leg.set_mu(PyKEP.MU_SUN)
		self.__leg.set_spacecraft(self.__sc)
		self.__nseg = nseg
		self.set_bounds([0,10,self.__sc.mass/10,-abs(self.__Vinf_0),-abs(self.__Vinf_0),-abs(self.__Vinf_0),-abs(self.__Vinf_f),-abs(self.__Vinf_f),-abs(self.__Vinf_f)] + [-1] * 3 *nseg,[3000,1500,self.__sc.mass,abs(self.__Vinf_0),abs(self.__Vinf_0),abs(self.__Vinf_0),abs(self.__Vinf_f),abs(self.__Vinf_f),abs(self.__Vinf_f)] + [1] * 3 * nseg)
		self.__optimise4mass = optimise4mass
开发者ID:irwenqiang,项目名称:pagmo,代码行数:25,代码来源:_pl2pl.py

示例3: jde_mga_1dsm

# 需要导入模块: import PyKEP [as 别名]
# 或者: from PyKEP import planet_ss [as 别名]
def jde_mga_1dsm(seq, t0, tof, slack=5, pop_size=50, n_evolve=10, dv_launch=6127., verbose=False):
    """Runs jDE with mga_1dsm problem."""
    from PyGMO.problem import mga_1dsm_tof
    from PyGMO.algorithm import jde
    from PyGMO import population

    prob = mga_1dsm_tof(seq=[kep.planet_ss(name) for name in seq],
                                   t0=[kep.epoch(t0-slack), kep.epoch(t0+slack)],
                                   tof=[[t-slack, t+slack] for t in tof],
                                   vinf=[0., dv_launch/1000.],
                                   add_vinf_arr=False)
    algo = jde(gen=500, memory=True)
    pop = population(prob, pop_size)
    if verbose:
        print pop.champion.f[0]
    for i in xrange(n_evolve):
        pop = algo.evolve(pop)
        if verbose:
            print pop.champion.f
开发者ID:ritaneves,项目名称:Trajectory,代码行数:21,代码来源:tools.py

示例4: list

# 需要导入模块: import PyKEP [as 别名]
# 或者: from PyKEP import planet_ss [as 别名]
	((377861107.98154724, 186406866.4808699, 283715.7154025446),
	 (-7615.668664758434, 15593.895465832084, -3.281760584438344))	
	

-- Luís F. Simões, 2012-09-11
"""
# CHECK: the values were obtained by copy-paste from the PDF; this process isn't flawless,
#	sometimes wrong values appear upon pasting. I matched the pasted values copied from 2
#	different PDF readers, but someone should look more closely into the values to make sure
#	we aren't bringing stupid errors into the process just through this.
# CHECK: I'm loading the values into fields of type np.float64. Is there any significant accuracy loss?



# getting Jupiter's orbital parameters
_jupiter = pk.planet_ss('jupiter')
_jupiter_op = [ _jupiter.ref_epoch.mjd ] + list(_jupiter.orbital_elements)
_jupiter_op[1] /= 1000. # convert m -> km
for i in xrange(3,7):   # convert radians -> degrees
	_jupiter_op[i] = degrees( _jupiter_op[i] )
	


# Values from gtoc6_problem_stmt.pdf
# 	Table 4: Keplerian orbit elements of the Galilean Satellites at Epoch = 58849.0 MJD
# 	Table 5: Satellite physical constants
# 	Table 6: Other constants and conversions
body = np.array( [
	# UID   Epoch    a (km)             e                    i (deg)              Node (deg)          w (deg)             M (deg)           R (km)    mu (km^3/s^2)
	[  0. ] + _jupiter_op +                                                                                                               [ 71492.0,  126686534.92180  ],
	[  1.,  58849.,   422029.68714001,  4.308524661773E-03,  40.11548686966E-03,   -79.640061742992,    37.991267683987,  286.85240405645,   1826.5,       5959.916    ],
开发者ID:darioizzo,项目名称:jupiter_tour,代码行数:33,代码来源:_body_ephem.py


注:本文中的PyKEP.planet_ss方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。