中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
基于matlab及遺傳算法的稀疏平面陣列設(shè)計(jì)(一)

稀疏平面陣列  

從前文《相控陣天線波束寬度分析》我們知道相控陣天線的波束寬度是與口徑和掃描角度相關(guān)的函數(shù)。如果我們要達(dá)到很高的分辨率,就需要波束寬度很窄,此時(shí)天線的口徑就需要很大。相控陣天線的間距一般為半波長(zhǎng),此時(shí)需要的天線數(shù)量以及后端的TR組件數(shù)量會(huì)增加很多,極大地增加了天線的生產(chǎn)成本。解決相控陣天線成本居高不下的方法之一就是采用稀疏陣列。

稀疏陣列是從均勻間隔滿陣中稀疏掉部分陣元,這樣就形成了陣元間距約束為某個(gè)基本量(通常為半倍波長(zhǎng))的整數(shù)倍的非均勻陣列;稀疏陣列在不改變陣列孔徑的條件下,即保持陣列高分辨率的前提下,減少陣元數(shù)量并優(yōu)化各陣元的物理布局,產(chǎn)生滿足期望性能的波束方向圖,大幅度降低了成本。由于這樣設(shè)計(jì)的稀疏陣列的大部分陣元間距大于半波長(zhǎng),因此硬件布局布線的冗余度更高,簡(jiǎn)化了天線結(jié)構(gòu)和饋電網(wǎng)絡(luò),降低了散熱難度,同時(shí)其陣元間的互耦效應(yīng)與均勻陣列相比更弱,在實(shí)際環(huán)境中具備更好的性能。

對(duì)于一個(gè)均勻平面陣列,如果我們用fmn表示其每個(gè)單元的工作狀態(tài),那么我們就可以得到三種狀態(tài),fmn全為1,此時(shí)為滿陣,也就是均勻平面陣;fmn全為0,此時(shí)沒(méi)有一個(gè)單元工作;fmn部分為0,部分為1,此時(shí)便為稀疏陣列。因此我們引入加權(quán)因子fmn,給均勻平面陣列的陣因子進(jìn)行加權(quán),即可得到稀疏平面陣列。加權(quán)陣因子如下表示:

因陣元間距是離散分布且大于等于半波長(zhǎng),稀疏陣列所綜合出來(lái)的掃描波束方向圖中可能存在與主瓣齊平的柵瓣、或較高電平的副瓣,導(dǎo)致方向圖中在無(wú)回波的方位出現(xiàn)虛假目標(biāo)。實(shí)際工程應(yīng)用對(duì)天線的分辨力要求很高,因而主瓣寬度要盡量窄,同時(shí)盡可能降低峰值旁瓣電平。所以我們采用最大旁瓣電平作為適應(yīng)度函數(shù),當(dāng)最大旁瓣電平MSLL最小時(shí)優(yōu)化結(jié)束。

算法流程  

遺傳算法是一種全局性的概率搜索算法,該算法直接對(duì)問(wèn)題進(jìn)行操作,不需要復(fù)雜的計(jì)算公式,在搜索過(guò)程中可不斷積累經(jīng)驗(yàn)和知識(shí),不需要借助于外界信息,只需要依靠自身產(chǎn)生的搜索空間的知識(shí),便可找到最優(yōu)解。標(biāo)準(zhǔn)的遺傳算法是依據(jù)適應(yīng)度對(duì)種群進(jìn)行選擇、交叉及變異操作,直到達(dá)到最大的進(jìn)化代數(shù)。所以我們可以以下流程來(lái)進(jìn)行操作:    

第一步,確定適應(yīng)度,并編制適應(yīng)度函數(shù)。本例以最大旁瓣電平為適應(yīng)度函數(shù)。

第二步,確定進(jìn)化代數(shù),進(jìn)化代數(shù)一般選擇100-1000,并生成一定的種群,種群數(shù)量一般選擇10-200。本例中使用randn()函數(shù)生成符合正態(tài)分布的。令其中NL(稀疏完剩余的單元個(gè)數(shù))個(gè)單元為1,其余單元為0。

第三步,對(duì)種群中的每個(gè)個(gè)體計(jì)算適應(yīng)度,并保留最優(yōu)的適應(yīng)度個(gè)體。

第四步,進(jìn)行選擇操作,也可稱為復(fù)制操作,即將滿足適應(yīng)度累積概率的個(gè)體原封不動(dòng)的復(fù)制到下一代中,采用輪盤賭的選擇操作,利用各個(gè)個(gè)體適應(yīng)度所占比例的大小來(lái)決定其子代保留的可能性。若某個(gè)個(gè)體i的適應(yīng)度為fiti,種群大小為Np,則它被選取的概率表示為:

個(gè)體適應(yīng)度越大,則其被選擇的機(jī)會(huì)也越大;反之亦然。為了選擇交叉的個(gè)體,需要進(jìn)行多輪選擇。每一輪產(chǎn)生一個(gè)(0,1)內(nèi)的均勻隨機(jī)數(shù),將該隨機(jī)數(shù)作為選擇指針來(lái)確定被選個(gè)體。本例中生成一個(gè)種群數(shù)量大小的介于(0,1)之間的隨機(jī)數(shù),不含0和1。與歸一化適應(yīng)度的累積概率進(jìn)行對(duì)比,選出累積概率大的個(gè)體。

第五步,進(jìn)行交叉操作,交叉概率一般選擇0.25-1。將選中的偶數(shù)個(gè)體和與奇數(shù)個(gè)體進(jìn)行以交叉概率進(jìn)行交叉,形成新的個(gè)體。

第六步,進(jìn)行變異操作,變異概率一般選擇0.001-0.1。將符合變異概率的基因值取反,即被選中的基因值為1,則其值變?yōu)?;若被選中的基因值為0,則其值變?yōu)?。

第七步,確保稀疏率不變,即稀疏后的實(shí)際單元個(gè)數(shù)不變。若實(shí)際單元個(gè)數(shù)變小,從0狀態(tài)單元中隨機(jī)選擇,強(qiáng)制其為1狀態(tài);若實(shí)際單元個(gè)數(shù)變多,則從1狀態(tài)的單元中隨機(jī)選擇,強(qiáng)制其為0狀態(tài)。

第八步,將得到的最優(yōu)個(gè)體加權(quán)到陣因子上,得到稀疏后的陣因子。

 3  MATLAB代碼 

優(yōu)化代碼如下:

%%%%%%%%%%%%%遺傳算法稀疏平面陣%%%%%%%%%%%%%%%%%%%%%%%%%%初始化參數(shù)%%%%%%%%%%%%%%%clear; %清變量close all; %清圖clc; %清屏NP = 50; %種群數(shù)量Pc = 0.8; %交叉率Pm = 0.01; %變異率d = 0.5; %滿陣陣元間距,半倍波長(zhǎng)lamda = 1; %波長(zhǎng)G = 200; %最大遺傳代數(shù)Ny = 20; %方位滿陣陣元個(gè)數(shù)Nz = 10; %俯仰滿陣陣元個(gè)數(shù)L = Ny*Nz; %滿陣陣元個(gè)數(shù)NL = 100; %實(shí)際陣元個(gè)數(shù)theta0 = 0*pi/180; %俯仰指向phi0 = 0*pi/180; %方位指向NA = 360; %空間方位角采樣數(shù)NE = 360; %空間俯仰角采樣數(shù)%%%%%%%%%%%%%生成初始種群%%%%%%%%%%%%%%%%%%%%%%%%%0為沒(méi)有陣元,1為有陣元%%%%%%f = randn(L,NP);[sortff,Index] = sort(f);f = zeros(L,NP);for i = 1:NP f(Index(end-NL+1:end,i),i) = 1;end%%%%%%%%%%遺傳算法循環(huán)%%%%%%%%%%%%%%for k = 1:G k %%%%計(jì)算適應(yīng)度,即峰值旁瓣%%%%% for i = 1:NP Fit(i) = func_plane(lamda,Ny,Nz,d,theta0,phi0,NA,NE,f(:,i)); end maxFit = max(Fit); %最大值 minFit = min(Fit); %最小值 rr = find(Fit==maxFit); %找出最大值 fBest = f(:,rr(1,1)); %歷代最優(yōu)個(gè)體 Fit = (Fit-minFit)/(maxFit-minFit); %歸一化適應(yīng)度值 %%%%%%%基于輪盤賭的復(fù)制操作%%%%%%%% sum_Fit = sum(Fit); fitvalue = Fit./sum_Fit; fitvalue = cumsum(fitvalue); ms = sort(rand(NP,1)); fiti = 1; newi = 1; while newi<=NP if (ms(newi))<fitvalue(fiti) nf(:,newi) = f(:,fiti); newi = newi+1; else fiti = fiti+1; end end %%%%%%%%%基于概率的交叉操作%%%%%%%%%% for i = 1:2:NP p = rand(1,1); if p<Pc q = randi([0,1],1,L); for j = 1:L if q(j)==1 temp = nf(j,i+1); nf(j,i+1) = nf(j,i); nf(j,i) = temp; end end end end %%%%%%%基于概率的變異操作%%%%%%%%% for m = 1:NP for n = 1:L r = rand(1,1); if r < Pm nf(n,m) = ~nf(n,m); end end end %%%%使交叉變異后的 實(shí)際陣元個(gè)數(shù)不變%%%%% for i = 1:NP n_ones = sum(nf(:,i)); while n_ones>(NL) nn1 = find(nf(:,i)==1); MUT1 = randi([1,n_ones],1,n_ones-NL); for m = 1:(n_ones-NL) nf(nn1(MUT1(m)),i) = 0; end n_ones = sum(nf(:,i)); end while n_ones<(NL) nn2 = find(nf(:,i)==0); MUT2 = randi([1,L-n_ones],1,NL-n_ones); for m = 1:(NL-n_ones) nf(nn2(MUT2(m)),i) = 1; end n_ones = sum(nf(:,i)); end end f = nf; f(:,1) = fBest; %保留最優(yōu)個(gè)體在新種群中 trace(k) = maxFit; %歷代最優(yōu)適應(yīng)度endfigureplot(trace)xlabel('迭代次數(shù)')ylabel('目標(biāo)函數(shù)值')title('適應(yīng)度進(jìn)化曲線')grid onsave fBest.mat fBest %存儲(chǔ)優(yōu)化結(jié)果

適應(yīng)度函數(shù)代碼如下:

%%%%%%%%%%%%%%%%計(jì)算最大旁瓣%%%%%%%%%%%%%%%function   MSLL=func_plane(lamda,Ny,Nz,d,theta0,phi0,NA,NE,f0)eps = 0.0001;bottom = -50;f = reshape(f0,Ny,Nz);                                 phi = linspace(-pi/2,pi/2,NA);                                               theta = linspace(-pi/2,pi/2,NE); aa = [0:d:(Ny-1)*d];DD1 = repmat(aa',1,Nz);bb = [0:d:(Nz-1)*d];DD2 = repmat(bb,Ny,1);DD = DD1+sqrt(-1).*DD2;for ii = 1:length(theta);%%%%%%%%%%%%%%%%計(jì)算最大旁瓣%%%%%%%%%%%%%%%function   MSLL=func_plane(lamda,Ny,Nz,d,theta0,phi0,NA,NE,f0)eps = 0.0001;bottom = -50;f = reshape(f0,Ny,Nz);                                 phi = linspace(-pi/2,pi/2,NA);                                               theta = linspace(-pi/2,pi/2,NE); aa = [0:d:(Ny-1)*d];DD1 = repmat(aa',1,Nz);bb = [0:d:(Nz-1)*d];DD2 = repmat(bb,Ny,1);DD = DD1+sqrt(-1).*DD2;for ii = 1:length(theta);    pattern(ii) = sum(sum((exp(sqrt(-1)*2*pi/lamda*(sin(phi0)...        * cos(theta(ii))*real(DD)+sin(theta(ii))*imag(DD)...        -sin(phi0)*cos(theta0)*real(DD)-sin(theta0)*imag(DD)))).*f));endmax_p = max(abs(pattern));FdB1 = 20*log10(abs(pattern)/max_p+eps);mm = ceil(find(FdB1==max(FdB1)));tu_up = 0;                                               while (FdB1(mm+tu_up)>=FdB1(mm+tu_up+1))    tu_up = tu_up+1;endtu_down = 0;while (FdB1(mm-tu_down)>=FdB1(mm-tu_down-1))    tu_down = tu_down+1;endFdB1(mm-tu_down:mm+tu_up) = bottom;sll_1 = max(FdB1);for jj = 1:length(phi);    pattern(jj) = sum(sum((exp(sqrt(-1)*2*pi/lamda*(sin(phi(jj))...        * cos(theta0)*real(DD)+sin(theta0)*imag(DD)...        -sin(phi0)*cos(theta0)*real(DD)-sin(theta0)*imag(DD)))).*f));endmax_p = max(abs(pattern));FdB2 = 20*log10(abs(pattern)/max_p+eps);nn = find(FdB2==max(FdB2));tv_up = 0;                                               while (FdB2(nn+tv_up)>=FdB2(nn+tv_up+1))    tv_up = tv_up+1;endtv_down = 0;while (FdB2(nn-tv_down)>=FdB2(nn-tv_down-1))    tv_down = tv_down+1;endFdB2(nn-tv_down:nn+tv_up) = bottom;sll_2 = max(FdB2);MSLL = abs(sll_1)+abs(sll_2);end    pattern(ii) = sum(sum((exp(sqrt(-1)*2*pi/lamda*(sin(phi0)...        * cos(theta(ii))*real(DD)+sin(theta(ii))*imag(DD)...        -sin(phi0)*cos(theta0)*real(DD)-sin(theta0)*imag(DD)))).*f));endmax_p = max(abs(pattern));FdB1 = 20*log10(abs(pattern)/max_p+eps);mm = ceil(find(FdB1==max(FdB1)));tu_up = 0;                                               while (FdB1(mm+tu_up)>=FdB1(mm+tu_up+1))    tu_up = tu_up+1;endtu_down = 0;while (FdB1(mm-tu_down)>=FdB1(mm-tu_down-1))    tu_down = tu_down+1;endFdB1(mm-tu_down:mm+tu_up) = bottom;sll_1 = max(FdB1);for jj = 1:length(phi);    pattern(jj) = sum(sum((exp(sqrt(-1)*2*pi/lamda*(sin(phi(jj))...        * cos(theta0)*real(DD)+sin(theta0)*imag(DD)...        -sin(phi0)*cos(theta0)*real(DD)-sin(theta0)*imag(DD)))).*f));endmax_p = max(abs(pattern));FdB2 = 20*log10(abs(pattern)/max_p+eps);nn = find(FdB2==max(FdB2));tv_up = 0;                                               while (FdB2(nn+tv_up)>=FdB2(nn+tv_up+1))    tv_up = tv_up+1;endtv_down = 0;while (FdB2(nn-tv_down)>=FdB2(nn-tv_down-1))    tv_down = tv_down+1;endFdB2(nn-tv_down:nn+tv_up) = bottom;sll_2 = max(FdB2);MSLL = abs(sll_1)+abs(sll_2);end

優(yōu)化后方向圖碼如下:

%%%%%%%%%%%%優(yōu)化后方向圖%%%%%%%%%%%%%clc;close all;clear allload('fBest.mat')d = 0.5;lamda = 1;Ny = 20;Nz = 10;theta0 = 0*pi/180;phi0 = 0*pi/180;NA = 360;NE = 360;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%phi = linspace(-pi/2,pi/2,NA); theta = linspace(-pi/2,pi/2,NE); aa = [0:d:(Ny-1)*d];DD1 = repmat(aa',1,Nz);bb = [0:d:(Nz-1)*d];DD2 = repmat(bb,Ny,1);DD = DD1+sqrt(-1).*DD2;f = reshape(fBest,Ny,Nz);for jj = 1:length(phi); for ii = 1:length(theta); pattern(jj,ii) = sum(sum(exp(sqrt(-1)*2*pi/lamda*(sin(phi(jj))... * cos(theta(ii))*real(DD)+sin(theta(ii))*imag(DD)... -sin(phi0)*cos(theta0)*real(DD)-sin(theta0)*imag(DD))).*f)); endendmax_p = max(max(abs(pattern)));pattern_dbw = 20*log10(abs(pattern)/max_p+eps);figure;mesh(theta*180/pi,phi*180/pi,pattern_dbw);xlabel('俯仰角');ylabel('方位角')figure %方位向切面圖temp1 = pattern_dbw(:,round(NE*((pi/2+theta0)/pi)));plot(phi*180/pi,temp1)gridxlabel('\phi方位角(度)')ylabel('陣列增益(dB)')figure %俯仰向切面圖temp2 = pattern_dbw(round(NA*((pi/2+phi0)/pi)),:);plot(theta*180/pi,temp2)gridxlabel('\theta俯仰角(度)')ylabel('陣列增益(dB)')figurefor ii = 1:Nzplot(f(:,ii)*ii,'o'),hold onendxlabel('方位向')ylabel('俯仰向')axis([1,Ny,1,Nz])

運(yùn)行代碼后得到優(yōu)化后三維方向圖如下:

方位面方向圖如下:

俯仰面方向圖如下:

參考文獻(xiàn):
佘美麗,低成本相控陣?yán)走_(dá)高分辨率方法研究。    
包子陽(yáng),基于matlab的遺傳算法及其在稀布陣列天線中的應(yīng)用。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Pro/E 各種曲線方程集合
CVPR 2022 無(wú)需對(duì)齊就能勝任大運(yùn)動(dòng)超分的內(nèi)存增強(qiáng)非局部注意方法
求誰(shuí)有proe各種曲線方程集合?謝謝!_proe 曲線,proe 曲線方程_數(shù)學(xué)_開(kāi)心答問(wèn)
97種曲線
HTML 4.01 / XHTML 1.0 參考手冊(cè)(10)
偉大的數(shù)學(xué)天才《拉馬努金》
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服