#include <SOIdentification.hpp>
Public Types | |
enum | { alpha = 0, kx = 1, kxx = 2, delta = 3, wn = 4, numParams } |
Public Member Functions | |
double | avgError () |
bool | hasSwitched () |
bool | isFinished () |
const std::vector< double > & | parameters () |
void | Ref (double ref) |
double | Ref () |
void | reset () |
void | setRelay (double C, double X) |
SOIdentification (double C=0, double X=0, double R=0, double E=0.1, double identLen=4) | |
double | step (double error, double dT) |
~SOIdentification () | |
Private Member Functions | |
void | calculateParameters () |
Private Attributes | |
int | counterHigh |
int | counterLow |
std::vector< double > | e_max |
std::vector< double > | e_min |
double | eMaxError |
double | eMinError |
bool | finished |
int | identLen |
double | maxOsc |
double | minMaxError |
double | minOsc |
std::vector< double > | params |
double | ref |
labust::control::Relay | relay |
std::vector< double > | t_max |
std::vector< double > | t_min |
double | tSum |
std::vector< double > | xa_high |
std::vector< double > | xa_low |
The class implements the model parameter identification procedure by use of Self Oscillations (Limit-cycles).
Definition at line 48 of file SOIdentification.hpp.
anonymous enum |
The parameters enumerator.
Definition at line 54 of file SOIdentification.hpp.
SOIdentification::SOIdentification | ( | double | C = 0 , |
double | X = 0 , |
||
double | R = 0 , |
||
double | E = 0.1 , |
||
double | identLen = 4 |
||
) |
Simple constructor.
C | Output amplitude of the relay. |
X | Input hysteresis of the relay. |
R | Reference for oscillations. |
E | Acceptable convergence error. |
identLen | The count of oscillations to track. |
Definition at line 41 of file SOIdentification.cpp.
Generic destructor.
Definition at line 63 of file SOIdentification.cpp.
double labust::control::SOIdentification::avgError | ( | ) | [inline] |
Return the current relative oscillation error.
Definition at line 122 of file SOIdentification.hpp.
void SOIdentification::calculateParameters | ( | ) | [private] |
The parameter calculation when one cycle finishes.
Definition at line 109 of file SOIdentification.cpp.
bool labust::control::SOIdentification::hasSwitched | ( | ) | [inline] |
The switch indicator.
Definition at line 118 of file SOIdentification.hpp.
bool labust::control::SOIdentification::isFinished | ( | ) | [inline] |
The method to check if the identification procedure has finished.
Definition at line 86 of file SOIdentification.hpp.
const std::vector<double>& labust::control::SOIdentification::parameters | ( | ) | [inline] |
The method returns the identified parameters of the model.
Definition at line 90 of file SOIdentification.hpp.
void labust::control::SOIdentification::Ref | ( | double | ref | ) | [inline] |
Set reference around which to identify.
Definition at line 110 of file SOIdentification.hpp.
double labust::control::SOIdentification::Ref | ( | ) | [inline] |
Set reference around which to identify.
Definition at line 114 of file SOIdentification.hpp.
void SOIdentification::reset | ( | ) |
The method resets the identification phase.
Definition at line 151 of file SOIdentification.cpp.
void labust::control::SOIdentification::setRelay | ( | double | C, |
double | X | ||
) | [inline] |
The method sets the symmetrical relay parameters from outside.
C | Output amplitude of the relay. |
X | Input hysteresis of the relay. |
Definition at line 77 of file SOIdentification.hpp.
double SOIdentification::step | ( | double | error, |
double | dT | ||
) |
The method implements the identification step.
desired | Desired value of the controlled state. |
state | Current value of the controlled state. |
dT | The sampling time between step calls. |
Definition at line 65 of file SOIdentification.cpp.
int labust::control::SOIdentification::counterHigh [private] |
Oscillation counters.
Definition at line 153 of file SOIdentification.hpp.
int labust::control::SOIdentification::counterLow [private] |
Definition at line 153 of file SOIdentification.hpp.
std::vector<double> labust::control::SOIdentification::e_max [private] |
Definition at line 169 of file SOIdentification.hpp.
std::vector<double> labust::control::SOIdentification::e_min [private] |
Definition at line 169 of file SOIdentification.hpp.
double labust::control::SOIdentification::eMaxError [private] |
Error tolerance variables.
Definition at line 157 of file SOIdentification.hpp.
double labust::control::SOIdentification::eMinError [private] |
Definition at line 157 of file SOIdentification.hpp.
bool labust::control::SOIdentification::finished [private] |
The identification progress flags.
Definition at line 133 of file SOIdentification.hpp.
int labust::control::SOIdentification::identLen [private] |
Length of the identification.
Definition at line 165 of file SOIdentification.hpp.
double labust::control::SOIdentification::maxOsc [private] |
Oscillations maximum and minimum trackers.
Definition at line 149 of file SOIdentification.hpp.
double labust::control::SOIdentification::minMaxError [private] |
Definition at line 157 of file SOIdentification.hpp.
double labust::control::SOIdentification::minOsc [private] |
Definition at line 149 of file SOIdentification.hpp.
std::vector<double> labust::control::SOIdentification::params [private] |
The parameter container.
Definition at line 141 of file SOIdentification.hpp.
double labust::control::SOIdentification::ref [private] |
Reference for identification.
Definition at line 161 of file SOIdentification.hpp.
The embedded relay controller.
Definition at line 137 of file SOIdentification.hpp.
std::vector<double> labust::control::SOIdentification::t_max [private] |
Definition at line 169 of file SOIdentification.hpp.
std::vector<double> labust::control::SOIdentification::t_min [private] |
Definition at line 169 of file SOIdentification.hpp.
double labust::control::SOIdentification::tSum [private] |
Timebase of the identification.
Definition at line 145 of file SOIdentification.hpp.
std::vector<double> labust::control::SOIdentification::xa_high [private] |
Data vetors.
Definition at line 169 of file SOIdentification.hpp.
std::vector<double> labust::control::SOIdentification::xa_low [private] |
Definition at line 169 of file SOIdentification.hpp.