#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.