Remodeling uniform circular motion as constant velocity motion between two points

5 次查看(过去 30 天)
The coordinates of A = [Ax; Ay; Az]
The coordinates of B = [Bx; By; Bz]
Radius of circle: r
Scenario 1: A particle undergoing uniform circular motion with constant speed. The tangential velocity vector at A is vC where vC = [vCx; vCy; vCz]. Path shown by red arc.
Scenario 2: The same particle moving in a straight line with constant velocity (constant speed and direction) given by vL = [?; ?; ?]. Path shown by green dotted line.
If the time taken to reach B from a starting position A is the same in both scenarios, for the data given above, can we find vL?
My understanding so far:
1) Find angular velocity (omega) from vC and r.
omega = vC/r
2) Find theta or arc length (s).
3) Find time (t) from t = theta/omega or from t = s/(r*omega).
4) For straight line motion, vL = norm(A-B)/t where we substitute value of t from step 3.
I can't figure out how to find the REQUIRED theta or arc length automatically based on direction of velocity vector vC. In other words, the algorithm needs to know that the theta in this case is the angle marked in the figure and not the angle found from the triangle.

回答(1 个)

Walter Roberson
Walter Roberson 2017-6-26
Distance of A to center, Ac, is r. Distance of B to center, Bc, is r. Those give two sides of a triangle.
The length of the third side, AB, is given by AB^2 = Ac^2 + Bc^2 - 2 * Ac * Bc * cos(phi) where phi is the angle Ac to cB . See The Law Of Cosines
Substituting, this gives AB^2 = r^2 + r^2 - 2 * r * r * cos(phi) = 2*r^2*(1-cos(phi)) . Rearrange this to 1-cos(phi) = AB^2 / (2*r^2) or cos(phi) = 1 - AB^2 / (2*r^2) . So phi = arccos(1 - AB^2 / (2*r^2))
We calculate AB from the Euclidean coordinates for A and B, and substitute it into the above equation, and take the arccos to get phi.
  1 个评论
Cassy A
Cassy A 2017-6-26
编辑:Cassy A 2017-6-26
Shouldn't we do [(2*pi radians) - phi] to get theta since we are traveling the red path? Is there anyway to automatically let matlab know which angle we are talking about (not phi but theta in this case) since I wish to automate this for any two given points on the circle
Also, in matlab, for velocity vector, vC = [vCx; vCy; vCz], if we divide vC by r, we get angular velocity (omega) as a 3x1 vector. Is that right? I read online that angular velocity is a pseudovector and needs magnitude, the plane of rotation and the sense of rotation (clockwise/anticlockwise) to be defined.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Computational Geometry 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by