新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PID算法調(diào)節(jié)C51程序(1)

PID算法調(diào)節(jié)C51程序(1)

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
關(guān)于PID

比例調(diào)節(jié)作用:是按比例反應(yīng)系統(tǒng)的偏差,系統(tǒng)一旦出現(xiàn)了偏差,比例調(diào)節(jié)立即產(chǎn)生調(diào)節(jié)作用用以減少偏差。比例作用大,可以加快調(diào)節(jié),減少誤差,但是過(guò)大的比例,使系統(tǒng)的穩(wěn)定性下降,甚至造成系統(tǒng)的不穩(wěn)定。

本文引用地址:http://m.butianyuan.cn/article/201611/320143.htm

積分調(diào)節(jié)作用:是使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無(wú)差度。因?yàn)橛姓`差,積分調(diào)節(jié)就進(jìn)行,直至無(wú)差,積分調(diào)節(jié)停止,積分調(diào)節(jié)輸出一常值。積分作用的強(qiáng)弱取決與積分時(shí)間常數(shù)Ti,Ti越小,積分作用就越強(qiáng)。反之Ti大則積分作用弱,加入積分調(diào)節(jié)可使系統(tǒng)穩(wěn)定性下降,動(dòng)態(tài)響應(yīng)變慢。積分作用常與另兩種調(diào)節(jié)規(guī)律結(jié)合,組成PI調(diào)節(jié)器或PID調(diào)節(jié)器。

微分調(diào)節(jié)作用,微分作用反映系統(tǒng)偏差信號(hào)的變化率,具有預(yù)見(jiàn)性,能預(yù)見(jiàn)偏差變化的趨勢(shì),因此能產(chǎn)生超前的控制作用,在偏差還沒(méi)有形成之前,已被微分調(diào)節(jié)作用消除。因此,可以改善系統(tǒng)的動(dòng)態(tài)性能。在微分時(shí)間選擇合適情況下,可以減少超調(diào),減少調(diào)節(jié)時(shí)間。微分作用對(duì)噪聲干擾有放大作用,因此過(guò)強(qiáng)的加微分調(diào)節(jié),對(duì)系統(tǒng)抗干擾不利。此外,微分反應(yīng)的是變化率,而當(dāng)輸入沒(méi)有變化時(shí),微分作用輸出為零。微分作用不能單獨(dú)使用,需要與另外兩種調(diào)節(jié)規(guī)律相結(jié)合,組成PD或PID控制器。

//PID參數(shù)設(shè)定常數(shù)(放大2倍)
#define Kp 15 // 實(shí)際7.5
#define Ki 3 // 實(shí)際1.5
#define Kd 25 // 實(shí)際14.5

void adcpro()
{

signed int tempP,tempI,tempD,TempOut;

// PID
tempP = Tparam[ path *2 ] - TpreTeat[path]; // 計(jì)算 e(t)..基本偏差
tempSigmaEt[path] += tempP; // sigma e(t)..累計(jì)偏差積分項(xiàng)
if (tempSigmaEt[path]>60) tempSigmaEt[path]= 60;// 過(guò)度積分的極限處理
if (tempSigmaEt[path]<-60) tempSigmaEt[path]= -60;
tempD = (tempP - tempEt[path]) * Kd; // Kd * (e(t)-e(t-1))微分項(xiàng)
tempEt[path] = tempP; // 紀(jì)錄e(t)給下一次用e(t-1)比例項(xiàng)
tempI = tempSigmaEt[path] * Ki; // Ki * sigma e(t)積分部分

TempOut = (tempP * Kp + tempI + tempD)/2; // 綜合輸出函數(shù)
if (tempP>25)
{
TempOut = 200;
tempSigmaEt[path]=0;
}
else
{
if (TempOut<0)
{
TempOut = 0;
}
else
{
if(TempOut>200)
{
TempOut=200;
}
}
}
if (tempP<-2)
{
TempOut = 0;
}
hottimer_set[path] = TempOut;

if ( Tparam[ path *2 ] < 50 )
{
Tparam[ 8 ] &= ~( 0x11 << path ); //如果不需要加溫則清除出錯(cuò)標(biāo)志
};
}



評(píng)論


技術(shù)專區(qū)

關(guān)閉