A control system that controls a synchronous motor comprising a stator and a rotor, and having a magnet inside the rotor, the control system being characterized in that the synchronous motor having: i) a d-axis inductance with a local maximum point in a positive direction with respect to a positive d-axis current applied to the stator while the positive d-axis current increases, and ii) a d-axis inductance that monotonically decreases when the d-axis current increases to greater than the local maximum point, the control system further comprising: an inverter configured to output an alternating current for driving the synchronous motor; a gate command generating unit configured to generate a gate command for driving the inverter; a current detecting unit configured to detect a current value of the alternating current output by the inverter; a magnetic-pole position estimating unit configured to estimate a magnetic-pole position based on the current value detected by the current detecting unit and generate an estimation signal; a control unit that instructs, upon determination of magnetic-pole polarity, the gate command generating unit to generate a gate command for polarity determination so that a d-axis component of the current value detected by the current detecting unit represents a predetermined value; and a magnetic-pole polarity determining unit configured to calculate, if the gate command for polarity determination is generated, based on the estimation signal, a first inductance value based on a positive d-axis current and a second inductance value based on a negative d-axis current, compare the first inductance value and the second inductance value, and determine a larger one of the first inductance and the second inductance value as a north pole. i) a d-axis inductance with a local maximum point in a positive direction with respect to a positive d-axis current applied to the stator while the positive d-axis current increases, and ii) a d-axis inductance that monotonically decreases when the d-axis current increases to greater than the local maximum point, an inverter configured to output an alternating current for driving the synchronous motor; a gate command generating unit configured to generate a gate command for driving the inverter; a current detecting unit configured to detect a current value of the alternating current output by the inverter; a magnetic-pole position estimating unit configured to estimate a magnetic-pole position based on the current value detected by the current detecting unit and generate an estimation signal; a control unit that instructs, upon determination of magnetic-pole polarity, the gate command generating unit to generate a gate command for polarity determination so that a d-axis component of the current value detected by the current detecting unit represents a predetermined value; and a magnetic-pole polarity determining unit configured to calculate, if the gate command for polarity determination is generated, based on the estimation signal, a first inductance value based on a positive d-axis current and a second inductance value based on a negative d-axis current, compare the first inductance value and the second inductance value, and determine a larger one of the first inductance and the second inductance value as a north pole.