请教单片机PWM控制加热器用增量式PID,三个参数的选择

我用PWM信号控制加热器,采用增量式PWM控制方法。增量式的公式是δu(k)=A*E(K)-B*E(K-1)+C*E(K-2),请问这三个参数如何选择?

uint ZKB; //定义占空比初始值
float zkc;
int kkk;
uint kp=4; //定义PID初始值
float ki=0.17;
uint kd=16;
uint uc=5000;
float ek;
float u_k;
float uk;
float uk1=0;
float ek1=0;
float ek2=0;
uchar click=0; //中断次数计数器变量
uint zhouqi=0;

void deal(uint t) //加热控制函数
{ TR0=1;
if(zhouqi==1) //进行PID算法,求新的占空比
{
zhouqi=0;
ek=wendu_c-t; //计算偏差
u_k=kp*(ek-ek1)+ki*ek+kd*(ek-2*ek1+ek2); //计算增量
uk=uk1+u_k;
zkc=100*uk/uc;
if (zkc>=95)
zkc=95;
kkk=(int)zkc ;
}
if(t>=wendu_c) //大于设定值
shuchu=0; //输出高电平
else //小于设定值
{

ZKB=(int)zkc; //调整新的脉宽定时,即新的占空比

if (click<=ZKB) // 判断脉宽定时周期是否到?当小于占空比值时输出高电平,高于时是低电平,从而实现占空比的调整
shuchu=1;
else
shuchu=0 ;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-16
LZ上面的公式是懒汉公式,最好把PID的3个分开,可以独立调整PID参数,更灵活。
第2个回答  2019-10-23
网上找的,我把它做了修改(用NTC等),精度+-1度,我是用12VDC/2A发热提来测试
第3个回答  2014-01-16
谢谢各位,有没有不计算,用增减PWM来做的PI控制的简单的程序?
第4个回答  2014-01-16
好像有个建议选值方法的,网上有
相似回答