Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef PERTURB_ESC_ND_H_
00017 #define PERTURB_ESC_ND_H_
00018
00019 #include <vector>
00020 #include <cmath>
00021 #include <stdio.h>
00022 #include "esc_common/esc.h"
00023 class PerturbESCND:public ESC{
00024 protected:
00025 double sin_amp_,sin_freq_,corr_gain_,high_pass_pole_,low_pass_pole_,comp_pole_,comp_zero_,period_,obj_val_old_, hpf_out_old_, cycle_count_;
00026 std::vector<double> pos_ref_, signal_demodulated_old_, lpf_out_old_,corr_signal_, phase_shift_,comp_old_;
00027 unsigned int opt_dim_;
00028 bool initialized_,state_initialized_, old_vals_initialized_;
00029
00030 public:
00031 PerturbESCND();
00032 PerturbESCND(double sin_amp, double sin_freq, double corr_gain, double high_pass_pole, double low_pass_pole, double comp_zero, double comp_pole, double period);
00033 void init(double sin_amp, double sin_freq, double corr_gain, double high_pass_pole, double low_pass_pole, double comp_zero, double comp_pole, double period);
00034 std::vector<double> step(std::vector<double> state, double obj_val);
00035 inputType getInputType();
00036 outputType getOutputType();
00037 std::vector<double> monitor();
00038 std::vector<std::string> monitorNames();
00039 void reset();
00040 };
00041
00042 #endif