nn_esc_2d.h
Go to the documentation of this file.
00001 /*
00002  * nn_esc_2d.h
00003  *
00004  *  Created on: Jul 31, 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 of the class for two dimensional neural network extremum seeking control
00010  *
00011  * * References:
00012  * - M. Teixeira and S. Zak, “Analog neural nonderivative optimizers,” IEEE Transactions on Neural Networks, vol. 9, pp. 629–638, 1998.
00013  * - B. Calli, W. Caarls, P. Jonker and M. Wisse, "Comparison of Extremum Seeking Control Algorithms for Robotic Applications", IROS 2012.
00014  */
00015 
00016 #ifndef NN_ESC_2D_H_
00017 #define NN_ESC_2D_H_
00018 
00019 #include <vector>
00020 #include <string>
00021 #include "esc_common/esc.h"
00022 #include "stdio.h"
00023 
00024 class NNESC2D : public ESC {
00025 
00026 protected:
00027         double A_,M_,ddelta1_,ddelta2_,ddelta3_,delta_,B_, mpd_init_, w_switch_old_, a_switch1_old_, a_switch2_old_, a_switch3_old_,yr_,period_;
00028         double min_peak_,w_switch_, stoping_min_val_, obj_val_cycle_init_;
00029         int stopping_cycle_number_, nn_cycle_count_;
00030         std::vector<double> vel_ref_,vel_ref_old_;
00031         bool initialized_,min_peak_detect_init_;
00032 
00033 
00034 public:
00035         NNESC2D();
00036         NNESC2D(double A,double M, double B, double ddelta1, double ddelta2, double ddelta3, double delta, double period, int stopping_cycle_number, double stoping_min_val);
00037         void init(double A, double M, double B, double ddelta1, double ddelta2, double ddelta3, double delta, double period, int stopping_cycle_number, double stoping_min_val);
00038 
00039         std::vector<double> step(double obj_val);
00040         inputType getInputType();
00041         outputType getOutputType();
00042         std::vector<double> monitor();
00043         std::vector<std::string> monitorNames();
00044         void reset();
00045         bool isStoppingConditionsMet();
00046 protected:
00047         double wSwitch(double e);
00048         double minPeakDetect(double e);
00049         double aSwitch1(double e);
00050         double aSwitch2(double e);
00051         double aSwitch3(double e);
00052 
00053 };
00054 
00055 #endif /* NN_ESC_2D_H_ */


esc_nn
Author(s): Berk Calli
autogenerated on Sun Jan 5 2014 11:07:07