基于ADUC7026的數(shù)字PID算法在基站功率控制中的應(yīng)用
增量式PID算法流程
對(duì)應(yīng)圖6算法流程圖,PID控制部分實(shí)現(xiàn)程序如下:
ActualOutputPower=25*(float)ADCForwardPowerResult/1024-43;
Error = SetOutputPower - ActualOutputPower;
DeltaAttenuation = Proportion*(Error-LastError)+Integral*Error+
Derivative*(Error-2*LastError + PrevError);
Attenuation = DeltaAttenuation + LastAttenuation;
DACVoltageValue = (float)(Attenuation*3/31 + 3.887);
SetDACValue = (unsigned int)(DACVoltageValue*4096/2.5);
PrevError = LastError;
LastError = Error;
LastAttenuation = Attenuation;
這里,DACVoltageValue的值由可調(diào)衰減器的傳遞函數(shù)決定,實(shí)際程序中給出的參數(shù)是經(jīng)系統(tǒng)線性校正后的參數(shù)。理想情況下,假設(shè)可調(diào)衰減器的傳遞函數(shù)為:衰減量=k×控制電壓+b,則DAC的輸出應(yīng)為式(8)所示。
DACVoltageValue=(Attenuation-b) / k (8)
圖5 所示為采用增量式PID 算法,在系統(tǒng)輸出功率為-1dBm 時(shí),調(diào)整其輸出功率為-10dBm的實(shí)測(cè)曲線。
結(jié)語
由前面的測(cè)試結(jié)果可見,在同樣的測(cè)試條件下,采用位置式PID算法的時(shí)候會(huì)出現(xiàn)過沖的情況,增量式控制雖然只是算法上作了一點(diǎn)改進(jìn),卻避免了這種情況的發(fā)生。且由于計(jì)算機(jī)輸出增量,所以誤動(dòng)作時(shí)影響小,必要時(shí)可用邏輯判斷的方法去掉。算式中不需要累加,控制增量Du(k)的確定僅與最近幾次的采樣值有關(guān),所以較容易通過加權(quán)處理而獲得比較好的控制效果。因此,建議采用增量式PID算法來實(shí)現(xiàn)基站功率的穩(wěn)定控制。
評(píng)論