2017-11-30 03:57 AM
Greetings!
For the past few weeks, I have been working with the SPIN3201 Eval-Board to control a small BLDC motor which is usually used for electrical-powered Longboards. I have chosen a purposely slow model with only 60KV (rpm/V), which I want to run on 12V DC Voltage (max. speed of 720rpm).
I was able to set up the board, the internal Hall-Sensors, the Firmware and I measured/estimated the neccessary motor parameters; now I can control the rotation Speed of the motor quite well using an external Servo tester (basically a voltage divider) or the Motor Monitor within the ST Motor Workbench.Now, I have some issues when I want to set the motor to a particulary low speed compared to the maximum, e.g. 100rpm or lower. Once I set the speed ramp to such a value, the motor either comes to a stop or does some fidging around, clearly showing that the FOC is not aligned with the current rotor position. Since I am quite sure that the
motor parameters are correct at the moment, I tried adjusting the PID constants of the Torque-, Flux and Speed-control, which brought nice results with higher Speeds (good adjusting time, no overshoot, no offset), but the lower speeds still show the same behaviour. When I apply small loads during these moments, the motor is not able to bring the neccessary force to rotate and makes noticable jumps between the phases. Since my application has a focus on low rotation/high torque scenarios, which should fit the motor quite well (1800W, up to 55A peak current and 8.5Nm of tourque), I am searching for more ways to adapt the FOC SDK for smoother and more robust control schemes.Does anyone had similar experiences with another motor and can give me a few hints where to look?
For those wo are interested, this is the motor I currently use:
And here is the list of parameters that are not stated and I needed to measure manually:Pole pairs = 7R_s = 0.55 OhmL_s = 0.5 mHB_Emf constant = 12.5 Vrms/krpmMany thanks in advance,Max Schachtschabel#foc-sdk #low-speed #motor-control #field-oriented-control #sdk-foc #steval-spin32012018-07-11 06:46 AM
I my case, if I enable the hall sensor on my motor the low speed performance improves a lot. You my want to try a encoder on your motor shaft or a reduction gearbox?
2018-07-12 06:54 AM
In sensorless application with SDK version 4.3, I have changed the function STO_CalcAvrgMecSpeed01Hz for increase the range of speed. It's a problem of integer approssimation, before the function was
/* The maximum variance acceptable is here calculated as a function of average
speed */wAvrSquareSpeed = wAvrSquareSpeed / (int16_t)128 *
(int32_t)(DCLASS_PARAMS->hVariancePercentage);and I changes as follow
/* The maximum variance acceptable is here calculated as a function of average
speed */ wAvrSquareSpeed = wAvrSpeed_dpp * wAvrSpeed_dpp; if (wAvrSquareSpeed >= 0x100000) wAvrSquareSpeed = wAvrSquareSpeed / (int16_t)128 * (int32_t)(DCLASS_PARAMS->hVariancePercentage); else wAvrSquareSpeed = wAvrSquareSpeed * (int32_t)(DCLASS_PARAMS->hVariancePercentage) / (int16_t)128;Also in motor control workbench I change the parameters of STO PLL KP and KI, with lower values, for KP a value / 2 and KI / 10. You must try by drawing the speed with a rate of 1 or 2 ms, depends of the motor and PWM frequency
2018-09-24 07:46 AM
Hello,
I have similar needs for my application as well; very low speed, high torque. I am using a 57BL90 motor with Halls, 90 watts, testing at 24vdc. I am using the ST workbench to specify all of the parameters then generate the *.h files which are downloaded using Keil. I am able to acheive good high speed motor control but very low speeds are very choppy and out of control. Even using torque mode only, the motor jumps and has a very uneven torque output. I will eventually be running the motor in position control mode commanding torque or speed from the position control loop. How can I get smooth torque and/or speed control of the motor at very low speeds??
2021-06-15 01:44 AM
The question has been moved from the "Motor Control Hardware" section to the "STM32 Motor Control" section (the question is about the STM32 MC SDK).
Best regards