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.
We are using the 28069 processor and the DRV8301. My firmware is very similar to the lab 10. The motor is connected to a gearbox so that on startup it is always loaded to some level but not full load. It has worked very well but we have one issue that we can't isolate and I need assistance. On intermittent occasions the motor seems to stall. It is not often but on those occasions the motor emits a very loud sound that would be described as grinding sound. It is in the motor not the gearbox. The motor will jerk and attempt to run but it is very slowly if at all. It sounds as though the motor is self destructing. If the system is shut down and power restored the issue will go away and it may work correctly for minutes, hours, or days until it occurs again.
We have checked the power supply for any glitches and found none. The circuit design is a replica of the
I assumed at first that the motor was hitting a section of the rotation that was problematic and it simply needed a "bump" to get started. That does not seem to be the issue. Due to the gearbox which is connected to a track system it appears the motor stays at exactly the same rotation point when the problem occurs, power is pulled and power is restored. It starts from that exact location just fine.
We have dozens of these in the field and we have a small percentage that exhibit this behavior.
Can someone give some suggestion as to what we should look at to try to trace this down?
Terry Harrison
I should add a bit more detail. This is not at a low speed that we are trying to run. The motor goes from a start to 6,000 rpm and stays there in our normal operation. I will refer to this as a stall but it is not exactly a stall. When this occurs occasionally it will not run but most of the "stalls" the motor actually runs it appears at about 1/4 to 1/2 speed in the correct direction. It almost seems that the controller is intermittently throwing glitches into the drive. It sounds like it is ripping itself apart. But power down and then restart and the exact same motor etc runs fine.
Is the issue only appearing during startup or restart? Did you initialize the related variables for re-start? Please refer to the comments below.
Having an incorrect Rs value (especially a value higher than the actual Rs) will make the start-up behave poorly. You might refer to chapter 14 "Managing Full Load at Startup, Low-Speed and Speed Reversal" in InstaSPIN-FOC and InstaSPIN-MOTION User's Guide
https://www.ti.com/lit/spruhj1
And did you have any measured current waveform for showing the issue?
Thanks for this response. I don't think this is the situation but I am going to evaluate as you suggest. The scenario that our application uses is that the motor starts up runs for short periods of time and then shuts down. Within seconds it is powered again and runs. Think of it as an intermittent application. When this problem occurs the motor has been in this on off arrangement for some significant number of seconds and the next time it gets switched on it does this behavior of not going to the correct speed and sounds like it is chewing up gears. Turn the power off and it all resets and works fine.
I am trying to capture the waveforms surrounding the failure but it is highly intermittent and I have been unable to capture it to this point. I will keep trying. What I am really trying to determine is at least a theory of what is happening and suggestion of what to monitor to try to catch.
As a related question. Is there a guide as to how the plots were created that show flux and angle? I also would like to know where the current was measured in the curves. I assume it is in the leg of one of the phases.
Within seconds it is powered again and runs.
What load is adding when restart the motor? Any current waveforms for showing this issue? Are there any issue if you try to reset the device and restart the motor?
As a related question. Is there a guide as to how the plots were created that show flux and angle?
You can try to use the Graph tool with datalog or PWMDAC as shown in lab01b and lab01c in the lab user's guide.
I have not tried to reset the device. I will try that - I have to make an access point in our card.
I am looking in Lab01 as you suggested and I do not see a "b" and "c" section.Is it another number you meant to refer to?
If you installed the motorWare by default, yes, you can find these two projects in the folder as below.
C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\drv8301kit_revD\f28x\f2806xF\projects\ccs\proj_lab01b
C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\drv8301kit_revD\f28x\f2806xF\projects\ccs\proj_lab01c
Thanks this is helping me to look at some of the parameters in the motor but the most puzzling issue at the moment is the screeching noise of the motor during our problems. It is really sounding like gears being ripped apart but will then run and sound fine. I have not been able to isolate how this is being done.
Checking the current waveform as shown in the lab guide. If yes, you can run the following labs. If not, check your hardware board.
If possible, try to run the same motor with TI EVM board first.
Ok this is at least getting us somewhere. I still can't replicate the screech sound but I am becoming more convinced that it is a type of stall occurring. Can you point me in the right direction to some techniques to sense the stall condition in the HAL firmware or any documentation?
It seems to be coming clear there is a stall like situation happening. Can you point me to any information that can help how to detect and react to a stall situation in the firmware?
As mentioned above. You need to make sure that the current sensing signals are correct on your own board as the following steps.
Please follow the steps to change the example labs and verify the current and voltage signals of the hardware board before run the lab02a/b/c since you are using your own board. Make sure that the current and voltage sampling works well.
1. Please refer to the guide, motorware_hal_tutorial.pdf below, to change the peripherals configuration like PWM and ADC in hal.c and hal.h according to your hardware board.
C:\ti\motorware\motorware_1_01_00_18\docs\tutorials
2. Set correct parameters based on the hardware board in user.h. You can refer to the Chapter 5 Managing Motor Signals of InstaSPIN-FOC and InstaSPIN-MOTION User's Guide to calculate and define the value of these variables.
#define USER_IQ_FULL_SCALE_VOLTAGE_V (xx)
#define USER_VOLTAGE_FILTER_POLE_Hz (xx)
#define USER_ADC_FULL_SCALE_VOLTAGE_V (xx)
#define USER_IQ_FULL_SCALE_CURRENT_A (xx)
#define USER_ADC_FULL_SCALE_CURRENT_A (xx)
3. Make sure that the sign of the current coefficient in HAL_readAdcData() in hal.h matches the current sensing circuit. Refer to chapter 5.2.2 Current Feedback Polarity in InstaSPIN user's guide (SPRUHJ1, https://www.ti.com/lit/spruhj1) to set the sign of the current scale factor.
static inline void HAL_readAdcData(HAL_Handle handle,HAL_AdcData_t *pAdcData)
{
_iq current_sf = (+/-)HAL_getCurrentScaleFactor(handle);
}
4. Follow the instaSPIN lab guide to use lab01b and lab01c to verify your own hardware since you are not using the TI EVM kits and then run the subsequent labs.
5. Using the lab02b or lab02c and tuning the identification variables parameter below to identify the motor parameters, and use the identified parameters to run the motor if the current and voltage sensing signals are verified and good.
#define USER_MOTOR_RES_EST_CURRENT (1.0) // A - 10-30% of rated current of the motor
#define USER_MOTOR_IND_EST_CURRENT (-1.0) // A - 10-30% of rated current of the motor, just enough to enable rotation
#define USER_MOTOR_MAX_CURRENT (5.0) // A - 30~150% of rated current of the motor
#define USER_MOTOR_FLUX_EST_FREQ_Hz (40.0) // Hz - 10~30% rated frequency of the motor