00001 // suTrackTarget.h 00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00003 // Copyright 2003 00004 // AUTHOR: Frank C. Anderson 00005 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00006 #ifndef __suTrackTarget_h__ 00007 #define __suTrackTarget_h__ 00008 00009 00010 //============================================================================== 00011 // INCLUDES 00012 //============================================================================== 00013 #include "suTrackControllerDLL.h" 00014 #include "suTrackController.h" 00015 #include <stdlib.h> 00016 #include <stdio.h> 00017 #include <math.h> 00018 #include <rdTools.h> 00019 #include <rdMath.h> 00020 #include <rdFSQP.h> 00021 #include <rdOptimizationTarget.h> 00022 00023 00024 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00025 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00030 class SUTRACKCONTROLLER_API suTrackTarget : public rdOptimizationTarget 00031 { 00032 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00033 //============================================================================== 00034 // DATA 00035 //============================================================================== 00036 private: 00038 suTrackController *_controller; 00040 double *_yOrig; 00042 double *_y; 00044 double *_dydt; 00046 double *_dqdt; 00048 double *_dudt; 00049 00050 //============================================================================== 00051 // METHODS 00052 //============================================================================== 00053 public: 00054 //--------------------------------------------------------------------------- 00055 // CONSTRUCTION 00056 //--------------------------------------------------------------------------- 00057 virtual ~suTrackTarget(); 00058 suTrackTarget(int aNX,suTrackController *aController); 00059 private: 00060 void setNull(); 00061 00062 //--------------------------------------------------------------------------- 00063 // SET AND GET 00064 //--------------------------------------------------------------------------- 00065 00066 //-------------------------------------------------------------------------- 00067 // REQUIRED OPTIMIZATION TARGET METHODS 00068 //-------------------------------------------------------------------------- 00069 // PERFORMANCE AND CONSTRAINTS 00070 int compute(double *x,double *p,double *c); 00071 int computeGradients(double *dx,double *x,double *dpdx,double *dcdx); 00072 // PERFORMANCE 00073 int computePerformance(double *x,double *p); 00074 int computePerformanceGradient(double *x,double *dpdx); 00075 // CONSTRAINTS 00076 int computeConstraint(double *x,int i,double *c); 00077 int computeConstraintGradient(double *x,int i,double *dcdx); 00078 00079 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00080 }; // END class suTrackTarget 00081 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00082 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00083 00084 00085 #endif // #ifndef __suTrackTarget_h__
1.3