Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.apo.nmsu.edu/Telescopes/TCC/html/namespacetcc_1_1mov_1_1trap_slew.html
Дата изменения: Tue Sep 15 02:25:41 2015 Дата индексирования: Sun Apr 10 04:41:35 2016 Кодировка: |
lsst.tcc
1.2.2-3-g89ecb63
|
Classes | |
class | TrapSlewData |
Data returned by trapSlew. More... | |
Functions | |
def | trapSlew |
Compute a trapezoidal slew. More... | |
Variables | |
list | __all__ = ["trapSlew"] |
float | Fudge = 1.05 |
def tcc.mov.trapSlew.trapSlew | ( | rBAi, | |
vA, | |||
vB, | |||
dt2min, | |||
vMax, | |||
aMax | |||
) |
Compute a trapezoidal slew.
You may specify a minimum duration for the constant-velocity segment, which is useful for "rounding the corners" of the slew to make it jerk-limited (see mov.fullSlew).
[in] | rBAi | distance between "A" and "B" at time t = 0 (deg) |
[in] | vA | velocity of "A" (deg/sec) |
[in] | vB | velocity of "B" (deg/sec) |
[in] | dt2min | minimum duration of segment 2 (constant velocity) (sec) |
[in] | vMax | maximum allowed velocity (deg/sec) |
[in] | aMax | maximum allowed acceleration (deg/sec^2) |
RuntimeError | if:
|
Dies if vMax or aMax are so small as to cause under- or over-flow.
Details: The magic number "Fudge" is used to avoid borderline cases. It is set below, and should be a number a bit bigger than one.
How it works: The slew begins by tracking object A, and ends by tracking object B. Both objects are assumed to be moving at constant velocity.
A trapezoidal slew has three segments, two of constant acceleration separated by a constant velocity segment. It is called "trapezoidal" because that is the shape of the v vs. t curve.
Here are the initial velocity and constant acceleration for each segment, and the duration of that segment, in the notation of this subroutine:
segment v a duration 1 vA a1 dt1 2 vP 0 dt2 3 vP a2 dt3
The slew numbering and notation used in this subroutine are quite different than those used in the math notebook. Significant changes include: dt2 = delta-t3 in notebook slew type 0 is not mentioned in the notebook slew type 1 = notebook type 0 slew type 2 = notebook type 1 slew type 3, 4 = notebook type 3 note that the notebook type 2 slew (the only "reversed" slew) is NOT USED by this subroutine, because it is not needed, and it saves the bother of implementing the reversed slew equations; instead, a type 3 or 4 slew (this subr.) is used with reduced acceleration.
References: "Control of the Apache Point 3.5m Telescope: Slewing", R. Owen, 1990, unpub
TCC Math Notebook, section on slewing (warning: different notation)
History: 2013-12-06 ROwen Converted from mov_TrapSlew.for
Definition at line 48 of file trapSlew.py.
list tcc.mov.trapSlew.__all__ = ["trapSlew"] |
Definition at line 8 of file trapSlew.py.
float tcc.mov.trapSlew.Fudge = 1.05 |
Definition at line 10 of file trapSlew.py.