NRAO Home  >  Green Bank  |  Wiki Topic:    GB > Software > PlanOfRecordC32006 > ModificationRequest2C306
   Changes | Index | Contents | Search | Statistics | Go

Antenna Trajectory Algorithm Upgrade

Modification Request #2 (C3 2006)



1. Introduction

Currently the GBT antenna control system uses a jerk-limiting algorithm described in GBT Memo 203 to slew between scans. Recently Fred Schwab has described an improved algorithm which attempts to further minimize the slew trajectory. This MR describes the effort to incorporate the new algorithm into the GBT antenna controller/antenna manager.

2. Background

2.1 GBT Antenna Manager Processing Overview

2.1.1 Start Time Calculation Overview

The intent here is to illustrate the flow of events to provide a flavor of the manager-model and trajectory calculation interactions, not the specifics of the astronometrics, pointing model, or jerk reduction algorithm.

The calculation requires a number of inputs, they are:

It should be noted that both initial conditions and final conditions are dependent upon time.

2.1.2 Calculation of Initial Conditions

The executive task which performs most of the calculations runs one-second ahead of real-time. It feeds a command queue which is drained in real-time. Due to this one-second offset, the indicated position must be corrected by either extrapolating the current indicated position, velocity and acceleration, or 'modeling' the indicated position from the command stream.

The second method is used in the antenna manager, because my experience with the first method led to significant estimation error under accelerated conditions.

The initial estimate of the slew trajectory is therefore derived from the contents of the command queue rather than reading the encoders and interpolating.

2.1.3 Antenna Scan Specification

The final conditions for the jerk limited trajectory is specified by the user as a desired motions (e.g. track, raster etc.) in a familiar reference frame, such as right acension/declination.

The complete specification from an observer takes the form of a list of piecewise parabolic curves, each valid over a limited interval of time. These curved line segments are referred to as scan segments. Lists of scan segments are referred to as a track or sub-scan.

There are two sets of scan-segments available for primary axis control. They are referred to as primary segments and primary offsets. Each may be expressed independently in different coordinate systems familar to an observer.

2.1.4 Compute Scan Starting Position

Of course, for purposes of the trajectory generator we are interested in the first scan segment trajectory. Let the first scan segments of a ra,dec scan specification be denoted as:

    \hat\alpha(t)=f(\alpha_{0},\dot{\alpha_{0}},\ddot{\alpha_{0}},t_{scanstart})
    \hat\delta(t)=f(\delta_{0},\dot{\delta_{0}},\ddot{\delta_{0}},t_{scanstart})

The target position (i.e. the final position p_{f}) of the next scan is computed from:
Should the above read start position of the next scan? RMP
    dest_{(az,el)} = \Omega(t_{now}, \alpha(0),\delta(0))

Where \Omega is the sky to mount transformation function, and \alpha(0),\delta(0) is the ra/dec position at the start of the scan. Note that this 'estimate' is likely to be incorrect, because the time  t is initially taken as the current time, not the actual start of the scan.

The velocity and acceleration at the target position is derived by differencing the az,el positions at  t , t+\tau and t+2\tau, where \tau is 0.1 seconds.

2.1.5 Reason for the Vf, Vfs Split

The current trajectory generator attempts to produce a trajectory which osculates onto the user specified trajectory, by performing an internal iteration, which varies the final position based on the travel time required. The p_{f},v_{f},a_{f} calculated above may be misleading because there are two components to the velocity. One due to the time dependence of the two coordinate systems, the other due to (desired) motion inside the \alpha,\delta coordinate system. For this reason, the current code separates the velocity into a component due only to sidereal motion, and the second due to the motion inside the \alpha,\delta system itself.

2.1.6 Iteration to Compute Start Time

To compute the actual estimated start time, an iteration is performed to refine the required travel time estimate. On each iteration t_{travel} is computed by:     t_{travel} = \Lambda(\Delta az, \Delta el, t_{seed})

Where \Lambda is the estimation function of the trajectory preprocessor, and t_{seed} is the previously estimated travel time. The iteration terminates when the estimate converges on a stable estimate. Usually 2-3 cycles are enough to refine the estimate.

Note that in some cases the time to travel is dominated by the time required to move the secondary optics into the commanded position. In these cases the larger of the two intervals is used.

2.1.7 Compute Estimation Expiration Time

The manager places an expiration time on the computed estimate. If the system fails to activate (i.e. start) by the expiration time, an error condition is asserted. The expiration 'fudge' factor of 1 second, is inserted to account for most network delays and event propagation.

2.1.8 Compute Axis Enable Time

2.1.9 Compute Estimated Start Time

The scan estimated start time is calculated from the calculations above is:
 t_{estimatedStartTime} = t_{expiration} + t_{enable} + t_{travel}
Where:

Joe, I'm probably missing something here, but the above logic seems incorrect. Presumably the brakes are normally released and the motors energized. But shouldn't the position for the start of the slew be calculated for T_now + fudgeFactor + T_enable? Then the end position needs to be calculated for T_now + fudgeFactor + T_enable + T_slew. Won't you get a different answer depending on whether you include fudgeFactor + T_enable before or after interating on T_slew? Maybe the difference is negligible, but it seems like it should be done correctly. Or does the one-second offset you describe at the start also have T_enable and fudgeFactor added at that point?

3. Integration and Test Plans

Initially two key dependencies will be addressed.

3.1 Antenna Rehosting Effort

The first entials a rehosting of the antenna control computer onto a more capable platform, since it is recognized that the new trajectory calculations are more demanding. (We also do not want to constrain ourselves with low-performance hardware.) The rehosting effort is described in the MR Antenna rehosting effort.

3.2 Test Trajectory Generator

The second key dependency is getting the new algorithm in a form which can be directly used by the antenna manager. As a first step toward this direction, Fred has agreed to produce a FORTRAN version of the algorithm. This code, or the mathematica based equivalent will be used to generate test trajectories to be run as scans for evaluation purposes.

4. Design

TBD.

5. Deployment Checklist

What has to get done to integrate this completely into the system. This checklist must be completed before Cycle Integration Testing begins.

6. Acceptance Test Plan

The updated antenna controller with the new slew trajectory algorithms will need to be tested and evaluated for reliability and performance.

6.1 Performance

Does the system produce the expected trajectories?

6.2 Reliability

Does the system reliably either (a) fail gracefully, or (b) reliably produce a solution in all cases? Are there cases where invalid output might be generated?


Signatures

APPROVED: I acknowledge that my request is fully contained in this MR, and if the SDD delivers exactly what I specified, I will be happy.

ACCEPTED: I acknowledge that I have validated the completed code according to the acceptance tests, and I am happy with the results.

Written symbol - name - date
Checked symbol - name - date
Approved by Sponsor symbol - name - date
Approved by CCC symbol - name - date
Accepted/Delivered by Sponsor symbol - name - date

Symbols:


CCC Discussion Area

-- JoeBrandt - 04 Apr 2006

Topic ModificationRequest2C306 . { Edit | Attach | Ref-By | Printable | Diffs | r1.6 | > | r1.5 | > | r1.4 | More }
Revision r1.6 - 12 May 2006 - 19:07 GMT - RichardPrestage
Parents: PlanOfRecordC32006
Content copyright © 1999-2007 by the contributing authors.
All material on this collaboration platform is the property of the contributing authors.