PID算法知识

基本思想:PID算法不但考虑控制对象当前状态(现在状态),而且还考虑控制对象过去一段时间的状态值(历史状态),和最近一段时间的状态值变化(预期),由这3方面共同决定当前的输出控制信号。

一.计算:PIDout = Pout + Iout + Dout 

Pout = Kp * Ek +OUT0.其中Kp为比例系数,Ek =Sv - Pv。OUT0为一个常数。

Iout = Kp * Sk + OUT0.其中Kp为比例系数,Sk = (1/Ti) * (历史偏差之和)*T。其中T为采样周期(计算周期),Ti积分时间(相当于计算历史偏差时间的总时间)。

Dout = Kp * Dk+ OUT0.其中Kp为比例系数,Dk = Td  * ((Ek-Ek-1)/T)。其中Ek-Ek-1为当前两次偏差之差,T为计算周期,Td微分常数。((Ek-Ek-1)/ T 反应了偏差的变化率)。

合并后:

PIDout = (Kp * EK) + ( Kp *(T/Ti) * (历史偏差Ek之和) ) + (Kp *(Td / T) * (Ek - Ek-1) ) + OUT0

需要设定的值:Kp比例系数,T采样周期(计算周期),Ti积分时间,Td微分常数。算出的值可直接作为输出结果,因此称为位置式PID。

增量式PID :

DetPIDout = PIDoutK - PIDoutK-1 。带入到PIDout 公式后 DetPIDout = Kp *(Ek- Ek-1) + Kp *(T/Ti) * Ek + Kp *(Td/T) * (Ek -2Ek-1 +Ek-2)。从公式可知增量式PID算法简单一些,增量式PID一般用在有记忆功能的控制系统中。

示例:下面是实际温控项目的参数设定

void PID_Init(void)
{

pid.Sv = 120;// 设定温度120度

pid.Kp = 30;// 比例系数

pid.T = 500;// PID计算周期 500ms,每隔500ms我们计算一次当前的温度偏差值Ek。

pid.Ti = 5000000;//积分时间(可理解为历史偏差的时间是5000s)

pid.Td = 1000;// 微分时间(作用调节因计算周期过长或过短对输出结果的影响:Td*((Ek - Ek-1) / T))

pid.pwmcycle = 1000;// 单片机PWM输出的周期时间1000ms

pid.OUT0 = 1;// 调节常数(避免设定值与当前值相等时,输出为0,此时需要保持输出一个维持结果的微信号)

}

由以上参数带入位置式PID计算公式可以得到的结果可直接作为pwm的控制信号。

得到输出结果后,要做一下归并:

out = Pout + Iout +Dout + pid.OUT0;

if(out > pid.pwmcycle) // 输出结果大于pwm的周期

{

    pid.OUT = pid.pwmcycle;// 把pwm的周期值作为输出结果

}

else if(out < 0)

{

pid.OUT = 0;// 控制信号归0

}

else // 计算结果是我们需要的值

{

pid.OUT = out;

}

pid.Ek-1 = pid.Ek ; // 把本次的偏差作为下次的偏差

最后pid.OUT 要和pwm控制结合,在1ms中断中改变控制信号

void PID_OUT(void) // 输出PID运算结果到负载,每1ms进中断调用此函数

{

    u6 static pw;

    pw ++;

    if(pw >= pid.pwmcycle)

    {

        pw =0;

    }

    if(pw < pid.OUT)

    {

        pwm_ctr =1;// 开始加热

    }

    else

    {

        pwm_ctr = 0;// 关加热

    }

}

2017.09.06   PID算法实现制冷片恒温控制


2018.0407 莫恩率雾化器加热丝使用的PID算法:




  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值