# Satellite TV  -  Scientific Analysis

## 4  An H-H Rotor

To receive signals from anywhere in the sky, a dish must move both horizontally and vertically, and some can do that.  However, to track the Clarke Belt, they are somewhat overkill  - a simpler and cheaper assembly of a dish rotating around a single axis does almost as well.

The realisation crucial to understanding this possibility is that the radius of Earth, 6378km, is comparatively small compared with the radius of the Clarke belt, 42164km, so anyone on the surface of Earth is 'almost' at the centre of the Clarke belt.  Thus, a dish mounted on an axis approximately perpendicular to the equatorial plane of the Clarke Belt, and pointed initially at the nearest point of it, as it turns around this axis will cover a great many of the nearest 'visible' sats before the error from not actually being at the centre becomes significant.

That is how an H-H Satellite Rotor works.  The principle is illustrated in the following diagram ... However, the simplicity of the principle is easily lost amid practical complexities ...

Many of the angles in a practical dish system do not contribute to its central purpose, they are there merely for convenience, mostly of manufacture and installation:

• Offset dishes avoid the LNB shading a significant area of the dish, and allow mounting nearer to vertical against the wall of a house, thus being less prone to wind damage, less of an obstruction, and less noticeable;
• Mounting adjustments allow fixed dishes to cover a range of longitudes and latitudes;
• Rotor cranks allow normal fixed dishes to be mounted on rotors without special mountings or extreme adjustment ranges;
• Rotor tilt adjustments allow rotors to cover a range of latitudes.

But here forget the complexities of the installation setting angles.  Once it is all bolted together and installed, it's two rigid structures connected by the pivot of the rotor spindle, and the Pivot Rule implies that either side of this pivot all that matters is the net angles involved.

In demonstration, partially straighten a paperclip leaving some bends, and rotate one end between your fingers.  You'll see that the other end remains at a constant angle to the one's axis of rotation, and, like a lighthouse beam, depending on how you bent the clip downwards, horizontal, or upwards, it sweeps out the surface of a cone, as illustrated above, or of a disc. In principle then, the only three angles that matter are ...

1. Tilt angle, that the rotor axis OR, that is the line of its bearings, makes with respect to Earth at the dish site, sometimes measured from the vertical R'OZ (90 − Latitude), sometimes the horizontal (Latitude)  -  the site's latitude and this setting in combination leave the axis parallel to the poles, perpendicular to the equatorial plane of the Clarke Belt, or nearly so;
2. Beam* angle, made with that axis, depending on context, either SOR by the incoming sat signal SO, or by the sum of the setting angles on the dish side of the rotor  -  crank angle (−ve), dish elevation (+ve), and offset (+ve), though the latter two will probably be combined into a single dish elevation setting (+ve);
3. DLongR the rotational longitude difference, SRP, that the rotor turns to point to a sat at DLong, aka the Polar Mount / Rotor Hour Angle, in the Calculator page as Rotor Azimuth.

* Many instead use Declination, particularly referring to the nearest point of the Clarke Belt where unambiguously it's OCE = OCR = 90−Beam, but anywhere else, there's potential ambiguity between OSE and OSR.

These angles can be calculated as follows ...

Construct the following as illustrated in the diagram for the northern hemisphere (southern in brackets):

 1 At O, make X-Axis horizontal South (North), Y horizontal East (West) perpendicular to page, Z vertical. 2 Drop perpendicular from O to meet equatorial plane at R on EC, extend it beyond O to R'. 3 Drop perpendicular from S onto EC at P.

Consider triangle EOR:

 EOR = 90 − Lat Angles of triangle ∴ R'OZ = 90 − Lat Opposite angles ∴ Tilt t = 90 − Lat From vertical = Lat From horizontal

Consider triangle EOR:

 ER = Re.Cos(Lat) OR = Re.Sin(Lat)

Consider triangle ESP:

 EP = Rc.Cos(DLong) SP = Rc.Sin(DLong)

Consider triangle SRP:

 RP = EP − ER ∴ RP = Rc.Cos(DLong) − Re.Cos(Lat) Tan(DLongR) = SP / RP Definition of Tan ∴ Tan(DLongR) = Rc.Sin(DLong) / [Rc.Cos(DLong) − Re.Cos(Lat)] Substitute SP & RP ∴ DLongR = ArcTan { Rc.Sin(DLong) / [Rc.Cos(DLong) − Re.Cos(Lat)] }

Consider triangle SRP:

 SR² = SP² + RP² Pythagoras' Theorem ∴ SR² = Rc².Sin²(DLong) + [Rc.Cos(DLong) − Re.Cos(Lat)]² Substitute SP & RP ∴ SR = √{ Rc².Sin²(DLong) + [Rc.Cos(DLong) − Re.Cos(Lat)]² }

Consider triangle OSR:

 Tan(b) = SR / OR Definition of Tan ∴ Tan(b) = √{ Rc².Sin²(DLong) + [Rc.Cos(DLong) − Re.Cos(Lat)]² } Re.Sin(Lat) Substitute SR & OR ∴ Beam b = ArcTan  ( √{Rc².Sin²(DLong)+[Rc.Cos(DLong)−Re.Cos(Lat)]²} Re.Sin(Lat) )

The following tables give examples of DLongR and Beam (defined here as the angle SOR between an incoming sat signal SO, and a rotor axis OR perpendicular to the Clarke Belt):

Angle DLongR Turned By Rotor (Axis Perpendicular To Plane Of Clarke Belt)
Latitude
(Lat)
Actual Difference In Longitude (DLong)
01020304050607080
00.0011.7723.4534.9746.2857.3168.0778.5388.70
100.0011.7423.3934.8946.1757.1967.9478.3988.56
200.0011.6423.2134.6345.8556.8367.5577.9988.17
300.0011.5022.9234.2345.3556.2566.9277.3487.52
400.0011.3022.5533.6844.6755.4866.0876.4786.64
500.0011.0722.1033.0443.8654.5465.0675.4085.56
600.0010.8121.6032.3242.9553.4863.8974.1784.32
700.0010.5421.0731.5541.9852.3562.6372.8382.94
800.0010.2720.5330.7740.9951.1761.3271.4381.49
900.0010.0020.0030.0040.0050.0060.0070.0080.00

Note that:

• As with DLongA, DLong and DLongR only agree at the North or South Pole or when both are zero
• Elsewhere DLongR is always greater then DLong, the maximum difference being on the equator

Beam Angle Between Clarke Satellite And Rotor Axis (Perpendicular To Plane Of Clarke Belt)
Latitude
(Lat)
Actual Difference In Longitude (DLong) Range Midrange
01020304050607080 0-400-600-80 0-400-600-80
090.00090.00090.00090.00090.00090.00090.00090.00090.0000.0000.0000.00090.00090.00090.000
1088.23288.23888.25488.27988.31188.34988.39088.43288.4730.0790.1580.24188.27288.31188.352
2086.54986.55986.58886.63586.69586.76486.84086.91786.9940.1460.2910.44686.62286.69486.772
3085.02685.03985.07785.13785.21585.30785.40685.51085.6120.1890.3810.58785.12185.21685.319
4083.72483.73883.77983.84483.92984.03084.14084.25584.3710.2050.4160.64783.82783.93284.048
5082.68682.69982.73782.79982.88082.97683.08283.19583.3090.1940.3970.62382.78382.88482.997
6081.93481.94481.97682.02782.09482.17482.26582.36182.4600.1600.3310.52682.01482.09982.197
7081.47581.48281.50481.53981.58681.64281.70781.77681.8480.1110.2320.37381.53081.59181.662
8081.30281.30681.31681.33481.35781.38581.41881.45481.4920.0550.1160.19081.32981.36081.397
Max 0.2050.4160.647

Results are classified to reflect the common rotor ranges.  Note that:

• Worst case variation (bold) is near Latitude 40°, 0.21° for a ±40° rotor, 0.42° for a ±60° rotor.
• As might be expected, the minimum and maximum for each range are at the extremes of the range (for example, for the 0-40° range the minimum is at DLong = 0° and the maximum at DLong = 40°).
• The 'midrange' shown for each range is the average of the maximum and minimum over that range.

When setting up the rotor, the error in DLongR tracking around the Clarke Belt is a given, unalterable feature of the rotor.  Most rotors step through divisions of 0.1°.

However the Beam setting can be optimised by using the midrange value shown above for the rotor's range.  This halves the intrinsic error to 0.11° for a ±40° rotor and 0.21° for a ±60° rotor.

Although this seems common sense, actually proving it is not straightforward and requires vector manipulation with matrices.  Although much work, it yields a powerful analytical tool.

Coordinate axes have already been defined  -  X South and Y East in the northern hemisphere, opposite in the southern, Z vertically up.  Mathematical convention has a +ve rotation anti-clockwise looking from +ve to −ve, which for Y happens to be opposite to the one in the Settings Analysis.

'Perfectly' aligning a conventional fixed dish on a sat can then be modelled by moving a unit vector initially pointing along the X-Axis, as follows  ...

1. Rotation of the coordinates about the Z-Axis through DLongA
2. Rotation about the (rotated) Y-Axis through −Elevation

Mounting a rotor and turning it to a sat can be modelled by the mathematically inconvenient ...

1. Rotation about the Y-Axis through −(90−Tilt), measured from horizontal (maps Z onto rotor axis)
2. A further rotation about the Y-Axis through 90−Beam
3. Rotation about the (first rotated) Z-Axis through DLongR

... but the following is equivalent and (if less practical in real life) mathematically easier ...

1. Rotation about the Y-Axis through −(90−Tilt) = Tilt−90
2. Rotation about the (rotated) Z-Axis through DLongR
3. Rotation about the (rotated) Y-Axis through 90−Beam

The angle between the resulting vectors is the intrinsic error from using an approximate mechanism of a single axis rotor rather than an exact mechanism able to point in any direction.

The following mathematical models derive from matrices representing the two component rotations:

 Ry(y) Rz(z) Cos(y) 0 −Sin(y) Cos(z) Sin(z) 0 = 0 1 0 (5) = −Sin(z) Cos(z) 0 (6) Sin(y) 0 Cos(y) 0 0 1

Fixed = Rz(zF) × Ry(yF) × (1, 0, 0)  where zF = DLongA, yF = −Elevation

 Cos(zF) Sin(zF) 0 Cos(yF) 0 −Sin(yF) 1 = −Sin(zF) Cos(zF) 0 × 0 1 0 × 0 0 0 1 Sin(yF) 0 Cos(yF) 0
 Cos(zF).Cos(yF) Sin(zF) −Cos(zF).Sin(yF) 1 = −Sin(zF).Cos(yF) Cos(zF) Sin(zF).Sin(yF) × 0 Sin(yF) 0 Cos(yF) 0
 Cos(zF).Cos(yF) = −Sin(zF).Cos(yF) Sin(yF)

Rotor = Ry(y1) × Rz(zR) × Ry(y2) × (1, 0, 0)  where y1 = Tilt−90, zR = DLongR, y2 = 90−Beam

 Cos(y1) 0 −Sin(y1) Cos(zR) Sin(zR) 0 Cos(y2) 0 −Sin(y2) 1 = 0 1 0 × −Sin(zR) Cos(zR) 0 × 0 1 0 × 0 Sin(y1) 0 Cos(y1) 0 0 1 Sin(y2) 0 Cos(y2) 0
 Cos(y1).Cos(zR) Cos(y1).Sin(zR) −Sin(y1) Cos(y2) 0 −Sin(y2) 1 = −Sin(zR) Cos(zR) 0 × 0 1 0 × 0 Sin(y1).Cos(zR) Sin(y1).Sin(zR) Cos(y1) Sin(y2) 0 Cos(y2) 0
 Cos(y1).Cos(zR).Cos(y2)−Sin(y1).Sin(y2) Cos(y1).Sin(zR) −Cos(y1).Cos(zR).Sin(y2)−Sin(y1).Cos(y2) 1 = −Sin(zR).Cos(y2) Cos(zR) Sin(zR).Sin(y2) × 0 Sin(y1).Cos(zR).Cos(y2)+Cos(y1).Sin(y2) Sin(y1).Sin(zR) −Sin(y1).Cos(zR).Sin(y2)+Cos(y1).Cos(y2) 0
 Cos(y1).Cos(zR).Cos(y2)−Sin(y1).Sin(y2) = −Sin(zR).Cos(y2) Sin(y1).Cos(zR).Cos(y2)+Cos(y1).Sin(y2)

Hence, the direction cosines for the vectors (both are unit vectors so denominators = 1) are ...

 Fixed: aF = Cos(zF).Cos(yF) bF = −Sin(zF).Cos(yF) cF = Sin(yF) Rotor: aR = Cos(y1).Cos(zR).Cos(y2)−Sin(y1).Sin(y2) bR = −Sin(zR).Cos(y2) cR = Sin(y1).Cos(zR).Cos(y2)+Cos(y1).Sin(y2)

... and the rotor's intrinsic tracking error, e, is then the angle between the two vectors ...

 e = ArcCos(aF.aR + bF.bR + cF.cR)

... substituting the direction cosines ...

 e = ArcCos ( Cos(zF).Cos(yF).[Cos(y1).Cos(zR).Cos(y2)−Sin(y1).Sin(y2)]  + Sin(zF).Cos(yF).Sin(zR).Cos(y2)  + Sin(yF).[Sin(y1).Cos(zR).Cos(y2)+Cos(y1).Sin(y2)] )

... substituting the rotations ...

 e = ArcCos ( Cos(DLongA).Cos(−Elevation).[Cos(Tilt−90).Cos(DLongR).Cos(90−Beam)−Sin(Tilt−90).Sin(90−Beam)]  + Sin(DLongA).Cos(−Elevation).Sin(DLongR).Cos(90−Beam)  + Sin(−Elevation).[Sin(Tilt−90).Cos(DLongR).Cos(90−Beam)+Cos(Tilt−90).Sin(90−Beam)] )

... which can be simplified as follows ...

 Cos(−A) = Cos(0 − A) ∴ Cos(−A) = Cos(0).Cos(A) + Sin(0).Sin(A) Compound Angles (4) ∴ Cos(−A) = Cos(A) Sin(−A) = Sin(0 − A) ∴ Sin(−A) = Sin(0).Cos(A) − Cos(0).Sin(A) Compound Angles (2) ∴ Sin(−A) = −Sin(A) Cos(90 − B) = Cos(90).Cos(B) + Sin(90).Sin(B) Compound Angles (4) ∴ Cos(90 − B) = Sin(B) Sin(90 − B) = Sin(90).Cos(B) − Cos(90).Sin(B) Compound Angles (2) ∴ Sin(90 − B) = Cos(B) Cos(C − 90) = Cos(C).Cos(90) + Sin(C).Sin(90) Compound Angles (4) ∴ Cos(C − 90) = Sin(C) Sin(C − 90) = Sin(C).Cos(90) − Cos(C).Sin(90) Compound Angles (2) ∴ Sin(C − 90) = −Cos(C)

... giving (retaining version with explicit Tilt for later use) ...

 e = ArcCos ( Cos(DLongA).Cos(Elevation).[Sin(Tilt).Cos(DLongR).Sin(Beam)+Cos(Tilt).Cos(Beam)]  + Sin(DLongA).Cos(Elevation).Sin(DLongR).Sin(Beam)  + Sin(Elevation).[Cos(Tilt).Cos(DLongR).Sin(Beam)−Sin(Tilt).Cos(Beam)] )

... but here Tilt = Lat ...

 e = ArcCos ( Cos(DLongA).Cos(Elevation).[Sin(Lat).Cos(DLongR).Sin(Beam)+Cos(Lat).Cos(Beam)]  + Sin(DLongA).Cos(Elevation).Sin(DLongR).Sin(Beam)  + Sin(Elevation).[Cos(Lat).Cos(DLongR).Sin(Beam)−Sin(Lat).Cos(Beam)] )

... where Lat is given and DLongA, Elevation, DLongR, Beam are as previously calculated.

The following table lists intrinsic rotor error over both common ranges, assuming:

• Rotor axis exactly perpendicular to the Clarke Belt
• Dish elevation sets the given beam angle (midrange as above for rotor range and site latitude)
• Rotor angular step resolution of 0.1°
Intrinsic Rotor Error (perpendicular axis, midrange elevation, rotor step = 0.1°)
Latitude
(Lat)
±40° Rotor ±60° Rotor
BeamLongitude Difference (DLong)Max BeamLongitude Difference (DLong)Max
010203040 0102030405060
090.000.000.030.050.030.020.0590.000.000.030.050.030.020.010.030.05
1088.270.040.050.020.010.050.0588.310.080.080.060.030.030.040.090.09
2086.620.070.080.040.040.090.0986.690.150.140.110.070.050.080.150.15
3085.120.090.080.050.030.110.1185.220.190.180.140.080.050.100.190.19
4083.830.100.090.070.020.110.1183.930.210.190.160.090.030.100.210.21
5082.780.100.090.050.040.100.1082.880.200.190.150.090.040.100.200.20
6082.010.080.070.040.020.090.0982.100.170.160.120.070.050.080.170.17
7081.530.060.060.040.050.060.0681.590.120.120.090.070.020.070.120.12
8081.330.030.040.03 0.0481.360.060.060.05 0.06
Max 0.11 0.21

Note that:

• Even on the equator, the limit of the rotor step angle introduces some error.
• For these conditions, in theory these are optimal results; in reality installation errors will dominate  -  the best possible accuracy with most rotor and dish scales ≈0.1°, it's difficult to avoid slight movements as bolts are tightened, dishes tend to distort slightly under their own weight, etc.

Some sites give rotor tilts leaning slightly forward from perpendicular towards the Clarke Belt.  Depending on rotor range and latitude, such 'forward' tilts can significantly reduce the intrinsic errors above, as can be gauged using the previous vector analysis.

Taking the previous result with explicit tilt, it only remains to supply tilt and beam settings, but what should these be?  It may be possible to derive suitable values for each latitude and rotor range proved to give minimum overall error, but I have tried and been unable to do so.  Instead, what follows is a procedure that gives the best results I've seen so far.

Since error increases with DLong/A/R as the beam falls increasingly short of the Clarke Belt, start with the correct beam setting for (note, rotational) DLongR = 90°.  However, that beam will overshoot at DLong = DLongA = DLongR = 0°.  Therefore, tilt the rotor forward by the overshot angle to bring the beam back onto the Clarke Belt there.

When DLongR = 90°, P is coincident with R, and the angles can be calculated as follows ...

Consider triangle ESR:

 SR² = SE² − ER² Pythagoras' Theorem ∴ SR² = Rc² − Re².Cos²(Lat) Substitute SE & ER ∴ SR = √[ Rc² − Re².Cos²(Lat) ]

Consider triangle OSR:

 Tan(Beam90) = SR / OR Definition of Tan ∴ Tan(Beam90) = √[ Rc² − Re².Cos²(Lat) ] / Re.Sin(Lat) Substitute SR & OR ∴ Beam90 = ArcTan { √[ Rc² − Re².Cos²(Lat) ] / Re.Sin(Lat) } Tilt = Lat + ( Beam90−Beam0 ) Beam0 from earlier table

The following table lists intrinsic rotor error for 'forward' tilts over the same ranges, assuming:

• Rotor axis leaning forward by difference between BeamDLongR=90 & BeamDLongR=0
• Dish elevation sets the given beam angle for DLongR = 90°
• Rotor angular step resolution of 0.1°
Intrinsic Rotor Error (forward axis beam90 − beam0, beam90, rotor step = 0.1°)
Latitude
(Lat)
Tilt Beam Longitude Difference (DLong) Max
0102030405060 0-400-60
000.0090.000.000.030.050.030.020.010.030.050.05
1010.2588.480.000.030.010.020.040.010.030.040.04
2020.4687.010.000.040.000.020.060.010.030.060.06
3030.6185.640.000.010.010.010.010.090.020.010.09
4040.6884.410.000.010.020.050.080.080.080.080.08
5050.6783.360.000.050.030.010.090.020.110.090.11
6060.5882.520.000.000.030.020.100.080.070.100.10
7070.4281.900.000.030.060.080.060.000.020.080.08
8080.2281.520.000.040.02 0.040.04
Max 0.100.11

Practical usefulness will be limited by rotor and dish scale accuracy, and may be doubtful for ±40° rotors, perhaps excepting mid-latitude problem systems, but more probable for ±60° rotors.