Team:Washington-Software/Modeling
From 2009.igem.org
(Difference between revisions)
(Prototype team page) |
|||
Line 1: | Line 1: | ||
- | + | ==Mathematical Modeling== | |
+ | ===Alpha=== | ||
+ | ====Problem==== | ||
+ | Given the following construction and point ''p'', or (''x'',''y'',''z'') find the angles ''θ<sub>1</sub>'', ''θ<sub>2</sub>'', and ''θ<sub>3</sub>''. | ||
+ | |||
+ | Note that positive ''z'' is the down direction. | ||
+ | |||
+ | ====Constants==== | ||
+ | *''TR'' | ||
+ | **Top radius | ||
+ | *''BR'' | ||
+ | **Bottom radius | ||
+ | *''L'' | ||
+ | **Linkage | ||
+ | *''CA'' | ||
+ | **Control Arm | ||
+ | *''φ<sub>1</sub>'' and ''φ<sub>2</sub>'' | ||
+ | **Two angles | ||
+ | |||
+ | ====Construction==== | ||
+ | From the top to the bottom: | ||
+ | *A circle centered at the origin with radius ''TR'', named ''O'' | ||
+ | *Make three lines ''A<sub>1</sub>'', ''A<sub>2</sub>'', and ''A<sub>3</sub>'' such that: | ||
+ | **The lines ''A<sub>x</sub>'' are perpendicular to a tangent of ''O'' and a radius of ''O'', | ||
+ | **The angle between the radii of ''A<sub>1</sub>'' and ''A<sub>2</sub>'' is ''φ<sub>1</sub>'', and | ||
+ | **The angle between the radii of ''A<sub>2</sub>'' and ''A<sub>3</sub>'' is ''φ<sub>2</sub>''. | ||
+ | *Make a circle centered at point ''p'' with radius ''BR'', named ''P'' | ||
+ | *Find three points ''P<sub>1</sub>'', ''P<sub>2</sub>'', and ''P<sub>3</sub>'' such that: | ||
+ | **They are on the circumference of ''P'', | ||
+ | **The angle between the radius which touches ''P<sub>1</sub>'' and the radius that touches ''P<sub>2</sub>'' is ''φ<sub>1</sub>'', | ||
+ | **The angle between the radius which touches ''P<sub>2</sub>'' and the radius that touches ''P<sub>3</sub>'' is ''φ<sub>2</sub>'', | ||
+ | **The ray from the center of ''P'' to ''P<sub>x</sub>'' is parallel to the ray from the center of ''O'' to the point which is on ''A<sub>x</sub>'' and ''O'' 's circumference, for all ''x''. | ||
+ | *Construct three line segments ''CA<sub>1</sub>'', ''CA<sub>2</sub>'', and ''CA<sub>3</sub>'' such that: | ||
+ | **''CA<sub>x</sub>'' is in the same plane as ''A<sub>x</sub>'', for all ''x'', and | ||
+ | **The angle between ''CA<sub>x</sub>'' and ''A<sub>x</sub>'' is ''θ<sub>x</sub>'', for all ''x''. | ||
+ | *The distance between ''P<sub>x</sub>'' and the end point of ''CA<sub>x</sub>'' that is not on ''A<sub>x</sub>'' is ''L'', for all ''x''. | ||
+ | |||
+ | ====Solution==== | ||
+ | #Note that the control arms can only move in a circle, while linkage can move in a sphere. | ||
+ | #We will calculate ''θ<sub>1</sub>'' first, which only involves the points, circles and lines ''p'', ''CA<sub>1</sub>'', ''A<sub>1</sub>'', and ''P<sub>1</sub>''. | ||
+ | #Find the plane where ''CA<sub>1</sub>'' 's circle resides in. Use it to cut the sphere around ''P<sub>1</sub>''. For future reference, call ''CA<sub>1</sub>'' 's circle ''C<sub>1</sub>'' and the circle resulting from the cut ''C<sub>2</sub>'' | ||
+ | #Define ''x<sub>o<sub>1</sub></sub>'', for x offset, for the difference in the ''x'' coordinates of the center of ''C<sub>1</sub>'' and the point ''P<sub>1</sub>''. | ||
+ | #*''x<sub>o<sub>1</sub></sub> = TR - (BR + x)'' | ||
+ | #*''x<sub>o<sub>1</sub></sub> = TR - BR - x'' | ||
+ | #Define ''D<sub>1</sub>'' to be the distance between the center of ''C<sub>1</sub>'' and ''C<sub>2</sub>''. It will also be the line connecting the centers. | ||
+ | #*''D<sub>1</sub> = sqrt(x<sub>1</sub><sup>2</sup> + z<sup>2</sup>)'' | ||
+ | #Obviously, ''D<sub>1</sub>'', ''CA<sub>1</sub>'', and linkage form a triangle. The angle between ''CA<sub>1</sub>'' and ''D<sub>1</sub>'' is a close approximation to ''θ<sub>1</sub>'', but it is not exact. We will call this angle ''θ<sub>1<sub>1</sub></sub>''. We use the law of cosines to calculate ''θ<sub>1<sub>1</sub></sub>''. | ||
+ | #*''L<sup>2</sup> = CA<sup>2</sup> + D<sup>2</sup> - CA * D * cos(θ<sub>1<sub>1</sub></sub>)''<br><br> | ||
+ | #*''θ<sub>1<sub>1</sub></sub> = cos<sup>-1</sup>((D<sup>2</sup> + CA<sup>2</sup> - L<sup>2</sup>)/(2*D*CA))''<br><br> | ||
+ | #One endpoint of ''D<sub>1</sub>'' is on ''A<sub>1</sub>''. Thus, we can make another triangle, and the angle between ''D<sub>1</sub>'' and ''A<sub>1</sub>'' is the difference between ''θ<sub>1</sub>'' and ''θ<sub>1<sub>1</sub></sub>''. We will call this angle ''θ<sub>1<sub>2</sub></sub>''. If we have the length of the side on ''A<sub>1</sub>'' be ''z'', then the last side will be ''x<sub>o</sub>'' and the triangle will be a right angle triangle. Since only ''x<sub>o<sub>1</sub></sub>'' changes sign in the good interval, we should use a trigonometric function that involves ''x<sub>o</sub>'' in the numerator. Thus, | ||
+ | #*''θ<sub>1<sub>2</sub></sub> = sin<sup>-1</sup>(x<sub>o<sub>1</sub></sub>/D<sub>1</sub>)''<br><br> | ||
+ | #*''θ<sub>1</sub> = cos<sup>-1</sup>((D<sup>2</sup> + CA<sup>2</sup> - L<sup>2</sup>)/(2*D*CA)) - sin<sup>-1</sup>(x<sub>o<sub>1</sub></sub>/D<sub>1</sub>)'' | ||
+ | #You just have to rotate the model ''φ<sub>1</sub>'' degrees counterclockwise for ''θ<sub>2</sub>'', and another ''φ<sub>2</sub>'' degrees for ''θ<sub>3</sub>'' using the two dimensional rotational matrixes | ||
+ | {''cos(φ<sub>2</sub>),-sin(φ<sub>2</sub>)''} | ||
+ | ''R<sub>1</sub>''={ } | ||
+ | {''sin(φ<sub>2</sub>) cos(φ<sub>2</sub>)''} | ||
+ | |||
+ | {''cos(φ<sub>3</sub>) -sin(φ<sub>3</sub>)''} | ||
+ | ''R<sub>2</sub>''={ } | ||
+ | {''sin(φ<sub>3</sub>) cos(φ<sub>3</sub>)''} |
Revision as of 23:31, 5 October 2009
Contents |
Mathematical Modeling
Alpha
Problem
Given the following construction and point p, or (x,y,z) find the angles θ1, θ2, and θ3.
Note that positive z is the down direction.
Constants
- TR
- Top radius
- BR
- Bottom radius
- L
- Linkage
- CA
- Control Arm
- φ1 and φ2
- Two angles
Construction
From the top to the bottom:
- A circle centered at the origin with radius TR, named O
- Make three lines A1, A2, and A3 such that:
- The lines Ax are perpendicular to a tangent of O and a radius of O,
- The angle between the radii of A1 and A2 is φ1, and
- The angle between the radii of A2 and A3 is φ2.
- Make a circle centered at point p with radius BR, named P
- Find three points P1, P2, and P3 such that:
- They are on the circumference of P,
- The angle between the radius which touches P1 and the radius that touches P2 is φ1,
- The angle between the radius which touches P2 and the radius that touches P3 is φ2,
- The ray from the center of P to Px is parallel to the ray from the center of O to the point which is on Ax and O 's circumference, for all x.
- Construct three line segments CA1, CA2, and CA3 such that:
- CAx is in the same plane as Ax, for all x, and
- The angle between CAx and Ax is θx, for all x.
- The distance between Px and the end point of CAx that is not on Ax is L, for all x.
Solution
- Note that the control arms can only move in a circle, while linkage can move in a sphere.
- We will calculate θ1 first, which only involves the points, circles and lines p, CA1, A1, and P1.
- Find the plane where CA1 's circle resides in. Use it to cut the sphere around P1. For future reference, call CA1 's circle C1 and the circle resulting from the cut C2
- Define xo1, for x offset, for the difference in the x coordinates of the center of C1 and the point P1.
- xo1 = TR - (BR + x)
- xo1 = TR - BR - x
- Define D1 to be the distance between the center of C1 and C2. It will also be the line connecting the centers.
- D1 = sqrt(x12 + z2)
- Obviously, D1, CA1, and linkage form a triangle. The angle between CA1 and D1 is a close approximation to θ1, but it is not exact. We will call this angle θ11. We use the law of cosines to calculate θ11.
- L2 = CA2 + D2 - CA * D * cos(θ11)
- θ11 = cos-1((D2 + CA2 - L2)/(2*D*CA))
- L2 = CA2 + D2 - CA * D * cos(θ11)
- One endpoint of D1 is on A1. Thus, we can make another triangle, and the angle between D1 and A1 is the difference between θ1 and θ11. We will call this angle θ12. If we have the length of the side on A1 be z, then the last side will be xo and the triangle will be a right angle triangle. Since only xo1 changes sign in the good interval, we should use a trigonometric function that involves xo in the numerator. Thus,
- θ12 = sin-1(xo1/D1)
- θ1 = cos-1((D2 + CA2 - L2)/(2*D*CA)) - sin-1(xo1/D1)
- θ12 = sin-1(xo1/D1)
- You just have to rotate the model φ1 degrees counterclockwise for θ2, and another φ2 degrees for θ3 using the two dimensional rotational matrixes
{cos(φ2),-sin(φ2)} R1={ } {sin(φ2) cos(φ2)}
{cos(φ3) -sin(φ3)} R2={ } {sin(φ3) cos(φ3)}