上面的方法,其实就是用一条直线,将当前时间之前的两个采样点连起来,然后将这条直线向后延伸到当前时间,得出当前的位置。换句话讲,我们通过将两个解代入一个匀速直线运动方程(X=kT+b),求得方程的系数,并将当前时刻带入求解出的方程,得出当前位移。
因为匀速直线运动的方程是一次的,求系数只需要两个解,因此只需要Tn,Xn两个测量值。但是,电机总是要加减速的,所以如果只用匀速直线运动方程来描述,在加减速的过程中就会出现之前所说的误差。因此,下面我们把运动方程改为匀加速直线运动。这就需要假定,相邻时刻之间加速度的变化很小,可以忽略。
根据高中物理的知识,设加速度a不变,位移可以写作:
x = 1/2aT平方 + bT + c,其中 b为初始速度,c为初始位移。这是一个二次方程,需要三个解才可以算出系数,因此需要Tn, Tn-1, Xn, Xn-1四个测量值。有的同学可能会问,为什么Xn和Xn-1都需要测量,它们不是相等且已知的吗?好吧,电机在正转的时候,Xn是正的,反转的时候Xn就是负的,因此Xn和Xn-1的绝对值是固定的,但符号不一定相同。而且,在电机转速过0的时候,Xn有可能为0(两次经过同一个编码器信号边沿)。
先去吃饭,有空再写。