00001 /* 00002 * sm_esc_1d.h 00003 * 00004 * Created on: Jul 30, 2012 00005 * Author: Berk Calli 00006 * Organization: Delft Biorobotics Lab., Delft University of Technology 00007 * Contact info: b.calli@tudelft.nl, web: www.dbl.tudelft.nl 00008 * 00009 * Header file of the class for one dimensional sliding mode extremum seeking control with periodic driving signal 00010 * 00011 * * References: 00012 * - H. Yu and U. Ozguner, “Extremum-seeking Control Strategy for ABS System with Time Delay,” ACC 2002. 00013 * - B. Calli, W. Caarls, P. Jonker and M. Wisse, "Comparison of Extremum Seeking Control Algorithms for Robotic Applications", IROS 2012. 00014 */ 00015 00016 00017 #ifndef SM_ESC_1D_H_ 00018 #define SM_ESC_1D_H_ 00019 00020 #include "esc_common/esc.h" 00021 #include "stdio.h" 00022 #include "cmath" 00023 using std::sin; 00024 00025 class SMESC1D : public ESC { 00026 protected: 00027 double rho_,k_,alpha_,driving_input_,vel_ref_; 00028 bool initialized_,driving_input_init_; 00029 public: 00030 SMESC1D(); 00031 SMESC1D(double rho, double k, double alpha); 00032 void init(double rho, double k, double alpha); 00033 inputType getInputType(); 00034 outputType getOutputType(); 00035 std::vector<double> step(double obj_val); 00036 std::vector<double> monitor(); 00037 std::vector<std::string> monitorNames(); 00038 void reset(); 00039 protected: 00040 int sign(double value); 00041 }; 00042 00043 00044 #endif /* SM_ESC_1D_H_ */