叶道宇 发表于 2020-5-24 22:46:57

arduino pid库Output可以负数吗

arduino pid库Output可以负数吗

mxlslf 发表于 2021-2-20 22:12:50

我使用过PID库里的示例程序,是没有负数的。后来自己写了一个

GeGeBoom 发表于 2021-2-22 08:33:14

修改库文件

mxlslf 发表于 2021-2-23 22:03:49

供你参考使用:

#define out_put 3//输出电压引脚驱动
double sensorinput;                  //
double Setpoint = 100.0;         //设定液位值100mm
double Kp = 0.1, Ki = 0.7, Kd = 0.1; //pid参数
double Error;                  //偏差
double lastError1, lastError2;   //上一时刻偏差,上两个时刻偏差
double out;   //pid输出
int realout = 0; //第一时刻实际输出电压

void setup() {
Serial.begin(115200);
pinMode(out_put, OUTPUT);
}

void loop() {
int sensorinput = analogRead(A0); //0-1023

Error = (Setpoint - sensorinput); //偏差计算
out = Kp * (Error - lastError1) + Ki * Error + Kd * (Error - 2 * lastError1 + lastError2); //pid输出
realout = out;//实际输出
analogWrite(out_put, realout);//输出pwm波

Serial.print(realout);//串口打印 偏差值
Serial.print(" ");
Serial.println(sensorinput);//串口打印 偏差值
lastError2 = lastError1; //赋值,进入下一循环
lastError1 = Error;
delay(10);
}
页: [1]
查看完整版本: arduino pid库Output可以负数吗