Torque control problem when running SimpleFOC in B_G431B_ESC1

Hi guys, I meet some problems when running SimpleFOC Torque Control in my hardware.

My problem is When the Q-axis current I set is too low, the motor does not rorate, but the value of Q-axis and D-axis currents are correct at this time (for example, when I use motor.move(0.1), current.q is indeed equal to 0.1, and current.d is indeed 0, although the motor don’t rotate at this time).

When I set Q-axis too high, the motor can rotate. But at this time, the D-axis current is so high that the SimpleFOC controller can not set it to zero. This result is obviously wrong. (for example, when I use motor.move(0.3), current.d is about 2.5! The motor will stop after a while)

Where the problems may lie?

My hardware:
Motor: T-motor MN4004(KV 300)
Shield: B_G431_ESC1