Kinematics within a simulation

Click For Summary
SUMMARY

The discussion focuses on simulating vehicle movement in a warehouse environment using Unity, where tasks are represented as graph-based routes. The user aims to incorporate acceleration into the simulation to improve the accuracy of task completion times. The equations provided include kinematic formulas for distance during acceleration, constant velocity, and deceleration phases. The final formula for maximum velocity (v_max) is derived as v_max = s / (duration - 3), allowing for a more precise simulation of vehicle dynamics.

PREREQUISITES
  • Understanding of kinematic equations, specifically s = 0.5*a*t^2 and s = v_max*t
  • Familiarity with Unity for simulation development
  • Basic knowledge of graph theory for modeling routes
  • Experience with programming in C# for Unity scripting
NEXT STEPS
  • Research advanced kinematic equations for variable acceleration scenarios
  • Explore Unity's physics engine for realistic vehicle movement
  • Learn about graph algorithms for optimizing route calculations
  • Investigate Unity's time management features for precise simulation timing
USEFUL FOR

Game developers, simulation engineers, and anyone involved in modeling vehicle dynamics in Unity or similar environments will benefit from this discussion.

kosmopilot
Messages
2
Reaction score
1

Homework Statement


I'm simulating a warehouse (in Unity) where forklifts and other vehicles transport stuff from point A to point B. The routes are modeled as a graph with vertices and edges. Every transport is saved as a task in a backend system with the relevant data such as starting time, end time, starting point, end point. Therefore I have the duration t and the distance traveled s.
Right now I'm running the simulation with constant 50fps, therefore one time step occurs every 0,02s.
The simulation has its own clock that can be speed up by a multiplier T.
The goal is to simulate every task of a given time span, so that every vehicle starts moving at the start time of the task and stops moving at the end time of the task.
So far I've been using a constant velocity to achieve this. I calculate the velocity from given distance & duration multiplied by the simulation speed multiplier. The result isn't perfect since the duration to complete a task could be not a whole number like 20,4 time steps ( or ticks) which will be 21 => the task took "0,6" time steps too long. But that's another problem.

I'd like to add acceleration. When a vehicle starts a task it'll accelerate and then move at a constant maximum velocity so that it completes its task in the given duration. But what's the desired acceleration and maximum velocity?

Homework Equations


s_a = 0.5*a*t^2
s_v = v_max *t
s_b = 0.5 * a_b * t^2

The Attempt at a Solution


I'm thinking of splitting the distance s into three parts :

-S_a the distance traveled during acceleration,
- S_v the distance traveled with maximum velocity,
- S_b the distance traveled when stopping.

s = s_a + s_v + s_b

After looking into the data of a real forklift the acceleration time is ~5s.
Therefore a = V_max / 5s. And let's say the deceleration takes about 1s.

I'd like to know how to calculate velocity v_max. This is not a homework, it's my own project.
 
Physics news on Phys.org
First thing, your equation for ##s_b## is not correct, it should be ##s_b=V_{max}*t-0.5a_b*t^2## because it already has speed V_max when it starts to decelerate.
So after that just use the equation you wrote ##s=s_a+s_v+s_b## and also use that ##a=V_{max}/5## ##a_b=V_{max}/1## so the equation will become

$$s=0.5\frac{V_{max}}{5}*5^2+V_{max}*(\Delta t-6)+V_{max}*1-0.5*V_{max}*1^2$$ (1)

where ##s,\Delta t## are given by the simulation task table if I understood correctly from the description of your simulation and are the total distance and the total time of the task. So just solve equation (1) for V_max, it is just a linear equation .
 
  • Like
Likes   Reactions: kosmopilot
Thanks, I see. I totally forgot that acceleration time t_a = 5s as is stated above.Therefore v_max = s / ( duration - 3). Thank you for your help :)

@edit : Or to make it more general v_max = s / ( t_delta - 0.5* t_a - 0.5*t_b^2)
 
Last edited:
  • Like
Likes   Reactions: Delta2

Similar threads

  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 3 ·
Replies
3
Views
936
Replies
4
Views
1K
  • · Replies 49 ·
2
Replies
49
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
1K
Replies
19
Views
3K
Replies
8
Views
5K