00001 ////////////////////////////////////////////////////////////////////////////////////////////////// 00002 /*! \file DefaultController.h 00003 * \brief The DefaultController class contains the actual equations for angular velocity control. 00004 * It is derived from the Contorller class. 00005 * \author $Author: jayhawk_hokie $ 00006 * \version $Revision: 1.8 $ 00007 * \date $Date: 2007/09/05 13:27:20 $ 00008 *////////////////////////////////////////////////////////////////////////////////////////////////// 00009 /*! 00010 */ 00011 ////////////////////////////////////////////////////////////////////////////////////////////////// 00012 00013 00014 #ifndef __SSSL_DEFAULTCONTROLLER_H__ 00015 #define __SSSL_DEFAULTCONTROLLER_H__ 00016 00017 #include "Controller.h" 00018 00019 using namespace std; 00020 using namespace O_SESSAME; 00021 00022 class DefaultController : public Controller 00023 { 00024 public: 00025 /*! \brief Constructor */ 00026 DefaultController( ); 00027 00028 /*! \brief Constructor 00029 * @param ptr_whorl is a pointer to the whorl object. 00030 */ 00031 DefaultController( Whorl* ptr_whorl ); 00032 00033 /*! \brief Destructor */ 00034 virtual ~DefaultController(); 00035 00036 /*! \brief Initializes the default controller */ 00037 int Initialize( ); 00038 00039 /*! \brief Runs the default controller, which is a Lyapunov based control law 00040 * that drives the angular rates to zero. 00041 */ 00042 int Run( ); 00043 00044 protected: 00045 00046 /*! \brief Member value in Default Controller Class that is the gain. */ 00047 double m_K; 00048 00049 /*! \brief Member value in Default Controller Class that is the Gain Matrix for 00050 * the control law. */ 00051 Matrix m_gainMatrix; 00052 00053 /*! \brief Member value in Default Controll Class that is the control torque vector 00054 * determined from control law. */ 00055 Vector m_controlTorque; 00056 00057 }; 00058 00059 #endif 00060 00061 // Do not change the comments below - they will be added automatically by CVS 00062 /***************************************************************************** 00063 * $Log: DefaultController.h,v $ 00064 * Revision 1.8 2007/09/05 13:27:20 jayhawk_hokie 00065 * *** empty log message *** 00066 * 00067 * Revision 1.7 2007/07/24 09:36:44 jayhawk_hokie 00068 * Updated. 00069 * 00070 * Revision 1.6 2007/04/09 14:03:06 jayhawk_hokie 00071 * Modified controller. 00072 * 00073 * Revision 1.5 2007/02/22 20:10:33 jayhawk_hokie 00074 * Update Constructor and Destructor. 00075 * 00076 * Revision 1.4 2005/02/25 18:40:53 cakinli 00077 * Created Makefiles and organized include directives to reduce the number of 00078 * include paths. Reorganized libraries so that there is now one per source 00079 * directory. Each directory is self-contained in terms of its Makefile. 00080 * The local Makefile in each directory includes src/config.mk, which has all 00081 * the definitions and general and pattern rules. So at most, to see what 00082 * goes into building a target, a person needs to examine the Makefile in 00083 * that directory, and ../config.mk. 00084 * 00085 * Revision 1.3 2003/08/13 23:17:32 mavandyk 00086 * Altered structure as outline in meeting. 00087 * 00088 * Revision 1.2 2003/07/31 20:42:38 mavandyk 00089 * Fixed some minor problems. 00090 * 00091 * Revision 1.1 2003/07/31 20:27:17 mavandyk 00092 * This is the default controller for Whorl. 00093 * 00094 * Revision 1.3 2003/07/07 14:10:52 simpliciter 00095 * Added log blocks. 00096 * 00097 * 00098 * 00099 ******************************************************************************/