Other Parts Discussed in Thread: MCT8316Z
Tool/software:
HI!
I'm tuning a small high speed 33V motor low current (5.5ohm resistance between its phases) that runs up to 40K RPM.
When spinning IDLE at max speed, it draws 100-150mA from the Supply. It rarely goes up to 1A under heavy load.
At 40k RPM it runs at 667Hz, at 1K RPM it runs at 20Hz
I can fast start it in less than a second from 0 to Full Speed, in open loop and also in closed loop speed mode, tweaking KP and KI.
But I need it to mantain it's speed at 1K RPM, which is 2% PWM in closed loop speed mode (or close to 0.16V - in the range of 0 to 3.3V if analog input is used). So I need it to work under load in this very slow speed and the motor should not stall under load. Closed loop PID should increase speed and current fast enough to keep this small speed stable under load, but this is not happening so far.
The PID works great keeping the speed under load until at 5% PWM (which is 4K RPM), but close to 2K-3K RPM, if I touch my finger with little pressure on the motor's shaft it stalls and stops. So PID is not being able to keep the speed at these lower speeds and stalls and the motor stops.
I don't need it to work the same way in the full speed range. I just need this slow speed constant speed in situations where I set the max speed to 5K RPM. So I could add two settings for this motor, one for higher speeds and one for this lower speeds (for instance from 5K to 1K RPM). But right now I'm trying a single setting for all.
I'm struggling to make it work in closed loop speed at these lower speeds (2%-3% PWM) without stalling and stopping.
I believe there's back-EMF generated at this lower speeds, because the motor runs in open loop at 2% PWM (1K RPM), but stalls easier if barely touched with a finger on it's shaft.
Below, this is what I've done so far to tune it... If anyone can point if it's possible in some way to improve it in these lower speeds I'd aprreciate!
I used as a base the Fast _start configuration and modified each register below:
- At ISD_CONFIG I enabled ISD, Bemf Stationary to 15mV (2h)
- At START_MOTOR_STARTUP1 I set the Motor to ALIGN and Align Voltage ramp rate at 100V/s (Bh)
- At FAST_START_MOTOR_STARTUP2 I set the Open loop Duty Cycle Limit at 10%, OLAccel_1 at (18h) 200hz/S / OLAccel_2 at (15h) 125hz/S , Open to Closed loop handoff to 8hz (2h) and and Min Operationa Duty at 1.5%
- At CLOSED_LOOP1 I set the Closed Loop Accel and Decel Rate to 32767V/S, Output PWM at 100Khz (but tried even at 5Kz), High Side PWM Modulation, Single-Moded PWM mode.
- At CLOSED_LOOP2 I set the Motor Stop to Recirculating, AVS enabled, changed CBC from 0.1V to 1.5V with no difference at my desired low speed)
- CLOSED_LOOP3 was set at the Default Fast_Startup settings.
- At CLOSED_LOOP4 I only enabled Fast deceleration
- At CONST_SPEED I'm still messing with Kp and ki, but 500 in KP (decimal) and 100 in KI (decimal) seems good. Upper saturation limit I set in 100% and lower saturation limit in 0%. Closed loop mode set to SPEED LOOP
- At CONST_POWER I set the speed to 40K RPM (667HZ)
- 150_DEG_PH_PROFILE was set the DEFAULT
- 150_DEG_TWO_PH_PROFILE was also set to default
- 150_DEG_THREE_PH_PROFILE was also set to default
- TRAP_CONFIG1 was also set to default
- TRAP_CONFIG2 I only changed Duty Cycle limit during Align to 10%
- Didn't changed anything on the FAULT_CONFIG1
- At FAULT_CONFIG2 the Zero Duty Threshold was set to (0h) 1%
- At GD_CONFIG1 Slew Rate is set to 200V/us, OverVoltage Protection was set to Disable (Using 33V DC)
- At GD_CONFIG2, only set the 3.3V output in the Buck regulator
- At PIN_CONFIG1, I set it to PWM mode in the Speed Control Mode
- PIN_CONFIG2 and DEVICE_CONFIG default values were kept.