Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.apo.nmsu.edu/Telescopes/TCC/html/namespacetcc_1_1axis_1_1compute_slew.html
Дата изменения: Tue Sep 15 02:25:39 2015
Дата индексирования: Sun Apr 10 05:05:02 2016
Кодировка:

Поисковые слова: п п п п п п п п п п п п п п п п п п п п п п п п
lsst.tcc: tcc.axis.computeSlew Namespace Reference
lsst.tcc  1.2.2-3-g89ecb63
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Classes | Functions | Variables
tcc.axis.computeSlew Namespace Reference

Classes

class  SlewData
 Data about a slew. More...
 
class  FullSlewData
 Contains full data about one slew iteration. More...
 

Functions

def computeSlew
 Compute a slew to a given user-specified position, by iteration. More...
 

Variables

float ShortSlewTime = 5.0
 
tuple _ValidStartingStateSet
 

Function Documentation

def tcc.axis.computeSlew.computeSlew (   minEndTime,
  obj,
  earth,
  inst,
  telMod,
  axeLim,
  tune 
)

Compute a slew to a given user-specified position, by iteration.

Before calling this:

  • Update obj at some time near "now" including applying doRestart and wrap preferences.
  • Send the DRIFT command to all axes that are moving (whether you want to halt them or slew them) and update obj.actMount and obj.axisCmdState accordingly.

This routine then does the following for each axis:

  • If obj.axisCmdState==AxisState_Drifting and obj.targetMount[axis].isfinite(): compute a slew to the new position. Raise an exception if such a slew cannot be computed.
  • If obj.axisCmdState==AxisState_Drifting and not obj.targetMount.isfinite(): try to compute a slew to a halt. If that fails, set SlewData.pathList[axis]=(); the caller then must command that axis to halt!
  • For other axes, leave the axis alone.
Parameters
[in,out]objobject block: input: object block computed at approximately the current time (see above) output:
  • the object block is be recomputed
  • obj.targetMount is set to the final pvt for each axis that is slewing or halting; it is unchanged for axes that are already halted
  • obj.axisCmdState is set to AxisState_Halting or AxisState_Slewing for axes that are drifting
  • obj.axisErrCode is updated appropriately for axes that are drifting
  • obj.slewEndTime is set
[in]minEndTimeearliest date at which slew may finish (TAI, MJD sec)
[in]earthearth orientation data, a tcc.base.Earth
[in]instinstrument-position information block, a tcc.base.Inst
[in]telModtelescope model, a tcc.base.TelMod
[in]axeLimaxes limits block, a tcc.base.AxeLim
[in]tuneaxes motion tuning constants block, a tc.base.Tune
Returns
slewData: a SlewData
Exceptions
RuntimeErrorif any of the following are true:
  • obj.axisCmdState is not one of AxisState_NotAvailable, AxisState_Halted, or AxisState_Drifting for any axis
  • obj.actMount is not finite for any axis whose axisCmdState = AxisState_Drifting
  • a valid slew cannot be computed for an axis being slewed (not halted)
Warning
  • If an axis is to be halted, and a valid slew cannot be computed, then slewData.pathList[axis] = (). The caller must stop the axis!

Special cases:

  • If no axes are to be slewed, pathList[axis] will be an empty list for all axes, but begTime and endTime will be correct – set as for the shortest possible slew.

Details: The slew path is computed by iteration, as follows:

  • The end time of the slew is estimated (based on many factors, see code)
  • the target mount coordinates (p,v,t) are computed at that instant
  • A slew is computed which meets the target path (using linear extrapolation); this also gives us the true end time
  • The estimated and true end times are compared; if they are too far apart, the cycle is repeated

There are several parameters in the Tune block which control this iteration process. See TuneBlkDef for more info.

Types of motion:

  • Slew: move to a requested position via a computed, smooth path. Used for axes with a requested target position.
  • Controlled stop: move to the current pos. via a computed, smooth path. Used for axes with no position requested (e.g. coord. sys. = "none").

History: 2013-12-09 ROwen converted from computeSlew.for

Definition at line 72 of file computeSlew.py.

Variable Documentation

tuple tcc.axis.computeSlew._ValidStartingStateSet
Initial value:
1 = set((
2  tcc.base.AxisState_NotAvailable,
3  tcc.base.AxisState_Halted,
4  tcc.base.AxisState_Drifting,
5 ))

Definition at line 38 of file computeSlew.py.

float tcc.axis.computeSlew.ShortSlewTime = 5.0

Definition at line 14 of file computeSlew.py.