Anda di halaman 1dari 95

TICRA

Users Manual for GRASP8

Editor: Frank Jensen

This edition relates to GRASP8/GRASP8W version 8.2.5. Copenhagen, March 2002 Copyright 2002 TICRA Engineering Consultants, Copenhagen, Denmark.

ii

TICRA

1 2 3

INTRODUCTION .............................................................................................. 1 OVERVIEW ........................................................................................................ 2 GRASP8 OPERATING INSTRUCTIONS ..................................................... 4 3.1 Object input ...............................................................................................4 3.1.1 3.1.2 3.1.3 Objects and classes .......................................................................4 Single reflector antenna geometry...............................................5 Example, offset single reflector system .......................................6
3.1.3.1 3.1.3.2 3.1.3.3 3.1.3.4 3.1.3.5 3.1.3.6 3.1.3.7 3.1.3.8 3.1.3.9 3.1.3.10 3.1.3.11 Reflector_Data object..................................................................... 10 Reflector_Surface object ................................................................ 12 Reflector_Rim object...................................................................... 12 Field_Frequency object.................................................................. 13 Feed_System object ....................................................................... 14 Feed_Pattern object....................................................................... 14 Feed_Coor_Sys object .................................................................... 14 Field_Cuts object ........................................................................... 15 Cut_Coor_Sys object ...................................................................... 16 Po_Calculation object .................................................................... 16 Po_Convergence object .................................................................. 17

3.1.4 3.1.5 3.2

Geometry of dual reflector system .............................................19 Example, offset dual reflector system........................................19

Commands ...............................................................................................25 3.2.1 3.2.2 3.2.3 Activation of GRASP8 ................................................................25 The command user interface......................................................25 Basic commands .........................................................................27
3.2.3.1 3.2.3.2 3.2.3.3 3.2.3.4 3.2.3.5 3.2.3.6 The FILES commands................................................................... 28 The BROWSE commands.............................................................. 28 The SHOW command .................................................................... 31 The COMMAND commands ......................................................... 31 The PRG_CONFIG SHOW commands......................................... 33 The QUIT command ...................................................................... 33

3.2.4

Commands for offset single reflector system.............................33

TICRA 3.2.5 3.3 3.4 3.5 3.6 3.7 3.8 4

iii Commands for dual reflector system .........................................36

Output......................................................................................................38 Array case example. ................................................................................43 Electrical properties example. ................................................................47 GTD example...........................................................................................54 3D-plotter example..................................................................................56 Struts example ........................................................................................62

REFERENCE SECTION ................................................................................ 72 4.1 4.2 OQL syntax..............................................................................................73 Command summary ................................................................................75 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3 Input and output commands......................................................75 OBJECT managing commands ..................................................75 Calculation commands ...............................................................76 Configuration inspection commands .........................................76 Browser OBJECT commands.....................................................77 Program termination command.................................................78 Root classes and derived classes ................................................78

APPENDIX A GEOMETRY OF OFFSET PARABOLOIDAL REFLECTOR ..................................................................................................... 1 APPENDIX B GEOMETRY OF OFFSET DUAL REFLECTOR SYSTEM.............................................................................................................. 1

TICRA

INTRODUCTION

This manual describes the general reflector antenna and antenna farm analysis program GRASP8. It is assumed that the reader has a basic understanding of electromagnetics, especially within the topics of Physical Optics (PO) and Geometrical Theory of Diffraction (GTD). In addition to the analysis program a graphics preprocessor (GRASP8W) is available for assisting the user in defining the scattering structures and the analysis tasks to be carried out. A postprocessor is available for displaying the calculated field in cuts, uv-grids etc. It is not assumed in this manual that the user has access to these post- and preprocessors (GRASP8W). The special capabilities of the pre- and postprocessors are described in the respective help facilities. An overview of the GRASP8 capabilities is given in Chapter 2 and examples of input and field calculations are given in Chapter 3. It is recommended that new users read these two chapters even if they have access to the preprocessor. Chapter 4 is a reference section which can be consulted when needed. Two appendices are included with useful formulas for single and dual reflector geometries. A version with limited functionality, GRASP8-SE, is available for free distribution. This Student Edition is restricted to handle basic cases and does not have the detailed possibilities of the professional version described in this manual. Thus, a maximum of two electromagnetic scatterers may be analysed, and only a limited number of feed models (sources) are available in the Student Edition. The present manual may be applied for the Student, Edition but the reader must be aware that some of the described functions will not be available.

TICRA

OVERVIEW

A short overview of the program capabilities is given in the following. For a comprehensive technical description of GRASP8 the reader is referred to the document: Technical Description of GRASP8. The program is able to calculate the electromagnetic scattering from general structures composed of curved reflectors and plane triangles, rectangles, parallelograms and struts. Due to the special object structure in which the geometrical data is arranged any number of reflectors and other structures can be analysed. The scattered field can be calculated by Physical Optics (PO) combined with the Physical Theory of Diffraction (PTD) or Geometrical Optics (GO) combined with the Geometrical Theory of Diffraction (GTD). It is possible to calculate E- and Hfields in both the near and the far field. General guidelines for selecting the PO/PTD or the GO/GTD field calculation are given in the technical description mentioned above. For focused reflector systems PO/PTD is intended to be used in the far field around beam maxima, whereas GTD can be used in the sidelobe region. The validity of GO/GTD breaks down near beam maxima because of caustics. For subreflector analysis GO/GTD can normally be used and for very large reflectors it has the advantage of being faster than PO/PTD. However, if the field that illuminates the subreflector is highly tapered a better prediction of the cross polarisation can be obtained by PO/PTD. In GRASP8 the user must specify a sequence in which the analysis should be carried out. The analysis normally starts with one or more feeds which act as the primary source of the electromagnetic field. The field from this source illuminates a scatterer for which the scattered field can be computed. This field can then illuminate a second scatterer etc. Finally, the field from the last scatterer can be computed in a specified set of output points. The field from some or all of the intermediate scatterers can also be added to the output field. To keep the ray tracing reasonably simple there is the restriction that only one reflector in a sequence can be analysed by GO/GTD. A PO/PTD analysis can be followed by a GO/GTD analysis, but since the PO/PTD field is not a ray field the computation is not straight-forward. In this situation the user can decide that the program shall consider each of the PO/PTD current elements as an input source to the GO/GTD analysis (which is very accurate but can be time consuming) or that the incident PO/PTD field shall be considered as a single source with a spherical or plane phase front.

TICRA As GRASP8 is a very general program the input facilities enable the user to define single or multi reflector systems and support structures with very few

limitations. A reflector surface can be defined numerically in a two-dimensional grid or along a radial assuming that it is rotationally symmetric. Special facilities exist if the surface satisfies a second order equation, if it is a paraboloid, a hyperboloid, an ellipsoid, an unfurlable rib reflector or an unfurlable 3D-scissors reflector. Furthermore, distortions, both systematic and random, can be modelled. The reflector rim can be elliptical, superelliptical, rectangular, triangular or numerically defined. A variety of feed models, analytical as well as numerical, is available. The most important analytical models are circular and rectangular horns and a Gaussian beam. The numerical types include a feed defined by tabulated far-field or nearfield cuts and a feed defined by spherical wave coefficients. The scatterers are assumed by default to be perfectly conducting, but special surface materials may be defined including a conducting surface with finite conductivity, a dielectric layer, a strip grid and a material defined by tabulated reflection and transmission coefficients. These materials may be combined in a layered structure and attached to the surfaces of a scatterer.

TICRA

GRASP8 OPERATING INSTRUCTIONS

The input to GRASP8 consists of objects and commands. Geometrical data and analysis specifications are defined in objects which will be described in Section 3.1 and the commands for controlling the computations will be described in Section 3.2. Finally, the output is described in Section 3.3. A number of examples are given in the sections following Section 3.3.

3.1

Object input

Most of the input to GRASP8 is arranged in so-called objects the structure of which will be explained in the following sub-sections.

3.1.1

Objects and classes

An input object to GRASP8 is a set of data which e.g. describes a physical object such as a reflector or a feed or a non-physical object such as a coordinate system. Objects are stored on file in a special format which will be explained in the following. More than one object can be stored in a single file. Since GRASP8 is able to handle an arbitrary number of objects an object must be given a unique name which is used to distinguish it from other objects. These object names are chosen by the user. Each object belongs to a certain class that determines which types of data the object contains. If, for instance, the user would like to analyse a dual reflector system, he can specify two objects of the class elliptical_rim for defining the rim of the two reflectors and he may choose the names Main_Rim and Sub_Rim for the two objects. The objects may look like

Main_Rim elliptical_rim ( centre : struct(x:0.605237 m, y:0 m), half_axis : struct(x:0.5 m, y:0.5 m) )

Sub_Rim elliptical_rim ( centre : struct(x:-.230753 m, y:0 m), half_axis : struct(x:.164389 m, y:0.201541 m) )

TICRA

The format in which objects must be written will be explained in detail in Section 3.1.3. Objects belonging to the same class contain the same types of data, but the values of the data are usually different. In the example above the two elliptical_rim objects contain the same type of data for describing the centre and the half axes of the rim, but the values of the data are different. The number of objects of the same class is unlimited so that also a third rim object could be defined and included in the analysis. As it will be explained in Section 3.2 some of the classes have a set of computational functions (e.g. electromagnetic field calculations) which can be invoked by the user. A large number of classes are available in GRASP8 for defining scattering geometries and radiating structures. Some of them will be introduced in the single reflector example in Section 3.1.3 and a complete description is contained in the Reference Manual of GRASP8.

3.1.2

Single reflector antenna geometry

A single reflector system is shown in Figure 3.1.2-1. The geometry consists of a reflector and a feed defined in the coordinate systems xmymzm and xfyfzf, respectively. The global coordinate system is denoted xyz. A reflector is defined by its surface and rim. The surface is given by a function zm=f(xm,ym) and the rim curve is defined by its projection onto the xmym-plane. In this plane the curve is given by the centre xc,yc and a polar function rm=g(m) so that the connection between rectangular (xm,ym) and polar (rm, m) coordinates for the rim becomes

xm = xc + rm cosm ym = yc + rm sinm (3.1.2-1)

The feed is positioned at the origin of the xfyfzf coordinate system and the feed axis is parallel to the zf-axis.

6
Main reflector aperture

TICRA

Main reflector

y
y

z
m

Figure 3.1.2-1

Geometry of single reflector antenna

3.1.3

Example, offset single reflector system

As an example of a single reflector geometry we consider the offset single reflector antenna in Figure 3.1.3-1. The reflector is an offset paraboloid with a circular projection onto the aperture plane orthogonal to the paraboloid axis. The feed is located in the focal point and points towards the centre of the reflector. reflector diameter focal length offset distance frequency D = 0.5 m f = 0.5 m xo = 0.3 m = 30.0 GHz

TICRA

Theta=

90.00 , Phi=

90.00

0.5

0.4

0.3

0.2

0.1

0.0

-0.1 10.00 lambda: -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 -0.0 0.1

Figure 3.1.3-1, Single reflector example. The complete input file to GRASP8 for PO analysis of the reflector is shown in Figure 3.1.3-2 of which the content will be explained in detail in the following sections. It is assumed that the data is stored in a file with the name gr8sing.tor, where the extension tor is an abbreviation for Ticra Object Repository. A special syntax must be respected when writing a tor-file as explained in the following. The syntax is called OQL (Object Query Language) and a precise definition can be found in Section 4.1. When using the graphics preprocessor GRASP8W the objects will automatically be written to the .tor file in the correct format.

8 // Example

TICRA

Input file for analysis of single reflector system

// *************** Reflector definition ****************** Reflector_Data reflector ( surface : ref(Reflector_Surface), rim : ref(Reflector_Rim) ) Reflector_Surface paraboloid ( vertex : struct(x:0 m, y:0 m, z:0 m), focal_length : 0.5 m ) Reflector_Rim elliptical_rim ( centre : struct(x:0.3 m, y:0 m), half_axis : struct(x:0.25 m, y:0.25 m) )

// ************ Frequency definition **************** Field_Frequency frequency ( list_freq : sequence(30 GHz) ) // *************** Feed definition ****************** Feed_System feed ( coor_sys feed_definition frequency )

: ref(Feed_Coor_Sys), : ref(Feed_Pattern), : ref(Field_Frequency)

Feed_Pattern standard_feed ( taper_angle : 25.948, taper : struct(zxdb:-3, zydb:-3), polarisation : linear_x ) Feed_Coor_Sys coor_sys ( origin : struct(x:0 m,y:0 m,z:0.5 m), x_axis : struct(x:.83486,y:.00000,z:.55046), y_axis : struct(x:0,y:-1,z:0) )

// ********* Pattern specifications *************** Field_Cuts spherical_cut ( frequency : ref(Field_Frequency), coor_sys : ref(Cut_Coor_Sys), polarisation : linear, cut_type : polar , theta_range : struct(start:-10, end:10, np:81), phi_range : struct(start:0, end:90, np:1), field_range : 40, file_name : gr8sing.cut )

TICRA
Cut_Coor_Sys coor_sys ( origin : struct(x:0.3 m, y:0 m, z:0.045 m) ) // ********* Field calculation by physical optics *************** Po_Calculation standard_po ( frequency : ref(Field_Frequency), scatterer : ref(Reflector_Data), po_points : struct(po1:19, po2:45), file_name : po.cur ) Po_Convergence ( source po_objects field_accuracy ) po_convergence : ref(Feed_System), : sequence(ref(Po_Calculation)) , : -80.

Figure 3.1.3-2, Input file gr8sing.tor

10

TICRA

The file contains 11 objects, some comment lines and blank lines where it is found convenient. A comment in the tor-file is initiated by // and extends to the end of the line. A comment may also be written in a C-like syntax initiated by /* and continued until */ so that it may include several lines. Comments can be inserted anywhere in the file.

3.1.3.1

Reflector_Data object

First we will consider the definition of the reflector starting with the reflector object.

Reflector_Data reflector ( surface : ref(Reflector_Surface), rim : ref(Reflector_Rim) )

The name of the object is Reflector_Data and it belongs to the reflector class. It is seen that all objects in the file have the form that the first name is the object name, the second name is the class name and hereafter the contents of the object is given enclosed in ( ). We use the convention in all examples that user specified names are spelled with the first letter capitalized and text which is part of the syntax is entirely in lower case letters. The file format is, however, case insensitive so that the example above could just as well be written with all upper case letters or any mixture of upper and lower case letters. An exception is file names where the case on some computer systems (e.g. UNIX) is important. Also measurement units must be in the correct case, e.g. Giga Hertz must be written as GHz and not as Ghz. The file is in free format so that blanks and line breaks can be inserted anywhere or the object can be written on one line as

Reflector_Data reflector(surface: ref(Reflector_Surface),rim: ref(Reflector_Rim))

An object has a number of attributes, which in this case, are the names surface and rim. Attributes may be specified in any order such as

Reflector_Data reflector ( rim : ref(Reflector_Rim), surface : ref(Reflector_Surface) )

TICRA

11

The values of the attributes are ref(Reflector_Surface) and ref(Reflector_Rim), respectively, which means that the reflector surface is defined by a reference to another object with the name Reflector_Surface and the rim of the reflector is defined by a reference to an object with the name Reflector_Rim. In the next two sub-sections we will consider the two referenced objects. A reflector has more attributes. Two of these are coor_sys and distortion by which the reflector coordinate system and a surface distortion can be specified. If these attributes are included the object will look like

Reflector_Data reflector ( surface : ref(Reflector_Surface), rim : ref(Reflector_Rim), coor_sys : ref(New_Coor_Sys), distortion : ref(Reflector_Distortion) )

The reflector (and the referenced rim and surface objects) is then defined in the coordinate system with name New_Coor_Sys and the distortion specified by the surface object with name Reflector_Distortion is added to the reflector surface. If these attributes are not specified the default values will be used which for the coor_sys attribute is the global coordinate system and for the distortion attribute means that no distortion is added. Many classes have attributes with default values so that the user does not need to specify attributes which are seldom used. The attributes surface and rim have no default values and must thus always be specified. Otherwise an error message will be displayed. The complete syntax including the default values of each class can be found in the Reference Manual for GRASP8. It should also be noted that a reflector in GRASP8 has two sides, a front side and a back side. The front side has a surface normal with a positive component along the z-axis of the reflector coordinate system and the back side has the opposite surface normal. In the example in Figure 3.1.2-1 the feed illuminates the front side of the reflector. It is usually not important to know which side is the back side and which side is the front side since this is automatically taken into account in the analysis. If, however, the reflector surface is composed of a number of layers of special surface materials it is important to distinguish between the two sides because the order of the layers is specified relativly to the front side, see Section 3.5.

12

TICRA

3.1.3.2

Reflector_Surface object

This object is of class paraboloid and given by

Reflector_Surface paraboloid ( vertex : struct(x:0 m, y:0 m, z:0 m), focal_length : 0.5 m )

It contains the two attributes vertex and focal_length of which focal_length is a single number (0.5 meter) and the vertex is a struct with the 3 rectangular coordinates of the vertex of the paraboloid. Measurement units must be separated from the number by at least one blank character. The available length units are mm, cm, m, km, in, and ft, where in is an inch (2.54 cm) and ft is a foot (12 inches). A struct contains a fixed number of members which are each identified by a name. In this case the struct has three members with the names x, y and z. The members can be specified in any order as

Reflector_Surface paraboloid ( vertex : struct(y:0 ft, z:0 in, x:0 mm), focal_length : 50 cm )

Note also that units may be assigned freely for each number. As explained in Section 3.1.2 a reflector surface is defined by a function zm=g(xm,ym) in the coordinate system zmxmym of the reflector object. The paraboloid is given by
g (x m , y m) =
2 2 (x m x mo) + (y m y mo) + zmo f 4

(3.1.3.2-1)

where f is the focal length and (xmo, y mo,zmo) are the coordinates of the vertex. The axis of the paraboloid is parallel to the zm-axis.

3.1.3.3

Reflector_Rim object

The rim of the reflector Reflector_Data is defined by the Reflector_Rim object of class elliptical_rim.

TICRA

13

Reflector_Rim elliptical_rim ( centre : struct(x:0.3 m, y:0 m), half_axis : struct(x:0.25 m, y:0.25 m), )

The projected rim curve becomes the plane ellipse


2 2 ! y yc $ ! xm xc $ & = 1 & + # m # % " % " a b

(3.1.3.3-1)

in the xmym-plane of the reflector coordinate system where xc=0.3 m, yc=0 m and a=b=0.25 m. It is seen that in this case the rim is circular with a diameter of 0.5 m.

3.1.3.4

Field_Frequency object

A radiated field can be calculated at a whole range of frequencies as specified in a frequency object.

Field_Frequency frequency ( list_freq : sequence(30.0 GHz) )

The attribute list_freq is a sequence which means that more than one frequency can be specified. If, e.g. we would like to compute the radiated field at three frequencies the object could look like

Field_Frequency frequency ( list_freq : sequence(30.0 GHz, 31.0 GHz, 33.0 GHz) )

The difference between a sequence and a struct is that a struct must have a fixed number of named members whereas a sequence can contain any number of elements. The elements of a sequence must all be of the same type (e.g. all elements are numbers or all elements are strings) whereas the members of a struct can be of different types. A class called wavelength is available if it is preferred to specify wavelengths instead of frequencies. In that case the frequency attribute of the Feed_System object (Section 3.1.3.5) shall reference the wavelength object.

14

TICRA

3.1.3.5

Feed_System object

This object is of class feed which is used to define single sources that radiate an electromagnetic field.

Feed_System feed ( coor_sys feed_definition frequency )

: ref(Feed_Coor_Sys), : ref(Feed_Pattern), : ref(Field_Frequency)

The feed is defined in a special coordinate system with the name Feed_Coor_Sys which means that the feed position is in the origin and the feed axis is along the z-axis of this coordinate system. The radiation pattern is defined in the object Feed_Pattern and the frequencies at which the feed should radiate is defined in the object Field_Frequency.

3.1.3.6

Feed_Pattern object

This object is of class standard_feed and defines a simple feed pattern with exponential taper.

Feed_Pattern standard_feed ( taper_angle : 25.948, taper : struct(zxdb:-3, zydb:-3), polarisation : linear_x )

The taper is -3 dB at the angle 25.948 (i.e. the feed opening angle). The attribute polarisation specifies the polarisation of the radiated field which can be linear along x or y or right or left hand circular. An object of class standard_feed only defines the pattern of a feed. The position and frequencies of the feed must be defined in an object of class feed as shown in the previous section.

3.1.3.7

Feed_Coor_Sys object

A coordinate system is defined in an object of class coor_sys. The position of the coordinate system is given in the attribute origin. The orientation is given by

TICRA

15

vectors in the direction of the x- and y-axes of the defined coordinate system. The vectors need not to be unit vectors, but they must be orthogonal and point in the positive direction of the axes and measurement units must not be specified.

Feed_Coor_Sys coor_sys ( origin : struct(x:0 m,y:0 m,z:0.5 m), x_axis : struct(x:.83486,y:.00000,z:.55046), y_axis : struct(x:0,y:-1,z:0) )

The object has one more attribute with the name base. If this is specified the object may look as

Feed_Coor_Sys coor_sys ( origin : struct(x:0 m,y:0 m,z:0.5 m), x_axis : struct(x:.83486,y:.00000,z:.55046), y_axis : struct(x:0,y:-1,z:0), base : ref(Base_Coor_Sys) )

The meaning of the base attribute is that the origin and axes are specified relative to the base coordinate system. If the base attribute is not specified the origin and axes are given relative to the global coordinate system.

3.1.3.8

Field_Cuts object

The class spherical_cut is used to specify output points in cuts on a sphere (e.g. the far-field sphere) and to store the calculated field.

Field_Cuts spherical_cut ( frequency : ref(Field_Frequency), coor_sys : ref(Cut_Coor_Sys), polarisation : linear, cut_type : polar, theta_range : struct(start:-10, end:10, np:81), phi_range : struct(start:0, end:90, np:1), field_range : 40, file_name : gr8sing.cut, )

The frequencies of the field are specified by the attribute frequency and must agree with the frequency of the source which generates the field. The attribute coor_sys defines the coordinate system in which the field vectors are represented and, as the field is a far field, the origin of this coordinate system also determines

16

TICRA

the phase reference of the field. Decomposition of the field in either linear or circular components is selected by the polarisation attribute and specification of the field points in polar cuts is selected by the theta_range and phi_range attributes. In a polar cut, the cut is given as a function of the polar angle , here specified to the range 10 10, calculated for 81 -values. The phi_range specifies only a single cut for = 0. A character based plot of the field can be selected by the field_range attribute where the number 40 indicates the range of the plotted field in dB. Finally, file_name specifies the file on which the calculated field data is stored.

3.1.3.9

Cut_Coor_Sys object

In this object the coordinate system of the cuts specified in FIELD_CUTS is defined. As the object Feed_Coor_Sys this object is of class coor_sys.

Cut_Coor_Sys coor_sys ( origin : struct(x:0.3 m, y:0 m, z:0.045 m) )

It is seen that the axes of the coordinate system are not specified which means that the default axes parallel to the axes of the global system are used. The origin of Cut_Coor_Sys is placed in the centre of the reflector to minimise the phase variation of the calculated field.

3.1.3.10

Po_Calculation object

In this object the PO calculation is specified. The class of the object is standard_po.

Po_Calculation standard_po ( frequency : ref(Field_Frequency), scatterer : ref(Reflector_Data), po_points : struct(po1:19, po2:45), file_name : po.cur )

The first attribute specifies the frequencies for which the PO currents and the radiated field from the currents should be calculated. The value of this attribute

TICRA

17

must be the same as the value of the frequency attribute in the source object that generates the incident field (in this example the object FEED_SYSTEM generates the incident field). Otherwise, the commands for calculating the PO currents as described in Section 3.2 will produce an error message. The attribute scatterer specifies on which scattering object the PO currents should be calculated and the attribute po_points selects the density of the integration grid. The integration grid is specified with 19 radial and 45 angular points. The meaning of this and rules for determining these numbers are explained in the Reference Manual of GRASP8. For the present example the values are less important when the object Po_convergence is present as this object determines the optimal values automatically. Finally, the attribute file_name specifies on which file the PO currents should be stored for application in a later session. Note that file names containing special characters such as : / or \ must be enclosed in quotes " ". If a file_name is not specified, the PO currents will be stored on an internal file which is deleted when the calculations are finished. This is also the case for the Student Edition of GRASP8W where a file_name cannot be specified.

3.1.3.11

Po_Convergence object

It may be difficult to specify a correct integration grid in the relevant standard_po objects, cf. Section 3.1.3.10. Therefore an optimum integration grid is calculated by use of the Po_Convergence object. The Po_Convergence object belongs to the class po_convergence and is defined as:
Po_Convergence ( source po_objects field_accuracy ) po_convergence : ref(Feed_System), : sequence(ref(Po_Calculation)) , : -80.

The attribute source specifies the input source; this is here the Feed_System. The next attribute, po_objects, is a sequence of references to PO objects defining the order if which the field is scattered through the system. In the present case, the field from the Feed_System is scattered in one reflector only so that the sequence consists of a single reference to the object Po_Calculation (which holds a reference to the Reflector_Data).

18

TICRA

The attribute field_accuracy specifies a maximum level for the field calculation error in dB below pattern peak. It is here -80 dB, which implies that a side lobe at -40 dB will be determined with an accuracy within 0.1 dB. If the integration grid is correctly specified in the Po_Calculation object, cf. Section 3.1.3.10, the present Po_Convergence object is not needed. In a following section the necessary commands for running the example are given both with and without application of the Po_Convergence object (the class Po_Convergence is not available in the Student Edition).

TICRA

19

3.1.4

Geometry of dual reflector system

A dual reflector system is shown in Figure 3.1.4-1. The definition of the geometry for a dual reflector system is very similar to that of a single reflector system as described in Section 3.1.3. Each reflector and the feed have a coordinate system in which they are defined. The coordinate systems are denoted xmymzm, xs2ys2zs2 and xfyfzf for the main reflector, the subreflector and the feed, respectively. Both reflectors are defined by functions of the form z=f(x,y) and both rims are defined by their projection onto the xy-plane of their respective coordinate systems.

Main reflector

x xm

z xf ym zm yf Feed zf zs2 xs2 ys2

Subreflector

Figure 3.1.4-1 Geometry of dual reflector antenna

3.1.5

Example, offset dual reflector system

The following example demonstrates the object input file for a dual reflector system of Gregorian type with a paraboloidal main reflector and an ellipsoidal

20

TICRA

subreflector (see Figure 3.1.5-1). The analysis is carried out by PO on both reflectors.

xf o

zs2 zs1

xs1 xs2

zf

Figure 3.1.5-1, Dual reflector example. As explained in Appendix B the geometry of a dual reflector system is determined by the following parameters: D f c e Main reflector diameter Focal length of main reflector Half distance between focal points of the subreflector Eccentricity of the subreflector Angle between the main and subreflector axis

TICRA o Angle between the subreflector and feed axis

21

From these parameters the geometrical data such as coordinate systems and rim data may be calculated as shown in Appendix B. The system in Figure 3.1.5-1 is defined by

D=1m f = 0.5997 m c = 0.2647 m e = 0.513233 = 6.9 o = -21.23 = 0.02 m and the complete input file gr8dual.tor is shown in Figure 3.1.5-2. This tor-file can be generated by the preprocessor GRASP8W from the seven basic parameters given above. Two subreflector coordinate systems are shown in Figure 3.1.5-1 xs1ys1zs1 and xs2ys2zs2. The xy-plane of the system with subscript 2 is parallel to the rim curve of the subreflector and very suitable for Gregorian type dual reflector systems. The system with subscript 1 has z-axis along the axis of revolution of the subreflector and normally used in Cassegrain systems. A full explanation of the definition of these coordinate systems is given in appendix B.

22
// *************** Main reflector definition ****************** Main_Reflector reflector ( surface : ref(Main_Surface), rim : ref(Main_Rim) ) Main_Surface paraboloid ( vertex : struct(x:0 m, y:0 m, z:0 m), focal_length : 0.5997 m ) Main_Rim elliptical_rim ( centre : struct(x:0.605237 m, y:0 m), half_axis : struct(x:0.5 m, y:0.5 m) )

TICRA

// *************** Subreflector definition ****************** Sub_Reflector reflector ( coor_sys : ref(Sub_Coor_Sys), surface : ref(Sub_Surface), rim : ref(Sub_Rim) ) Sub_Coor_Sys coor_sys ( origin : struct(x:0 m, y:0 m, z:.59970 m), x_axis : struct(x:0.841782, y:0, z:0.539817), y_axis : struct(x:0, y:-1, z:0) ) Sub_Surface ellipsoid ( vertex_distance : 1.031500 m , foci_distance : 0.529400 m , axis_angle : 39.5712 ) Sub_Rim elliptical_rim ( centre : struct(x:-0.105016 m, y:0 m), half_axis : struct(x:0.203107 m, y:0.191944 m) )

// ************ Frequency definition **************** Field_Wavelength wavelength ( list_wl : sequence(0.02 m) ) // *************** Feed definition ****************** Feed_System feed ( coor_sys feed_definition frequency )

: ref(Feed_Coor_Sys), : ref(Feed_Pattern), : ref(Field_Wavelength)

Feed_Coor_Sys coor_sys (

TICRA
origin x_axis y_axis base ) Feed_Pattern standard_feed ( taper_angle : 15.749, taper : struct(zxdb:-12, zydb:-12), polarisation : linear_x , ) : : : : struct(x:-0.337247 m,y:0 m,z:0.408079 m), struct(x:0.949199,y:.00000,z:0.314675), struct(x:0,y:-1,z:0), ref(Sub_Coor_Sys)

23

// ********* Pattern specifications *************** Field_Cuts spherical_cut ( coor_sys : ref(Cut_Coor_Sys), polarisation : linear, cut_type : polar , theta_range : struct(start:-10, end:10, np:81), phi_range : struct(start:0, end:90, np:2), field_range : 40, file_name : gr8dual.cut ) Cut_Coor_Sys coor_sys ( origin : struct(x:.605237 m, y:0 m, z:.152706 m) )

Field_convergence_cut spherical_cut ( coor_sys : ref(Cut_Coor_Sys), theta_range : struct(start:-10, end:10, np:3), phi_range : struct(start:0, end:90, np:1) )

// *************** Main reflector analysis ****************** Main_Po standard_po ( frequency : scatterer : po_points : file_name : )

ref(Field_Wavelength), ref(Main_Reflector), struct(po1:21, po2:50), main.cur

// *************** Subreflector analysis ****************** Sub_Po standard_po ( frequency scatterer po_points file_name )

: : : :

ref(Field_Wavelength), ref(Sub_Reflector), struct(po1:33, po2:80), sub.cur

// ********* Field calculation by physical optics *************** Po_Convergence ( source po_objects po_convergence : ref(Feed_System), : sequence(ref(Sub_Po), ref(Main_Po)) ,

24
field_accuracy ) : -80.

TICRA

Figure 3.1.5-2, Input file gr8dual.tor for dual reflector example

The file is very similar to the single reflector example in Section 3.1.3 except for the following. For definition of the subreflector surface a new class ellipsoid is introduced. The object Sub_Surface of this class defines the subreflector surface by the vertex distance 2a (where a=c/e), the foci distance 2c and a tilt angle of the ellipsoid. The subreflector is given in the coordinate system Sub_Coor_Sys (xs2ys2zs2 in Figure 3.1.5-1) and the rim, Sub_rim, is an ellipse in the plane parallel to the xs2ys2plane. Note that the feed coordinate system in Feed_Coor_Sys is defined relative to the subreflector coordinate system by use of the base attribute. The output field is given with respect to the Cut_Coor_Sys with origin at the centre of the main reflector. Finally, a convergence check of the PO integration will be carried out in the object Po_Convergence. The standard_po objects are listed in the attribute po_objects in the order in which the field propagates through the system from the source to the field points: via Sub_po (subreflector) and Main_Po (main reflector). When the PO convergence check is performed it is efficient to determine the integration grid by using only the most far-out field points. These points are therefore defined in the special object Field_Convergence_Cut.

TICRA

25

3.2

Commands

The tor-files with objects that have been considered in Section 3.1 contain data for describing the geometry and for configuration of the electromagnetic analysis tools. The actual computations and the order in which they should be carried out must, however, be managed by commands. If the user has access to the preprocessor GRASP8W the commands can be issued through a graphical user interface. Otherwise, the commands must be typed from the keyboard or executed from a command file. The commands will be processed by the CUI (Command User Interface) which will be explained in the following sub-sections. A summary of the commands can be found in Section 4.2.

3.2.1

Activation of GRASP8

GRASP8 is launched by typing the string

grasp8.exe

<command input file>

<output file>

<log file>

Commands will then be read from the command input file and the output will be directed to the specified output file. The log-file will after the execution contain a repetition of the commands and error messages if any errors have occurred. The commands will be explained in the following sections and the output will be described in Section 3.3. If the log-file is omitted the log data will be written to the standard log-file grasp8.log and if the output file is omitted the output will be written to the default output file grasp8.out. If also the command input file is omitted, commands will be read from the default command input file grasp8.tci (Ticra Command Input). If the file grasp8.tci is empty or does not exist in the working directory the prompt

GRASP8>

will be displayed and the program will wait for commands to be typed from the keyboard. The program will stop if the command QUIT is issued.

3.2.2

The command user interface

26

TICRA

The commands are arranged in a tree structure which can be displayed by typing a question mark ? on the command line. If, as an example, the character ? is typed in response to the prompt

GRASP8>

the list

-----------------------------------------------------------------------------Available Commands -----------------------------------------------------------------------------FILES (Nesting Loop) CUSTOMIZE (Nesting Loop) *) COMMAND (Nesting Loop) SHOW (Nesting Loop) BROWSE (Nesting Loop) DATA_MODE (Final Data) *) CUI_MODE (Final Data) *) PRG_CONFIG (Nesting Loop) QUIT (Final Data) -----------------------------------------------------------------------------*) Commands for internal use

will be displayed. This shows the root commands FILES, COMMAND, SHOW, BROWSE, PRG_CONFIG and QUIT. The commands CUSTOMIZE, DATA_MODE and CUI_MODE are used when the program is controlled by another program through a communications channel and have no effect when the program is run from a command line. If the command FILES is typed the prompt will be updated to

GRASP8>FILES>

and a ? will display the following list of sub-commands

-----------------------------------------------------------------------------Available Commands -----------------------------------------------------------------------------READ (Nesting Loop) LISTALL (Final Data) *) WRITE (Nesting Loop) -----------------------------------------------------------------------------*) Command for internal use

If READ is typed the prompt will be further updated to

GRASP8>FILES>READ>

TICRA and a ? will produce

27

-----------------------------------------------------------------------------Available Commands -----------------------------------------------------------------------------OBJECT (Final Data) TCI (Final Data) *) ALL (Final Data) -----------------------------------------------------------------------------*) Command for internal use

If the enter key is pressed two times the prompt will again be reduced to

GRASP8>

It is seen that typing a sub-command followed by enter will bring the program one step down in the command tree whereas pressing enter alone will bring the program one step up. Instead of typing the sub-commands separately a full command can also be issued. As an example the full command

FILES READ ALL gr8sing.tor

will read all the objects in the file gr8sing.tor. It may alternatively be issued by typing FILES followed by an enter, READ followed by enter, and finally ALL gr8sing.tor. The command may be abbreviated to

FI RE AL gr8sing.tor

or to

F R A gr8sing.tor

as long as no ambiguity with other commands occurs. Only the commands in the command tree can be abbreviated, the arguments to the commands such as the file name gr8sing.tor cannot be abbreviated.

3.2.3

Basic commands

28

TICRA

In this section an overview of the basic commands is given. A summary of the commands is given in Section 4.2. A comment line in a tci-file is initiated by # and extends to the end of the line. A command can be deactivated by preceeding it by //. 3.2.3.1 The FILES commands

If, as mentioned above, the command

FILES READ ALL gr8sing.tor

is typed all objects from the file gr8sing.tor will be read. A single object can be read by

FILES READ OBJECT cut_coor_sys gr8sing.tor

which will read the object cut_coor_sys from the file gr8sing.tor. Objects that have already been read can be written to a file by

FILES WRITE ALL out.tor FILES WRITE OBJECT cut_coor_sys out.tor

which will, respectively, write all objects to the file out.tor or only the object cut_coor_sys. These commands will overwrite any data already contained in the file out.tor. Objects can be written to the screen by typing an asterix (*) instead of a file name. The command

FILES WRITE OBJECT cut_coor_sys *

will thus display the object cut_coor_sys on the screen.

3.2.3.2

The BROWSE commands

A list of objects that have been read can be obtained by the BROWSE command. The BROWSE OBJECTS command will display a list of all objects so that if all objects in the file gr8sing.tor have been read the BROWSE OBJECTS command will display

TICRA

29

No. Name Class Status --------------------------------------------------------------------------1 Reflector_Data reflector complete 2 Reflector_Surface paraboloid complete 3 Reflector_Rim elliptical_rim complete 4 Field_Frequency frequency complete 5 Feed_System feed complete 6 Feed_Pattern standard_feed complete 7 Feed_Coor_Sys coor_sys complete 8 Field_Cuts spherical_cut complete 9 Cut_Coor_Sys coor_sys complete 10 Po_Calculation standard_po complete 11 Po_Convergence po_convergence complete End of list.

The command BROWSE CLASS will display objects of a certain class. As an example the command

BROWSE CLASS coor_sys

will display all objects of the class coor_sys

No. Name Class Status -------------------------------------------------------------------------7 Feed_Coor_Sys coor_sys complete 9 Cut_Coor_Sys coor_sys complete End of list.

It is seen that the list contains a status column which in the examples above has the value complete. The status can, however, also be incomplete or ghost. An object is incomplete if it has attributes which must be given a value (i.e. attributes with no default value) and if one of these attributes is undefined. If the object REFLECTOR_DATA from the file gr8sing.tor (see Figure 3.1.3-2) is specified as

Reflector_Data reflector ( rim : ref(Reflector_Rim) )

it will be classified as incomplete because the attribute surface is missing. All incomplete objects may be listed by the BROWSE INCOMPLETE command. A ghost object is an object which has not been defined but is referenced by another object. If the object Reflector_Rim is removed from the file gr8sing.tor it will be classified as a ghost when the file is read because it is not defined, but

30

TICRA

referenced by the object Reflector_Data. All ghost objects may be listed by the command BROWSE GHOSTS. GRASP8 will not allow any computations to be performed if there are incomplete objects or ghosts. The user does not need to put all objects belonging to a certain project into one tor-file. The objects concerning the reflector may for instance be contained in one file and the feed objects in another file. When the first file is read there will probably be incomplete and ghost objects, but their status will be changed to complete after the second file has been read. When an object has been classified as incomplete or as ghost the missing references may be to identified by one of the two commands BROWSE REFERENCES TO or BROWSE REFERENCES FROM. This may be illustrated by an example. Let us assume that we have made a misspelling in the above defined object Reflector_Data and defined that the name of the surface is Reflector_Surf instead of Reflector_Surface:

Reflector_Data reflector ( surface : ref(Reflector_Surf), rim : ref(Reflector_Rim) )

When GRASP8 is executed an error will occur

%OM_REF_CHECK (FATAL): No calculations - look for ghost objects

Looking for ghost objects

BROWSE GHOSTS

results in

No. Name Class Status ---------------------------------------------------------------------------12 Reflector_Surf surface incomplete End of list.

telling that the object Reflector_Surf is the searched ghosts object, i.e. this object is not defined, but it is referenced from another object. In order to identify the object which references the object Reflector_Surf we submit the command

TICRA

31

BROWSE REFERENCES TO Refl_Surface

which results in the list

The object is referenced by: No. Name Class -----------------------------------------------------------------------O 1 Reflector_Data reflector End of reference lists

We can now inspect the object Reflector_Data and will find the reference to the non-existing object Reflector_Surf so we can correct the misspelling.

3.2.3.3

The SHOW command

The command SHOW has the sub-command FILE_ACCESS which has the further sub-commands OBJECT and ALL. These will produce a list of files referenced by a single object or by all objects, repsectively. As an example the command

SHOW FILE_ACCESS ALL

will result in

Files used by objects: Object File ------------------------------------------------------------------------Field_Cuts gr8sing.cut Po_Calculation po.cur

3.2.3.4

The COMMAND commands

Commands of the type COMMAND OBJECT have the special syntax

COMMAND OBJECT <object name> <message> <arguments>

As an example an object may be created dynamically by

COMMAND OBJECT <object name> create <class name>

32

TICRA

Here the message is create and the argument is the class name. The object is initialised with the default values of its attributes. The command

COMMAND OBJECT New_Coor_Sys create coor_sys

will thus create a new object with name New_Coor_Sys of class coor_sys. Similarly, an object can be deleted by the command

COMMAND OBJECT <object name> delete

so that

COMMAND OBJECT New_Coor_Sys delete

will delete the object created before. This command has no arguments. If the deleted object is referenced by other objects a ghost object with the name of the deleted object is created. The attributes of an object can be defined or modified by the set command.

COMMAND OBJECT <object name> set <arguments>

where the arguments are one or more attribute definitions. The origin of New_Coor_Sys can e.g. be modified by

COMMAND OBJECT New_Coor_Sys set (origin : struct(0.1 m, 0.2 m, 0.3 m))

More than one attribute definition may be included in one command as

COMMAND OBJECT New_Coor_Sys set (origin : struct(0.1 m, 0.2 m, 0.3 m), x_axis : struct(0.6, 0, 0.8))

A special set of commands of the type COMMAND OBJECT has the syntax:
COMMAND OBJECT <object_name> <function_name> (<function_arguments>)

These commands are used for specification of the calculations which are to be carried out by GRASP8. As function name may be specified one of the available command functions as described in the Reference Manual of GRASP8. The function has the arguments specified in function_arguments and the results of

TICRA

33

the function calculations are placed in an object with the name object_name. This object is called the target. The function_name must be one of the functions available for the class to which the target belongs. An example on the application of a function is the following, where the field of a source named Feed_System is determined according to specifications in the field storage object Field_Cut

COMMAND OBJECT <Field_Cut> get_field (source: ref(Feed_System))

The function is get_field which has the argument of the source given by its reference. The target is the object Field_Cut in which the determined field is stored. Further examples on applications of command functions are given in sections 3.2.4 and 3.2.5.

3.2.3.5

The PRG_CONFIG SHOW commands

A special set of commands for showing information on the present configuration of the program is the PRG_CONFIG SHOW commands. By these commands the names of the standard files such as the log-file and the output file may be presented. Also platform dependent information and the accepted length of names may be given. The latter is obtained by

PRG_CONFIG SHOW LENGTH_OF_NAMES

which results in the following information

%PRG_CONFIG (INFO): Max. length of object names is 32 %PRG_CONFIG (INFO): Max. length of file names is 200

3.2.3.6

The QUIT command

The program is stopped by the command QUIT.

3.2.4

Commands for offset single reflector system

34

TICRA

We will now return to the single reflector example in Section 3.1.3 and describe the commands by which a PO analysis is performed. The concept of a derived class which is explained in detail in Section 4.3 will be used in this section. As explained in Section 3.2.1 GRASP8 can be activated by typing

grasp8.exe gr8sing.tci gr8sing.out gr8sing.log

which will launch the program whereafter the commands contained in the command input file gr8sing.tci will be executed. The extension .tci is an abbreviation for Ticra Command Input. The command input file gr8sing.tci contains
// tci file for single reflector system // Input of GRASP8 tor file FILES READ ALL gr8sing.tor // calculate PO convergence COMMAND OBJECT Field_Cuts get_field (source:ref(Po_Convergence)) QUIT

The first command will, as described in the preceding section, read all objects in the file gr8sing.tor. The second command is of the type COMMAND OBJECT for calculations. It is a directive sent to the object Field_Cuts with the message get_field and the argument (source:ref(Po_Convergence)). This can also be read as a call to the function get_field for calculation of the field of the source Po_Convergence and store the result in the target, Field_Cuts. The source Po_Convergence will, in addition to provide the source of the field, determine the integration grid. Finally, the quit command stops the execution. Alternatively, the user may control the integration grid directly. The command input could then be

FILES READ ALL gr8sing.tor COMMAND OBJECT Po_Calculation get_currents (source:ref(Feed_System)) COMMAND OBJECT Field_Cuts get_field (source:ref(Po_Calculation)) QUIT

Again, the first command will read all objects in the file gr8sing.tor. The second command is a directive sent to the object Po_Calculation with the message get_currents and the argument (source:ref(Feed_System)). This means that the PO currents on the reflector due to the incident field from Feed_System should be

TICRA

35

calculated. The currents are stored in the object Po_Calculation which contains the file po.cur for holding the currents (see Figure 3.1.3-10). The third command is a request to the object Field_Cuts that the field due to the PO currents should be calculated in the cuts specified in Field_Cuts. The integration grid is now determined by the attribute po_points in the object Po_Calculation. In Section 3.1.3.10 this attribute specified an integration grid of 19 by 45 points. The user may vary these numbers until the pattern has converged to the desired accuracy. A command such as

COMMAND OBJECT Po_Calculation get_currents (source:ref(Feed_System))

is a message sent to the object Po_Calculation. The message get_currents is available for all objects of the PO class and its derived classes. The argument for this message must always have the form (source:ref(<object_name>)) where the referenced object must be of class source (or a derived class). In the example the referenced object Feed_System is of class feed which is derived from the source class. In the above gr8sing.tci file the source is Po_Convergence which is also of a class derived from the source class. The effect of the message is, as mentioned above, that the PO currents on the reflector due to the incident field from Feed_System is calculated. Besides the get_currents message, another message called get_composite_currents is available for objects of the PO class. This message takes as its arguments a sequence of input sources and is useful if a reflector is illuminated by more than one source. The message is illustrated by

COMMAND OBJECT Po_Calculation get_composite_currents (source:sequence(ref(Feed_System),ref(Feed_2)))

where the composite currents due to the two input sources Feed_System and Feed_2 are calculated. Any of the messages will overwrite currents already stored in the Po_Calculation object. If the desired currents have already been calculated in a previous execution of GRASP8 a re-calculation is not necessary so that the analysis can be done by

FILES READ ALL gr8sing.tor COMMAND OBJECT Field_Cuts get_field (source:ref(Po_Calculation)) QUIT

36 The command

TICRA

COMMAND OBJECT Field_Cuts get_field (source:ref(Po_Calculation))

contains the message get_field sent to the object Field_Cuts. Get_field is a message available for objects of class field_storage and its derived classes. Its argument must be of the form shown above where the referenced object must be of the class source or one of its derived classes. The effect of the command is that the field of the referenced object (here the object Po_Calculation which radiates the field due to the PO currents) is calculated in the output points specified by the Field_Cuts object. The message will overwrite any field already stored in Field_Cuts. If it is desired that the field should be added to a field already present in Field_Cuts the add_field message can be used. If for example we would like to add the direct feed radiation the command file may look like

FILES READ ALL COMMAND OBJECT COMMAND OBJECT COMMAND OBJECT QUIT

gr8sing.tor Po_Calculation get_currents (source:ref(Feed_System)) Field_Cuts get_field (source:ref(Po_Calculation)) Field_Cuts add_field (source:ref(Feed_System))

It could just as well be written as

FILES READ ALL gr8sing.tor COMMAND OBJECT Field_Cuts get_field (source:ref(Feed_System)) COMMAND OBJECT Field_Cuts add_field (source:ref(Po_Convergence)) QUIT

where the direct feed radiation is calculated first. Hereafter the PO currents are calculated and finally the radiation of the PO currents is added to the feed radiation.

3.2.5

Commands for dual reflector system

The commands for analysis of the dual reflector system described in Section 3.1.5 are very similar to the commands for single reflector analysis. As explained in the previous section the analysis can be started by typing

grasp8.exe gr8dual.tci gr8dual.out gr8dual.log

TICRA which will launch GRASP8 and start execution of commands from the file gr8dual.tci. For a standard analysis this file may contain

37

FILES READ ALL COMMAND OBJECT COMMAND OBJECT COMMAND OBJECT QUIT

gr8dual.tor Sub_Po get_currents (source:ref(Feed_System)) Main_Po get_currents (source:ref(Sub_Po)) Field_Cuts get_field (source:ref(Main_Po))

In the first line all the objects in the file gr8dual.tor are read. In the second line the PO currents due to the incident field from the feed are calculated. In the third line the PO currents on the main reflector due to the radiation from the subreflector currents are calculated and finally, in the fourth line, the radiation from the main reflector currents is calculated. If the analysis should be based on the object PO_convergence for automatic determination of the PO integration for the sub- and main reflector the .tci file would look like:

// tci file for dual reflector system // Input of GRASP8 tor file FILES READ ALL gr8dual.tor // calculate PO convergence COMMAND OBJECT Field_Convergence_Cut get_field (source:ref(Po_Convergence)) // Calculation of pattern from converged currents COMMAND OBJECT Field_Cuts get_field (source:ref(Main_Po)) QUIT

Again, in the first line all the objects of the file gr8dual.tor are read. In the second command the field is determined by automatic PO convergence by specifying Po_Convergence as the source. The result of the automatic convergence is the optimal integration grids on both reflectors and the currents in these grids. For complicated systems the PO convergence may be time consuming and the PO convergence is therefore first determined for the reduced pattern cut Field_Convergence_Cut. This pattern cut covers the region of interest in , but only contains very few output points in order to save computation time in the convergence check. A detailed field pattern with closely spaced values is computed by the third line where the source is the currents on the main reflector stored in object Main_Po.

38

TICRA

If the direct radiation from the subreflector should be added to the far field in Field_Cuts this can be done by adding one command

FILES READ ALL COMMAND OBJECT COMMAND OBJECT COMMAND OBJECT QUIT

gr8dual.tor Field_Convergence_Cut get_field (source:ref(Po_Convergence)) Field_Cuts get_field (source:ref(Main_Po)) Field_Cuts add_field (source:ref(Sub_Po))

as explained in the previous section. If both the feed and subreflector radiation should be added the command file would look like
FILES READ ALL COMMAND OBJECT COMMAND OBJECT COMMAND OBJECT COMMAND OBJECT QUIT gr8dual.tor Field_Convergence_Cut get_field (source:ref(Po_Convergence)) Field_Cuts get_field (source:ref(Main_Po)) Field_Cuts add_field (source:ref(Sub_Po)) Field_Cuts add_field (source:ref(Feed_System))

In the examples above the PO currents on the main reflector are created by the incident field from the subreflector currents. If we would like the incident field on the main reflector also to include the direct feed radiation the command file will look like

FILES READ ALL gr8dual.tor COMMAND OBJECT Sub_Po get_currents (source:ref(Feed_System)) COMMAND OBJECT Main_Po get_composite_currents & (source:sequence(ref(Feed_System),ref(Sub_Po))) COMMAND OBJECT Field_Cuts get_field (source:ref(Main_Po)) QUIT

The object Main_Po will here contain the composite currents due to the incident field from the subreflector and the direct feed radiation.

3.3

Output

As described in Section 3.2.1 an output file name may be specified on the command line when GRASP8 is activated. If the file name is omitted the file will have the default name grasp8.out. This file contains a descriptive repetition of all input to GRASP8 and of all commands issued to the program so that it will provide a complete record of all operations performed during a particular session. Another file with the default name grasp8.log will also be generated. It is a logfile which will contain all commands processed by the program and it will

TICRA

39

accumulate error messages if any errors have occurred. This file can normally be deleted after the session and is mainly of interest if an error has occurred. A number of data files may be generated during the analysis. In the single reflector example in Section 3.1.3 the files gr8sing.cut and po.cur are generated for holding field data and PO currents, respectively. The format of these data files is described in the Reference Manual of GRASP8. As an example we will consider the output file generated by the single reflector analysis described in Sections 3.1.3 and 3.2.4. When the tor-file with objects is read (see Figure 3.1.3-2) a message will be written in the file each time a new object is created. The first object in the file is the object Reflector_Data which will produce the message

*** Object name: *** Class name : *** Message :

Reflector_Data reflector Object created

This is the form of the standard message header which always initiates a message. In this case the header is not followed by further information. The next message in the output file is a message that says that new data has been read into the Reflector_Data object. It also contains a repetition of the new data, namely the references to the objects defining the surface and the rim.

*** Object name: *** Class name : *** Message :

Reflector_Data reflector New values in object

Surface: Reflector_Surface Rim: Reflector_Rim

When the last object, Po_Convergence, has been read from the tor-file the command
COMMAND OBJECT Field_Cuts get_field (source:ref(Po_Convergence)

is read. This command determines the PO-converged field and the repetition in the output file starts with

*** Object name: *** Class name : *** Message :

Field_Cuts spherical_cut Get_field message received

Source : Po_Convergence Task No.: 1, Get field , freq. No. 1 of 1, beam No. 1 of 1

40
Task No.: Task No.: 1, Get field , freq. No. 1 of 1, beam No.

TICRA
1 of 1 of 1 1

1, Get field , freq. No. 1 of 1, beam No. ***** PO grid:***** index PO1 PO2 difference accuracy 1 20 10 0.1279538E-05 0.1000000E-07

Task No.:

1, Get field , freq. No. 1 of 1, beam No. ***** PO grid:***** index PO1 PO2 difference accuracy 1 40 10 0.2519970E-28 0.1000000E-07

1 of

The first three lines indicate that the field shall be determined in the cut specified in Field_Cuts according to the source specified in the object Po_Convergence. The next lines indicates that it is task No 1 (which is the only task in this example). More interesting is the following PO-grid information. First a PO1 = 10 by PO2 = 10 grid of the surface currents is applied (no output from that) and the field is determined. Next PO1 is doubled so the grid is a 20 by 10 grid. The maximum relative field difference between these two cases is determined to 0.1279538E-05, but the accuracy is specified to 0.1E-07 and PO1 is doubled again, to 40. The difference is now less than 1.E-28 and PO1 is then decreased by bisection of the interval from 20 to 40. After this, the necessary value of PO2 is found correspondingly. The essential lines of the output file (inclusive the two above) read

index 1 1 1 1 1 1 1 1 1 1 1 1

***** PO grid:***** PO1 PO2 difference 20 10 0.1279538E-05 40 10 0.2519970E-28 15 10 0.2393165E-16 13 10 0.9809252E-12 12 10 0.1199472E-09 10 20 0.3491247E-01 10 40 0.2920660E-01 10 80 0.7090718E-12 10 30 0.9248882E-04 10 35 0.1683187E-06 10 37 0.3514455E-09 10 36 0.3270621E-07

accuracy 0.1000000E-07 0.1000000E-07 0.1000000E-07 0.1000000E-07 0.1000000E-07 0.1000000E-07 0.1000000E-07 0.1000000E-07 0.1000000E-07 0.1000000E-07 0.1000000E-07 0.1000000E-07

It can here be followed how PO1 first is found to 12 and next PO2 is determined to 37 to fulfil the requested accuracy. The final values of PO1 and PO2 becomes

##### PO-object number: 1 is optimized ##### PO integration grids Found grid Grid limits PO1 PO2 PO1 PO2 12 37 1660 4000

Object index 1

TICRA

41

Since the field_range attribute is specified in the Field_Cuts object a character plot and listing of field values is also generated which looks like
*** Object name: *** Class name : *** Message : Field_Cuts spherical_cut Cut calculated

Frequency No. : 1 Beam No. : 1 Phi angle : 0.00000 deg. Field type : E-field Polarisation type : linear First polarisation component is plotted as A and Second polarisation component is plotted as B 5 A A A A A A A A A A A A A A B A A A A B B A A B B B A B B B B B A B B B B B B B B B B B B B B B B B B B B B B B B A B B B A A BA B B A A A A A A A A A A A A A A A A 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A . . . . . . . . . . A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 dB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

-10.00 -9.75 -9.50 -9.25 -9.00 -8.75 -8.50 -8.25 -8.00 -7.75 -7.50 -7.25 -7.00 -6.75 -6.50 -6.25 -6.00 -5.75 -5.50 -5.25 -5.00 -4.75 -4.50 -4.25 -4.00 -3.75 -3.50 -3.25 -3.00 -2.75 -2.50 -2.25 -2.00 -1.75 -1.50 -1.25 -1.00 -0.75 -0.50 -0.25 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.25 7.50 7.75 8.00 8.25 8.50 8.75 9.00 9.25 9.50

A A

A A A A A A A A A A A

A A A A A A A A A

A A A A A A A A A A A A

42
9.75 10.00 A A . .

TICRA
. .

Amplitudes in dB

Phases in degrees

-10.00 -9.75 -9.50 -9.25 -9.00 -8.75 -8.50 -8.25 -8.00 -7.75 -7.50 -7.25 -7.00 -6.75 -6.50 -6.25 -6.00 -5.75 -5.50 -5.25 -5.00 -4.75 -4.50 -4.25 -4.00 -3.75 -3.50 -3.25 -3.00 -2.75 -2.50 -2.25 -2.00 -1.75 -1.50 -1.25 -1.00 -0.75 -0.50 -0.25 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.25 7.50 7.75 8.00 8.25 8.50 8.75 9.00 9.25 9.50 9.75 10.00

A -0.913 0.377 -3.359 -20.209 -1.606 1.907 0.597 -9.122 -3.867 2.813 3.560 -1.037 -10.903 2.904 5.837 4.082 -7.732 1.620 7.531 8.032 2.955 -3.383 8.587 11.400 9.614 -3.171 8.643 14.542 15.305 10.454 6.090 17.952 21.439 20.463 8.687 23.936 31.841 36.290 39.001 40.491 40.962 40.470 38.966 36.262 31.869 24.193 7.960 20.053 21.358 18.348 8.661 8.415 14.695 14.784 10.558 -5.543 7.290 10.942 9.951 4.013 -6.232 5.734 7.873 5.887 -2.328 -3.535 4.091 5.193 2.284 -8.964 -3.059 2.449 2.800 -0.938 -15.533 -3.466 0.848 0.666 -3.752 -18.968 -4.298

B -273.330 -272.059 -272.000 -272.990 -273.614 -274.593 -275.847 -276.413 -276.371 -276.037 -276.069 -275.455 -275.548 -276.089 -277.938 -279.326 -281.157 -281.441 -280.552 -280.498 -277.878 -276.772 -276.445 -276.033 -275.837 -275.985 -275.858 -275.562 -275.196 -274.506 -273.891 -274.014 -274.384 -275.793 -276.806 -278.378 -282.209 -283.536 -283.112 -286.150 -282.470 -285.675 -284.000 -281.463 -279.580 -278.273 -276.451 -275.674 -274.321 -274.048 -274.031 -274.332 -274.891 -275.067 -274.875 -274.460 -275.004 -275.098 -276.064 -277.424 -279.183 -280.717 -282.672 -283.494 -280.740 -280.948 -278.540 -277.789 -275.391 -276.182 -274.935 -275.748 -276.340 -274.344 -275.809 -276.577 -274.234 -272.735 -272.667 -272.312 -271.605

A 61.31 59.33 56.05 -66.75 -113.47 -116.34 -118.71 -130.29 73.39 67.81 65.51 60.97 -86.34 -107.81 -110.78 -113.75 -132.70 77.93 72.73 70.04 64.20 -86.99 -103.54 -106.80 -110.39 -136.91 81.65 76.16 72.95 65.75 -83.85 -100.46 -104.48 -109.62 -157.21 88.05 81.98 79.75 78.41 77.37 76.42 75.44 74.31 72.82 70.39 64.18 -37.63 -97.85 -103.91 -108.44 -121.58 89.09 77.78 73.47 68.07 19.59 -98.62 -105.24 -109.48 -117.18 106.69 76.85 71.58 66.95 54.54 -93.45 -107.13 -111.96 -117.28 -140.20 78.33 68.86 64.10 57.86 10.30 -107.49 -115.37 -120.24 -127.49 146.61 67.31

B -164.10 -165.48 -162.39 -157.44 -158.09 -156.26 -155.18 -154.62 -151.65 -154.64 -159.92 -163.83 -170.42 -174.96 173.10 165.23 142.74 116.17 91.34 73.47 68.51 63.67 59.76 57.61 44.56 37.78 25.95 8.55 -5.65 -22.13 -35.03 -45.86 -55.06 -60.53 -63.95 -61.21 -48.96 -42.00 -28.77 -11.95 -9.56 -5.15 -6.08 15.67 27.03 26.81 33.93 31.17 24.61 21.95 10.82 -2.20 -19.63 -36.29 -50.17 -69.88 -78.31 -74.25 -96.96 -92.35 -93.50 -109.72 -113.88 -148.15 -165.21 172.77 157.66 133.08 142.47 133.36 127.31 126.47 116.18 117.67 124.04 114.25 115.33 116.98 112.01 123.47 115.40

TICRA

43

3.4

Array case example.

In GRASP8 it is possible to calculate the far field from a feed or an array of feeds. This is an important feature as direct-radiating arrays are frequently used both as ground-based antennas and as satellite-borne antennas. In this section an example of this feature is shown. TICRA has developed a program called COBRAW which is able to generate objects containing array data on the basis of a few input parameters. This program has been used to generate a file, gr8_arr.tor, which, slightly modified for the actual test case looks as follows:

Gr8_Array_Coor coor_sys ( origin : struct(x: .0000000000 mm,y: .0000000000 mm,z: .0000000000 mm), x_axis : struct(x: 1.000000000 ,y: .0000000000 ,z: .0000000000 ), y_axis : struct(x: .0000000000 ,y: 1.000000000 ,z: .0000000000 ) ) Gr8_Frequency wavelength ( list_wl : sequence( 1.000000000 mm) ) Gr8_Feed feed ( feed_definition : ref(Gr8_Feed_Type), frequency : ref(Gr8_Frequency) ) Gr8_Array_C irreg_array_file ( coor_sys : ref(Gr8_Array_Coor), factor : struct(db: .0000000000 ,deg: .0000000000 ), frequency : ref(Gr8_Frequency), ray_output : none, element_composite : composite, elements_file : elem.isp", exc_file : "elem.exi" ) Gr8_Feed_Type conical_feed ( aperture_radius : .6000000000 mm, flare_length : .0000000000 mm, phase_displacement : .0000000000 mm, dielectric_constant : 1.000000000 , reflection_coefficient : struct(amp: .0000000000 ,deg: .0000000000 ), ground_plane : on, modes : sequence ( struct(type: TE11,amp: 1.000000000 ,phase: .0000000000 ,rot: 90.00000000 ) ) ) D3_Plot d3_plot ( plot_accuracy : 1.000000000 mm ) Coor_Plot coor_plot ( axis_length : 10.00000000 mm, coor_names : sequence(ref(all)) ) Feed_Plot feed_plot

44
( radius_middle radius_back length_back feed_names ) Uv ( comment frequency polarisation near_far e_h x_range 31), y_range 31), near_dist truncation grid_type beam_grid_file file_name file_form ) : : : : : : : .0000000000 cm, : .0000000000 cm, : .0000000000 cm, : sequence(ref(all)) spherical_field_grid "Composite array field", ref(Gr8_Frequency), linear, far, e_field, struct(start: -.1000000000 -.1000000000 m,

TICRA

,end: ,end:

.1000000000 .1000000000

,np: ,np:

: struct(start: : : : : : : .0000000000 rectangular, uv, " ", "uv.grd", formatted

The central object is Gr8_Array_C of class irreg_array_file in which it is specified that a composite beam shall be calculated at a wavelength of 1 mm (attribute list_wl in Gr8_Frequency which is referenced from Gr8_Array_C) The positions of the elements are given in the file elem.isp part of which looks as follows:

Beam grid associated to the irreg_array object ++++ mm elem001 -2.40000 -4.03823 -.85163 -23.81741 elem002 -1.20000 -4.03823 -.85163 -23.81741 elem003 .00000 -4.03823 -.85163 -23.81741 elem059 .00000 4.03823 -.85163 23.81741 elem060 1.20000 4.03823 -.85163 23.81741 elem061 2.40000 4.03823 -.85163 23.81741

90.00000 0. Gr8_Feed 90.00000 0. Gr8_Feed 90.00000 0. Gr8_Feed

90.00000 0. Gr8_Feed 90.00000 0. Gr8_Feed 90.00000 0. Gr8_Feed

Hence, 61 elements are defined by the xyz-coordinates in the coordinate system given in Gr8_Array_Coor which is referenced from Gr8_Array_C. Actually, the positions in elem.isp represent elements in a hexagonal grid with spacing 1.2 mm which is located on a cylinder with radius 10 mm. Also the repointing capability is used to point each feed in a direction perpendicular to the cylinder surface. The reference to the Gr8_Feed object defines the feed elements as conical feed horns with a radius of 0.6 mm (half the element spacing) and with a TE11 mode polarised along the x-axis. The array is shown in Figure 4.3.1.

TICRA

45

When the field from the array elements are added to form the composite beam, excitation coefficients in the file elem.exi shall be used. They have been calculated internally in the COBRAW program. Part of this file looks as follows:

Y X
Figure 4.3.1 Array of feeds in hexagonal grid on a cylinder with axis along coordinate system x-axis and radius 10 mm.

Excitation coefficients the grid_array_c object ++++ elem001 -19.973 elem002 -18.466 elem003 -17.556 elem059 -17.556 elem060 -18.466 elem061 -19.974

associated to

-48.637 -51.699 -53.910

-53.311 -55.494 -58.507

With the input data shown above the following command stream can be applied to GRASP8:

FILES READ ALL gr8_arr.tor COMMAND OBJECT Uv get_field (source:ref(Gr8_Array_C)) QUIT

The first command performs the reading of all the input data shown above. The next command then calculates the field from the Gr8_Array_C object on the data given in the uv object which is of spherical_field_grid class, hence, the farfield is calculated in a regular uv grid in 31*31 points between 0.1 and stored formatted in the file uv.grd in linear components. The field may be displayed by the GRASP8W postprocessor and looks as shown in Figure 4.3.2.

46

TICRA

Figure 4.3.2

Composite field from array shown in Figure 4.3.1

In addition to the geometry and field data objects in gr8_arr.tor there are 3 objects with extension _plot. These objects control the generation of geometry plot data in GRASP8. The associated command is, however, not listed.

TICRA

47

3.5

Electrical properties example.

The following example illustrates the use of GRASP8s capability to analyse reflector surfaces which have electrical properties other than perfectly conducting. This could be a dielectric, (a radome), a material with a finite conductivity (carbon fibre), a mesh surface (deployable reflector) or various types of polarisation sensitive reflectors consisting of wires or strips. Furthermore, the surface material properties can be defined very general by means of a file containing tabulated values for the reflection and transmission coefficients for a range of incidence angles. It is possible to define several layers of different material, an option which is used when a polarisation sensitive strip grid is deposited on a dielectric shell of a finite thickness and with a sandwich construction to provide mechanical stiffness. Before considering the actual example a few comments about the definition of the electrical properties for surfaces are appropriate. In particular, the emphasis is placed on the order in which the different layers in a composite structure are specified. Consider the structure shown in Figure 3.5.1.

reflector normal

I II III IV

Reflector surface given by mathematical expression


Reflector made from four different materials

Figure 3.5.1

There are a total of four layers, I, II, III and IV, with associated thickness I, II, III, and IV. A practical example could be that layer I was thermal paint, layer II a coating, layer III a CFRP shell from which the main reflection would arise, and layer IV a honeycomb to provide stiffness. If the reflector is supposed to be parabolic in shape it is reasonable to assume that this form would apply to the front of layer III. In GRASP8 this would be described by the mathematical equation for a paraboloid with the normal pointing in the direction as shown in the Figure.

48

TICRA

The different layers are defined in GRASP8 through an object of the class Electrical properties (see an example later),which is referenced by the scatterer to which the properties apply. It is important to specify the layers in the correct order, starting (by definition) at the one which is the furthest away from the reflector in direction of the positive normal (layer I in the present case). Next the displacement of the layer relative to the mathematical surface must be given. This is the distance from the surface to the front of the layer and would for layer I in Figure 3.5.1 be I+II. Similarly, for layer II it would be II and for layer III 0. The displacement for layer IV would be -III. Now we consider an application which takes advantage of the above capabilities. In Figure 3.5.2 is shown a satellite body with a reflector system consisting of two paraboloids on the East wall. The two reflectors are mounted such that their projected apertures when seen from the boresight direction are identical. The front reflector is polarisation sensitive such that it only reflects one sense of linear polarisation while being transparent to the orthogonal sense. The rear reflector, on the other hand, is made from a perfectly conducting material and thus reflects all field components which are transmitted through the first. The reflector geometry is generated by first placing the paraboloids at identical locations at the side of the spacecraft. Then the front reflector is translated 10 cm in the z-axis direction followed by a rotation of + and - 10 degrees for each of the two reflectors, respectively, around an axis through the centre of the aperture, resulting in the geometry shown in the figure. After the rotation the two reflectorcoordinate systems are specified relative to the global coordinate system by the two coor_sys objects Coor_sys_front_refl and Coor_sys_rear_refl:

Coor_sys_front_refl coor_sys ( origin : struct(x: -1.115190000 m, y: -.1736480000 m, z: .1000000000 m), x_axis : struct(x: -.9848077530, y: .1736481777, z: .0000000000), y_axis : struct(x: -.1736481777, y: - .9848077530, z: .0000000000), base : ref(Global) )

TICRA

49

Dual gridded reflector antenna on East wall of spacecraft

Figure 3.5.2

Two-reflector system with a polarisation sensitive, gridded reflector at the font, mounted on a satellite.

Coor_sys_rear_refl coor_sys ( origin : struct(x:

x_axis

: struct(x:

y_axis

: struct(x:

-1.115190000 m, y: .1736480000 m, z: .0000000000 m), -.9848077530, y: -.1736481777, z: .0000000000), .1736481777, y: - .9848077530, z: .0000000000),

base )

: ref(Global)

The front reflector is defined by Front_refl:


Front_refl ( reflector

50
coor_sys el_prop surface rim ) : ref(Coor_sys_front_refl), : sequence(ref(Strip_grid),ref(Diel_layer)), : ref(Front_surf), : ref(Rim)

TICRA

It is seen that the el_prop-attribute references two objects, Strip_grid and Diel_layer, indicating that the front reflector is made from a polarisation sensitive strip grid on top of a dielectric layer. The details of these two objects are:

Strip_grid strip_grid ( displacement : .0000000000 m, ref_coor_sys : ref(Coor_sys_front_refl), ref_angle : -80.00000000 , spacing : 3.000000000 mm, width : .5000000000 mm ) Diel_layer dielectric_layer ( displacement : .0000000000 m, thickness : .5000000000 mm, dielectric_constant : 3.000000000, loss_tangent : .0000000000 )

It is of particular interest to look at the orientation of the strip grid. This is given in terms of the front reflector coordinate system and rotated an angle of -80. The reason is that the front reflector shall provide a field which is polarised along the y-axis of the spacecraft coordinate system (corresponding to north-south on the earth). Since the front reflector was rotated -10 the grid must be rotated 80 further for correct alignment. While the dielectric layer has a certain thickness the strip grid is infinitely thin. This implies that both the strip grid and the front of the dielectric are coinciding with the reflector surface and thus the displacement is zero in both objects. Due to the rotation of the grid as described above, it is also necessary to rotate the feeds such that the polarisation from the front feed is aligned with the stripdirection on the front reflector, whereas the rear feed must be polarised in the orthogonal direction. This is achieved by first rotating the feed coordinate systems and then selecting x and y polarisation in the feed definition, as shown in the coor_sys and standard_feed objects below:

Coor_Sys_front_feed coor_sys ( origin : struct(x: .0000000000 m, y: .0000000000 m, z: 1.500000000 m), x_axis : struct(x: .7878461781, y: .1736481777, z: .5908846842), y_axis : struct(x: .1389185379, y: -.9848077530,

TICRA
z: .1041889123), : ref(Coor_sys_front_refl) standard_feed : 25.49279581 , : struct(zxdb: -12.00000000, zydb: -12.00000000), : linear_y, : struct(db: -600.0000000, deg: .0000000000)

51

base ) Front_feed_def ( taper_angle taper polarisation cross_polar )

Coor_Sys_rear_feed coor_sys ( origin : struct(x: .0000000000 m, y: .0000000000 m, z: 1.500000000 m), x_axis : struct(x: .7878461781, y: -.1736481777, z: .5908846842), y_axis : struct(x: -.1389185379, y: -.9848077530, z: -.1041889123), base : ref(Coor_sys_rear_refl) ) Rear_feed_def standard_feed ( taper_angle : 25.49279581 , taper : struct(zxdb: -12.00000000, zydb: -12.00000000), polarisation : linear_x, cross_polar : struct(db: -600.0000000, deg: .0000000000) )

The field from the antenna system due to the rear feed can be calculated by issuing the following commands to GRASP8:

FILES READ ALL gr8_dualgrid.tor COMMAND OBJECT Rear_refl_currents_from_feed_PO get_currents (source:ref(Feed_to_front_to_rear_GO)) COMMAND OBJECT Front_refl_currents_from_rear_PO get_currents (source:ref(Rear_refl_currents_from_feed_PO)) COMMAND OBJECT Front_refl_currents_from_feed_PO get_currents (source:ref(Rear_feed)) COMMAND OBJECT Uv_grid get_field (source:ref(Rear_refl_currents_from_feed_PO)) COMMAND OBJECT Uv_grid add_field (source:ref(Front_refl_currents_from_rear_PO)) COMMAND OBJECT Uv_grid add_field (source:ref(Front_refl_currents_from_feed_PO)) QUIT

The first command causes GRASP8 to read the tor-file containing all the objects for this example. The next command calculates the induced currents on the rear reflector caused by the rear feed, and taking into account the filtering effect from the front reflector. The source in this command is the single_refl_gtd object Feed_to_front_to_rear_GO:

Feed_to_front_to_rear_GO ( factor : struct(db: frequency ray_output source reflector go : : : : :

single_refl_gtd

.0000000000, deg .0000000000), ref(Wavelength_1), none, ref(Rear_feed), ref(Front_refl), on,

52
gtd direct go_warning ) : off, : on, : off

TICRA

This object specifies a GTD computation on the front reflector with the rear feed as source. It will look for reflected rays (go : on) and direct rays. In the present case the search for reflected rays could be avoided, since there are no reflected rays hitting the rear reflector. Only the direct ray is present, and is modified after transmission through the front surface due to the grid. The PO calculation on the rear reflector is carried out in a very dense grid, because it is used as source in the third command to calculate the induced currents on the front reflector. This is a near-field calculation and thus requires many samples for convergence. The PO object specifying the currents on the rear reflector is defined as:

Rear_refl_currents_from_feed_PO ( factor : struct(db: frequency ray_output scatterer po_points : : : :

standard_po

ptd_points : ( struct(edge: 1, ptd: 0) ), file_name : " " )

.0000000000, deg: .0000000000), ref(Wavelength_1), none, ref(Rear_refl), struct( po1: 33, po2: 78), sequence

whereas the currents on the front reflector are calculated according to:

Front_refl_currents_from_rear_PO ( factor : struct(db: frequency ray_output scatterer po_points : : : :

standard_po

ptd_points : ( struct(edge: 1, ptd: 0) ), file_name : " " )

.0000000000, deg: .0000000000), ref(Wavelength_1), none, ref(Front_refl), struct( po1: 11, po2: 28), sequence

The total field is calculated by adding all contributions from the induced current sources up in the far field. It is emphasised that both the contribution from the rear-reflector currents and the front-reflector currents due to the rear reflector must be included in order to obtain the correct field.

TICRA The files associated with the above test example are: gr8_dualgrid.tor, gr8_dualgrid.tci and gr8_dualgrid.g8p.

53

54

TICRA

3.6

GTD example

In the dual reflector system considered in Section 3.1.5 the subreflector analysis can be carried out by GO/GTD instead of PO. This will be explained in the present section. The input tor-file is exactly the same as the file shown in Figure 3.1.5-2 except for the object Sub_Po which is replaced by the following object

Sub_Gtd single_refl_gtd ( frequency : ref(Field_Wavelength), source : ref(Feed_System), reflector : ref(Sub_Reflector), direct : off, go : on, gtd : on, go_warning : on )

In this object a GO/GTD calculation on the subreflector is specified. The attribute source defines the source in the GO/GTD calculation which is here the Feed_System and the reflector on which the calculations are performed is the Sub_Reflector. The attributes direct, go and gtd defines which rays that will be included in the analysis. It is seen that the direct ray from the feed is not calculated and that both the reflected ray (GO) and the diffracted rays (GTD) are calculated. Only one reflected ray and up to 8 diffracted rays can be found for each output point. A special attribute denoted go_warning is also included. This means that a warning message will be generated if a reflected ray is not found for one or more of the output points. Such a warning message can be helpful for checking the geometry because it will be detected during the main reflector analysis if some parts of the main reflector are not illuminated by a reflected ray from the subreflector. The default value for all of the last 4 attributes is off. The commands for the dual reflector analysis with GO/GTD on the subreflector and PO on the main reflector are

FILES READ ALL gr8gtd.tor COMMAND OBJECT Main_Po get_currents (source:ref(Sub_Gtd)) COMMAND OBJECT Field_Cuts get_field (source:ref(Main_Po)) QUIT

In the first command the input gr8gtd.tor-file is read and in the second command the PO currents on the main reflector is calculated due to the incident field from the subreflector as given by the Sub_Gtd object. Finally, in the third command, the radiated field from the PO currents on the output cuts is computed.

TICRA

55

If the direct radiation from the feed-subreflector system on the output cuts shall be computed the object Sub_Gtd is not suitable because the feed radiation is not included. For this purpose the object

Sub_Gtd2 single_refl_gtd ( frequency : ref(Field_Wavelength), source : ref(Feed_System), reflector : ref(Sub_Reflector), direct : on, gtd : on )

can be included in gr8gtd.tor. The direct feed radiation and the diffracted field is computed by this object. The reflected field is not requested because there will be no reflected rays from the subreflector in the main beam region. Also the go_warning attribute is removed because it is certain that it will produce a warning message. The complete tci-file will then become

FILES READ ALL COMMAND OBJECT COMMAND OBJECT COMMAND OBJECT QUIT

gr8gtd.tor Main_Po get_currents (source:ref(Sub_Gtd)) Field_Cuts get_field (source:ref(Main_Po)) Field_Cuts add_field (source:ref(Sub_Gtd2))

56

TICRA

3.7

3D-plotter example

A satellite loaded with an extensive antenna farm, shown in Figure 3.7-1, is used in this Section to describe the 3D plotter facilities in GRASP8.

Figure 3.7-1 Satellite antenna farm. The satellite box is constructed of six rectangles defined in the rectangle object. As the reflectors the rectangles can be used as scatterers in order to calculate their influence on the different radiated fields. To generate a 3D plot of the satellite geometry, some of the geometry objects must be supplied with additional informations. An example is the coordinate system objects, where the axis length must be defined before they can be plotted. This information is supplied in a special plot object for coordinate systems named Coor_plot in the tor-file:

Coor_plot coor_plot ( axis_length : 100. mm , coor_names : sequence

TICRA
( ref(East_coor_sys) , ref(West_coor_sys) , ref(Output_coor_sys) ) )

57

The axis of the three coordinate systems are then defined to a length of 100 mm. Another coordinate system which is very informative in a drawing is the global coordinate system wherein all objects are defined. To plot this coordinate system it has to be defined first in an empty coor_sys object:

Global_coor_sys coor_sys ( )

and the axis length has to be defined in the plotter object coor_plot:

Global_coor_plot coor_plot ( axis_length : 1. m , coor_names : sequence ( ref(Global_coor_sys) ) )

The reflector antenna feeds referenced in the feed_plot object are plotted as cones, where the aperture size is defined by the feed specification and the cone length is set to the 3 times the aperture diameter:

Reflector_feed_plot feed_plot ( feed_names : sequence ( ref(east_front_feed) , ref(east_rear_feed) , ref(west_front_feed) , ref(west_rear_feed) , ref(spot1_feed) , ref(spot2_feed) ) )

The telemetry command and receive antenna, tcr, is plotted as two connected cones defined in the special feed_cone_plot object:

Tcr_feed_plot feed_cone_plot (

58
radius_front length_front radius_middle length_back radius_back length_centre feed_names : 11. mm , : .2 m , : 25. mm , : 1 mm , : 75 mm , : .2 m , : sequence ( ref(Tcr_feed) )

TICRA

The geometry attributes are defined in Section 4.4.4 under the object feed_plot. The types of reflector plots are defined by the reflector plot object, refl_plot. The Spot antennas are plotted with the default 11 lines parallel to their x- and y-axis:

Spot_refl_plot refl_plot ( refl_names : sequence ( ref(Spot1_main_reflector) , ref(Spot1_sub_reflector) , ref(Spot2_main_reflector) , ref(Spot2_sub_reflector) ) )

The two dual gridded reflector antennas on the satellite side walls are plotted with lines only in one axis direction:

Front_refl_plot refl_plot ( x_lines : 0, refl_names : sequence ( ref(East_front_reflector) , ref(West_front_reflector) ) ) Rear_refl_plot refl_plot ( y_lines : 0, refl_names : sequence ( ref(East_rear_reflector) , ref(West_rear_reflector) ) )

The plane rectangles in the satellite box and the two feed platforms are plotted using the para_plot object, specifying no lines parallel to the sides:

Rectangular_plot para_plot ( rim_plot : on,

TICRA
s1_lines s2_lines refl_names : 0, : 0, : sequence ( ref(Platform ) , ref(Bottom ) , ref(East_side) , ref(West_side) , ref(North_side) , ref(South_side) , ref(East_feed_platform ) , ref(West_feed_platform ) )

59

In many cases, especially for antenna farm scattering, it is very useful to plot the reflection of rays from different sources in the various scatterers. An example is the radiation from the tcr antenna, which is often subject to interference by reflections from nearby structures or from focusing reflectors. The rays from the tcr are therefore traced for a whole sphere cut -180<<180 with a spacing of 9. The total ray path length is limited to 8 meters and begins 10 cm away form the source centre, the co-ordinate system origin.

Ray_plot.tcr ray_plot ( theta_range : struct(start:-180, end:180, np:41), phi_range : struct(start:0, end:180, np:1), ray_path_range : struct(start:.1 m, end:8. m), source_names : sequence ( ref(Tcr_feed) ) )

Reflections from reflector antenna feeds in satellite sidewalls or antenna supporting structures can also be very useful to plot, as shown for the rays from the front reflector feed, -44<<32.

Ray_plot.eff ray_plot ( theta_range : struct(start:-44, end:32, np:20), phi_range : struct(start:0, end:180, np:1), ray_path_range : struct(start:.1 m, end:5. m), source_names : sequence ( ref(East_front_feed) ) )

In order to estimate the level of the feed near field scattered in the satellite sidewall a plane cut is defined here. The location of this near field cut is plotted

60

TICRA

using the output_plot object. Also far fields can be plotted by defining a distance in the output_plot object.

Output_plot output_plot ( distance : 1.2 m , // only used for far fields output_names : sequence ( ref(Plane_cut) ) )

All D3 positions in the plots are stored in a file named in the D3_plot object:

D3_plot_xyz d3_plot ( plot_accuracy : 100. mm, file_name : plot.xyz )

The plot_accuracy is an approximate value for the segment length of the curved lines in the plot. For example, for a zoom-in the accuracy must be increased by defining a smaller value. Notice that the size of the file, plot.xyz, is also increased.

The D3 plot is started by typing

grasp8.exe gr8plot.tci gr8plot.out

which will launch GRASP8 and start execution of commands from the file gr8plot.tci

FILES READ ALL gr8plot.tor COMMAND OBJECT D3_plot_xyz get_xyz_plot (plot_objects:sequence(ref(all) )) COMMAND OBJECT D3_plot_dxf get_dxf_plot (plot_objects:sequence(ref(all) ))

In the first line all objects in the file gr8plot.tor are read. In the second line the D3 plot is generated by get_xyz_plot and due to the reference to all all plotter objects are activated. The xyz positions are then stored in the file named plot.xyz in the object D3_plot_xyz. The third command, get_dxf_plot, generates the same D3 plotter objects but in the AutoCAD DXF file format and stored in the file named plot.dxf in the object D3_plot_dxf

D3_plot_dxf d3_plot (

TICRA
plot_accuracy wavelength file_name ) : 100. mm, : 4. cm, : plot.dxf

61

This file can then be used as input to AutoCAD or another 3D CAD program and plotted with hidden lines.

62

TICRA

3.8

Struts example

The following example describes the analysis of circular struts in a single reflector system. A rotationally symmetric parabolic reflector with focal length 25 cm, diameter 50 cm and wavelength 1 cm is considered. The feed is supported by three struts with diameters 1 cm as shown in Figure 3.8-1.

Figure 3.8-1

Single reflector with three struts attached to the interior of the reflector.

In such a system two strut effects can be considered. 1) The feed illuminates the struts which in turn illuminate the reflector and modify the induced currents on the reflector created by the feed. The principal effect is that some parts of the reflector (outside the struts) will be in the shadow from the struts which will reduce the directivity and that the reflections in the struts will increase the side-lobes. 2) The reflector currents illuminate the struts which then radiate a field in opposite phase of the field from the reflector. This will reduce the directivity and create side-lobes far away from the centre. Effect No. 1 is only important if the struts are attached to the interior of the reflector, whereas effect No. 2 is also important if the struts extend to the rim of the reflector as shown in Figure 3.8-2.

TICRA

63

Figure 3.8-2

Single reflector with three struts attached to the rim of the reflector.

In the following we will only consider struts of the type shown in Figure 3.8-1 since this will cover both scattering effects. The tor-file for the analysis is shown in Figure 3.8-3.

64
/* Example with single reflector and 3 struts */ /* Reflector definition */ Main_reflector ( surface rim ) Refl_Surface ( vertex focal_length ) Refl_Rim ( centre half_axis ) reflector : ref(Refl_surface), : ref(Refl_rim)

TICRA

paraboloid : struct(x:0 cm, y:0 cm, z:0 cm), : 25 cm

elliptical_rim : struct(x:0 cm, y:0 cm), : struct(x:25 cm, y:25 cm)

/* PO on reflector */ Refl_po ( frequency scatterer po_points ) standard_po : ref(Field_wavelength), : ref(Main_reflector), : struct(po1: 120,po2: 250)

/* Feed definition */ Feed_system ( frequency coor_sys feed_definition ) Field_wavelength ( list_wl ) Feed_coor_sys ( origin x_axis y_axis ) Feed_pattern ( taper_angle taper polarisation ) feed : ref(Field_wavelength), : ref(Feed_coor_sys), : ref(Feed_pattern)

wavelength : sequence(1 cm)

coor_sys : struct(x:0 cm, y:0 cm, z:25 cm), : struct(x:1, y:0, z:0), : struct(x:0, y:-1, z:0)

gaussian_feed : 53, : -12, : linear_x

/* Struts definition */ Struts1 circular_struts ( radius : 0.5 cm, end_points : sequence ( struct(point1_x:12.50 cm, point1_y:0 cm,

point1_z:2.5625 cm,

TICRA
point2_x:2.5 cm, point2_y:0 cm,

65
point2_z:25 cm), point1_z:2.5625 cm, point2_z:25 cm),

struct(point1_x:-6.26 cm, point1_y:10.8253 cm, point2_x:-1.25 cm, point2_y:2.1651 cm,

struct(point1_x:-6.25 cm, point1_y:-10.8253 cm, point1_z:2.5625 cm, point2_x:-1.25 cm, point2_y:-2.1651 cm, point2_z:25 cm) ) )

/* PO on struts */ Struts1_po ( frequency scatterer po_points ) Struts2_po ( frequency scatterer po_points ) circular_struts_po : ref(Field_wavelength), : ref(Struts1), : struct(n_length:80, n_phi:30)

circular_struts_po : ref(Field_wavelength), : ref(Struts1), : struct(n_length:160, n_phi:30)

/* Output field specification */ Cuts_nominal ( frequency theta_range phi_range polarisation file_name comment ) Cuts_struts1 ( frequency theta_range phi_range polarisation file_name comment ) Surf_field_nom ( frequency scatterer x_range y_range field_type file_name comment ) Surf_field_struts1 ( frequency scatterer x_range y_range field_type file_name comment spherical_cut : : : : : : ref(Field_wavelength), struct(start:-90, end:90, np:361), struct(start:0, end:90, np:4), linear, nominal.cut, "Reflector field including No. 1 struts effect"

spherical_cut : : : : : : ref(Field_wavelength), struct(start:-90, end:90, np:361), struct(start:0, end:90, np:4), linear, struts1.cut, "Reflector field including No. 1 struts effect"

surface_field_grid : : : : : : : ref(Field_wavelength), ref(Main_reflector), struct(start:-25, end:25, np:81, unit:cm), struct(start:-25, end:25, np:81), currents, scur_nom.grd, "Nominal currents on reflector"

surface_field_grid : : : : : : : ref(Field_wavelength), ref(Main_reflector), struct(start:-25, end:25, np:81, unit:cm), struct(start:-25, end:25, np:81), currents, scur1.grd, "Strut1 currents on reflector"

66
) Cuts_struts2 ( frequency theta_range phi_range polarisation file_name comment effect" ) spherical_cut : : : : : :

TICRA

ref(Field_wavelength), struct(start:-90, end:90, np:361), struct(start:0, end:90, np:4), linear, struts2.cut, "Reflector field including No. 1 and 2 struts

Figure 3.8-3

tor-file for analysis of reflector with struts.

The struts are defined in the object Struts1 of class circular_struts and given by the radius and end points. The end points are lifted 1 wavelength above the surface to avoid that the struts and reflector surface intersect which can slow down the convergenc of the PO integrals. Two special PO objects, Struts1_po and Struts2_po, are also created for calculating induced currents on the struts due to the effects No. 1 and 2, respectively. The nominal field, without struts, is calculated simply by the following commands:

FILES READ ALL gr.tor COMMAND OBJECT Refl_po get_currents (source:ref(Feed_system)) COMMAND OBJECT Cuts_nominal get_field (source:ref(Refl_po)) QUIT

For calculating the effect No. 1 of the struts the currents on the struts induced by the feed must first be calculated. Hereafter the combined field from the feed and the currents on the struts illuminates the reflector and generates PO currents which must be integrated in the far field. This calculation is done by the commands:

FILES READ ALL gr.tor COMMAND OBJECT Struts1_po get_currents (source:ref(Feed_system)) COMMAND OBJECT Refl_po get_composite_currents & (source:sequence(ref(Feed_system),ref(Struts1_po))) COMMAND OBJECT Cuts_struts1 get_field (source:ref(Refl_po)) QUIT

It is also interesting to display the current distribution on the reflector which can be done by the objects Surf_field_nom and Surf_field_struts1 of the class surface_field_grid. The nominal currents are computed by:
FILES READ ALL gr.tor COMMAND OBJECT Surf_field_nom get_field (source:ref(Feed_system)) QUIT

TICRA and the modified currents due to the scattering effect No. 1 by:

67

FILES READ ALL COMMAND OBJECT COMMAND OBJECT COMMAND OBJECT QUIT

gr.tor Struts1_po get_currents (source:ref(Feed_system)) Surf_field_struts1 get_field (source:ref(Feed_system)) Surf_field_struts1 add_field (source:ref(Struts1_po))

The x-component of the surface currents generated by these two sets of commands is shown in Figures 3.8-4 and 3.8-5, respectively.

68

TICRA

Figure 3.8-4

x-component of PO surface currents generated by the incident field from the feed.

Figure 3.8-5

x-component of PO surface currents generated by the feed and modified by the struts.

TICRA

69

The effects No. 1 and 2 combined are a little more complicated to calculate. Here, the reflector currents must be calculated first and next the radiation of these currents onto the struts. Finally, the radiation from both the reflector and struts currents are added in the far field. The commands become:

FILES READ ALL gr.tor COMMAND OBJECT Struts1_po get_currents (source:ref(Feed_system)) COMMAND OBJECT Refl_po get_composite_currents & (source:sequence(ref(Feed_system),ref(Struts1_po))) COMMAND OBJECT Struts2_po get_currents (source:ref(Refl_po)) COMMAND OBJECT Cuts_struts2 get_field (source:ref(Struts2_po)) COMMAND OBJECT Cuts_struts2 add_field (source:ref(Refl_po)) QUIT

The first three commands are the same as before and in the new command

COMMAND OBJECT Struts2_po get_currents (source:ref(Refl_po))

the induced currents on the struts due to the incident field from the reflector is computed. In the next two commands the fields from the struts currents and reflector currents are computed and added. Far-field cuts are shown in Figures 3.8-6 to 3.8-8. In Figure 3.8-6 it is seen that the effect No. 1 gives a decrease in directivity of about 0.5 dB and a significant distortion of the side-lobes. Effect No. 2 is small in comparison because the system is of the type shown in Figure 3.8-1. For a system of the type shown in Figure 3.8-2 where the struts are attached to the rim of the reflector the effect No. 1 will be small and No. 2 will be large. In Figure 3.8-7 the cross polarisation is shown (the nominal cx-pol. is below the limits of the plot). A wide angle cut is shown in Figure 3.8-8. It is here seen that effect No. 2 is important for the far out side-lobes. The reason for this is that the incident field on the struts from the reflector is a nearly plane wave which is diffracted into rays on Keller-cones around the struts. The incidence angle on the struts is app. 25 so that the maximum scattering angle is app. 50.

70

TICRA

Nominal Effect No.1 Effect No.1+2

Figure 3.8-6

Co-polar cuts for =0.

Effect No.1 Effect No.1+2

Figure 3.8-7

Cx-polar cuts for =90.

TICRA

71

Nominal Effect No.1 Effect No.1+2

Figure 3.8-8

Co-polar cuts for =0.

72

TICRA

REFERENCE SECTION

This chapter contains a description of the OQL syntax for defining objects, the command syntax and some general comments about root classes and derived classes.

TICRA

73

4.1

OQL syntax

Objects are defined in a format called OQL (Object Query Language). Examples are shown in Sections 3.1.3 and 3.1.5 and the full syntax is given below. Text, including object names, class names and words which are part of the syntax such as struct and sequence, is not treated as case sensitive. The only case sensitive elements are the items string and unitid_string as defined below. The string element may be used to hold file names which on some computer systems are case sensitive and the unitid_string is used to hold measurement unit identifiers such as mm and GHz. The available unit identifiers are: Length units: mm, cm, m, km, in, ft where in is an inch (2.54 cm) and ft is a foot (12 inches). Frequency units: Hz, kHz, MHz, GHz, THz Conductivity unit: S/m

74 OQL syntax:
object_constructor ::= object_name [=] class_name object_data object_name ::= name_string class_name ::= name_string object_data ::= ( [attribute {, attribute}] ) attribute ::= attrib_name [:] attrib_construct attrib_name ::= name_string attrib_construct ::= value | struct | sequence | reference value ::= number_construct | string struct ::= struct ( struct_attrib {,struct_attrib} ) sequence ::= sequence (element_construct {,element_construct}) reference ::= ref ( object_name ) number_construct :: = number [unitid_string] struct_attrib ::= attrib_name [:] struct_attrib_construct struct_attrib_construct ::= value | reference number ::= any number which can be read with FORTRAN format G32.0 (which includes integers and all reals) element_construct ::= value | struct | reference name_string ::= sequence of letters, digits, '_' and '.' without separators initiated by a letter - max. 32 characters. unitid_string ::= sequence of letters, digits, '/', '*', '^' and '-' without separators initiated by a letter - max. 32 characters. string ::= sequence of legal characters without separators which is not a number | sequence of legal characters without blanks surrounded by quotes ( ) - max. 200 characters. separators ::= ( | ) | = | , | : | blank | comment | end_of_line comment ::= line_comment | multiline_comment line_comment ::= sequence of any legal characters initiated by // and terminated by end_of_line multiline_comment ::= sequence of any legal characters over any number of lines initiated by /* and terminated by */ ______________________________________________________________ Terminal symbol ::= ( | , | ) | = | : | struct | sequence | ref Pseudo terminal symbol ::= number | name_string | unitid_string | string (see definitions above)

TICRA

TICRA

75

4.2

Command summary

This chapter gives a summary of the most important commands in GRASP8. Minimum abbreviations are indicated in bold. 4.2.1 Input and output commands

FILES READ OBJECT <object_name> <.tor-file_name> Reads the object with name <object_name> from the file name with the name <.tor-file_name> FILES READ ALL <.tor-file_name>

Reads all objects in the file with name <.tor-file_name> FILES WRITE OBJECT <object_name> <.tor-file_name> Writes the object with name <object_name> to the file name with the name <.tor-file_name>. Any data already stored in the file will be lost. FILES WRITE ALL <.tor-file_name>

Writes all objects to the file name with the name <.torfile_name>. Any data already stored in the file will be overwritten. 4.2.2 OBJECT managing commands

COMMAND OBJECT <object_name> create <class_name> Creates an object (an instance) named <object_name> of the class <class_name> and initialises the object to default values. COMMAND OBJECT <object_name> delete Deletes the object named <object_name>. If the object is referenced by other objects a ghost by the same name will be created. COMMAND OBJECT <object_name> set (<object_constructor>) Assigns the values <object_constructor> to the object named <object_name>.

76

TICRA

COMMAND DELETEALL Deletes all objects and function instances unconditionally.

4.2.3

Calculation commands

COMMAND OBJECT <object_name> <function_name> & (<function_arguments>) where 1) <function_name> is a legal function (method) in the class of <object_name> 2) <function_arguments> are arguments to the function (often no arguments are needed). 3) '()' must be specified if there are no arguments. Activates the class function <function_name> with the object named <object_name> as target and with actual arguments <function_arguments>. The command will only be submitted if all objects are complete and if there are no ghost objects.

4.2.4

Configuration inspection commands

PRG_CONFIG SHOW IDL_FILE Display the name of the file that contains the interface definition (IDL) on the screen. PRG_CONFIG SHOW CMD_FILE Display the name of the command file on the screen.

PRG_CONFIG SHOW LENGTH_OF_NAMES Display the maximum allowed length of object names and file names. PRG_CONFIG SHOW START_TCI_FILE

TICRA

77

Display the name of the tci file that was executed when the program was started. PRG_CONFIG SHOW PLATFORM_DEP Display platform dependent entities. PRG_CONFIG SHOW LOG_FILE Display the name of the log file on the screen. PRG_CONFIG SHOW OUT_FILE Display the name of the output file on the screen.

4.2.5

Browser OBJECT commands

BROWSE CLASS <class_name> Display a list on the screen of all objects belonging to the class <class_name>. BROWSE GHOSTS Display a list on the screen of all ghost objects. A ghost is an object which has not been defined but is referenced by another object. BROWSE INCOMPLETE Display a list on the screen of all incomplete objects. An object is incomplete if it has attributes which must be given a value by the user (i.e. attributes with no default value) and if at least one of these attributes is undefined. BROWSE OBJECTS Display a list on the screen of all objects currently loaded. BROWSE OBJECTS <init_name_string> Display a list on the screen of all objects whose name begins with the string <init_name_string>.

78

TICRA

BROWSE REFERENCES FROM <object_name>|<object_index> Display a list on the screen of all objects that are referenced by the object named <object_name> (or has the number <object_index>). BROWSE REFERENCES TO <object_name>|<object_index> Display a list on the screen of all objects that have references to the object named <object_name> (or with the number <object_index>). 4.2.6 Program termination command

QUIT Stops the program execution.

4.3

Root classes and derived classes

In the preceding sections we have already referred to root classes and derived classes. GRASP8 contains a number of root classes each of which may have more specialised derived classes. Derived classes may be used everywhere its parent root class can be used. For example the REFLECTOR_DATA object in the single reflector example (3.1.3) must have a reference to the root class "surface". This means that we can reference an object of any of the derived classes, i.e. paraboloids ellipsoids, etc. The most important root classes in GRASP8 are: SCATTERER Objects of this class describe scattering geometries. An important derived class is the reflector class which is used for defining curved reflectors. Other derived classes can generate plane structures including triangles and rectangles by very simple input. Internally in the program these objects supply geometrical information such as reflection points and PO integration grids to be used by other objects for electromagnetic computations. SOURCE A source object is used for calculating an electromagnetic field. The

TICRA

79

simplest derived class is the feed class in which a large number of pattern types are available for modelling a feed. When a source object has been defined the user can request a calculation of the radiated field in a set of points defined in a field_storage object (see the next paragraph). Another simple derived class is the array class by which an array of feeds or other sources can be defined. A scattered field is also considered as a source and can be computed by the derived classes PO and GTD. A PO object can compute the induced PO currents on a scatterer due to an incident field from another source. These currents are stored in the object and the field they radiate can be computed so that the PO object becomes a new source. Multi-reflector analysis can be carried out if such a source is used as input to another PO or GTD analysis. In the same way the scattered GTD field due to an input source and a reflector object is considered as a new source of class GTD. WAVELENGTH A wavelength object contains a sequence of wavelengths for which the field computation should be done. The wavelengths may also be input as frequencies. By specifying such an object it is possible to compute the fields at a whole range of frequencies in one run of the program. COOR_SYS A coor_sys object contains data for defining a coordinate system i.e. origin and axes. It may also be defined relative to another coordinate system by giving a reference to this system. If no reference is specified it is assumed that it is defined in the global coordinate system. The global coordinate system is the basic coordinate system, which is not specified anywhere, but in which all other coordinate systems are specified either directly or indirectly. FIELD_STORAGE In a field_storage object a set of points in which the field should be calculated can be specified. When the field has been computed it is stored in the object. The derived classes cut and uv_field are available for defining simple cuts and 2D grids of field points. FEED_DEFINITION An object of this class contains the definition of a feed pattern. A large number of derived classes is available such as circular and rectangular horns, measured data, Gaussian beam, etc. A feed_definition object is used

80

TICRA by an object of the feed class which, as mentioned above, is derived from the source class.

SURFACE A surface object is used by a reflector object for defining a reflector surface. A large number of derived classes are available for different kinds of surfaces such as paraboloids, ellipsoids, etc. RIM A rim object is used by a reflector object for defining the rim of a reflector. The derived classes can be used for specifying elliptical, superelliptical, rectangular and a numerically defined rim. ELECTRICAL_PROPERTIES In this class a number of surface properties can be specified such as finite conductivity, dielectric coating, strip grid, etc. An object of this class can be associated with a scatterer object so that the surfaces of the scatterer can be given these electrical properties. REFLECTOR_ANALYSIS Objects of this class can perform a number of useful operations on reflector objects such as adding, subtracting and scaling reflector surfaces and generate 2D-grids for later visualisation.

TICRA

A1

APPENDIX A GEOMETRY OF OFFSET PARABOLOIDAL REFLECTOR An offset paraboloidal reflector may be defined by the aperture diameter D, the clearance D' and the focal lenght f as shown in Figure A-1. It follows that the centre of the aperture is located in the distance xo=D'+D/2 from the paraboloid axis. The rim of the reflector may be defined as the intersection between the paraboloid and a circular cylinder with axis through the centre of the reflector and parallel to the paraboloid axis. The rim is also the intersection between the paraboloid and a circular cone with apex in the focal point and tilted the angle
, 2f (D + 2D') ) o = Arc tan + 2 ( *4f D'(D + D')'

(A-1)

and with the half cone angle


0 2fD * = Arc tan/ 2 2 . f + D '(D + D ')1 .4

(A-2)

Figure A-1 The feed will often be directed towards the centre point on the reflector i.e. the feed axis is tilted the angle

A2

TICRA

, D'+D / 2) f = Arc tan + (. * 2f '


For the example in Section 3.1.3 we have D = 0.5 m f = 0.5 m xo = 0.3 m from which we have D'=0.05 m and

(A-3)

o = 31.67320 * = 25.94839 f = 33.39849 .


The angle f is used to calculate the orientation of the feed in the object FEED_SYSTEM in Figure 3.1.3-2 and the angle * is used to define the taper angle in the object FEED_PATTERN in the same figure.

TICRA

B1

APPENDIX B GEOMETRY OF OFFSET DUAL REFLECTOR SYSTEM In this appendix the geometry of an offset dual reflector system of Cassegrain or Gregorian type will be considered. The main reflector is a paraboloid. For a Cassegrain system the subreflector is a hyperboloid and for a Gregorian system the subreflector is an ellipsoid. If such a system shall be analysed by GRASP8 the geometry must be specified such as coordinate systems, the feed and the main and subreflector surfaces and rims. These data are calculated automatically by the preprocessor of GRASP8 so that the following calculations are not necessary if the user has access to this program. The geometry of the system can be specified by the 6 parameters:

D f c e o

Diameter of the main reflector Focal length of the main reflector Half distance between the focal points of the subreflector Eccentricity of the subreflector Angle between the main reflector and subreflector axis Angle between the subreflector and feed axis.

In the following it is explained how the complete geometry can be calculated from these parameters and a numerical example is carried out for the same system as considered in Section 3.1.5. A drawing is shown in Figure B-1.

B2

TICRA

xs1 xf o z zs2
v u

xs2

zs1

zf

Figure B-1. Dual reflector system. The condition of Mizugutchi which minimizes cross polarisation gives a relation between e, and o which may be expressed as

e =
or

sin(( + 0) / 2 ) sin(( 0) / 2 )

(B-1)

M tan
where

= tan o 2 2

(B-2)

TICRA M = (e+1)/(e-1)

B3 (B-3)

A system satisfying this condition will in the following be called a compensated system. The half apex distance a of the subreflector (i.e. the major axis of the subreflector ellipsoid or hyperboloid) can be calculated from a = c/e . Note that the following sign convention is used: 0<e<1 e > 1 or e < -1 ellipsoidal subreflector hyperboloidal subreflector. (B-4)

The case e>1 corresponds to the convex branch of the hyperboloid (seen from the feed) and e<-1 corresponds to the concave branch. In the latter case it is seen from (B-4) that a also becomes negative. The main reflector is defined in the global coordinate system xyz with vertex in the origin and axis of revolution along the z-axis. The equation for the paraboloid thus becomes z = (x2 + y2) / (4f). The subreflector and feed coordinate systems will be defined in the following. Subreflector coordinate system in the global coordinate system: Origin: P 0, 0, f) s1 = (

! s1 = (cos , 0, x-axis: x ! s1 = (0, y-axis: y


- 1, 0)

- sin)

!s1 = ( sin , 0, z-axis: z

- cos)

(B-5)

It is seen that this subreflector coordinate system has the z-axis along the axis of revolution of the subreflector. Another subreflector coordinate system which is often more convenient for Gregorian type systems will be introduced later. Feed coordinate system in subreflector coordinates: Origin: P 0, 0, 2c) f = (

! f = (cos o, 0, sino) x-axis: x

B4

TICRA

!f = ( y-axis: y 0,

1 , 0 )
- cos o)
(B-6)

!f = (sin o, 0, z-axis: z

It is seen that the feed coordinate system has z-axis along the feed axis. The final rays reflected by the main reflector form a circular cylinder with axis parallel to the z-axis of the global coordinate system. If these rays are traced backwards to the feed they form a circular cone with apex in the feed position. The half angle of this feed cone can be useful for specifying the edge taper of the feed. The feed cone traces out the subreflector rim which must also be specified in the input to GRASP8. It may be shown that a ray leaving the main reflector in the plane of symmetry with x-coordinate x originates from the feed as a ray with the angle to the subreflector axis where

M tan 2 2 x = 2f 1 + M tan tan 2 2 tan

(B-7)

If =o is inserted in (B-7) the centre point of the main reflector and thus the offset distance xmo is found

M tan o 2 2 xmo = 2f 1 + M tan tan o 2 2 tan


For a compensated system this reduces to
e xmo = 4 f 2 sin o . e 1

(B-8)

(B-9)

The lower and upper edge rays on the main reflector are given by x1 and x2 , respectively

x1 = xmo D / 2 x2 = xmo + D / 2 .
(B-10)

These rays correspond to the rays with angles 1 and 2 from the feed as given by

TICRA

B5

1, 2 M tan 2 2 x1, f . 2 = 2 1, 2 1 + M tan tan 2 2 tan

(B-11)

This may be inverted to give

! x1, $ 2 & # + tan & . # f 2 2 1, 2 = 2 Arc tan# x ! $ & 1, 2 tan & & # M #1 2f 2% % " "

(B-12)

When 1 and 2 are calculated the half apex angle of the feed cone is given as

feed = 1 2 / 2 .

(B-13)

For a compensated system this angle can be computed more easily without using the angles 1 and 2

D e2 1 tan feed = 2 2 4 f e + 1 + 2e cos o


and the feed cone angle is identical to the feed axis such that

(B-14)

o = (1 + 2) / 2 .

(B-15)

This is not true for a non-compensated system where the feed cone axis deviates slightly from the feed axis. The distances from the feed position to the upper and lower edges (in the plane of symmetry) of the subreflector r1 and r1 are found from the equation in polar coordinates for a hyperboloid or ellipsoid. This gives

a (e2 1 ) r 1, 2 = e cos 1, 2 1

(B-16)

and the x and z coordinates in the subreflector coordinate system of the upper and lower edge points become

z1, 2 = 2c r 1, 2 cos 1, 2

B6

TICRA

x1, 2 = r 1, 2 sin 1, 2 .

(B-17)

It can be shown that the subreflector rim curve which is traced out by the circular feed cone becomes a plane ellipse with major axis in the plane of symmetry. The major axis thus becomes

asr =

1 2 2 (x1 x2) +( z1 z2) 2

(B-18)

and the other half axis can be calculated from

bsr =

2 asr

1 2 (r1 r2) . 4

(B-19)

The actual input to the subreflector rim object depends on which subreflector coordinate system is used. If the coordinate system xs1ys1zs1 defined in (B-5) is used the z-axis becomes the axis of revoloution of the subreflector and the projection of the rim curve onto the xs1ys1-plane becomes an ellipse with the axis in the plane of symmetry given by

a ' sr = x1 x2 / 2

(B-20)

and the other axis given by (B-19). The offset xso of the subreflector rim becomes

xso = (x1 + x2) / 2 .

(B-21)

For Gregorian type systems it may happen that this coordinate system is not adequate because the subreflector in this coordinate system cannot be represented as a single valued function zs1 of the variables xs1,ys1. For this reason the coordinate system xs2ys2zs2 with the same origin but with the xyplane parallel to the subreflector rim curve is often more suitable. The rotation angle u between the two subreflector coordinate systems (see Figure B-1) can be found from

u = atan2(z1 z2, x1 x2)


and the rotation angle v between xs2ys2zs2 and the global system becomes v=u+. The xs2ys2zs2 system in global coordinates is thus given by
0, 0, f) Origin: P s2 = (

(B-22)

(B-23)

TICRA

B7

! s2 = (cos v, 0, x-axis: x ! s2 = (0, y-axis: y


- 1, 0)

- sinv)

!s2 = ( sin v, 0, z-axis: z

- cosv) .

(B-24)

The attribute axis_angle in the ellipsoid surface object becomes axis_angle = -u (B-25)

and the half axes of the projection of the rim curve onto the xs2ys2-plane are now directly given by (B-18) and (B-19). The offset of the centre of the rim curve xso will in this coordinate system be

xso =

x1 + x2 z + z2 cos u + 1 sin u . 2 2

(B-26)

Finally, we need to calculated the feed coordinate system relatively to the xs2ys2zs2 system. This gives
2c sin u, 0, 2c cos u) Origin: P f = (

! f = (cos w, 0,sin w) x-axis: x !f = ( y-axis: y 0,


- 1, 0) - cos w) .
(B-27)

!f = (sin w, 0, z-axis: z
where w = o u .

(B-28)

For the system considered in Section 3.1.5 (see Figure 3.1.5-1) we have

D = 1.0 f = 0.5997 c = 0.2647 = 6.9 o = -21.23

(B-29)

All lengths are here and in the rest of this section assumend to be in meters. The system becomes compensated if the subreflector eccentricity is given by (B-1)

B8 e = 0.513233 and the major axis of the subreflector surface becomes a = 0.515750 .

TICRA (B-30)

(B-31)

From (B-5) and (B-6) it is seen that the subreflector and feed coordinate systems are defined by
P 0, 0, 0.5997) s1 = (

! s1 = (0992757 x . , 0, ! s1 = (0, y
- 1, 0)

- 0.120137)

P 0, 0, 0.5294) f = (

!f = ( x 0932134 . , 0, !f = ( y 0,
- 1, 0) .

- 0.362113)
(B-32)

From (B-3) we obtain M = -3.108742 and from (B-8) the subreflector offset is found xmo = 0.605237 . (B-34) (B-33)

The angles for the two subreflector edge rays are found from (B-12) and become

1 = -5.481303 2 = -36.978697 .
It is seen that the mean value of these angles equals o since the system is compensated. The feed cone angle is found from (B-13) (B-35)

feed = 15.748697 .

(B-36)

The distances from the feed to the subreflector upper and lower edges are given by (B-16) and become r1 = 0.776706 r2 = 0.643895 . (B-37)

TICRA The coordinates of these edge points become z1 = -0.243754 z2 = 0.015019 x1 = -0.074192 x2 = -0.387314 ,

B9

(B-38)

such that the major and minor axes of the subreflector rim becomes (see (B-18) and (B-19))

asr = 0.203107 bsr = 0.191944 .


(B-39)

It is recommended that these two half axes are increased by approximately 5%. Otherwise reflection points on the subreflector close to the rim will be difficult to find for the reflection point search procedure. It is here convenient to use the subreflector coordinate system xs2ys2zs2 which can be computed by (B-22) through (B-24) u = -39.571193 v = -32.671193
P . 337247 , 0, 0.408079) f = (0

! f = (0949199 x . , 0, 0.314675) ! f = (0, y


- 1, 0)
(B-40)

The axis_angle attribute in the subreflector surface is given by (B-25) axis_angle = -u = 39.571193 and the offset of the centre of the subreflector rim curve xso is given by (B-26) xso = -0.105016

All input to GRASP8 as required in the input file in Figure 3.1.5-2 has now been calculated.

Anda mungkin juga menyukai