Kinematics of a particle with drag

AI Thread Summary
The discussion revolves around calculating the velocity and position of a particle experiencing drag in a Java 2D simulation. The acceleration is proportional to the square of the velocity, leading to the derived equations for velocity and position over time. Participants explore integrating the equations to find expressions for both velocity and position, with emphasis on handling the logarithmic singularity at zero. Additionally, the implementation of drag while the engines are active is discussed, suggesting adjustments to the acceleration calculations. The conversation highlights the complexities of updating the object's location and velocity in a stepwise manner, especially when accounting for drag effects.
chimpz
Messages
7
Reaction score
0
(this is all in context to a java 2d object and is not homework related)

I have an object with velocity v and position x.
Its acceleration is directly proportional to velocity squared ie a=k v^{2}.
Given the objects initial velocity u and its initial position x_{0} how would i work out its velocity and position at time t?

I have tried integrating:

a = \frac{dv}{dt} = kv^{2}

\int^{v}_{u} v^{-2} dv = \int^{t}_{0} k dt

\frac{1}{u} -\frac{1}{v} = kt

v = \frac{1}{\frac{1}{u} - kt}

tbh I got a lot further while writing this post than I did trying to work it out before
trying to get the new position:

\int v^{-2} dv = \int k dt

-\frac{1}{v} = kt

v = \frac{dx}{dt} = -\frac{1}{kt}

\int^{x}_{x_{0}}1\:dx=\int^{t}_{0}-\frac{1}{kt}dt

x-x_{0}=-\frac{1}{k}\left[\:ln|t|\:\right]^{t}_{0}

But you can't ln|0| :/
So, without bounds:

x=-\frac{1}{k}ln|t| + c

Now I'm stuck.

How would I update the location?

Also, how would I implement drag while the engines were on?

Part of my code:
Code:
public void update(double delta) {
	if (engines) {
		double dv = Math.sqrt(2 * powerToWeight * delta);
		Vector2f temp = dir.copy(); //dir is the direction of the engine's force
		temp.scale(dv);
		velo.add(temp);
		double dx = dv * delta * 2 / 3;
		temp = velo.copy();
		temp.scale(dx);
		loc.add(temp);
		// TODO add drag
	} else {
		velo.i = (float) (1 / ( (1 / velo.i) - drag * delta ));
		velo.j = (float) (1 / ( (1 / velo.j) - drag * delta ));
		// TODO update location
	}
}

Pleased with myself for using the itex tags for the first time :D

Edit: could this be considered a hw-type question?
 
Last edited:
Physics news on Phys.org
chimpz said:
v = \frac{1}{\frac{1}{u} - kt}
You can integrate this to get the position, there is no need to derive v(t) again.

How would I update the location?
If you do it in time steps: ##x += v \delta t##

Also, how would I implement drag while the engines were on?
Add this as acceleration, try to derive v(t) again. If that does not work, do it in time steps.
 
I forgot u was a constant :P ok so:

\int^{x}_{x_{0}}1\;dx=\int^{t}_{0}\frac{1}{\frac{1}{u} - kt}dt

x-x_{0} = -\frac{1}{k}\;[\;ln|\frac{1}{u} - kt|\;]^{t}_{0} <br /> = -\frac{1}{k}(\;ln|\frac{1}{u} - kt|\; - \;ln|\frac{1}{u}|\;) = -\frac{1}{k}\;ln|1-ktu|

so I'm guessing i do this separately for each component of the vector :)
Thank you for pushing me xD
 
In general, you cannot separate those components, they are coupled. Without other sources of acceleration, the motion happens in one dimension only, so you can rotate that x in the appropriate direction.
 
O .. i was pretty sure you could separate the i and j components.
but a problem occurs when u is a large positivehere is part of my update method now when there are no other forces on the object:
Code:
if (velo.i != 0) {
	loc.i += (float) (Math.log(1 - dragConst * delta * velo.i) / dragConst);
	velo.i = (float) (1 / ((1 / velo.i) - dragConst * delta));
}

if (velo.j != 0) {
	loc.j += (float) (Math.log(1 - dragConst * delta * velo.j) / dragConst);
	velo.j = (float) (1 / ((1 / velo.j) - dragConst * delta));
}
 
Last edited:
Wait... if you update it step by step, why do you use the general formula?
What about velo.i = velo.i - velo.i*sqrt(velo.i^2 + velo.j^2)*k?

I hope I got the angles right.
 
The rope is tied into the person (the load of 200 pounds) and the rope goes up from the person to a fixed pulley and back down to his hands. He hauls the rope to suspend himself in the air. What is the mechanical advantage of the system? The person will indeed only have to lift half of his body weight (roughly 100 pounds) because he now lessened the load by that same amount. This APPEARS to be a 2:1 because he can hold himself with half the force, but my question is: is that mechanical...
Hello everyone, Consider the problem in which a car is told to travel at 30 km/h for L kilometers and then at 60 km/h for another L kilometers. Next, you are asked to determine the average speed. My question is: although we know that the average speed in this case is the harmonic mean of the two speeds, is it also possible to state that the average speed over this 2L-kilometer stretch can be obtained as a weighted average of the two speeds? Best regards, DaTario
Some physics textbook writer told me that Newton's first law applies only on bodies that feel no interactions at all. He said that if a body is on rest or moves in constant velocity, there is no external force acting on it. But I have heard another form of the law that says the net force acting on a body must be zero. This means there is interactions involved after all. So which one is correct?
Back
Top