# Documentation

## Conformal Array

### Support for Arrays with Custom Geometry

The `phased.ConformalArray` object lets you model a phased array with arbitrary geometry. For example, you can use `phased.ConformalArray` to design:

• A planar array with a nonrectangular geometry, such as a circular array

• An array with nonuniform geometry, such as a linear array with variable spacing

• A nonplanar array

When you use `phased.ConformalArray`, you must specify these aspects of the array:

• Sensor element of the array

• Element positions

• Direction normal to each array element

To create a conformal array with default properties, use this command:

`hcon = phased.ConformalArray`

This default conformal array consists of a single `phased.IsotropicAntennaElement` sensor element located at the origin of the local coordinate system. The direction normal to the sensor element is 0 degrees azimuth and 0 degrees elevation.

### Uniform Circular Array

This example shows how to construct a uniform circular array consisting of 60 elements. Assume an operating frequency of 400 MHz. Specify the arc length between the elements to be 0.5λ where λ is the wavelength of the operating frequency. The element normal directions are equal to `[ang; 0]` where `ang` is the azimuth angle of the array element.

```% Angle spacing in degrees theta = 360/60; % Angle spacing in radians thetarad = degtorad(theta); % Arc length 0.5*wavelength of operating frequency arclength = 0.5*(physconst('LightSpeed')/4e8); radius = arclength/thetarad; % Number of elements N = 60; % Element angles in degrees ang = (0:N-1)*theta; % Azimuth angles must be between [-180,180] ang(32:end)=ang(32:end)-360; hcirc = phased.ConformalArray; hcirc.ElementPosition = [radius*cosd(ang);... radius*sind(ang);... zeros(1,N)]; hcirc.ElementNormal = [ang; zeros(1,N)]; viewArray(hcirc); figure; plotResponse(hcirc,1e9,physconst('LightSpeed'),'Format','Polar')```

### Custom Antenna Array

This example shows how to construct and visualize a custom-geometry array containing antenna elements with a custom radiation pattern. The radiation pattern of each element is constant over each azimuth angle and has a cosine pattern for the elevation angles.

Define the antenna element and plot its radiation pattern.

```Az = -180:180; El = -90:90; Elresp = cosd(El); hele = phased.CustomAntennaElement('AzimuthAngles',Az,... 'ElevationAngles',El,... 'RadiationPattern',repmat(Elresp',1,numel(Az))); plotResponse(hele,3e8,'Format','Polar','RespCut','El')```

Define the locations and normal directions of the elements. In this case, the elements are located at `[1;0;0]`, `[0;1;0]`, and `[0;-1;0]`. The element normal azimuth angles are 0, 120, and –120 degrees respectively. All normal elevation angles are 0 degrees.

```xpos = [1 0 0]; ypos = [0 1 -1]; zpos = [0 0 0]; normal_az = [0 120 -120]; normal_el = [0 0 0];```

Define a conformal array with those elements.

```ha = phased.ConformalArray('Element',hele,... 'ElementPosition',[xpos; ypos; zpos],... 'ElementNormal',[normal_az; normal_el]);```

Plot the positions and normal directions of the elements.

```figure; viewArray(ha,'ShowNormals',true) view(0,90)```

Plot the response of the conformal array.

```figure; plotResponse(ha,3e8,3e8,'Format','Polar','RespCut','3D')```