Batteries controlling accuracy of encoders?

Having a problem this year with using encoders and them being inaccurate when the 7.2 v batteries are getting lweak.
Last year we used timing for all the autonomous moves and realized dying batteries and timing code does not work correctly.
We moved on to the more accurate encoders because thought since encoders work on ‘clicks’ not time we would have solved our accuracy problem. — Not working. The batteries ( which are not marked right in my opionion. Full charge is 8.2v and nearly dead is 6.8v, and 7.2v acts like its dead most times), when in the 7.7v range makes our autonous move slower than full charge. We are constantly changing the Robot C code. In fact, at one time we had programs or ‘full’ charge blue and ‘weak’ battery blue and the same for red.
The batteries are from last season and we have 6 so we are constantly swapping out. We are using one for cortex and one for battery expander.
Anyone as frustrated.

Please post the code you are using using the

 tags; while a program using encoder based movement will move slower as the battery starts to drain, it should **not** greatly affect the distance the robot travels.

However, this does depend on the physical design of the robot a bit; if you have a heavier robot moving at a high speed value, the robot may drift past the desired end point. As the battery drains and the robot moves slower, this drift factor starts to diminish; even though the target encoder distance value has not changed.

Heavy robot and fast speed. Guess momentum does equal mass x velocity.
thanks