このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
6 素子八木宇田アンテナのサロゲート最適化
この例では、サロゲート最適化ソルバーを使用してアンテナ設計を最適化する方法を示します。アンテナの放射パターンは、アンテナの形状を定義するパラメーターに大きく依存します。通常、放射パターンの特徴には複数の局所最適値が存在します。放射パターンを計算するために、この例では Antenna Toolbox ™ 関数を使用します。
八木宇田アンテナは、商業および軍事分野のさまざまな用途に広く使用されている放射構造です。このアンテナはVHF-UHF周波数範囲のテレビ信号を受信できます[1]。八木宇田アンテナは、通常は折り畳みダイポールまたは標準ダイポールの単一の駆動素子を持ち、その周囲に複数の受動ダイポールを備えた指向性進行波アンテナです。受動要素は 反射器 と 導波器 を形成します。これらの名前は、駆動される要素に対する相対的な位置を識別します。反射ダイポールは駆動素子の後ろ、アンテナ放射のバックローブの方向にあります。ディレクターダイポールは、駆動要素の前にあり、メインビームが形成される方向にあります。
設計パラメーター
初期設計パラメーターをVHF帯域の中心に指定します[2]。
freq = 165e6;
wirediameter = 19e-3;
c = physconst("lightspeed");
lambda = c/freq;八木宇田アンテナの作成
八木宇田アンテナの駆動素子は、このタイプのアンテナの標準的な励振器である折り畳みダイポールです。折り畳みダイポールの長さと幅のパラメーターを調整します。円筒構造は等価の金属ストリップとしてモデル化されるため、Antenna Toolbox ™ で使用可能な cylinder2strip ユーティリティ関数を使用して幅を計算します。設計周波数では長さは です。
d = dipoleFolded; d.Length = lambda/2; d.Width = cylinder2strip(wirediameter/2); d.Spacing = d.Length/60;
折り畳みダイポールとして励振器を備えた八木宇田アンテナを作成します。反射器要素と導波器要素の長さを に設定します。ディレクターの数を 4 に設定します。反射鏡と導波器の間隔をそれぞれ と として指定します。これらの設定は初期推測を提供し、最適化手順の開始点として機能します。初期デザインを表示します。
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)

設計周波数における放射パターンのプロット
最適化プロセスを実行する前に、初期推定値の放射パターンを 3D でプロットします。
fig1 = figure; pattern(yagidesign,freq);

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.mfunction 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);

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)

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);

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

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