00001 // suTrackTargetDynamic.h 00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00003 // Copyright 2003 00004 // AUTHOR: Frank C. Anderson 00005 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00006 #ifndef __suTrackTargetDynamic_h__ 00007 #define __suTrackTargetDynamic_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 <rdRKF.h> 00021 #include <rdControlSet.h> 00022 #include <rdFSQP.h> 00023 #include <rdOptimizationTarget.h> 00024 00025 00026 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00027 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00032 class SUTRACKCONTROLLER_API suTrackTargetDynamic : public rdOptimizationTarget 00033 { 00034 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00035 //============================================================================== 00036 // DATA 00037 //============================================================================== 00038 private: 00040 suTrackController *_controller; 00042 double *_yOrig; 00044 double *_ypOrig; 00046 double *_y; 00048 double *_dqdt; 00050 double *_dudt; 00052 rdRKF *_rkf; 00053 00054 //============================================================================== 00055 // METHODS 00056 //============================================================================== 00057 public: 00058 //--------------------------------------------------------------------------- 00059 // CONSTRUCTION 00060 //--------------------------------------------------------------------------- 00061 virtual ~suTrackTargetDynamic(); 00062 suTrackTargetDynamic(int aNX,suTrackController *aController,double aDTTarget, 00063 double aTolerance,double aFineTolerance); 00064 private: 00065 void setNull(); 00066 00067 //--------------------------------------------------------------------------- 00068 // SET AND GET 00069 //--------------------------------------------------------------------------- 00070 00071 //-------------------------------------------------------------------------- 00072 // REQUIRED OPTIMIZATION TARGET METHODS 00073 //-------------------------------------------------------------------------- 00074 // PERFORMANCE AND CONSTRAINTS 00075 int compute(double *x,double *p,double *c); 00076 int computeGradients(double *dx,double *x,double *dpdx,double *dcdx); 00077 // PERFORMANCE 00078 int computePerformance(double *x,double *p); 00079 int computePerformanceGradient(double *x,double *dpdx); 00080 // CONSTRAINTS 00081 int computeConstraint(double *x,int i,double *c); 00082 int computeConstraintGradient(double *x,int i,double *dcdx); 00083 00084 //-------------------------------------------------------------------------- 00085 // COMPUTATIONS 00086 //-------------------------------------------------------------------------- 00087 void step(double aDT,double aTI,double aTF,rdControlSet &aX,double *rY); 00088 00089 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00090 }; // END class suTrackTargetDynamic 00091 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00092 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00093 00094 00095 #endif // #ifndef __suTrackTargetDynamic_h__
1.3