PIDアルゴリズムのインクリメンタル制御温度
2225 ワード
本編博文最終修正時間:2017年08月20日23:00.
一、紹介
本論文ではPIDインクリメンタルアルゴリズムを紹介する.
二、実験プラットフォーム
コンピュータプラットフォーム:なし
コンパイルソフトウェア:なし
ハードウェアプラットフォーム:なし
三、著作権声明
ブロガー:ぼんやりした
声明:このブログは、参照のために商業的な用途を行わず、最終的な解釈権は元のブロガーの所有です.
原文住所:http://blog.csdn.NET/qq_18842031
愚かなMCU交流群:136384801
四、実験前提
しばらくありません.
五、基礎知識
しばらく
六、ソースアドレス
しばらく
七、関連文章
しばらく
八、内容を述べる
1、PIDアルゴリズムのインクリメンタル制御温度
今回のインクリメンタル:
△OUT= OUTK- OUTk-1=kp(EK-EK-1)+((Kp*T)/Ti)Ek+(((Kp*TD)/T)*(Ek-2Ek-1+Ek-2)
Cコード:
unsigned int pidtimer; //
void PIDCalc(int Sv,int Pv) // Sv Pv
{
int DERR1 = 0; //
int DERR2 = 0; //
float Pout = 0; //
float Iout = 0; //
float Dout = 0; //
unsigned int Out = 0; //
static unsigned int Out1; //
static int ERR; //
static int ERR1; //
static int ERR2; //
/******************
*
******************/
static int pidt = 300; //300MS
static char Kp = 30; //
static unsigned int Ti= 5000; //
static unsigned int Td= 600; //
static unsigned char Upper_Limit= 100; //PID
static unsigned char Lower_Limit= 0; //PID
if(pidtimer < pidt) // pidtimer
return ; //
ERR = Sv - Pv; //
DERR1 = ERR - ERR1; //
DERR2 = ERR - 2 * ERR1 + EER2; //
Pout = Kp * DERR1; // P
Iout = (float)(ERR * ((Kp * pidt) / Ti)); // I
Dout = (float)(DERR2 * ((Kp * Td) / pidt)); // D
Out = (unsigned int)(Out1 + Pout + Iout + Dout);
if(Out >= Upper_Limit) //
{
Out = Upper_Limit;
}
else if(Out <= Lower_Limit) //
{
Out = Lower_Limit
}
Out1 = Out; //
ERR2 = ERR1; //
ERR1 = ERR; //
pidtimer = 0; //
}
PIDパラメータ調整口诀
パラメータの整定は最良を探して、小さい頃から大きい順に調べるのはまず比例の後で積分して、最後に更に微分を曲線にプラスして振動するのがとても頻繁で、比例度盤は曲線を拡大して大きい湾を漂って、比例度盤は小さいレンチの曲線に向かってずれて回復するのが遅くて、積分時間は下降曲線の変動周期に向かって長くて、積分時間は更に曲線の振動周波数を長くして速くて、先に微分微分時間は理想曲線の2つの波を長くしなければならない.