如图,记录最近的3个脉冲边沿及其发生时间。如果令距当前时间最近的一个脉冲边沿为(0,0),则再之前为(-Tn, -Xn),再之前为(-Tn - Tn-1, -2Xn)。由于Tn,Tn-1,Xn均为可变的量,因此不便于用它们直接描述公式。因此,可设x1 = -Tn, y1 = -Xn ...,则距当前时间最近的一个脉冲边沿为(0,0),再之前为(x1,y1),再之前为(x2,y2)。如果一条一元二次方程f(x)=ax^2+bx+c经过这三个点,则可用下面方法求出其三个系数:
denom = x1 * x2 * (x1 - x2)
A = (x2 * y1 - x1 * y2) / denom
B = (x1^2 * y2 - x2^2 * y1) / denom
C = 0
上面这段代码,是从网上截取的一段代码化简而成的。原代码为:
denom = (x1 - x2)(x1 - x3)(x2 - x3)
A = (x3 * (y2 - y1) + x2 * (y1 - y3) + x1 * (y3 - y2)) / denom
B = (x3^2 * (y1 - y2) + x2^2 * (y3 - y1) + x1^2 * (y2 - y3)) / denom
C = (x2 * x3 * (x2 - x3) * y1 + x3 * x1 * (x3 - x1) * y2 + x1 * x2 * (x1 - x2) * y3) / denom
这是求【通过平面内3个点的抛物线的系数】的公式,将其中的x3和y3替换为0即可。
获得系数之后,将Δt代入f(x)=ax^2+bx+c中,即可求出估测的ΔX.