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.
To control a motor we use the TMS320F28069M as co-controller. We want to control the revolution speed. As base for our project we used Lab5b of motorware 1.01.00.18 which we upgraded to control two motors. The reson for that is we want to have to oportunity to re-identify motor parameters and change those parameters on-the-fly without reflashing the TMS320.
We have now following problem: it happens that an identified motor does not start properly if the rotor is in a certain position. So far we found out it got better if we increase the accelleration but unfortuantely it still happens. Changing directions while the motor is running works as expected. Which paramters have influence on the start of the motor?
Could you provide more information about your questions as below that will help us to resolve the problem?
1. What ISR/controller frequencies are you using for the two motors?
2. Are you using a single ISR for dual motor, or two ISRs each motor?
3. Did you run the identification for the two motors at the same time? Is there any issue if you just run/identify a motor at any time?
4. Is there any load on the motor during the identification?
BTW, it's great if you have captured any current waveforms to show the issue.
1. 45kHz
2. seperate ISR for both motors
3. no, only one motor needs identification, the other one works well with parameters determined during development
4. no
And here are the current waveforms
The first one shows a motor start without issues
This one shows a motor start that has some trouble starting up but still feels acceptable
The next 2 are motor starts that have very bad behaviour but also took nearly long enough so our software would detect an emergency stop condition (expected RPM not within range for ~1s)
Unfortunately I could not capture the motor doing 1 rotation in 1 second when started
Any hint how I can get motor start smoother?
Or do you need any further information?
The ISR for motor control is too high for dual motor, you have to use a lower ISR frequency (USER_ISR_FREQ_Hz) like 10kHz, not PWM frequency (USER_PWM_FREQ_kHz).
You might refer to lab10d for dual motor control.
My current values are:
USER_PWM_FREQ_kHz_M1 = 45.0
USER_NUM_PWM_TICKS_PER_ISR_TICK_M1 = 3
This means my ISR frequency is 15kHz right now and this is already too high?
I'll give it a try and change USER_NUM_PWM_TICKS_PER_ISR_TICK_M1 to 4 or 5.
The maximum value of the USER_NUM_PWM_TICKS_PER_ISR_TICK is 3 for F2806x, you should use a lower USER_PWM_FREQ_kHz for dual motor control.
Please refer to the lab10d for dual motor control in motorWare.
Sorry for the late reply,
I could test it now with USER_PWM_FREQ_kHz reduced down to 30.0 kHz but the motor still has troubles starting.
In the comments for the frequencies there is a hint that one should use 45.0 kHz for low inductance high speed motors. Our motors have low inductance and should run in a range of 3000 to 42000 rpm.
You might set USER_PWM_FREQ_kHz=30.0kHz and USER_NUM_PWM_TICKS_PER_ISR_TICK=2, or USER_PWM_FREQ_kHz=45.0kHz and USER_NUM_PWM_TICKS_PER_ISR_TICK=4. And use the lab02c to identify the motor parameters for other labs.
And please take a look at chapter 14 (Managing Full Load at Startup, Low-Speed, and Speed Reversal) in InstaSPIN USer's Guide.
InstaSPIN-FOC™ and InstaSPIN-MOTION™ User's Guide