When an ignition switch is turned ON, a CPU obtains a battery voltage
detected by a voltage sensor and calculates a voltage difference between
a battery voltage stored in ROM when the ignition switch was turned off
and the obtained battery voltage. The CPU then compares the voltage
difference with a determination value. If the voltage difference is less
than the determination value, the CPU sets a polarization voltage stored
in the ROM before a not-in-use period to a polarization voltage initial
value. If the voltage difference is equal to, or greater than, the
determination value, on the other hand, the CPU sets the polarization
voltage initial value to 0. The CPU then calculates an open circuit
voltage of a secondary battery using this polarization voltage initial
value, and calculates a state-of-charge of the secondary battery from
that calculated open circuit voltage.