67 lines
1.9 KiB
C++
67 lines
1.9 KiB
C++
|
|
/*
|
|||
|
|
* LoadEstimation.hh
|
|||
|
|
*
|
|||
|
|
* Created on: 29 дек. 2020 г.
|
|||
|
|
* Author: titov
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef UMLIBRARY_PROCESSING_LOADESTIMATION_HH_
|
|||
|
|
#define UMLIBRARY_PROCESSING_LOADESTIMATION_HH_
|
|||
|
|
|
|||
|
|
#include "../systemic/ISignal.hh"
|
|||
|
|
#include "../systemic/IProcess.hh"
|
|||
|
|
|
|||
|
|
namespace processing {
|
|||
|
|
|
|||
|
|
//!Модуль осуществляет оценку момента нагрузки на валу на основе решения кинематического уравнения.
|
|||
|
|
/*!Оценка момента нагрузки на валу осущетсвляется путем построения наблюдателя системы:
|
|||
|
|
* W[n] = W[n-1] + (T[n] - L[n]) * dT / J, где
|
|||
|
|
* W - угловая скорость,
|
|||
|
|
* T - момент двигателя,
|
|||
|
|
* L - момент нагрузки.
|
|||
|
|
*/
|
|||
|
|
class LoadEstimation : public systemic::IProcess {
|
|||
|
|
public:
|
|||
|
|
struct Setting {
|
|||
|
|
float L1; //!<Коэффициент следящей системы, коррекция момента.
|
|||
|
|
float L2; //!<Коэффициент следящей системы, коррекция скорости.
|
|||
|
|
float Jp; //!<Приведенный момент инерции, кг*м^2.
|
|||
|
|
|
|||
|
|
bool isValid();
|
|||
|
|
Setting();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
void configure( const Setting & setting );
|
|||
|
|
|
|||
|
|
void process();
|
|||
|
|
void setSampleTime( float ts_in_second );
|
|||
|
|
|
|||
|
|
const float & getEstimatedLoad() const;
|
|||
|
|
const float & getEstimatedSpeed() const;
|
|||
|
|
|
|||
|
|
LoadEstimation( systemic::ISignal & speed, systemic::ISignal & torque );
|
|||
|
|
private:
|
|||
|
|
|
|||
|
|
float _Ts;
|
|||
|
|
|
|||
|
|
//Настройки наблюдателя позиции.
|
|||
|
|
float _L1Base;
|
|||
|
|
float _L2Base;
|
|||
|
|
float _Base_J;
|
|||
|
|
|
|||
|
|
float _L1Ts;
|
|||
|
|
float _L2Ts;
|
|||
|
|
float _Ts_J;
|
|||
|
|
|
|||
|
|
systemic::ISignal & speed;
|
|||
|
|
systemic::ISignal & torque;
|
|||
|
|
|
|||
|
|
float est_speed;
|
|||
|
|
float est_load;
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif /* UMLIBRARY_PROCESSING_LOADESTIMATION_HH_ */
|