メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

6 素子八木宇田アンテナのサロゲート最適化

この例では、サロゲート最適化ソルバーを使用してアンテナ設計を最適化する方法を示します。アンテナの放射パターンは、アンテナの形状を定義するパラメーターに大きく依存します。通常、放射パターンの特徴には複数の局所最適値が存在します。放射パターンを計算するために、この例では Antenna Toolbox ™ 関数を使用します。

八木宇田アンテナは、商業および軍事分野のさまざまな用途に広く使用されている放射構造です。このアンテナはVHF-UHF周波数範囲のテレビ信号を受信できます[1]。八木宇田アンテナは、通常は折り畳みダイポールまたは標準ダイポールの単一の駆動素子を持ち、その周囲に複数の受動ダイポールを備えた指向性進行波アンテナです。受動要素は 反射器導波器 を形成します。これらの名前は、駆動される要素に対する相対的な位置を識別します。反射ダイポールは駆動素子の後ろ、アンテナ放射のバックローブの方向にあります。ディレクターダイポールは、駆動要素の前にあり、メインビームが形成される方向にあります。

設計パラメーター

初期設計パラメーターをVHF帯域の中心に指定します[2]

freq = 165e6;
wirediameter = 19e-3;
c = physconst("lightspeed");
lambda = c/freq;

八木宇田アンテナの作成

八木宇田アンテナの駆動素子は、このタイプのアンテナの標準的な励振器である折り畳みダイポールです。折り畳みダイポールの長さと幅のパラメーターを調整します。円筒構造は等価の金属ストリップとしてモデル化されるため、Antenna Toolbox ™ で使用可能な cylinder2strip ユーティリティ関数を使用して幅を計算します。設計周波数では長さは λ/2 です。

d = dipoleFolded;
d.Length = lambda/2;
d.Width = cylinder2strip(wirediameter/2);
d.Spacing = d.Length/60;

折り畳みダイポールとして励振器を備えた八木宇田アンテナを作成します。反射器要素と導波器要素の長さを λ/2 に設定します。ディレクターの数を 4 に設定します。反射鏡と導波器の間隔をそれぞれ 0.3λ0.25λ として指定します。これらの設定は初期推測を提供し、最適化手順の開始点として機能します。初期デザインを表示します。

Numdirs = 4;
refLength = 0.5;
dirLength = 0.5*ones(1,Numdirs);
refSpacing = 0.3;
dirSpacing = 0.25*ones(1,Numdirs);
initialdesign = [refLength dirLength refSpacing dirSpacing].*lambda;
yagidesign = yagiUda;
yagidesign.Exciter = d;
yagidesign.NumDirectors = Numdirs;
yagidesign.ReflectorLength = refLength*lambda;
yagidesign.DirectorLength = dirLength.*lambda;
yagidesign.ReflectorSpacing = refSpacing*lambda;
yagidesign.DirectorSpacing = dirSpacing*lambda;
show(yagidesign)

Figure contains an axes object. The axes object with title yagiUda antenna element, xlabel x (m), ylabel y (m) contains 5 objects of type patch, surface. These objects represent PEC, feed.

設計周波数における放射パターンのプロット

最適化プロセスを実行する前に、初期推定値の放射パターンを 3D でプロットします。

fig1 = figure;
pattern(yagidesign,freq);

Figure contains 2 axes objects and other objects of type uicontrol. Axes object 1 contains 5 objects of type patch, surface. Hidden axes object 2 contains 17 objects of type surface, line, text, patch.

Warning: An error occurred while drawing the scene: GraphicsView error in command: interactionsmanagermessage:  TypeError: Cannot read properties of null (reading '_gview')
    at new g (https://127.0.0.1:31515/toolbox/matlab/uitools/figurelibjs/release/bundle.mwBundle.gbtfigure-lib.js?mre=https

このアンテナは、天頂(仰角 = 90 度)の優先方向では高い指向性を持ちません。この初期の八木・宇田アンテナの設計は、設計が不十分な放射器です。

最適化の設定

最適化の制御変数として次の変数を使用します。

  • 反射鏡の長さ(1変数)

  • ディレクターの長さ(4つの変数)

  • 反射鏡間隔(1変数)

  • ディレクターの間隔(4つの変数)

単一のベクトルパラメーターparasiticVals に関しては、次の設定を使用します。

  • 反射鏡の長さ = parasiticVals(1)

  • ディレクターの長さ = parasiticVals(2:5)

  • 反射鏡間隔 = parasiticVals(6)

  • ディレクター間隔 = parasiticVals(7:10)

parasiticVals の観点から、90 度方向で大きな値、270 度方向で小さな値、仰角ビーム幅角度境界間の最大電力の値を大きくすることを目指す目的関数を設定します。

type yagi_objective_function2.m
function objectivevalue = yagi_objective_function2(y,parasiticVals,freq,elang)
% yagi_objective_function2 returns the objective for a 6-element Yagi
% objective_value = yagi_objective_function(y,parasiticvals,freq,elang)
% assigns the appropriate parasitic dimensions, parasiticvals, to the Yagi
% antenna y, and uses the frequency freq and angle pair elang to calculate
% the objective function value.

% The yagi_objective_function2 function is used for an internal example.
% Its behavior might change in subsequent releases, so it should not be
% relied upon for programming purposes.

% Copyright 2014-2018 The MathWorks, Inc.

bw1 = elang(1);
bw2 = elang(2);
y.ReflectorLength = parasiticVals(1);
y.DirectorLength = parasiticVals(2:y.NumDirectors+1);
y.ReflectorSpacing = parasiticVals(y.NumDirectors+2);
y.DirectorSpacing = parasiticVals(y.NumDirectors+3:end);
output = calculate_objectives(y,freq,bw1,bw2);
output = output.MaxDirectivity + output.FB;
objectivevalue= -output; % To maximize
end

function output = calculate_objectives(y,freq,bw1,bw2)
%calculate_objectives calculate the objective function
% output = calculate_objectives(y,freq,bw1,bw2) Calculate the directivity
% in az = 90 plane that covers the main beam, sidelobe and backlobe.
% Calculate the maximum directivity, sidelobe level and backlobe and store
% in fields of the output variable structure.
[es,~,el] = pattern(y,freq,90,0:1:270);   
el1 = el < bw1;                           
el2 = el > bw2;                           
el3 = el>bw1&el<bw2;
emainlobe = es(el3);
esidelobes =([es(el1);es(el2)]);
Dmax = max(emainlobe);
SLLmax = max(esidelobes);
Backlobe = es(end);
F = es(91);
B = es(end);
F_by_B = F-B;
output.MaxDirectivity= Dmax;
output.MaxSLL = SLLmax;
output.BackLobeLevel = Backlobe;
output.FB = F_by_B;
end

制御変数に境界を設定します。

refLengthBounds = [0.4;
                    0.6];
dirLengthBounds = [0.35 0.35 0.35 0.35;   % lower bound on director length
                   0.495 0.495 0.495 0.495];  % upper bound on director length
refSpacingBounds = [0.05;                 % lower bound on reflector spacing
                    0.30];                % upper bound on reflector spacing
dirSpacingBounds = [0.05 0.05 0.05 0.05;  % lower bound on director spacing
                    0.23 0.23 0.23 0.23]; % upper bound on director spacing
                
LB = [refLengthBounds(1) dirLengthBounds(1,:) refSpacingBounds(1) dirSpacingBounds(1,:) ].*lambda;
UB = [refLengthBounds(2) dirLengthBounds(2,:) refSpacingBounds(2) dirSpacingBounds(2,:) ].*lambda;

最適化の初期点を設定し、仰角ビーム幅の角度の境界を設定します。

parasitic_values = [ yagidesign.ReflectorLength,...
                     yagidesign.DirectorLength,...
                     yagidesign.ReflectorSpacing,...
                     yagidesign.DirectorSpacing];                

elang = [60 120];                   % elevation beamwidth angles at az = 90

サロゲート最適化

目的関数のグローバル最適値を探索するには、ソルバーとして surrogateopt を使用します。オプションを設定して、500 回の関数評価を許可し、初期点を含め、並列計算を使用し、'surrogateoptplot' プロット関数を使用します。'surrogateoptplot' プロットを理解するには、surrogateoptplotを解釈する を参照してください。

surrogateoptions = optimoptions("surrogateopt", MaxFunctionEvaluations=500,...
    InitialPoints=parasitic_values,UseParallel=canUseGPU(),PlotFcn="surrogateoptplot");
rng(4) % For reproducibility
optimdesign = surrogateopt(@(x) yagi_objective_function2(yagidesign,x,freq,elang),...
    LB,UB,surrogateoptions);

Figure Optimization Plot Function contains an axes object. The axes object with title Best: -70.3788 Incumbent: -70.3788 Current: -61.3553, xlabel Number of Function Evaluations, ylabel Objective Function contains 6 objects of type line. One or more of the lines displays its values using only markers These objects represent Best, Incumbent, Random Samples, Adaptive Samples, Surrogate Reset.

surrogateopt stopped because it exceeded the function evaluation limit set by 
'options.MaxFunctionEvaluations'.

surrogateopt は、目的関数の値が -82.5 となるポイントを見つけました。最適化されたパラメーターがアンテナの放射パターンに与える影響を調査します。

最適化されたパターンをプロットする

設計周波数で最適化されたアンテナ パターンをプロットします。

yagidesign.ReflectorLength = optimdesign(1);
yagidesign.DirectorLength = optimdesign(2:5);
yagidesign.ReflectorSpacing = optimdesign(6);
yagidesign.DirectorSpacing  = optimdesign(7:10);
fig2 = figure;
pattern(yagidesign,freq)

Figure contains 2 axes objects and other objects of type uicontrol. Axes object 1 contains 5 objects of type patch, surface. Hidden axes object 2 contains 17 objects of type surface, line, text, patch.

Warning: An error occurred while drawing the scene: GraphicsView error in command: interactionsmanagermessage:  TypeError: Cannot read properties of null (reading '_gview')
    at new g (https://127.0.0.1:31515/toolbox/matlab/uitools/figurelibjs/release/bundle.mwBundle.gbtfigure-lib.js?mre=https

どうやら、アンテナは天頂で大幅に多くの電力を放射するようになったようです。

E面とH面のパターンカット

2 つの直交面での動作をより深く理解するには、E 面と H 面の電界の正規化された大きさ、つまり方位角がそれぞれ 0 度と 90 度をプロットします。

fig3 = figure;
pattern(yagidesign,freq,0,0:1:359);

Figure contains an axes object and an object of type uicontainer. The hidden axes object contains 2 objects of type line, text. This object represents az=0° .

fig4 = figure;
pattern(yagidesign,freq,90,0:1:359);

Figure contains an axes object and an object of type uicontainer. The hidden axes object contains 2 objects of type line, text. This object represents az=90° .

最適化された設計により、放射パターンが大幅に改善されます。天頂へ向かって所望の方向に高い指向性を実現します。バックローブが小さいため、このアンテナの前後比は良好です。天頂での指向性、前後比、および E 平面と H 平面のビーム幅を計算します。

D_max = pattern(yagidesign,freq,0,90)
D_max = 
9.2952
D_back = pattern(yagidesign,freq,0,-90)
D_back = 
-51.7885
F_B_ratio = D_max - D_back
F_B_ratio = 
61.0836
Eplane_beamwidth = beamwidth(yagidesign,freq,0,1:1:360)
Eplane_beamwidth = 
56.0000
Hplane_beamwidth = beamwidth(yagidesign,freq,90,1:1:360)
Hplane_beamwidth = 
74.0000

メーカーデータシートとの比較

最適化された八木宇田アンテナは、9.48 dBi の前方指向性を実現し、これは 7.4 dBd (ダイポールに対して) に相当します。この結果は、参考文献[2]のデータシートで報告されているゲイン値(8.5dBd)よりもわずかに低いものです。前後比は 73 dB です。これはオプティマイザーが最大化する量の一部です。最適化された八木宇田アンテナの E 面ビーム幅は 56 度で、これはデータシートと同じです。最適化された八木宇田アンテナの H 面ビーム幅は 72 度ですが、データシートの値は 63 度です。この例では、帯域全体のインピーダンス整合については説明しません。

初期設計と最適化設計の表

初期設計の推測値と最終的な最適化された設計値を表にまとめます。

yagiparam=  {'Reflector Length';
             'Director Length - 1'; 'Director Length - 2';
             'Director Length - 3'; 'Director Length - 4';
             'Reflector Spacing';   'Director Spacing - 1';
             'Director Spacing - 2';'Director Spacing - 3';
             'Director Spacing - 4'};         
initialdesign = initialdesign';
optimdesign = optimdesign';
T = table(initialdesign,optimdesign,RowNames=yagiparam)
T=10×2 table
                            initialdesign    optimdesign
                            _____________    ___________

    Reflector Length           0.90846          1.0533  
    Director Length - 1        0.90846         0.73794  
    Director Length - 2        0.90846         0.66498  
    Director Length - 3        0.90846         0.66825  
    Director Length - 4        0.90846         0.75287  
    Reflector Spacing          0.54508         0.34196  
    Director Spacing - 1       0.45423         0.29824  
    Director Spacing - 2       0.45423         0.16624  
    Director Spacing - 3       0.45423         0.24003  
    Director Spacing - 4       0.45423         0.27398  

参考文献

[1] Balanis, Constantine A. Antenna Theory:Analysis and Design. Fourth edition.Hoboken, New Jersey: Wiley, 2016.

[2] オンライン: https://amphenolprocom.com/products/base-station-antennas/2450-s-6y-165

参考

トピック