00001 ////////////////////////////////////////////////////////////////////////////////////////////////// 00002 /*! \file slidingModeControlMRPMW.h 00003 * \brief 00004 * \author $Author: jayhawk_hokie $ 00005 * \version $Revision: 1.1 $ 00006 * \date $Date: 2007/07/24 09:25:15 $ 00007 *////////////////////////////////////////////////////////////////////////////////////////////////// 00008 /*! 00009 */ 00010 ////////////////////////////////////////////////////////////////////////////////////////////////// 00011 00012 00013 #ifndef __SSSL_SLIDINGMODECONTROLMRPMW_H__ 00014 #define __SSSL_SLIDINGMODECONTROLMRPMW_H__ 00015 00016 #include "Controller.h" 00017 00018 using namespace std; 00019 using namespace O_SESSAME; 00020 00021 class slidingModeControlMRPMW : public Controller 00022 { 00023 00024 public: 00025 /*! \brief Constructors */ 00026 slidingModeControlMRPMW( ); 00027 slidingModeControlMRPMW( Whorl* ptr_whorl ); 00028 00029 /*! \brief Destructor */ 00030 ~slidingModeControlMRPMW( ); 00031 00032 /*! \brief Runs the default controller */ 00033 int Run( ); 00034 00035 /*! \brief Initializes the default controller */ 00036 int Initialize( ); 00037 00038 protected: 00039 /*! \brief Member matrix value that is the angular rate Gain Matrix for 00040 * the tracking control law. */ 00041 Matrix m_gainMRPRate; 00042 Matrix m_gainMRPError; 00043 00044 /*! \brief Member scalar value that is the MRP Gain for the tracking control law. */ 00045 double m_mrpGain; 00046 00047 /*! \brief Member scalar value that keeps track of the previous time. Needed by reference model. */ 00048 double m_previousTime; 00049 00050 /*! \brief Member value that is the control torque vector 00051 * determined from control law. */ 00052 Vector m_controlTorque; 00053 00054 Matrix m_estimateInertiaInv; 00055 double m_normEstimateInertiaInv; 00056 double m_normEstimateInertia; 00057 Matrix m_estimateB; 00058 Matrix m_estimateBinv; 00059 00060 Vector m_phi; 00061 Vector m_eta; 00062 00063 double m_torqueMax; 00064 00065 Matrix m_D_I; 00066 double m_normD_I; 00067 Matrix m_D_w; 00068 Matrix m_D_wprime; 00069 Matrix m_D_B; 00070 double m_normD_B; 00071 Matrix m_D_D; 00072 double m_normD_D; 00073 }; 00074 00075 #endif 00076 00077 // Do not change the comments below - they will be added automatically by CVS 00078 /***************************************************************************** 00079 * $Log: slidingModeControlMRPMW.h,v $ 00080 * Revision 1.1 2007/07/24 09:25:15 jayhawk_hokie 00081 * Initial Submission. 00082 * 00083 * 00084 * 00085 * 00086 ******************************************************************************/