Control Library by altb

Dependents:   My_Libraries IndNav_QK3_T265

PID_Cntrl.h

Committer:
altb2
Date:
2019-08-26
Revision:
5:d8c53cece01b
Parent:
3:27595dd9e433
Child:
9:074f4f94b584

File content as of revision 5:d8c53cece01b:


#ifndef PID_CNTRL_H_
#define PID_CNTRL_H_

class PID_Cntrl
{
public:

    PID_Cntrl(float P, float I, float D, float tau_f, float Ts, float uMin, float uMax);

    float operator()(float error) {
        return doStep(error);
    }

    virtual     ~PID_Cntrl();

    void        reset(float initValue);
    float       doStep(float error);
    void        set_limits(float ,float );
    float       get_ulimit(void);
    float       get_P_gain(void);
    void        setCoeff_P(float);
    void        setCoeff_I(float);
    void        setCoeff_D(float);
    void        scale_PID_param(float);
    
private:

    float Iold;
    float eold,yold,del;
    float uMax;
    float uMin;
    float Ts,tau_f;
    float P,I,D_;
    float P_init, I_init, D__init;
    float p, Ka;
    void setCoefficients(float P, float I, float D, float tau_f, float Ts);
};

#endif      // #PID_CNTRL_H