57 lines
1003 B
C++
57 lines
1003 B
C++
/*
|
||
* DiscreteSecondOrderTransferFunction.hh
|
||
*
|
||
* Created on: 16 сент. 2020 г.
|
||
* Author: LeonidTitov
|
||
*/
|
||
|
||
#ifndef UMLIBRARY_CONTROL_TF_DISCRETESECONDORDERTRANSFERFUNCTION_HH_
|
||
#define UMLIBRARY_CONTROL_TF_DISCRETESECONDORDERTRANSFERFUNCTION_HH_
|
||
|
||
#include "../Vector.hh"
|
||
|
||
namespace control { namespace regulator {
|
||
|
||
//!.
|
||
class DiscreteSecondOrderTransferFunction : public IValueTransform {
|
||
public:
|
||
|
||
DiscreteSecondOrderTransferFunction();
|
||
|
||
Value operator()( Value value ) const;
|
||
|
||
//!Настройки ПИ-регулятора.
|
||
struct Setting {
|
||
float a0;
|
||
float a1;
|
||
float a2;
|
||
|
||
float b0;
|
||
float b1;
|
||
float b2;
|
||
|
||
Setting();
|
||
bool isValid();
|
||
};
|
||
|
||
void configure( Setting & config );
|
||
|
||
private:
|
||
float yn[3];
|
||
float xn[3];
|
||
|
||
};
|
||
|
||
inline void initialize( Deadzone & sc, Deadzone::Setting & config ) {
|
||
|
||
sc.configure(config);
|
||
|
||
}
|
||
|
||
}}
|
||
|
||
|
||
|
||
|
||
#endif /* UMLIBRARY_CONTROL_TF_DISCRETESECONDORDERTRANSFERFUNCTION_HH_ */
|