A memory section stores values of the runout component, which are obtained in
respective
predetermined radial positions on the disk. A determining section selects, from
the memory section, a value of the runout component corresponding to a target position.
A runout detector uses, as an initial value for adaptive learning, the value of
the runout component selected by the determining section, and calculates, by the
adaptive learning, a value of the runout component contained in a position error
between a head position and the target position. A feedforward controller calculates
a feedforward value used to suppress the runout component calculated by the runout
detector. A feedback controller calculates a feedback value from the position error.
An adder generates, from the feedback value and the feedforward value, a control
amount used to position the head in the target position.