2023-06-24 10:10 AM
Hi all,
I am using the software generated from MCSDK motor control and a custom board, I am able to successfully make it work for the torque control mode, for different Iq values the DC power supply current is varying.
But i am facing problem with speed control mode, i gave the following command in closed loopMC_ProgramSpeedRampMotor1(((int16_t)g_targetspeed_s16 * ((int16_t)SPEED_UNIT)) / (int16_t)U_RPM, 0);
Any value i give for g_targetspeed_s16 the motor settles to the same speed for example if i give 10, 50 it goes and settles to the same speed. Why? I am finding some invalid switching. Is it because of that?
Solved! Go to Solution.
2023-06-27 8:15 AM
Hello SRedd.5,
The MC_ProgramSpeedRampMotor1 function should work as intended. However I have a few remarks :
- The name g_targetspeed_s16 is startling me, as how you wrote it, this value should be in RPM unit, and not in s16 unit (it is then converted to SPEED_UNIT with the small calculus you wrote).
- I don't know what kind of motor you are using but be aware that in closed loop the FW does not cope well with small speed values. You usually need a much bigger speed command than 10 or 50 rpm.
- Please make sure via debugging that the function is indeed called at some point by firmware, because I see no problem on the latest MCSDK version (6.1.2) when writing the function in main.c in the while(1) loop.
Hoping this will help,
Gaël A.
2023-06-27 8:15 AM
Hello SRedd.5,
The MC_ProgramSpeedRampMotor1 function should work as intended. However I have a few remarks :
- The name g_targetspeed_s16 is startling me, as how you wrote it, this value should be in RPM unit, and not in s16 unit (it is then converted to SPEED_UNIT with the small calculus you wrote).
- I don't know what kind of motor you are using but be aware that in closed loop the FW does not cope well with small speed values. You usually need a much bigger speed command than 10 or 50 rpm.
- Please make sure via debugging that the function is indeed called at some point by firmware, because I see no problem on the latest MCSDK version (6.1.2) when writing the function in main.c in the while(1) loop.
Hoping this will help,
Gaël A.
We’re moving the ST Community to a new platform to give you a better and more reliable community experience.