public class UpdatableFrame extends Frame
此类允许使用每个部分中的任意两个框架作为控制手柄来控制全局框架树的两个部分的相对位置。考虑以下简化的框架树作为示例:
GCRF | -------------------------------- | | | 太阳 卫星 地球 | | 机载天线 地面站 | 跟踪天线
跟踪测量实际上对应于地面和机载天线之间的链接。这与这两个框架之间的变换紧密相关,但是没有一个框架是另一个框架的直接父框架:路径涉及四个中间框架。当我们处理测量时,我们真正想要更新的是定义卫星框架相对于其父级GCRF框架的变换。
为了实现上述情况,卫星框架被定义为此类的一个实例,其updateTransform
将在每次我们想要调整框架时调用,即每次我们获得两个天线之间的新测量时。
Constructor and Description |
---|
UpdatableFrame(Frame parent, Transform transform, String name)
从其相对于父级的变换构建非惯性框架。
|
UpdatableFrame(Frame parent, Transform transform, String name, boolean pseudoInertial)
从其相对于父级的变换构建框架。
|
Modifier and Type | Method and Description |
---|---|
void |
updateTransform(Frame f1, Frame f2, Transform f1Tof2, AbsoluteDate date)
根据另外两个框架隐式更新从父框架的变换。
|
getAncestor, getDepth, getFrozenFrame, getName, getParent, getRoot, getStaticTransformTo, getStaticTransformTo, getTransformProvider, getTransformTo, getTransformTo, isChildOf, isPseudoInertial, toString
public UpdatableFrame(Frame parent, Transform transform, String name) throws IllegalArgumentException
调用此构造函数等效于调用UpdatableFrame(parent, transform, name, false)
。
parent
- 父框架(不能为空)
transform
- 从父框架到实例的变换
name
- 框架的名称
IllegalArgumentException
- 如果父框架为空
public UpdatableFrame(Frame parent, Transform transform, String name, boolean pseudoInertial) throws IllegalArgumentException
变换的约定是从父框架到实例。这意味着以下两个框架是相似的:
Frame frame1 = new Frame(FramesFactory.getGCRF(), new Transform(t1, t2)); Frame frame2 = new Frame(new Frame(FramesFactory.getGCRF(), t1), t2);
parent
- 父框架(不能为空)
transform
- 从父框架到实例的变换
name
- 框架的名称
pseudoInertial
- 如果框架被视为伪惯性(即适合传播轨道)
IllegalArgumentException
- 如果父框架为空
public void updateTransform(Frame f1, Frame f2, Transform f1Tof2, AbsoluteDate date)
此方法允许使用每个部分中的任意两个框架作为控制手柄来控制全局框架树的两个部分的相对位置。考虑以下简化的框架树作为示例:
GCRF | -------------------------------- | | | 太阳 卫星 地球 | | 机载天线 地面站 | 跟踪天线
跟踪测量实际上对应于地面和机载天线之间的链接。这与这两个框架之间的变换紧密相关,但是没有一个框架是另一个框架的直接父框架:路径涉及四个中间框架。当我们处理测量时,我们真正想要更新的是定义卫星框架相对于其父级GCRF框架的变换。这就是此方法的目的。此更新通过以下调用完成,其中measurementTransform
表示测量作为两个天线框架之间的简单平移变换:
satellite.updateTransform(onBoardAntenna, trackingAntenna,
measurementTransform, date);
表示该方法行为的一种方式是将实例树(例如上面示例中的卫星和机载天线)和另一方面包含所有其他框架的树(GCRF、太阳、地球、地面站、跟踪天线)视为两个固体集合,由一个灵活的弹簧连接在一起,这就是我们想要更新的变换。该方法拉伸弹簧以确保两个指定框架之间的变换(每个树部分中的一个)与指定的变换匹配。
f1
- 第一个控制框架(可以是实例本身)
f2
- 第二个控制框架(可以是实例本身)
f1Tof2
- 从第一个到第二个控制框架的期望变换
date
- 变换的日期
Copyright © 2002-2023 CS GROUP. All rights reserved.