#ifndef PID_CONTROLLER_H #define PID_CONTROLLER_H class PIDController { private: // PID参数 float kp; // 比例系数 float ki; // 积分系数 float kd; // 微分系数 // 积分项和输出限制 float integralLimitLow; float integralLimitHigh; float outputLimitLow; float outputLimitHigh; // 状态变量 float prevError; // 上一次误差 float integral; // 积分项 float prevMeasurement; // 上一次测量值 // 时间相关 float dt; // 时间步长 bool firstRun; // 是否首次运行 public: // 构造函数,初始化PID参数和限制 PIDController(float proportionalGain, float integralGain, float derivativeGain, float iLimitLow, float iLimitHigh, float oLimitLow, float oLimitHigh, float timeStep); // 重置控制器状态 void reset(); // 计算PID输出 float compute(float setpoint, float measurement); // 获取当前PID参数 void getTunings(float& p, float& i, float& d) const; // 设置PID参数 void setTunings(float p, float i, float d); }; #endif // PID_CONTROLLER_H