OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4778|回复: 5

有偿,找个pid温度控制,调参数辅导

[复制链接]

117

主题

598

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
1702
金钱
1702
注册时间
2012-5-10
在线时间
439 小时
发表于 2020-12-21 08:52:39 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 xsx127 于 2020-12-21 10:31 编辑

微信图片_20201221085201.jpg
薄膜加热片贴在贴板上,热敏电阻直接贴在加热膜上,网上找了个pid公式,不知道怎么调参数,需要一个大神指点下,比如调P,曲线是什么样子,可以做为P值等
调试成功了100红包

如有技术问题,微信扫头像交流,STM32,JAVA,服务器
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8674
金钱
8674
注册时间
2020-5-11
在线时间
4143 小时
发表于 2020-12-21 10:41:58 | 显示全部楼层
专治疑难杂症
回复

使用道具 举报

117

主题

598

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
1702
金钱
1702
注册时间
2012-5-10
在线时间
439 小时
 楼主| 发表于 2020-12-21 11:34:52 | 显示全部楼层
本帖最后由 xsx127 于 2020-12-21 11:37 编辑
加热控制都弄好了,就是调参数不太会
  1. /**
  2. * tar_temp:目标温度
  3. * cur_temp:当前温度
  4. */
  5. unsigned short pid_cal(PID * PP, float tar_temp, float cur_temp)
  6. {
  7.     float dError=0, Error=0, result;
  8.    
  9.      Error = tar_temp - cur_temp;//当前误差 //PID算法第一步 设定转速减去当前转速 赋值给 Error
  10.     ZLG_sumError += Error;//误差和
  11.     dError = Error - ZLG_lastError;//误差偏差
  12.     ZLG_lastError = Error;
  13.    
  14.     result = pid_p*Error + pid_i*ZLG_sumError + pid_d*dError;

  15.     //目标值大于当前温度10℃,则100%加热
  16.     if(Error>15)
  17.         result = 100;
  18.     else if(Error < -15)
  19.         result = 0;
  20.     //增量式PID算法 增量式PID需每次叠加
  21.     else if (result > 100)
  22.         result = 100;
  23.     else if (result < 0)
  24.         result = 0;

  25.     //printf("cur:%.2f, Error:%.2f, result:%.0f\n", cur_temp, Error, result);
  26.     //占空比
  27.     return result;

  28. }
复制代码
如有技术问题,微信扫头像交流,STM32,JAVA,服务器
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8674
金钱
8674
注册时间
2020-5-11
在线时间
4143 小时
发表于 2020-12-21 11:48:40 | 显示全部楼层
本帖最后由 LcwSwust 于 2020-12-21 11:50 编辑
xsx127 发表于 2020-12-21 11:34
加热控制都弄好了,就是调参数不太会

ZLG_sumError需要限幅,要注意一下。
pid_i,pid_d可以先给0,pid_p由小到大试一下效果,然后pid_i从小到大再试试。
其实手动计算一下也能知道,若只看pid_p,输出与温度误差成正比,算一下温度误差多少对应的输出量是多少,就大概知道参数是否合适。
专治疑难杂症
回复

使用道具 举报

117

主题

598

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
1702
金钱
1702
注册时间
2012-5-10
在线时间
439 小时
 楼主| 发表于 2020-12-21 11:51:00 | 显示全部楼层
LcwSwust 发表于 2020-12-21 11:48
ZLG_sumError需要限幅,要注意一下。
pid_i,pid_d可以先给0,pid_p由小到大试一下效果,然后pid_i从小 ...

大神加我QQ:565170595
如有技术问题,微信扫头像交流,STM32,JAVA,服务器
回复

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2019-8-5
在线时间
7 小时
发表于 2020-12-21 22:35:08 | 显示全部楼层
温度的pid用增量式pid会比较好一点
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-12 18:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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