See example also
1. General description, program input/output
4. Feed page, user defined feed pattern and SWE calculation
5. Graphs: copy, save data, customize
The MakeR_S program generates a single feed single reflector antenna from a given target far-field radiation pattern. The current version of the program is designed for a separable target radiation pattern, i.e. the pattern can be described as a multiplication of two independent functions in vertical (Elevation) and horizontal (Azimuth) planes. The optimisation is performed over a set of frequencies, at each frequency a different feed pattern and target antenna radiation pattern can be supplied.
The optimisation is performed is two steps. Geometrical Optics (GO) method is used first to generate a starting point to the Physical Optics (PO) optimisation. The dual-stage approach ensures fast convergence. Two PO optimisation methods can be used: analytical gradient optimisation procedure [1] or "traditional" optimisation of the coefficients representing the surface distortion. It is possible to load main reflector surface in GRASP format and use it as a starting point for PO optimisation.
Program input/output:
The program consists of an executable file MakeRS.exe for Windows 95/ 98/NT, an optimisation engine (run_po_s.exe) used internally by the program, a few demo data files and this manual. All files are compressed in a .zip archive. The program does not require any special installation - simply extract all files into an empty directory using WinZip (www.winzip.com). You may find it useful to create a shortcut to the program and place it on the Desktop. For SWE calculation you need a copy of SPHREX.exe program which has to be in the same directory as MakeRS.exe.
The program has 4 pages: "Antenna", "Envelope", "Feed" and "Optimise". Having started from the first page simply follow this sequence to generate an antenna. To view this manual you can click the question mark button in the bottom left corner and select "User manual" or press F1.
As an example let us generate an antenna with rectangular beam. Run the program (file MakeRS.exe) and select "Antenna" page. Click "Load" button to load "example1.mrs ". The program stores all data in a single binary file with default extension ".mrs". You will see a picture as in Fig.1.
The antenna boresight is aligned with the z-axis. The x-axis is vertical and y-axis is horizontal. The origin is located at the aperture center.
In this example we would like to generate an antenna with rectangular aperture 3m by 3m. Two frequency targets are specified: 1.2 GHz and 1.0 GHz (frequency target box are marked with a green dot in the Fig.1. To edit a line double click on it, when finished press Enter key to exit the edit boxes. To add or delete target use "Add"/"Delete" buttons (marked with red dots).

Fig.1. Antenna page
Let us proceed to the next page, "Envelope" (Fig.2). To have a plot like in Fig.2 double click on the graph to restore automatic scale - this works for all graphs in the program.
Each frequency target can have an independent radiation pattern envelope. To switch between targets use the combo-box on the top of the page or two small buttons next to it (marked with yellow dots on the Fig.2).
The program uses target envelopes which are separable, i.e. which are specified as multiplication (sum in dB scale) of two independent functions in vertical (Elevation) and horizontal (Azimuth) planes. In each plane two target envelopes can be used: one as a upper limit for the actual antenna pattern, the other one as a lower limit. In total we have 4 functions: Vertical Min, Vertical Max, Horizontal Min and Horizontal Max. To view/edit a function use the radio buttons on the top-right. The function points [angle (degrees) ... Gain (dBi)] are printed in the text box on the right, the plot on the left shows pair of functions (max/min in vertical plane or max/min in horizontal plane). Points are connected with straight lines to assemble an envelope.
Here we would like to generate a square beam with limits +/- 10 degrees in both planes. For this purpose we set the constant min limit, the same in both planes. We just need to specify the shape at this stage, the absolute values will be set later. The max limit is set to some const value and basically not used.
To enter points there are 4 choices:
Once finished, press "Refresh" button to load values and update plots. Any mistakes will be reported. Note that the angles must increase, decreasing values will be reported as a mistake.
Quite often the requirement to the radiation pattern are the same at all frequencies. After creating one envelope, the same envelope can be set for all targets: use "Make the same" button.

Fig.2. Envelope page
Now let us set the feed parameters for each target. Select the "Feed" page. The target can be selected from the combo box or using small button with arrows, as on the "Envelope" page.
The feed parameters for each target are completely independent from each other. To use the same feed pattern click "Make the same" button.

Fig.3. Feed page
Let us proceed to the final "Optimise" page. The summary of target parameters is displayed in the list box at the top of the page. These are parameters which are unique for each target. The graph below displays the far-field radiation pattern cut for the selected target ("Far-field" page). Double click on the graph to set the automatic scale, you will see the picture as in Fig. 4.
The other graph pages are "Reflector surface" - displays the reflector surface cut, and "Ray trace" - displays the ray trace in the vertical plane. These plots are the same for all target.
Information from the optimisation engine is displayed in the text box at the bottom of the window. The hight of the top list box and the bottom text window can be adjusted: use mouse to drag the borders.
Controls on the right (starting from the top, all the parameters except the target weight, are common for all targets):
"Target weight" - the penalty function to be minimized is a sum of penalties for each target. The weight is used to increase/decrease optimizer "attention" to the target.
"Resolution, points per lobe" - the penalty function (and the radiation pattern) are evaluated on a grid of points, the spacing between points is set relative to the average angular size of the reflector sidelobe at given frequency. The more points the slower the optimisation, but there are less chance that some parts of the pattern "escape" through the holes in the grid. The typical values are 2-5. Remember that the number of points grows as square of this parameter since the grid is a rectangle in azimuth/elevation coordinates.
"Optimisation type" - analytical gradient procedure [1], the default option. Fast (relative to the "classical" second option) and optimises reflector surface as a whole. The surface distortion which gives the fastest (i.e. along the gradient) and largest decrease in the penalty function is evaluated analytically in each iteration. In some cases might not converge (stuck in the local minimum of the penalty function). In this case you can switch to the second option - coefficients optimisation. The reflector distortion is described as Fourier series (split along the vertical and horizontal aperture coordinates). 8 coefficients are used in total: 4 for the vertical and 4 for the horizontal coordinate. Then the Powell optimisation is used to minimise the penalty function.
Button "Generate GO solution" - used to generate the starting point for the optimisation or if you wish to restart the optimisation from the beginning. For the GO solution the shape of the min envelope of the first target is used. The first target only is used since the GO solution is frequency independent. The shape of the envelope is used because the GO solution matches the distribution of the power between the rays in the far-field, it cannot match the absolute value of the target. Note in Fig.4 the PO radiation pattern rolls off at the edges of the min envelope and it is quite difficult to "pull it back" to the target. In this example we deliberately increased the min limit to +/- 15 degrees from +/- 10 for the first target. Once the GO solution is generated, we can shrink the target back to +/- 10 degrees to proceed with PO optimisation.
GO solution option: "Cross ray mapping in vertical plane" - to map the top part of the reflector to the bottom part of the far-field target and the bottom part the top of the target (usually the mapping is top-to-top, bottom-to-bottom). This option deflects the bottom rays from the feed and gives more compact design, although the performance might be not as good due to a larger reflector curvature. You can see the vertical plane ray trace in the "ray trace" page of the graph. The reflector in this example was generated with this option on. Try to select / unselect this option and press "Generate GO solution" button to see the difference in ray trace. The PO radiation pattern is computed for the generated reflector, so please be patient, it might take a few minutes. The program can always be stopped by pressing "Stop" button on the left.
GO solution option: "Cross ray mapping in horiz. plane" - the same operation in horizontal plane.
GO solution option: "Vert. feed half-angle, deg" - to set vertical feed semi-vertex angle (i.e. half of the reflector angular size in vertical plane as it seen from the feed) for GO solution. If you wish to use value of the conic system with the specified aperture size and feed position, double click on the edit box and the value will be entered automatically. You could try to enter larger value than suggested for cross-ray mapping reflector or smaller value if the cross-ray option is not used.
GO solution option: "Horz. feed half-angle, deg" - the same operation in horizontal plane.
Load GRASP surface: "Load file and update pattern" - click the button to load GRASP main surface file (the one which contains z-coodinates of the surface on rectangular grid). The radiation pattern and the ray trace plot will be updated and the surface will be used as a starting point for PO optimisation.
Load GRASP surface parameters: "Aperture center X", "Feed position X", "Feed position Z"- coordinates of the aperture center and the feed in the GRASP main coordinate system (values as in the GRASP master file). "Feed tilt angle, deg" - feed tilt angle from horizontal. "Scale to meters coeff." - coefficient to multiply the data in order to convert it to meters (for example if the data is in inches, use 0.0254).
"Adjust sidelobe envelope": "Move max", "Move min" - As you remember on the "Envelope" page we specified the far-field envelope shape. Here we can adjust the absolute value of the max and min envelopes. In this example the max limit is not used in the optimisation (it is used to show the radiation pattern outside the min limit, since the pattern is computed within the target limits only). Start optimisation with limits "just touching" the radiation pattern. The limits should be moved slowly, otherwise the procedure does not converge (i.e. the optimum reflector surface will be simply too far from the current surface). Move the limits in about 1 dB steps as optimisation proceeds. If you have both min and max limits, try to push min limit up first, this will give higher absolute antenna gain, i.e. more efficient antenna.
"Plot selector" - select the "plot plane" and the "plot cut" for the far-field plot and the reflector surface plot. Vertical plot plane: to select a cut the plane is rotated around the vertical x-axis for the far-field plots or shifted parallel to the x-axis for the reflector surface plots. Horizontal plot plane: to select a cut the plane is rotated around the horizontal y-axis for the far-field plots or shifted parallel to the y-axis for the reflector surface plots. You can select the first, center or the last cut (i.e. as the plot plane moves from min to max angular limits for far-field plots or within the aperture limits for the reflector plots). The user option allows to scroll between cuts using small buttons with arrows. The max option brings you to the far-field cut with the largest penalty or to the first cut if the penalty is zero or has not been computed.

Fig.4. Optimise page
Let us continue with the example. After generating the GO solution (press button "Generate GO solution", use cross ray option), alter the min target envelope for the first target back to +/- 10 degrees (you need to return on the Envelope page). Then proceed with the PO optimisation: press "Run" button on the left. Select "max" plot cut to observe optimisation of the cut with the largest penalty. During optimisation you can select the target to view from the list box at the top and use plot selector. All other controls are locked during the run. Optimisation can be stopped at any stage using the "Stop" button and you can make all required alterations or save the file. To resume press "Run" button again. If you wish to restart from the GO solution, not to resume the run, press "Generate GO solution" button. The current example takes about 100 iterations to reduce penalty to 1.0E-4 value. The result is store in "example2.mrs" file.
To compete the description of the "Optimise" page: The results can be saved to a file in GRASP format (separately for each target) or AutoCAD .dxf format: use the scroll bar to scroll down the parameters box, select the file format and number of points along the reflector height, then click "Save target results to file" button.
If change the reflector or the feed parameters the far-field plot will be reset, no plot will be displayed. The pattern will be updated as soon as you start the optimisation (click the "Run" or "Generate GO solution" buttons).
A word of warning: despite the best (as we believe) tools provided, the reflector synthesis is not a fast and easy job. The main problem is that the penalty function we are minimising to obtain a reflector is not smooth and has many local minimums. As you progress, save the intermediate results into separate files, you might want to restart the optimisation from that points. If the optimisation does not converge, try to alter/relax the target envelope or alter the target weights for a multiple target to push it from a possibly local minimum.
The cos power n feed pattern can be specified using two parameters: feed taper and the feed semi-vertex angle. Let us study user-defined patterns which allow accurate representation of the feed radiation parameters.
The user feed pattern can be loaded in different formats which are converted to a common form: a set of azimuth (phi) cuts; for each phi-cut data is displayed as Theta, deg/Co-polar value, dB/Cross-polar value, dB/ Phase of co-polar, dB / Phase of cross-polar, dB. The user feed data can be used directly by the program if you select feed type as "User feed far-field pattern in vertical and horizontal plane". The vertical and horizontal feed pattern are used directly to compute the field on the sub-reflector using Ludwig's 3rd definition [2]. A far more accurate approach is to use the feed radiation pattern to compute SWE coefficients [2] using SPHREX program [3]. Once computed, the SWE coefficients can be used to compute field on the sub-reflector surface with high accuracy.
Let us start with description of the user feed pattern input window. Load "exampleSWE.mrs" file supplied. The graph on the "Feed" page displays the user feed pattern which has 4 pattern cuts: 0, 90, 180 and 270 deg. The pattern phase is constant (click "Plot: phase" button) and the cross-polar pattern is set to -200 dB (click "amplitude" and "cross-polar").To display the window as in Fig.5 click "Set user feed taper" button (the button is visible when the feed type is not cos power n).

Fig.5. User defined feed pattern.
You can type the data in the memo box, paste from clipboard or load from a file. Select the file format from a combo-box and click "Update one cut" button. Update value of the phi angle for the cut.
To add another cut click "Add" button to make a copy of the current cut, update value of the phi angle for the new cut, then load new data to the memo box and click "Update one cut" button.
Use buttons with arrows to scroll between cuts and "Delete" button to remove cuts. The cuts are always sorted in the ascending order of the phi angle.
Often the measurements are performed at equal angle intervals, so the angle information is not included in the file (i.e instead of 5 columns the file has 4 columns: Co, Cx, Phase co, Phase cx). In this case select "no angle" check box. An edit-box become visible, where you can set the angle increment between points. It is assumed that the first point has zero theta angle.
Another option is to load multiple cuts at once. Before each cut you must supply a line which contains "phi" keyword anywhere in the line and the phi cut value, for example (no angle option must be checked), then click "Update multiple cuts" button.
--------------------------------------------------------
This is phi= 0
0.000000 -200.000000 -30.145550 0.000000
-0.022545 -200.000000 -30.118310 0.000000
-0.090212 -200.000000 -30.036320 0.000000
.................
This is phi= 180
0.000000 -200.000000 -30.145550 0.000000
-0.022545 -200.000000 -30.118310 0.000000
-0.090212 -200.000000 -30.036320 0.000000
etc.
---------------------------------------------------------
For SHREX program you need to set the radius of the measurement sphere (for far-field measurements set to -1).
To close the window, click "OK" button. If you do not wish to load the data to the program, click "Cancel".
Regarding "Swap polarization" button read note after Fig.7.
Let us discuss parameters for SPHREX run. We recommend to read SPHREX manual to become familiar with the SPHREX program. As you close the user pattern window, the program tries to suggest values for the SPHREX parameters, you can change these parameters before the SPHREX run.
The parameters are:
Min power in SWE - accuracy parameter, amount of power in %, captured by the SWE expansion, default value 99.999%;
Max number of theta modes - can be defined by SPHREX (if set to large number). Set it yourself if you want to limit number of coefficients;
Nb of points for extrapolation in theta - if the pattern covers 0..180 degrees - set to 0. If not, set to 2 points and the program is using linear extrapolation with slope set in the next line (dB/deg) to extend data up to 180 deg;
Slope for extrapolation (negative number) , see comments above;
Nb of interpolated phi cuts - usually set to the nb of cuts in the user data. But note that the cuts must cover 0..360 degrees of phi, so for 4 cuts use phi values 0..90..180..270. You have to set actually value m, the number of cuts is 2 in power m
Nb of interpolated theta points - to generate equally spaces points in theta for SPHREX input. Often the user data is equally spaced, so this number would be (180 /spacing between point) + 1, i.e. to cover 180 deg with 1 deg spaced points we need 181 points.

Fig.6. SPHREX run parameters
Click small "Run" button in the "SPHREX execution control" window. The SPHREX output is captured and displayed in the memo box at the bottom of the window. As SPHREX exits, the SWE coefficients are loaded automatically into Axi_po.
To view the run information window (fig. 7) click "Run info" button. The window displays all SPHREX input/output files and captures SPHREX output to plot input and SWE fitted radiation pattern as shown in fig.8. Windows 95/98 cannot display large files in the memo box, so a warning message will be displayed suggesting to use another editor to view output files (Word for example).

Fig.7. SPHREX run information.
Note regarding the Horizontal target polarisation for SPHREX input: in the SPHREX input files the vertical polarisation is always treated as co-polar, the horizontal polarisation - as cross-polar. In MakeR_S if the target polarisation is selected as horizontal, the horizontal polarisation will be co-polar. This means a bit awkward input for the horizontal target polarisation: in the user defined feed pattern window (Fig. 5) you need to input the feed co-polar pattern as cross-polar (i.e. swap co- and cross- values in the above example) and vice versa. To check the input, update the radiation pattern (press "Generate GO solution" button on the "Optimise" page). If the radiation pattern values are very low, this must be the cross-polar reflector pattern, and the problem will be fixed by swaping co- and cross- values in the feed pattern input. There is a special button "Swap polarization" on the User defined pattern window (see Fig.5), which does this operation: swap co- and cross- polar components.
Click right mouse button on a graph to display a menu. Select "Copy to clipboard" to copy graph as a Windows metafile, "Run designer" to customize graph parameters and "Save to file " to save graph data into a text file. Some options are disabled on selected graphs when considered impractical.
Using designer you can change graph limits and tick marks, change line style, etc.
Fig.8. Graph designer
A faster way is to use mouse to zoom in and out ( you do not need designer). To zoom in hold the left mouse button and move the mouse to select a rectangle to zoom in. When mouse button is released, the graph will be re-scaled. Double click resets the graph scale back to automatic.
Fig.9. Zooming in with mouse. Double click to restore automatic scale.
To zoom out horizontal axis press and hold the left mouse button anywhere under the axis and move mouse. Imagine that you are trying to shrink the existing part of the graph by holding its corner with mouse.
Fig.10. Zooming out horizontal axis with mouse
To zoom out the vertical axis press the left mouse button on the right side of the graph.
Fig.11. Zooming out vertical axis with mouse.
| Ctrl-O | Load (open) file |
| Ctrl-S | Save file |
| Ctrl-R | Run or Stop the program |
| Ctrl-1 | Select Antenna page |
| Ctrl-2 | Select Target page |
| Ctrl-3 | Select Feed page |
| Ctrl-4 | Select Optimise page |
| PgDn | Next page |
| PgUp | Prev page |
| F1 | Help |
Note that you can use standard Windows keys (as Ctrl-C or Ctrl-Insert) to copy, cut and paste text.
1. B.S.Westcott and A.A.Zaporozhets, "Single reflector synthesis using an analytical gradient procedure", Electronics Letters, 1994, Vol. 30, No 18, pp.1462-1463.
2. Spherical near-field antenna measurements. Edited by J.E Hansen. IEE electormagnetic wave series, 26. Peter Peregrinius Ltd, 1988.
3. SPHREX manual