Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef ESCCLASSIC_HPP_
00009 #define ESCCLASSIC_HPP_
00010
00011 #include <labust/control/esc/EscPerturbationBase.hpp>
00012
00013 namespace labust{
00014 namespace control{
00015 namespace esc{
00016
00017
00018 class EscClassic : public EscPerturbationBase<double> {
00019
00020 public:
00021
00022 EscClassic(int ctrlNum, numericprecission Ts);
00023
00024 ~EscClassic();
00025
00026 void initController(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);
00027
00028 numericprecission preFiltering(numericprecission cost_signal);
00029
00030 vector gradientEstimation(numericprecission cost_signal_filtered, vector additional_input);
00031
00032 vector postFiltering(vector estimated_gradient);
00033
00034 vector controllerGain(vector postFiltered);
00035
00036 vector superimposePerturbation(vector control);
00037
00038
00039
00040
00041
00042 vector sin_amp_, sin_freq_, corr_gain_, low_pass_pole_, comp_pole_, comp_zero_;
00043 vector control_ref_, signal_demodulated_old_, lpf_out_old_,corr_signal_, phase_shift_,comp_old_;
00044
00045 vector state_;
00046
00047 numericprecission high_pass_pole_, hpf_out_old_, obj_val_old_;
00048 };
00049 }
00050 }
00051 }
00052
00053
00054
00055
00056
00057 #endif