80 lines
2.5 KiB
C++
80 lines
2.5 KiB
C++
/*
|
||
* TorqueLimitation.hh
|
||
*
|
||
* Created on: 29 дек. 2020 г.
|
||
* Author: titov
|
||
*/
|
||
|
||
#ifndef UMLIBRARY_PROCESSING_TORQUELIMITATION_HH_
|
||
#define UMLIBRARY_PROCESSING_TORQUELIMITATION_HH_
|
||
|
||
#include "../systemic/ISignal.hh"
|
||
#include "../systemic/IProcess.hh"
|
||
|
||
#include "acs/VectorAsyncInterface.hh"
|
||
|
||
namespace processing {
|
||
|
||
//!Модуль ограничивает момент двигателя для обеспечения ограничения усилия на штоке.
|
||
class TorqueLimitation : public systemic::IProcess, public vector::ITechValue {
|
||
public:
|
||
struct Setting {
|
||
float max_torque; //!<Максимальное задаваемое ограничение усилия.
|
||
float overload_coefficient; //!<Коэффициент перегрузки.
|
||
float positive_force_offset_k; //!<Смещение положительного усилия, мультипликативный коэффициент.
|
||
float positive_force_offset_b; //!<Смещение положительного усилия, аддитивный коэффициент.
|
||
float negative_force_offset_k; //!<Смещение отрицательного усилия, мультипликативный коэффициент.
|
||
float negative_force_offset_b; //!<Смещение отрицательного усилия, аддитивный коэффициент.
|
||
|
||
bool isValid();
|
||
Setting();
|
||
};
|
||
|
||
void configure( const Setting & setting );
|
||
|
||
void process();
|
||
void setSampleTime( float ts_in_second );
|
||
|
||
void set( control::Value );
|
||
control::Value get() const;
|
||
|
||
TorqueLimitation( vector::ITechValue & up_limit, vector::ITechValue & down_limit,
|
||
systemic::ISignal & friction, systemic::ISignal & dynamic_torque, systemic::ISignal & load );
|
||
|
||
const float & getActualUpLimit() const;
|
||
const float & getActualDownLimit() const;
|
||
|
||
private:
|
||
vector::ITechValue & torque_up_limit;
|
||
vector::ITechValue & torque_down_limit;
|
||
|
||
systemic::ISignal & friction;
|
||
systemic::ISignal & dynamic_torque;
|
||
systemic::ISignal & load;
|
||
|
||
float demand_limit;
|
||
float actual_up_limit;
|
||
float actual_down_limit;
|
||
|
||
float lim_act_up;
|
||
float lim_act_down;
|
||
|
||
float torque_lim_act_up;
|
||
float torque_lim_act_down;
|
||
|
||
float _max_torque;
|
||
float _K;
|
||
float _Kp1;
|
||
float _OffsetUp_k;
|
||
float _OffsetUp_b;
|
||
float _OffsetDown_k;
|
||
float _OffsetDown_b;
|
||
};
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
#endif /* UMLIBRARY_PROCESSING_TORQUELIMITATION_HH_ */
|