57 lines
977 B
C++
57 lines
977 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_ */
|