Skip to main content
Danu_Park
Associate III
December 9, 2024
Question

Is speed control impossible in motor position control?

  • December 9, 2024
  • 2 replies
  • 1118 views

Currently, I am using FOC control in MCSDK for position control, and the speed graph appears as shown in the attached figure when the motor moves to its target position.

scrrenshot1.png


However, I want to achieve control where the motor maintains its maximum speed for as long as possible. No matter how much I adjust the PID coefficients for position control in MCSDK, the result seems limited to the attached graph.
Is there any way to achieve this?

The speed graph I want looks like this.

scrrenshot2.png

Thank you.

2 replies

GMA
Technical Moderator
December 18, 2024

Hello @Danu_Park,

Could you share your command? 
Is your motor loaded?

 

 

If you agree with the answer, please accept it by clicking on 'Accept as solution'.Best regards.GMA
Danu_Park
Danu_ParkAuthor
Associate III
December 19, 2024

The graph attached in the initial question represents the case where the Target Position is set to 30 radians, while the graph I am attaching now represents the case where the Target Position is set to 150 radians.

When the Target Position is set to 150 radians, regardless of whether there is a load on the motor, it reaches maximum speed initially and then transitions to uniform motion at a reduced speed.
Increasing the D-value reduces the speed during the uniform motion phase (as shown in Image 2), while decreasing the D-value (as shown in Image 3) extends the duration of the uniform motion phase.
However, reducing the D-value causes vibration when the motor comes to a stop.

Is there any method to control the speed directly, rather than adjusting the D-value in position control?

What I am aiming for is a motion where the motor moves at a constant speed that I set and stops smoothly according to the D-value I configure.

Thank you.

1.png

2.png

3.png

FouadB
ST Employee
December 20, 2024

Hello @Danu_Park,

Unfortunately, the position control algorithm relies solely on the target position and the time allocated for execution, without utilizing a speed command as an input.
It implements a trapezoidal target angular-velocity trajectory, which consists of three phases: acceleration, speed cruise, and deceleration, as illustrated in the figure below.

Trapezoidal_trajectory.jpg

This approach appears to align with your expectations, as indicated by the red curve attached above.
To achieve this trapezoidal movement, please tune your PID controller using the experimental approach described in Chapter 9 of Application Note AN5464.
Additionally, you may need to adjust the time allowed to reach your target position.

Below is an example of movement with the associated command using a Shinano motor:

Screenshot 2024-12-20 113805.jpg

I hope this input will be helpful to you.

Best regards,
Fouad

If you agree with my answer, please accept it by clicking on 'Accept as solution'.""