MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/processing/TorqueLimitation.hh

80 lines
2.1 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_ */