57 lines
977 B
C++
57 lines
977 B
C++
|
|
/*
|
|||
|
|
* DiscreteSecondOrderTransferFunction.hh
|
|||
|
|
*
|
|||
|
|
* Created on: 16 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>. 2020 <EFBFBD>.
|
|||
|
|
* 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;
|
|||
|
|
|
|||
|
|
//!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
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_ */
|