source: trunk/extremum_seeking/esc_nn/include/esc_nn/nn_esc_2d.h @ 5

Last change on this file since 5 was 5, checked in by wcaarls, 12 years ago

Imported extremum_seeking at revision 987

File size: 1.6 KB
Line 
1/*
2 * nn_esc_2d.h
3 *
4 *  Created on: Jul 31, 2012
5 *      Author: Berk Calli
6 *      Organization: Delft Biorobotics Lab., Delft University of Technology
7 *              Contact info: b.calli@tudelft.nl, web: www.dbl.tudelft.nl
8 *
9 * Header of the class for two dimensional neural network extremum seeking control
10 *
11 * * References:
12 * - M. Teixeira and S. Zak, “Analog neural nonderivative optimizers,” IEEE Transactions on Neural Networks, vol. 9, pp. 629–638, 1998.
13 * - B. Calli, W. Caarls, P. Jonker and M. Wisse, "Comparison of Extremum Seeking Control Algorithms for Robotic Applications", IROS 2012.
14 */
15
16#ifndef NN_ESC_2D_H_
17#define NN_ESC_2D_H_
18
19#include <vector>
20#include <string>
21#include "esc_common/esc.h"
22#include "stdio.h"
23
24class NNESC2D : public ESC {
25
26protected:
27        double A_,M_,ddelta1_,ddelta2_,ddelta3_,A,delta_,B_, mpd_init_, w_switch_old_, a_switch1_old_, a_switch2_old_, a_switch3_old_,yr_,period_;
28        double min_peak_,w_switch_;
29        std::vector<double> vel_ref_;
30        bool initialized_,min_peak_detect_init_;
31
32public:
33        NNESC2D();
34
35        NNESC2D(double A,double M, double B, double ddelta1, double ddelta2, double ddelta3, double delta, double period);
36
37        void init(double A, double M, double B, double ddelta1, double ddelta2, double ddelta3, double delta, double period);
38
39        std::vector<double> step(double obj_val);
40        inputType getInputType();
41        outputType getOutputType();
42        std::vector<double> monitor();
43        std::vector<std::string> monitorNames();
44protected:
45        double wSwitch(double e_minus);
46        double minPeakDetect(double e_minus);
47        double aSwitch1(double e);
48        double aSwitch2(double e);
49        double aSwitch3(double e);
50
51};
52
53#endif /* NN_ESC_2D_H_ */
Note: See TracBrowser for help on using the repository browser.