打印
[AVR单片机]

请教PID算法

[复制链接]
1559|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
KaiXuan|  楼主 | 2011-2-12 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于不懂PID算法,但我想用这个PID控制0-80.0摄氏度的空气加热器,pconst、iconst、dconst建议从什么值开始做整定实验呢?iMax、iMin又怎么决定的呢
比例:
    Vnew = GetV();            //获得当前温度
    error = aim - Vnew;      //误差=目标温度 - 当前温度
    pTerm = error*pconst;     //比例项的值就是误差乘上比例常量pconst
积分:
           Vnew = GetV();            //获得当前温度  
    ErrorSum += (aim - Vnew);      //每一次的误差累计起来
    if(ErrorSum > iMax)ErrorSum = iMax;
    else if(ErrorSum < iMin)ErrorSum = iMin; //避免积分饱和,通常的做法是像上面程序一样设定iMax和iMin。它们和积分常量的大小相关。
    iTerm = ErrorSum *iconst;     //误差和乘上积分常量iconst
微分:
    Vnew = GetV();            //获得当前温度  
    dTerm = (Vnew - Vlast)*dconst;     //当前温度  - 上次速度,再乘微分常数dconst
    Vlast = Vnew ;              //保留本次速度,下次当成上次温度使用
//pTerm+iTerm+dTerm
希望大家给点建议

相关帖子

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

本版积分规则

0

主题

14

帖子

0

粉丝