- #1
Kricket
- 14
- 0
Hello all,
Sorry for the long post. Skip to the line for the relevant part.
As a longtime ultimate frisbee player, and also a computer programmer, I'm trying to write a program to simulate the flight of a frisbee for any given real-world conditions. I've read through the 5 or so papers I could find on the web about the subject. I started simple: just aerodynamics (lift & drag), no torque, no rotation. That worked well enough - I have nice curved trajectories that look fairly real.
Next step: adding rotation. This part got a little trickier, but I managed. Instead of using Euler angles, I just keep track of the disc's normal vector. Rotation is now a matter of rotation this vector about the omega vector. So far, still so good...I can introduce a little wobble (although the wobble doesn't go away like it does in a real-world situation...first worry).
Third part: torque. From what I can tell from the studies, I'm calculating the torque fairly correctly. For a standard backhand throw, it appears to work correctly.
_____
Now for the tricky part. This is all well and good for throws that are not-too-far-off-level, with velocity vectors that point toward the "underside" of the disc. However, there are multitudes of different ways to throw, and some of them change fairly drastically the behavior.
For example, take the standard right-handed backhand throw, but turn the disc upside-down. The angular rotation vector now points in the same direction as the normal vector (down). The real-world effect of doing this is interesting: the disc will roll so that its normal vector goes toward the right. The amount of roll depends on the exact technique used - an experienced thrower can attain a mid-distance flight with only slight-to-moderate roll, while slight changes (perhaps a greater angle of attack?) produce a much stronger roll: the disc can turn almost completely vertical, the velocity vector turns up and gets eaten by gravity, and the disc drops like a rock.
Interestingly, another (tricky!) throw produces almost the same initial conditions, except with opposite spin - the disc's normal points down (concave side up), and the angular velocity vector points up. And the result: the roll is in the opposite direction, so that the disc slides around to vertical, with the concave side pointed to the right, then runs out of gas and drops.
I was thus led to suspect that this may be related to a Magnus force offset from the center of gravity, leading to a torque pointing either forward or backward (depending on the spin): since the angle of attack points slightly "up", the air is hitting the flat surface of the disc (instead of, I dunno, a cushion of air trapped underneath?), creating more friction with the air...or something. But I'm not too sure.
I would assume that whatever the phenomenon is, it is also what is responsible for the trajectory of another type of throw: the "hammer". This throw is executed similarly as if one were throwing a hammer (or an axe): at release, the normal vector points to the left and slightly downward, angular velocity points in the same direction, and the disc is thrown high in the air. As the disc falls, it will begin to roll. When executed correctly, this roll will cause the disc to follow a gentle curve to the right, finally landing perfectly level and upside-down.
So, my question: can anybody elaborate on what's the real-world phenomena are that cause this behavior? I tried adding a rolling torque that depends on the angle of attack, but it doesn't seem to make a difference. As a corollary, if anybody is interested in helping me figure out why my program isn't working, I'd be happy to send you the source code (c++, but it's fairly straightforward. I've basically implemented the formulae in Hummel's thesis).
Thanks for any info you've got!
Sorry for the long post. Skip to the line for the relevant part.
As a longtime ultimate frisbee player, and also a computer programmer, I'm trying to write a program to simulate the flight of a frisbee for any given real-world conditions. I've read through the 5 or so papers I could find on the web about the subject. I started simple: just aerodynamics (lift & drag), no torque, no rotation. That worked well enough - I have nice curved trajectories that look fairly real.
Next step: adding rotation. This part got a little trickier, but I managed. Instead of using Euler angles, I just keep track of the disc's normal vector. Rotation is now a matter of rotation this vector about the omega vector. So far, still so good...I can introduce a little wobble (although the wobble doesn't go away like it does in a real-world situation...first worry).
Third part: torque. From what I can tell from the studies, I'm calculating the torque fairly correctly. For a standard backhand throw, it appears to work correctly.
_____
Now for the tricky part. This is all well and good for throws that are not-too-far-off-level, with velocity vectors that point toward the "underside" of the disc. However, there are multitudes of different ways to throw, and some of them change fairly drastically the behavior.
For example, take the standard right-handed backhand throw, but turn the disc upside-down. The angular rotation vector now points in the same direction as the normal vector (down). The real-world effect of doing this is interesting: the disc will roll so that its normal vector goes toward the right. The amount of roll depends on the exact technique used - an experienced thrower can attain a mid-distance flight with only slight-to-moderate roll, while slight changes (perhaps a greater angle of attack?) produce a much stronger roll: the disc can turn almost completely vertical, the velocity vector turns up and gets eaten by gravity, and the disc drops like a rock.
Interestingly, another (tricky!) throw produces almost the same initial conditions, except with opposite spin - the disc's normal points down (concave side up), and the angular velocity vector points up. And the result: the roll is in the opposite direction, so that the disc slides around to vertical, with the concave side pointed to the right, then runs out of gas and drops.
I was thus led to suspect that this may be related to a Magnus force offset from the center of gravity, leading to a torque pointing either forward or backward (depending on the spin): since the angle of attack points slightly "up", the air is hitting the flat surface of the disc (instead of, I dunno, a cushion of air trapped underneath?), creating more friction with the air...or something. But I'm not too sure.
I would assume that whatever the phenomenon is, it is also what is responsible for the trajectory of another type of throw: the "hammer". This throw is executed similarly as if one were throwing a hammer (or an axe): at release, the normal vector points to the left and slightly downward, angular velocity points in the same direction, and the disc is thrown high in the air. As the disc falls, it will begin to roll. When executed correctly, this roll will cause the disc to follow a gentle curve to the right, finally landing perfectly level and upside-down.
So, my question: can anybody elaborate on what's the real-world phenomena are that cause this behavior? I tried adding a rolling torque that depends on the angle of attack, but it doesn't seem to make a difference. As a corollary, if anybody is interested in helping me figure out why my program isn't working, I'd be happy to send you the source code (c++, but it's fairly straightforward. I've basically implemented the formulae in Hummel's thesis).
Thanks for any info you've got!