小弟在官方网站上下载的程序后,有一段关于从机时间调整的程序有些看不懂,求助。时间调整的频率调整模块中用到了PI控制器,哪位大神能解释一下这个的作用是什么啊
/* the PI controller */
offsetNorm = ptpClock->currentDS.offsetFromMaster.nanoseconds;
/* the accumulator for the I component */
ptpClock->observedDrift += offsetNorm / ptpClock->servo.ai; 这个是干什么用的???
/* clamp the accumulator to ADJ_FREQ_MAX for sanity */
if (ptpClock->observedDrift > ADJ_FREQ_MAX)
ptpClock->observedDrift = ADJ_FREQ_MAX;
else if (ptpClock->observedDrift < -ADJ_FREQ_MAX)
ptpClock->observedDrift = -ADJ_FREQ_MAX;
/* apply controller output as a clock tick rate adjustment */
if (!ptpClock->servo.noAdjust)
{
adj = offsetNorm / ptpClock->servo.ap + ptpClock->observedDrift; 这个是干什么用的啊???
adjFreq(-adj);
}
谢谢各位大神了啊~
|