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.

BOOSTXL-DRV8305EVM: BLDC Motor running unstable in Lab02c, 3a/3b

Part Number: BOOSTXL-DRV8305EVM
Other Parts Discussed in Thread: MOTORWARE, LAUNCHXL-F28069M,

Tool/software:

Hello
I am trying to spin a T-MOTOR MN4004-25 300kV BLDC motor with a Launchxl-F28069M and BOOSTXL-DRV8305EVM using MotorWare (Last release).
When running lab 2c, The motor appears to be stable and vibration free during EST RampUp and Ls state. After identification, the motor is rough running (vibrates intensly) unless moved and or handled in some specific ways at which point it becomes stable again. Sometimes the vibration is so intense that the OVP on my lab power supply shuts off power. I have probed I_SENSE A  on the boostxl using an oscilloscope. 
Phase A current (voltage drop across shunt resistor R4 for Phase A. amplified and sent out to the launchxl on ISENSEA pin) during identification of RampUp:

During Rated Flux:

During Ls:

The last graph is closer to what I expect from a phase current for a bldc motor (looks close in MATLAB simulation for this hardware setup)
However, after identification is done, when running the motor, it is very rough and vibrates excessively unless rotated or handled in some way (there is an irremovable bearing on the shaft of the motor, perhaps CG changing has some effect on the torque or speed PI controllers. maybe FAST too?)
after identification and when running rough, the current looks as follows:

While it is smooth running after ID:

the last two graphs also apply to Lab 3b, when the motor runs with no identification.
I believe this issue cannot be a motor parameter issue (why would it run smoothly when moved/handled after identification?) so maybe it is a control loop (speed PI or torque PI) issue or an issue with the FAST estimator? I have checked connections.
motor parameters used:

#elif (USER_MOTOR == TMotor_Antigravity_4004_300kv)
#define USER_MOTOR_TYPE MOTOR_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (12)
#define USER_MOTOR_Rr (NULL)
#define USER_MOTOR_Rs (0.2621875555)
#define USER_MOTOR_Ls_d (0.000160895237)
#define USER_MOTOR_Ls_q (0.000160895237)
#define USER_MOTOR_RATED_FLUX (0.00984939188)
#define USER_MOTOR_MAGNETIZING_CURRENT (NULL)
#define USER_MOTOR_RES_EST_CURRENT (1.0)
#define USER_MOTOR_IND_EST_CURRENT (-1.0)
#define USER_MOTOR_MAX_CURRENT (4.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz (150) 

Note that I also used EST_FREQ 100 and 120 Hz with no apparent difference (100 hz appeared to be even less stable)
Motor parameters for some other successful project using the same motor and hardware kit:
https://github.com/open-dynamic-robot-initiative/user_config_f28069m_drv8305/blob/8ab4879222142fd232037e8d2e30d248ecb7b674/user_j1.h
The values given by the identification process in Lab 2C closely resemble the values in the project link above.
Using default hardware values for the BOOSTXL-DRV8305EVM and LAUNCHXL-F28069M
I would appreciate your advice on how to proceed with diagnosing this issue

  • Hello,

    Thank you for reaching out.

    I agree that it makes sense that the motor parameters are not the issue as it does spin smoothly after ID, but also it that would mean that the control/feedback should be fine also, it it is able to spin smoothly.

    I think we need to find out what exactly causes the shaky operation. 

    I am curious, when you handle/manipulate the motor in order to smoothen the operation, but then put it back to how it was before, does it return to rough operation? Or once it has been smoothed, will it never return to rough operation again?

    I think it does make sense that when the motor shaft experiences torque/load from the bearing that may mess with the operation. 

    What may be happening is that there is load on the shaft which causes the motor to demand more current. Can you make sure the supply is capable of supplying more than enough current to the motor? My current guess is that the rough operation comes due to your power supply hitting its current limit, which inhibits smooth operation.

    Thank you,

    Joseph

  • Hello 
    Thanks for the reply
    For your question:
    Usually when I find a "smooth position" and I maintain that position, the motor remains stable but any slight disturbance or movement is enough to cause intense vibrations which trip OVP on the bench supply.
    I have had it sit on the bench and spin at 0.6 kRPM for extended periods of time. 

    It is a relatively small bearing, The motor used to be connected to an external module with gears, I took the module off to eliminate any torque on the motor. attached in the reply you can find the motor and the shaft with the bearing. Would like to avoid taking it off as much as possible.

    As for the current, in user_j1.h, the max current is set to 4 amps and starting current at 1 amp. the bench power supply is rated for 0-30V, 0-5A (CC limit set at 5.1A) so I don't think current is an issue (Unless transient inrush current exceeds this? I don't think this is a factor with InstaSpin)

    Also, to clarify, by vibrations I mean the rotor experiences jitter (spins clockwise for some arc length then reverses direction). sometimes it recovers but often times it trips OVP (especially if it were spinning at anything above 600 RPM)
    Do you think the phase current graph can give a clue? I expect a motor controlled with SVM to have a current waveform similar to the image shown here:, based on my very limited understanding
    Space Vector Modulation - MATLAB & Simulink

    But as you can see in the graphs I attached, when smooth running, the current graph does not at all look similar.
    Whereas during LS identification, it does. Why is this? 

    Furthermore, investigating speed and torque variables in the gMotorVars array in CCS grapher, there is "ripple" / over-undershoot even when spinning relatively smoothly. I can attach pictures when I get back.

    I would appreciate your opinion, thanks again.

  • Hello,

    Yes, I agree that the waveform should look like the 3rd image you included in your initial post. I'm not sure what exactly the code is doing between that image and the last, but maybe trying to keep track of the settings during that Ls section and trying to replicate the settings at that step after identification is complete could be a way to approach this.

    Double checking the final parameters for mistakes would also be helpful in determining what is causing the shaking operation.

    The motor should not be reversing direction during operation, that will almost definitely cause the OVP issue as that would cause a huge inductive spike due to the change in motor current direction. 

    Thanks,

    Joseph