Setting the diagram and try default settings To satisfy the requirements, here is my diagram in Simulink Position Control of a DC Motor a Figure 1.1: Simulink diagram using Trapezoi
Trang 1
VIETNAM NATIONAL UNIVERSITY HO CHI MINH CITY
HO CHI MINH CITY UNIVERSITY OF TECHNOLOGY
REPORT OF SUBJECT: INDUSTRIAL MOTION CONTROL SYSTEM
TOPIC:
CONTROLLING DC MOTOR USING TRAPEZOIDAL VELOCITY PROFILE
Class: CCO1 - Semester: 241
Instructor: Phd Nguyén Duy Anh
Nguyễn Ngọc Khoa 2053139
HO CHI MINH CITY, 2024
Trang 2Requirement:
Apply the trapezoidal velocity profile to control the position and velocity of the DC motor
from slide 27 There are three points: A, B, and C The motor should move sequentially
from point A to point B, then from point B to point C Draw a graph showing the position
and velocity clearly over time
1 Setting the diagram and try default settings
To satisfy the requirements, here is my diagram in Simulink
Position Control of a DC Motor
a
Figure 1.1: Simulink diagram using Trapezoidal Velocity Profile block
Firstly, | will keep the Default Setup for the Trapezoidal Velocity Profile block with three
points A, B, C chosen at -10, 9 and 15 accordingly The Stop Time | choose for this is 3 second
Trapezoidal Velocity Profile Trajectory Generate trajectories through multiple waypoints using trapezoidal velocity profiles
Specify an [NxP] matrix of P waypoints with N axes to generate trajectories that pass through
the P waypoints using trapezoidal velocity parameters Set Waypoint source to External to accept them as a block input Use the Number of parameters popup to select the total
number of parameters, then specify the parameters using the popups for Parameter 1 and
Parameter 2 The corresponding parameter values can be specified as scalars, an Nx1 vector,
or an [Nx(P-1)] matrix The scalar applies the same parameters to all N axes and P
waypoints The vector applies the N parameters to all N axes The matrix applies the
parameter set for each of the N axes and P-1 segments of the trajectory
After the trajectory is completed, the final values are held constant
Waypoints Waypoint source: Internal
Waypoints: [0, -10, 9, 15]
Parameters
Number of parameters: 0 Simulate using: Interpreted execution
OK Cancel Help
Figure 1.2: Trapezoidal Velocity Profile bl ock parameters Here is the Velocity and Position Graph after running the system:
Trang 3
Figure 1.3: The position graph
Figure 1.4: The velocity graph
The position graph reveals that the motor transitions smoothly from the starting point (0), initially moving downward to point A at -10 After reaching point A, the motor reverses direction and moves upward, reaching point B at 9 and then continuing to point C at 15 The motor’s movements are smooth and controlled, with no abrupt changes in direction or
speed, which indicates effective application of the Trapezoidal Velocity Profile for precise
position control
Trang 4For the Velocity graph the trapezoidal profile exhibits characteristic phases of acceleration, constant velocity, and deceleration to reach each point A, B and C
For the motor to get to the A, it first accelerates in the negative direction, reaching a
velocity of -15 units/s It then maintains at this constant negative velocity for
approximately 0.5 seconds The motor then decelerates smoothly, bringing the velocity back to zero, preparing for a direction change
For the next two waypoints, B and C, the motor's velocity follows a similar pattern
2 Changing the parameters of the Trapezoidal Velocity block and observe the
results
Now, | will start changing the parameters in the Trapzoidal Velocity block with the following number:
Acceleration Time = 0.2; The End Time and others still keep at default Here is the result of the Velocity graph:
Figure 2.1: The velocity graph after changing the Acceleration Time a
Because | set the Acceleration time = 0.2, we can observe the the system accelerate and deaccelerate more sharply than the default setup Obviously, the constant velocity period
in each segment is longer than default one (0.6 seconds)
Trang 5Next, | will try setting Acceleration Time = 0.2 but with the Peak Velocity = 30
Since | didn't set the End Time for this, the system automatically adjusted it to match my
setup for Acceleration Time and Peak Velocity In all three segments, the speed increases
sharply, reflecting quick acceleration, followed by abrupt decelerations Notably, in the
last segment, there is no constant velocity period, meaning the system accelerates and then immediately decelerates
In real life applications, reduce the acceleration time would make the system experiences
higher acceleration rates Highly dynamic system with minimal smoothing, which can
cause mechanical stress or control challenges due to the sudden transitions
e Robotic Arm (Industrial or Medical Applications)
© Ifarobotic arm is required to move between two positions at high speed with
a very short acceleration time, the rapid change in velocity can cause a sudden jerk that leads to mechanical fatigue in the joints, gears, and linkages, particularly when handling heavy loads
e CNC Machine (Milling, Cutting)
o CNC machines that cut, drill, or mill materials require precise control over both the position and speed of the tool to ensure accuracy If the acceleration
is set too high, the tool head may overshoot its target or induce vibrations,
leading to imprecise cuts and poor surface finishes Additionally, the tooling
or cutting bit can be subjected to excessive force, causing it to wear out quickly or even break under the stress
Trang 6e Elevator System
o In an elevator, rapid acceleration can cause a jerky experience for passengers, leading to discomfort or even injury, particularly for the elderly
or those with mobility issues Additionally, the sudden forces can put stress
on the elevator’s drive system, cables As a result, the elevator may require
more frequent maintenance or, in extreme cases, risk system failure,
potentially creating dangerous operating conditions and posing a significant
safety hazard
3 Relationship between Peak Velocity, End Time, and the distance between
waypoints
lf | keep the previous setup of Acceleration Time = 0.2, Peak Velocity = 30 but change
PeakVelocity*EndTime/2 must be less than or equal to q(end)-q(9
Figure 3.1: The error appear when try running the system with the above setup
To explain this error, first | will calculate the distance between waypoints | use From the beginning, | always keep the same waypoints of [ 0, -10, 9, 15]
- From 0 to -10: Distance = 10 units
- From -10 to 9: Distance = 19 units
- From 9 to 15: Distance = 6 units
The system is checking if the product of PeakVelocity * EndTime / 2 for each segment is
less than or equal to the distance between waypoints For example, in the first segment, my
Peak Velocity is 30 and EndTime is 1, then:
30 x1
In the segment from 0 to -10, the distance is only 10 units However, the system is attempting to accelerate and decelerate too rapidly based on the set parameters, and the calculated distance (15 units) exceeds the actual available distance of 6 units
So when using the Trapezoidal Velocity Profile to control motor position, it's essential to
carefully consider the distance between waypoints when setting the Peak Velocity and End
Time These parameters must align with the available distance between waypoints to ensure the system operates smoothly and avoids errors
Trang 74 Using Trapezoidal Velocity Profile to control a3 DOF SCARA Robot
For this section, | will implement the Trapezoidal Velocity Profile to control a 3 DOF SCARA Robot in performing a pick-and-place operation The robot will smoothly accelerate, move to pick up the object, and then transport it to the designated drop-off
point, ensuring precise and controlled motion throughout the process
Figure 4.1: The Simulink diagram to control the robot
©
Figure 4.2: The motion of the robot in Simscape animation
Trang 84.1 Working principle of the system
This system controls a robotic arm by utilizing a Trapezoidal Velocity Profile to generate
a smooth motion trajectory, including position, velocity, and acceleration profiles The aim
of this system is to control the robot to pickup the object from one place and dropping it in the other place The Trapezoidal Velocity Profile ensures that the motion is gradual and avoids abrupt changes, allowing for controlled acceleration and deceleration phases
The inverse kinematics block then converts the desired end-effector position from Cartesian coordinates into the necessary joint angles and prismatic extension to move the
arm These joint positions are fed into the robot control block, which commands the
actuators to follow the trajectory
The forward kinematics block calculates the actual end-effector position based on the joint
angles, while the Jacobian matrix computes the corresponding velocities Throughout the process, feedback loops compare the desired and actual positions and velocities, allowing real-time error correction The use of the Trapezoidal Velocity Profile helps achieve
smooth and precise movements of the robotic arm by optimizing the transition between
acceleration and deceleration phases
4.2 Setting the Trapezoidal Velocity Profile block
Figure 4.3: Waypoint trajectory
So the input will be a [8 x 3] matrix and setting the End Time = 0.5 to align with the time
intervals shown in the table, from one waypoint to another will take 0.5 seconds
Trang 9Trapezoidal Velocity Profile Trajectory Generate trajectories through multiple ypoints using trapezoidal velocity profiles
Specify an [NxP] matrix of P waypoints with N axes to generate trajectories that pass through the P waypoints using trapezoidal velocity parame Set Waypc
them as a block input Use the Number of parame 5 popup to se
parameters, then specify the parameters using the popups for Parameter 1 a
Corresponding parame in be specified as scalars, an Nx1
» parameters to all N axes and P
› to External to accept
m trix The scalar apr
the N param
P-1 segments o
points The vector applies
to all N axes The matrix applies the parameter set for each of the N axes and
After the trajectory is completed, the final values are held constant
Waypoints Waypoint source Internal xv
Waypoints wp
Parameters
Number of parameters 1 ’
1 End Time x*
Parameter source Internal ’
End time: 0.5
Simulate using Interpreted execution x
Figure 4.4: Trapezoidal Velocity block parameters
4.3 Result
Choosing the Stop time = 3.5 seconds, here is the result of position and velocity graph
@ Scope - n x File Tools View Simulation Help x
|Ready Sample based T=3.500
Figure 4.5: The position graph
Trang 10
Figure 4.6 The velocity graph
We can easily observe that for both position and velocity graph, the desired and actual
position closely follow each other The yellow and blue lines representing the desired and actual positions, respectively, are almost identical across all three axes (X, Y, and 2), indicating that the system is accurately tracking the desired trajectory
5 Change the control method of the robot and observe the result
Now, | will replace the Trapezoidal Velocity Profile block with the Signal Editor block (The input block in the left) to indicating the importance of using Trapezoidal Velocity in control the 3 DOF SCARA Robot
10
Trang 11
RSTZ
cS RST A rob
“e—=© Ka || >) Matix
>| Config, Jacobian >| Multiply
Demux
EE: Body4
Figure 5.1: The simluink diagram when replace the Trapezoidal Velocity block
Since the working principle of this diagram is the same as above, so | don’t explain again Here is the result of position and velocity graph:
Ready Sample based T=3.S00
Figure 5.2: The position graph
For this position graph, we can see that when not using the Trapezoidal Velocity Profile,
the system shows sharper transitions, indicating that it is moving more abruptly between
waypoints
11
Trang 12
Figure 5.3: The velocity graph
The velocity graph from the Signal Editor clearly shows a discontinuous behavior, with
abrupt changes in velocity across all three axes (X, Y, and Z) These sudden transitions
between motion states reflect an unrealistic velocity profile that would be impractical in
real-world robotic applications
In practice, such discontinuous velocity profiles are unachievable because the system
cannot instantaneously jump between different speeds These abrupt changes would place
significant strain on the robot’s motors, joints, and other mechanical components, leading
to accelerated wear and tear, reduced lifespan, and potentially unstable operation
For smooth and efficient motion, robots require a gradual acceleration phase where the
velocity ramps up from zero, reaches a desired speed, and then maintains that velocity for
a period before decelerating This is where Trapezoidal Velocity control becomes essential,
as it ensures smooth transitions between motion states, minimizes mechanical stress, and provides a more stable and controlled movement
6 Conclusion
In conclusion, my report have fully satisfied the requirements of using Trapezoidal Velocity Profile to control the direction of DC motor through 3 points A, B and C respectively
12