Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

AttitudeModels.cpp

Go to the documentation of this file.
00001 //////////////////////////////////////////////////////////////////////////////////////////////////
00002 /*! \file AttitudeModels.cpp
00003  *  \brief Class for various spacecraft attitude models
00004  *  \author $Author: jayhawk_hokie $
00005  *  \version $Revision: 1.2 $
00006  *  \date    $Date: 2007/07/24 08:37:59 $
00007 *//////////////////////////////////////////////////////////////////////////////////////////////////
00008 /*!
00009 */
00010 //////////////////////////////////////////////////////////////////////////////////////////////////
00011 
00012 
00013 #include "AttitudeModels.h"
00014 
00015 using namespace std;
00016 using namespace O_SESSAME;
00017 
00018                 
00019 /* Constructors */
00020 AttitudeModels::AttitudeModels( )
00021 { 
00022 }
00023                 
00024 /* Destructor */
00025 AttitudeModels::~AttitudeModels( )
00026 {
00027 
00028 }
00029 
00030 void AttitudeModels::MRPKinematic( ModifiedRodriguezParameters _mrp, Vector _angularVelocity, ModifiedRodriguezParameters &_mrpRate )
00031 { 
00032         Vector mrpRate = ( ( (1-pow(norm2(_mrp),2))*eye(3) + 2*skew(_mrp) + 2*_mrp*(~_mrp) )*_angularVelocity/4 );
00033         _mrpRate = ModifiedRodriguezParameters( mrpRate );
00034         return; 
00035 }
00036 
00037 void AttitudeModels::QuaternionKinematic( Quaternion _quaternion, Vector _angularVelocity, Quaternion &_quaternionRate )
00038 {
00039         /* quaternion kinematic differential equation (vector form) */
00040         _quaternionRate( _(1,3) ) =  0.5 * ( _quaternion(4) * _angularVelocity - skew( _angularVelocity ) * _quaternion( _(1,3) ) );
00041         _quaternionRate( _(4,4) ) = (-0.5 * ~_angularVelocity * _quaternion( _(1,3) ) ) ;
00042 
00043         /* Euler Equation */
00044         //Matrix invInertiaMatrix = matrixInv3x3( inertiaMatrix );
00045         //stateDot( _(5,7) ) =  invInertiaMatrix*( - skew(angularRate) * inertiaMatrix * angularRate );
00046         return;
00047 }
00048 
00049 
00050 
00051 // Do not change the comments below - they will be added automatically by CVS
00052 /*****************************************************************************
00053 *       $Log: AttitudeModels.cpp,v $
00054 *       Revision 1.2  2007/07/24 08:37:59  jayhawk_hokie
00055 *       Modified Kinematic Equations.
00056 *
00057 *       Revision 1.1  2007/06/19 19:55:08  jayhawk_hokie
00058 *       Initial submission. Added MRP and Quaternion Kinematic Equations.
00059 *
00060 *
00061 *
00062 *
00063 ******************************************************************************/
00064 

Generated on Wed Sep 5 12:54:18 2007 for DSACSS Operational Code by  doxygen 1.3.9.1