2024-05-22 08:39 AM
[Basic Info]
We're currently having issues with our custom board.
It is based on the G431RB in FOC and 3-Shunt mode, with a DRV8323RS as the gate drive and for amplifying and attenuating the current measurement.
The motor is a low-inductance (8.1µH) high-power BLDC motor with integrated Hall-sensors.
The System is set up as an inverter in 3-Shunt mode, with all three current measurements using one ADC (hardware requirement).
MCSDK Version used is 6.2.1, with STM32 FW for the G4 being V1.5.1 (as recommended) in HAL mode.
Following tests were performed to verify the proper function of the hardware:
- Check of the hardware for shorts and proper voltages
- Check of the gate drive signals for correct switching, including dead times (generated by the gate driver)
- Check of the current measurement paths, including amplification and conversions inside the library (the current values output by the Motor Pilot properly represent the voltages measured at the shunts)
- Check if the actual motor parameters correspond to the delivered datasheet (Motor Profiler is unable to measure the motor, probably due to its low inductance, see this issue)
[The Issue]
When trying to start the motor in closed-loop mode, the system pulls excessive current so that the gate driver resets and the controller goes into undervoltage.
The High Frequency Plot shows currents in excess of the maximum measurable current of 150A on both I_A and I_B right at the start.
The Rev-up sequence is set up as follows: Phase 1 - 1000ms @ 10A, Phase 2 - 2000ms @ 20A, all other phases 0ms @ 50A. However these settings seem to be disregarded.
We also tried running the motor in open-loop mode, there it runs perfectly fine while pulling reasonable currents.
My conclusion is thus that something must be wrong in the control loop.
Could the fact that the drv inverts the current signal be an issue? See this thread.
Please request any further information required to fix this issue, as I'm running out of ideas as to the cause of this.
Solved! Go to Solution.
2024-05-22 10:02 AM
Hello DMeie.2
Yes it could be an issue, you may need to set a negative gain for the current sensing which is supported in MCSDK 6.2.1 version.
Best regards
2024-05-22 10:02 AM
Hello DMeie.2
Yes it could be an issue, you may need to set a negative gain for the current sensing which is supported in MCSDK 6.2.1 version.
Best regards
2024-05-24 06:17 AM
I changed the current sensing to negative gain, as documented in the mentioned thread, including taking care about using the correct PID values.
And indeed, the motor properly starts up now!
That seems to have been the issue after all.
I recommend adding this information to the documentation of the Motor Control Boards Description.