cspice_dvsep |
|||

## AbstractCSPICE_DVSEP calculates the time derivative of the separation angle between states. ## I/OGiven: s1 defining a SPICE state(s); [6,n] = size(s1); double = class(s1) s1 = (r1, dr1 ). -- dt s2 defining a second SPICE state(s); [6,n] = size(s2); double = class(s2) s2 = (r2, dr2 ). -- dt An implicit assumption exists that 's1' and 's2' are specified in the same reference frame. If this is not the case, the numerical result has no meaning. the call: dvsep = ## ExamplesAny numerical results shown for this example may differ between platforms as the results depend on the SPICE kernels used as input and the machine specific arithmetic implementation. % % Load SPK, PCK, and LSK kernels, use a meta kernel for convenience. % cspice_furnsh( 'standard.tm' ) % % An arbitrary time. % BEGSTR = 'JAN 1 2009'; et = cspice_str2et( BEGSTR ); % % Calculate the state vectors sun to Moon, sun to earth at ET. % [statee, ltime] = cspice_spkezr('EARTH', et, 'J2000', 'NONE', 'SUN' ); [statem, ltime] = cspice_spkezr('MOON', et, 'J2000', 'NONE', 'SUN' ); % % Calculate the time derivative of the angular separation of % the earth and Moon as seen from the sun at ET. % dsept = ## ParticularsIn this discussion, the notation < V1, V2 > indicates the dot product of vectors V1 and V2. The notation V1 x V2 indicates the cross product of vectors V1 and V2. To start out, note that we need consider only unit vectors, since the angular separation of any two non-zero vectors equals the angular separation of the corresponding unit vectors. Call these vectors U1 and U2; let their velocities be V1 and V2. For unit vectors having angular separation THETA the identity || U1 x U1 || = ||U1|| * ||U2|| * sin(THETA) (1) reduces to || U1 x U2 || = sin(THETA) (2) and the identity | < U1, U2 > | = || U1 || * || U2 || * cos(THETA) (3) reduces to | < U1, U2 > | = cos(THETA) (4) Since THETA is an angular separation, THETA is in the range 0 : Pi Then letting s be +1 if cos(THETA) > 0 and -1 if cos(THETA) < 0, we have for any value of THETA other than 0 or Pi 2 1/2 cos(THETA) = s * ( 1 - sin (THETA) ) (5) or 2 1/2 < U1, U2 > = s * ( 1 - sin (THETA) ) (6) At this point, for any value of THETA other than 0 or Pi, we can differentiate both sides with respect to time (T) to obtain 2 -1/2 < U1, V2 > + < V1, U2 > = s * (1/2)(1 - sin (THETA)) * (-2) sin(THETA)*cos(THETA) * d(THETA)/dT (7a) Using equation (5), and noting that s = 1/s, we can cancel the cosine terms on the right hand side -1 < U1, V2 > + < V1, U2 > = (1/2)(cos(THETA)) * (-2) sin(THETA)*cos(THETA) * d(THETA)/dT (7b) With (7b) reducing to < U1, V2 > + < V1, U2 > = - sin(THETA) * d(THETA)/dT (8) Using equation (2) and switching sides, we obtain || U1 x U2 || * d(THETA)/dT = - < U1, V2 > - < V1, U2 > (9) or, provided U1 and U2 are linearly independent, d(THETA)/dT = ( - < U1, V2 > - < V1, U2 > ) / ||U1 x U2|| (10) Note for times when U1 and U2 have angular separation 0 or Pi radians, the derivative of angular separation with respect to time doesn't exist. (Consider the graph of angular separation with respect to time; typically the graph is roughly v-shaped at the singular points.) ## Required ReadingFor important details concerning this module's function, please refer to the CSPICE routine dvsep_c. MICE.REQ ## Version-Mice Version 1.0.0, 12-MAR-2012, EDW (JPL), SCK (JPL) ## Index_Entriestime derivative of angular separation |

Wed Apr 5 18:00:31 2017