Hi @Richard,
After going through documentation provided at the link below
https://www.mathworks.com/help/phased/ref/phased.heterogeneousconformalarray-system-object.html
It seems that it is designed for constructing arrays with different types of sensor elements in arbitrary positions and orientations. So, the key properties you will utilize include:
ElementSet: cell array containing your specific antenna elements.
ElementIndices: A vector that maps the elements in your array to their respective indices in the ElementSet.
ElementPosition: A matrix defining the spatial coordinates of each element.
ElementNormal: Defines the direction each element is pointing.
Taper: Allows you to set individual weights (both amplitude and phase) for each element.
Please see steps below to implement your analysis.
Define Your Elements: Create instances of your dipole and loop antennas using MATLAB’s Antenna Toolbox.
dipole = phased.IsotropicAntennaElement; loop = phased.IsotropicAntennaElement; % Replace with actual loop definition
Set Up the Heterogeneous Conformal Array: Define your array using the properties outlined above:
% Create an array with 6 elements H = phased.HeterogeneousConformalArray(... 'ElementSet', {dipole, loop, dipole, loop, dipole, loop}, ... 'ElementIndices', [1, 2, 1, 2, 1, 2], ... 'ElementPosition', [x_positions; y_positions; z_positions], ... 'ElementNormal', [azimuth_angles; elevation_angles]);
Here, x_positions, y_positions, z_positions, azimuth_angles, and elevation_angles need to be defined based on your specific configuration.
Assign Weights: You can specify unique tapers for each element by defining a vector:
weights = [weight1, weight2, weight3, weight4, weight5, weight6]; % Define weights based on your steering angles H.Taper = weights;
Compute Response: Use the step method or call the object directly to compute the response for specified angles:
steeringAngles = [desired_azimuth; desired_elevation]; % Define desired angles response = H(steeringAngles);
Analyze Gain Pattern: To analyze the gain pattern as a function of steering angle, use:
fc = frequency; % Define operating frequency pattern(H, fc, azimuth_range, elevation_range);
Replace azimuth_range and elevation_range with vectors specifying the range of angles you wish to analyze.
When analyzing an array of multiple elements, consider mutual coupling effects which may alter the expected gain patterns. You can compute embedded patterns if necessary using termination settings. Also, MATLAB provides various visualization tools such as patternAzimuth and patternElevation which can help in assessing how well your steering works across different angles.
Hope this helps.