低副瓣阵列天线综合1 matlab HFSS
车载雷达天线多采用微带贴片天线,贴片振子的形状多种多样,较常用的是矩形;
组阵时多采用先串馈再把串馈好的行或列单元采取并馈的方式组阵,无论是串馈或并馈,想要获得较低的副瓣效果,都需要采取电流幅度加权的方式才能实现,常用的有道尔夫切比雪夫加权或泰勒加权,加权系数的计算去看公式计算比较费劲,需要科班研究,比较费时,一般有专门的软件来计算;我也想采用matlab自己用公式计算出来,查找了一下资料有博主给出了详细的讲解,这里给出连接https://www.cnblogs.com/olivermahout/p/11784999.html,代码阅读起来也比较费时,有些人说可以直接采用matlab自带的chebwin或taylorwin函数直接得到电流幅度矩阵,我在该博主的代码基础上试了一下,振元数为10时做出的效果和博主给出的基本一样,但振元数13时就副瓣就有些差异了,代码如下:
clear
clc
% 参数设置
lamda = 1; % 波长
d = lamda * 0.6; % d为阵元间距
theta0 = (90/180)*pi; % 扫描角度
theta = 0: 0.01 : pi; % Θ为方向角
u = pi*d*(cos(theta)-cos(theta0))/lamda;
%T = Chebyshev; % T为切比雪夫恒等式系数矩阵
N = 10; % N为直线阵的阵元数量,M为一侧的单元数(对称)
R0dB = 26; % R0dB为副瓣电平
if (mod(N,2)==0)
M = N / 2;
parity = 0; % parity为奇偶性,0为偶数
else
M = (N+1)/2;
parity = 1;
end
%i=[1;0.89;0.706;0.485;0.357];
I=chebwin(N,R0dB);
if (mod(N,2)==0)
i = I(M+1:N);
else
i = I(M:N);
end
% 计算最终的阵因子
S_all = zeros(1,length(theta));
for k = 1 : M
S_all = S_all + i(k)*cos((2*k-1)*u);
end
SS = S_all;
% 画图 —— 直角坐标系
S_max = max(S_all); % 归一化处理
S_all = 20*log10(abs(S_all/S_max)); % 取分贝值
figure('NumberTitle', 'off', 'Name', 'S Parameter (dB) - Cartesian');
theta_ = theta * 180 / pi;
plot(theta_,S_all,'k','LineWidth',1.5);
grid off
xlabel('\theta (°)','FontSize',13);
ylabel('|S| dB','FontSize',12);
axis([0 182 -50 2]);
box on
% 画图 —— 极坐标系
figure('NumberTitle', 'off', 'Name', 'S Parameter (dB) - Polar');
S_pol = SS / max(SS);
polarplot(theta,S_all,'k','LineWidth',1.5);
thetalim([0 180]);
rmin = min(S_all);
rmax = max(S_all);
rlim([-50 rmax]);
结果如下:
N是13个单元时,就无法得到等副瓣的效果了,如下图
还有另一位博主也给出了一篇博文和附带的matlab代码连接在这里也给出https://www.cnblogs.com/Scotter/p/11830831.html,他的按照公式推导出的13单元的阵列效果就比较理想,但用他的代码,修改为直接通过chebwin得到的电流分布无法和博主得出的一样,因为博主得出的电流分布中间的电流是0.406 0.432 0.604 0.770 0.908 1.000 0.516 1.000 0.908 0.770 0.604 0.432 0.406,而我用chebwin得出的电流分布是0.393 0.419 0.586 0.746 0.880 0.969 1.000 0.969 0.880 0.746 0.586 0.419 0.393 ,对称形式不同可能是导致问题的原因,但具体为什么我还没有搞清楚,代码和仿真结果如下:
%% --------------------------------------------------------------------------
% 切比雪夫低副瓣阵列综合
% 设计一个间距为d,单元数为N,主副瓣电平比为RdB,扫描角度为theta0的切比雪夫阵列。
% 2019.11.10
%--------------------------------------------------------------------------
%% 初始数据赋值
clear
clc
N = 13; %单元数N(3<N<=13,N取整数)
if rem(N,2)==0 %求和项数M(奇偶不同)
M = N/2;
else
M = (N-1)/2+1;
end
RdB = 26; % 主副瓣比(dB值)
R = 10^(RdB/20);
lamuda = 1; % 波长
d = 0.6*lamuda; % 单元间距
theta0 = 90/180*pi; % 扫描角度,相对于阵列排布方向的夹角
I1=chebwin(N,RdB);
%I1 = I1/max(I1); % 对I归一化
I=I1(M:N);
%I=[0.406 0.432 0.604 0.770 0.908 1.000 0.516];
%I=fliplr(I);
sprintf('天线单元归一化电流幅度:')
sprintf('%.3f ',I)
%% 获得最终阵列方向图S_P
theta_rad = 0:0.01:pi;
theta = theta_rad*180/pi;
%u = pi*d/lamuda*( cos(theta_rad)- cos(theta0));
u = pi*d*( cos(theta_rad)- cos(theta0))/lamuda;
S_P = zeros(1,length(theta_rad)); % 最终方向图
for k = 1:M
if rem(N,2)==0
S_P = S_P + I(k)*cos((2*k-1)*u);% 偶数
else
S_P = S_P + I(k)*cos(2*(k-1)*u);% 奇数
end
end
S_P_abs = abs(S_P); % 对S_P取绝对值
S_PdB = 20*log10(S_P_abs/max(S_P_abs)); % 对S_P取dB值
%% 绘图
H = -ones(1,length(S_P_abs))*26; % 根据预先设置的主副瓣比得到的参考曲线
% 直角坐标系
figure('NumberTitle', 'off', 'Name', 'S Parameter (abs)-Plot');
plot(theta,S_P_abs,'b','LineWidth',1.5)
xlabel('theta(°)')
ylabel('|S| ')
title('chebyshev低副瓣阵列直角坐标图')
figure('NumberTitle', 'off', 'Name', 'S Parameter (dB)-Plot');
plot(theta,H,'r--','LineWidth',1.5)
hold on
plot(theta,S_PdB,'b','LineWidth',1.5)
xlabel('theta(°)')
ylabel('|S| dB')
title('chebyshev低副瓣阵列直角坐标图')
legend('预设副瓣参考曲线','方向图')
% 极坐标系
figure('NumberTitle', 'off', 'Name', 'S Parameter (dB)-Polar');
polarplot(theta_rad,H,'r--','LineWidth',1.5)
hold on
polarplot(theta_rad,S_PdB,'b','LineWidth',1.5)
thetalim([0 180]);
rmin = S_PdB(1,1);
rmax = max(S_PdB);
rlim([-50 rmax]);
title('chebyshev低副瓣阵列极坐标图')
legend('预设副瓣参考曲线RdB','方向图(dB)')
结果是零点在-26dB了。这个还希望知道的朋友也帮忙解释一下。
得到了电流分布后,就可以根据仿真计算的到的单元振子的原始尺寸宽度再乘以比例因子,就可以得到各单元的宽度,并在HFSS中做出整个串馈网络,仿真好后的行或列单元需要通过T型节功分器进行功率分配,后续我们继续讨论如何得到功率分配比和实现最终的馈电网络。