?61份资料+6场技术演讲,学习抽奖两不误
?学习新知、下载资料,赢取精美礼品!
?答题赢入门套件!
?轻松实现低功耗和小尺寸的最佳平衡
2018.09.18-2019.01.25
图6增量式PID算法流程图
对应图6算法流程图,PID控制部分实现程序如下:
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=(unsignedint)(DACVoltageValue*4096/2.5);
PrevError=LastError;
LastError=Error;
LastAttenuation=Attenuation;
这里,DACVoltageValue的值由可调衰减器的传递函数决定,实际程序中给出的参数是经系统线性校正后的参数。理想情况下,假设可调衰减器的传递函数为:衰减量=k*控制电压+b,则DAC的输出应为式(8)所示。
(8)
图7所示为采用增量式PID算法,在系统输出功率为-1dBm时,调整其输出功率为-10dBm的实测曲线。
图7改变期望输出功率后的变化曲线(增量式PID算法)
5.结论
由前面的测试结果可见,在同样的测试条件下,采用位置式PID算法的时候会出现过冲的情况,增量式控制虽然只是算法上作了一点改进,却避免了这种情况的发生。且由于计算机输出增量,所以误动作时影响小,必要时可用逻辑判断的方法去掉。算式中不需要累加,控制增量的确定仅与最近几次的采样值有关,所以较容易通过加权处理而获得比较好的控制效果。因此,建议采用增量式PID算法来实现基站功率的稳定控制。