14978|16

9

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

F103实现的PID算法用于温控系统 [复制链接]

 

此帖出自stm32/stm8论坛

最新回复

楼主能在分享一下所有代码吗,用于学习,谢谢   详情 回复 发表于 2020-6-8 13:55
点赞 关注(1)
 

回复
举报

6

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
楼主能共享源码,万分感谢
此帖出自stm32/stm8论坛
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
优酷上复制不了,我直接百度云链接:
链接已隐藏,如需查看请登录或者注册
密码:497d
此帖出自stm32/stm8论坛
 
 

回复

30

帖子

1

TA的资源

一粒金砂(中级)

4
 
在考虑用M0做温控,学习一下
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
楼主真是及时雨,感谢分享!
此帖出自stm32/stm8论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

6
 
上次PID算法应用于温度控制,效果不错;近期准备一个PID控制电机的教程
此帖出自stm32/stm8论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

7
 
之前的链接失效了
链接已隐藏,如需查看请登录或者注册
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
typedef struct
{
float SV ;//用户设定值
float PV ;//当前值

float Kp ;//比例系数
float T ;//PID计算周期 采样周期
float Ti ;//积分时间
float Td ;//微分时间
//中间变量
float Ek ;//本次偏差
float Ek_1 ;//上一次偏差
float SEk ;//历史偏差之和
//中间计算结果
float Pout ;//
float Iout ;//
float Dout ;//

float OUT0 ;//补偿
float OUT ;//最终的计算结果
uint16_t c10ms ;//时间计数
uint16_t pwmcycle ;//PWM周期
}PID ;


void PID_Init(void)
{
pid.SV = 120 ;
pid.Kp = 30 ;
pid.T = 500 ;//PID计算周期
pid.Ti = 5000000 ;//温度惯性大取5000S 积分时间
pid.Td = 1000 ;//1S 微分时间 传感器采样反馈回来的温度变化率
pid.pwmcycle = 200;//PWM调制的周期
pid.OUT0 = 1;//默认最小值
}
uint16_t PID_Calc(void)
{
  float DelEk ;
  float ti,Ki ;
  float td;
  float kd;
  float out ;
  if(pid.c10ms   pid.Ek = pid.SV-pid.PV ;//计算误差
  pid.Pout= pid.Kp*pid.Ek ;//计算比例输出
  pid.SEk +=pid.Ek ;//历史偏差求和
  DelEk = pid.Ek -pid.Ek_1 ;//近两次偏差之差
  ti = pid.T/pid.Ti ;
  ki = ti*pid.Kp ;
  pid.Iout = ki*pid.SEk*pid.Kp ;//积分输出
  td = pid.Td/pid.T ;
  Kd = pid.Kp*td ;
  pid.Dout = kd*DelEk ;//微分输出
  out = pid.Pout + pid.Iout + pid.Dout ;//最终输出
  if(out>pid.pwmcycle) pid.OUT=pid.pwmcycle;//限制幅度
  else if(out<0) pid.OUT=pid.OUT0;//
  else  pid.OUT = out ;//
  pid.Ek_1 = pid.Ek;//更新变量
  pid.c10ms =0 ;//清除计数器
  return 0 ;
}
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 
1111111111111111111
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

10
 
谢谢分享
此帖出自stm32/stm8论坛
 
 
 

回复

3

帖子

5

TA的资源

一粒金砂(初级)

11
 
xiexie楼主分享代码
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

12
 
666666666666666666666666666666666666666666666666
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

13
 
为啥看不到代码???
此帖出自stm32/stm8论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

14
 
学习,谢谢
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

15
 
hillchina 发表于 2016-9-23 15:15 **** 作者被禁止或删除 内容自动屏蔽 ****

楼主源代码可以再分享一下嘛,最新在学习STM32,做实验试试。谢谢啦

此帖出自stm32/stm8论坛
 
 
 

回复

29

帖子

0

TA的资源

一粒金砂(初级)

16
 

楼主果然还是那个楼主,万分感谢

此帖出自stm32/stm8论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

17
 

楼主能在分享一下所有代码吗,用于学习,谢谢

此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表