This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I am running a 42 pole (21 pairs) relatively low inductance motor on some custom hardware. My PWM frequency is currently 30KHz. Shown below are a couple of current plots. The top trace in each plot window is the current in one of the phases, as measured with a current meter. The lower trace is the output of one of my positively phased current sensor (it is not on the same as the current meter). As you can see at 1800RPM things look quite good, but at 2300RPM the current waveform degrades seriously. At the higher voltages and RPM it is so bad the motor does not work. What would you suggest. I tried to bump my PWM frequency up to 45KHz but the system would not run for some reason - there did not seem to be any error listed. In any case I need to know what you think the issue is and how best to proceed. If it I do need to increase the PWM frequency above 30KHz, do you have some written instructions that tell me what else I need to change besides just the PWM frequency #define? I am running on a 90MHz TMS320F28069F. Thanks.
1800RPM
2300RPM
Changing the tick count to 2 allowed me to run at 45KHz. However the motor still does not behave well at the high rpms. Here is what I have
42 Pole (21 pairs) motor at 4000RPM => 1400Hz.
Voltage filter pole is at 1520Hz. USER_IQ_FULL_SCALE_FREQ_Hz is set to 1600.0.
I am running the code from lab 3 with overmodulation set to 0.666666
I changed the PWM frequency to 45KHz and decimated it by 2. As you can see from the 2300RPM plot below the current waveform seems much better at that speed. The second plot shows the voltage waveform, which seems to be as expected as well. Despite the improvement, at higher RPMs the motor starts slowing down and drawing a very large amount of current. I increased my PWM to 60 and my decimation to 3, but it didn't work. Do I need to change the control decimation as well? What would you suggest I do next?
Current waveforms at 2300RPM/45KHz (notice how much better than previously). Top trace = current in motor phase wire, bottom trace signal going in to ADC (different phases).
Voltage into ADC, 2300RPM
Hi Yanming,
1) My maximum RPM is 4000 which, with 21 pole pairs, gives me a frequency of about 1400Hz. The documentation says my voltage filter pole should be set higher than that so I set it to 1520Hz. Is it safe to bring it down that low?
2) I have already done this
3) I will see what I can do in this regard.
If you could tell me your thoughts regarding #1 that would be helpful. Also, does the fact that 45KHz worked better than 30KHz indicate the issue is firmware, or could it still be hardware?
Regards,
Tim
Yanming,
I moved my voltage pole from 1520Hz to 471Hz and changed my user.h file to read:
#define USER_VOLTAGE_FILTER_POLE_Hz (471)
My capacitors for the voltage filter are right at the uP pins as outlined in your docs. My current sense does not have any caps at the pins, but appears clean. Everything ran fine but at the higher speeds the system lost sync and went nuts and blew one of my pre drivers.
I am at a loss as to what to do. Could you please tell me how to proceed? I am ready to throw in the towel and look for another solution for my motor.
Regards,
Tim
Hi Yanming,
Thanks for the quick reply. We are driving the motor off of lithium batteries at 12S so the absolute max voltage is about 50V and the nominal voltage is more like 44V. Motor drive current should be 15A or so at top speed ~3700RPM (42 poles). Obviously current will spike if we accelerate fast but for testing I don't need to accelerate quickly.
I have a DRV8305-Q1EVM. It doesn't have the same processor, but if I can at least prove the FOC stuff that would be a great start. It is rated for 45V. Do you think it can handle the 50Max volts? At this point I am willing to risk things if you think it has potential of working. Should I give that a try? If so could you let me know how to set the parameters to optimize performance on that hardware?
Thanks,
Tim
Yanming,
I set up the DRV8301 REVD EVM, created a new workspace and loaded the projects. I then ran through the procedure for lab2d. When I went to characterize the motor it started drawing very large currents. I stopped things and went back and adjusted the user.h for my higher voltages (I set the voltage from 24 to 60) and I increased my PWM frequency 30KHz. I ran that test again during RoverL it hummed loudly drawing about 800mA @ 30V, and then when it went to estimate Rs it draw very large currents, even though my estimation current was to be 3A. My supply is set to limit at 19A and it is limiting during estimation of Rs. I have attached my user.h for reference. Thank you for your help... I seem to really need it.
Tim
Hi Tim,
Please use lab2b or lab2c for F28069F/M controlCard Plus DRV8301 EVM Kit to identify the motor parameters first, the lab2d will use fpu32. And you can use the same parameters as you used before.
Hi Tim,
Very sorry for the delay, I just tested and confirm the lab02b can work well to identify motor parameters as you listed in the post. Maybe, it's better to use lab02 since your motor is low inductance, and set the USER_MOTOR_RES_EST_CURRENT, USER_MOTOR_IND_EST_CURRENT, USER_MOTOR_MAX_CURRENT and USER_MOTOR_FLUX_EST_FREQ_Hz in user.h based on the rated current and frequency of your motor. The motor parameters identify well if it run smoothly during the process. You need to change these 4 parameters if the motor vibrate or stop.
You need to tune the PI parameters for high speed, it's better to decrease the Ki of speed and current for high speed, especially using very small Ki for speed regulator.