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.

TMS320F28027F:On the velocity loop curve of lab5b

Technical experts, I use the f28027f evaluation board to verify the project. I have correctly identified the motor parameters and applied it to the lab5b project. As I know, the 5b project is used for the speed loop. I will use the speed reference value Set to a fixed value. When my load drives the motor to rotate at a speed that exceeds the speed set by the speed loop, because of the speed error, the motor seems to produce a force in the opposite direction to the load to prevent the load from driving the speed of the motor. The current will eventually reach the value of USER_MOTOR_MAX_CURRENT, which is exactly what our project wants, but, as I said before, when the load exceeds the speed set by the speed loop and drives the motor to rotate in the same direction, a "resistance" will be generated , The peak value of this resistance depends on USER_MOTOR_MAX_CURRENT, and the size of the resistance seems to be proportional to the error and speed of the speed, then I would like to ask:

1. If the resistance depends on the speed error, it must be a curve to reach the peak of resistance. Our project hopes to reduce the length of this curve or when the load drives the motor to exceed the setting of the speed loop, how can I force the peak of the output resistance? Modify and test this in the code?

2. Our motor is an unmanned aerial vehicle motor with a pole pair number of 7. When testing this motor, the load has been driving it to rotate, and the resistance generated by the motor has always maintained its peak value, but it can only last for about 1 minute, and the resistance will change The ammeter clearly reflects this (4.5a drops to 0.2a). It seems that the motor is out of step. After the load stops, the motor can be driven again to return to the peak resistance. How can I solve this phenomenon? Is it because the number of pole pairs is not enough? I am using a sensorless kit.

  • How much load is adding to the shaft of the motor during startup? Is the load over the rated torque of the motor? The sensorless -FOC is difficult to start the motor with a heavy load.

    You might refer to chapter 14 "Managing Full Load at Startup, Low-Speed and Speed Reversal" in InstaSPIN-FOCTm and InstaSPIN-MOTIONTm User's Guide,  http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf 

  • You may not understand my problem. I need to explain it again. When performing lab5b speed loop control, the speed set by my speed loop is 40rpm, and motor A rotates at this speed. When I use motor B to drive motor A to rotate in the same direction At this time, the speed of motor B is far greater than that of motor A. At this time, motor A will produce resistance to suppress its own speed. The question is whether motor A can directly control the resistance that suppresses excessive speed. Or can it be forced to the maximum? If so, how can I do it in the code? As far as I know, the resistance produced by motor A depends on the speed error?

    The second problem is that when motor A with a pole pair number of 7 is driven by another motor B to rotate in the same direction, motor A will lose step, but after changing to a 21-pair motor, this problem will no longer Appears, so does the number of pole pairs determine the stability of its commutation?

    The third question is, I set USER_MOTOR_MAX_CURRENT to 24a. When motor A is rotated by motor B, the output on the power meter shows only about 3a. What limits this? How can I change it?

  • You are using two different motors, so that depends on what control mode is implemented on these two motors, and the outputting torque, the maximum torque, the setting rotation direction of of these two motors.