打印

PID温控

[复制链接]
800|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
最近做一个PID控温项目,pt100热电阻测温的,主要通过PWM控制电源开关通断控温,串口能得出近若干次的数据输出(电压值),从而算出热电阻当前电阻值,通过查表知道我要设定温度时的热电阻阻值,接着通过PID增量式公式知道最终输出的阻值
但是就是搞不懂pid增量公式计算出的阻值和要输出的占空比之间的联系在哪里??

求教各位大佬

使用特权

评论回复

相关帖子

沙发
xuyaqi| | 2020-4-24 14:51 | 只看该作者
这个要做实验的,不同的加热系统是不一样的。

使用特权

评论回复
板凳
maximQ820270087| | 2020-5-27 16:45 | 只看该作者
阻值-温度关系曲线具有适当的线性度,但有一定弯曲,可由Callendar-Van Dusen方程表示:
R(T) = R0(1 + aT + bT2 + c(T - 100)T3)
式中:
T = 温度(°C)
R(T) = T温度下的阻值
R0 = T为0°C时的阻值
IEC 751规定了下列Callendar-Van Dusen系数:
a = 3.90830 x 10-3
b = -5.77500 x 10-7
当-200°C ≤ T ≤ 0°C时,c= -4.18301 x 10-12;当0°C ≤ T ≤+850°C时,c = 0。

使用特权

评论回复
地板
maximQ820270087| | 2020-5-27 16:46 | 只看该作者
MAX31865是简单易用的热敏电阻至数字输出转换器,优化用于铂电阻温度检测器(RTD)。外部电阻设置RTD灵敏度,高精度Δ- ΣADC将RTD电阻与基准电阻之比转换为数字输出。MAX31865输入具有高达±45V的过压保护,提供可配置的RTD及电缆开路、短路条件检测。

【关键特性】
高度集成降低系统成本、简化设计并缩短设计周期
简便的RTD铂电阻至数字转换器
支持100Ω至1kΩ(0°C时)铂电阻RTD (PT100至PT1000)
兼容2线、3线和4线传感器连接
spi兼容接口
20引脚TQFN和SSOP封装
高精度设计方便满足误差预算
15位ADC分辨率;标称温度分辨率为0.03125°C (随RTD的非线性变化)
整个工作条件下,总精度保持在最高0.5°C (0.05%满量程)
全差分VREF输入
转换时间:21ms (最大值)
集成故障检测提高系统可靠性
±45V输入保护
故障检测(RTD开路、RTD短路到量程范围以外的电压或RTD元件短路)
·

使用特权

评论回复
5
ColeYao| | 2020-5-27 18:57 | 只看该作者
本帖最后由 ColeYao 于 2020-5-27 19:03 编辑

function TPID.PIDLoop(Errin:Real):Real;
   begin
     IntT:=IntT+(Errin*TControl);
      case Mode of
       0:  if Errin>0 then  PwmOut:=0  else PwmOut:=PwmMax;
       1:  PwmOut:=-KP*Errin-KI*IntT-KD*(Errin-ErrL)/TControl;
       2:  begin PwmOut:=PwmOut-KP*(Errin-ErrL)/TControl-KI*Errin-KD*(Errin+ErrLL-2*ErrL)/(TControl*TControl);    end;
       3:  begin PwmOut:=PwmOut-FdK*(Errin+PreK*((Errin-ErrL)/TControl));     end;
       4:  begin PwmOut:=PwmOut-FdK*(Errin+PreK*((Errin-ErrL)/TControl+PreKv*(Errin+ErrLL-2*ErrL)/(TControl*TControl)));    end;
       else begin PwmOut:=PwmOut+FdK*(Errin+PreK*((Errin-ErrL)/TControl));    end;
      end;
      if PwmOut>=PwmMax then PwmOut:=PwmMax
      else if PwmOut<=0  then PwmOut:=0;
      result:=PwmOut;
      ErrLL:= ErrL;
      ErrL:=Errin;
   end;
其中,case Mode of 2: 的PwmOut 就是增量式PID的输出,经过限幅到区间[0,PwmMax]后的值就是PWM的输出值,该值与PwmMax的比值就是当前输出功率P与最大加热功率Pmax的比值。


  这上面是加热功率与当前温度有对应关系的,加热功率越大,温度上升越快,如果系统内的自变量和因变量不满足这样的关系,就可能要调整一下值的正负再观察是否满足。

使用特权

评论回复
6
cjseng| | 2020-5-27 22:42 | 只看该作者
你的目标是调整温度,阻值与温度有对应关系,你还是查表得到温度再说吧。
已知温度设定值与当前温度采样值,通过PID运算,改变的是电源输出占空比,不断采样,不断得到设定值与采样值的误差,PID不断计算,参数合理的话,最终就会让采样值逼近设定值,任务就完成了。

使用特权

评论回复
7
gx_huang| | 2020-5-28 09:03 | 只看该作者
真是复杂的思路,和别人不一样的思路。
正常的思路,ADC测量、计算温度、根据PID计算输出量。和电阻有啥关系呀,电阻只是中间参数而已,或者根本不需要计算电阻值。

使用特权

评论回复
8
daocaorenchao| | 2020-5-28 11:16 | 只看该作者
gx_huang 发表于 2020-5-28 09:03
真是复杂的思路,和别人不一样的思路。
正常的思路,ADC测量、计算温度、根据PID计算输出量。和电阻有啥关 ...

我也认为直接这样

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

376

主题

377

帖子

0

粉丝