A method for controlling an asynchronous induction motor, comprising: a) determining a target value of d-axis current according to a target value of q-axis current of the asynchronous induction motor; b) determining a correction value of the target value of the d-axis current based on q-axis voltage and d-axis voltage of the asynchronous induction motor; and c) determining target values of the d-axis voltage and the q-axis voltage of the asynchronous induction motor based on the correction value of the target value of the d-axis current and the target value of the q-axis current, characterized in that step b) comprises: b1) determining a voltage amplitude value based on the q-axis voltage and the d-axis voltage of the asynchronous induction motor, wherein the q-axis voltage and the d-axis voltage are sampling values at the current time or target values determined at the previous time; b2) if the determined voltage amplitude value is greater than a preset threshold, determining correction amount of the target value of the d-axis current based on a difference between the preset threshold and the voltage amplitude value; and b3). if the determined voltage amplitude value is less than or equal to the preset threshold, the correction amount of the target value of the d-axis current is determined as 0; and wherein the preset threshold is the maximum allowable value of the voltage amplitude. a) determining a target value of d-axis current according to a target value of q-axis current of the asynchronous induction motor; b) determining a correction value of the target value of the d-axis current based on q-axis voltage and d-axis voltage of the asynchronous induction motor; and c) determining target values of the d-axis voltage and the q-axis voltage of the asynchronous induction motor based on the correction value of the target value of the d-axis current and the target value of the q-axis current, characterized in that step b) comprises: b1) determining a voltage amplitude value based on the q-axis voltage and the d-axis voltage of the asynchronous induction motor, wherein the q-axis voltage and the d-axis voltage are sampling values at the current time or target values determined at the previous time; b2) if the determined voltage amplitude value is greater than a preset threshold, determining correction amount of the target value of the d-axis current based on a difference between the preset threshold and the voltage amplitude value; and b3). if the determined voltage amplitude value is less than or equal to the preset threshold, the correction amount of the target value of the d-axis current is determined as 0; and b1) determining a voltage amplitude value based on the q-axis voltage and the d-axis voltage of the asynchronous induction motor, wherein the q-axis voltage and the d-axis voltage are sampling values at the current time or target values determined at the previous time; b2) if the determined voltage amplitude value is greater than a preset threshold, determining correction amount of the target value of the d-axis current based on a difference between the preset threshold and the voltage amplitude value; and b3). if the determined voltage amplitude value is less than or equal to the preset threshold, the correction amount of the target value of the d-axis current is determined as 0; and