极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 37160|回复: 4

arduino pid库Output可以负数吗

[复制链接]
发表于 2020-5-24 22:46:57 来自手机 | 显示全部楼层 |阅读模式
arduino pid库Output可以负数吗
回复

使用道具 举报

发表于 2021-2-20 22:12:50 | 显示全部楼层
我使用过PID库里的示例程序,是没有负数的。后来自己写了一个
回复 支持 反对

使用道具 举报

发表于 2021-2-22 08:33:14 | 显示全部楼层
修改库文件
回复 支持 反对

使用道具 举报

发表于 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);
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 18:19 , Processed in 0.040041 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表