アマチュア無線におすすめの八木アンテナのシミュレーションツール

## 1. はじめに
八木アンテナはアマチュア無線で広く使われている指向性アンテナです。自作する場合、どのような性能が得られるか事前に知りたいと思う方も多いでしょう。しかし、実際に製作して試すのは手間がかかりますし、失敗するリスクもあります。そこで、電磁界解析ツール「Feko」を使って、八木アンテナの性能をシミュレーションする方法を紹介します。
この記事では、144MHz帯(2mバンド)に適した八木アンテナのモデルを作成し、反射係数、スミスチャート、放射パターンなどを計算してみます。
Fekoはアンテナ設計に広く利用されているシミュレーションツールです。学生の方は無償で利用できますが、一部機能に制約があります。詳細については、以下のリンクを参照してください。
https://altairuniversity.com/get-software/
https://altairuniversity.com/jp/

## 2. モデルの作成
FekoをインストールしたらスタートメニューからFekoランチャーを起動し、CADFEKOアイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/7cf29266-6f4b-356f-1f21-5486346ffaf9.png)
FekoのComponent Libraryには、典型的なアンテナなどの部品モデルが予め登録されています。周波数などのパラメータを入力するだけで、簡単にモデルを作成できます。
FileメニューからComponent Libraryを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/a5548441-dfc4-334b-e359-88ece1971a49.png)
ComponentsのFilterにYagiと入力してYagi Udaアンテナを表示させ、それをクリックしてNextボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/ebb740f4-9edd-46d1-f0bc-70f942c1f293.png)

Frequency(Hz) のテキストボックスに、周波数(144E6)を入力します。ここでE6は10の6乗を意味するため、144MHzを入力することになります。
周波数を入力したら、Add to modelをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/84b7686d-e743-a7df-576b-d9cdd2cc5002.png)
AlignメニューのOKボタンをクリックします。これでモデルの作成は完了です。マウス左ドラッグでモデルの視点を回転、マウスのローラをスクロールするとズームイン・ズームアウト、マウスローラを押しながらドラッグすると上下左右に視点を移動できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/63110268-df78-140d-d948-9650d4f51d0f.png)
FileメニューのSave asで名前を付けて保存します（例えばYagi.cfx）。
ここで.cfxはCADFEKOモデルの拡張子です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/b2c9314c-64f9-565b-b02d-6fb9277c02c2.png)

## 3. シミュレーションの実行
モデルが保存できたら、Solve/RunメニューのFeko Solverアイコンをクリックしてシミュレーションを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/7df6c38d-24ed-ccf8-5bdb-23c1267a86e4.png)
Executing runfekoダイアログが表示され、シミュレーションの進行がインジケータで表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/c181c1fd-bfff-ed47-c4e5-fee83b26e3cb.png)
インジケータが100%になるとシミュレーション完了です。OKボタンをクリックします。
参考までに、私が使用しているWindows PC(Intel Core i7、6コア)では3分程度で計算が終わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/ec8c0c76-7adc-6a42-a636-881acfb55083.png)

## 4. 結果表示
結果表示はPOSTFEKOで行います。Solve/RunメニューのPOSTFEKOアイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/966ee851-8337-9294-3d9d-25525bbf1428.png)
まず放射パターンを表示します。Model BrowserのYagi_Uda1_f_ctrの左側の > をクリックしてリストを展開します。さらにRequestsの左側の > をクリックして展開し、一番上のYagi_Uda1_FarFieldをダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/fcdb4148-bf36-128f-cfb6-4085f23104ce.png)
3D画面右側のdBチェックボックスをオンにしてdB表示とします。画面上のResultメニューのOpacityで20%を選択して半透明表示とします。CADFEKOと同様のマウス操作で視点変更できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/3dd9805e-16c9-2426-9a7c-0ebf1b59b130.png)
次に放射パターンの断面を表示します。ResultメニューのOpacityを100%に戻します。3D画面右側のPlot typeをTheta cutに設定します。Thetaを90 degに設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/81a194d5-9023-89bb-bb67-72d09b2af931.png)
次にスミスチャートを表示します。
Yagi_Uda_f_rangeの左側の　>　をクリックして展開し、さらにExcitationを展開します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/f99be941-91d4-5685-82b6-e072d12e76c1.png)
Yagi_Uda1_Voltage_Sourceを右クリックし、Add to new > Smith chartをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/4948bb0a-32c7-7254-ac20-6b1b996f60e5.png)
スミスチャートが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/0985e854-ac65-830f-b66e-93f2234734a2.png)
同様に、Add to new > Cartesian graphを選択すると、反射係数-周波数特性グラフが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/adebe80a-5b6f-f397-3a95-f9dd84c9cd9e.png)
画面右側のdBチェックボックスをオンにすると、dB表示されます。このモデルでは144MHzで反射係数が最小になっていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/fe6a5bbc-1011-80a5-c08a-7c6278b1a4ac.png)
## 4. 形状の出力
CADFEKOでは、アンテナの形状をParasolidなどのCAD形式でファイルに出力することができます。
FileメニューのExport > Geometryで保存先のファイルを指定し、OKをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/a7049870-93f5-83c2-aa54-1ed860538013.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/13fa037e-7509-e01d-4869-164ff67b6b74.png)
出力した形状を、Inspireなどのツールにインポートして、アンテナの寸法などを確認することができます。InspireはFekoと同様に学生の方は無償で利用できます。詳細については、以下のリンクを参照してください。
https://altairuniversity.com/get-software/
https://altairuniversity.com/jp/
Inspireを起動後、ファイル > インポートで形状データを読み込みます。
形状メニューの寸法アイコンをクリックし、3D画面上で形状をクリックすることにより、寸法や部品間の距離などを表示できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/b4a800a1-c86a-385f-a27e-2dd69eb43056.png)

## 5. アンテナのパラメータ変更
今回作成したアンテナの寸法などの情報はCADFEKOのパラメータとして設定されており、簡単に変更してシミュレーションを実行できます。
ConstructionタブのDefinitionsのVariablesを展開すると、寸法などに関するパラメータを確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/325e3dbb-5fe7-d296-c473-542516213b94.png)
例えば、Yagi_Uda1_f_ctrに周波数を、またYagi_Uda1_lambdaに波長を設定しています。
各素子の長さや素子間の距離はYagi_Uda1_dir_lengh0＊とYagi_Uda1_dir_u_pos0＊に格納されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/6a24bea2-4f77-b820-2067-1dfd6abbc278.png)
各パラメータをダブルクリックすると、Valueの部分に実際の数値が入力されています。このモデルにおいて長さの単位はメートル(m)となっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/23ff05d2-08b5-d91f-ca6e-01cc48e3d10f.png)
各要素の形状はConstructionブラウザのModel > Geometry > Yagi_Uda1で定義されており、例えば放射器の形状はLine6で設定されています。
Display OptionsメニューのOverlayをクリックすると、形状の表示方法（シミュレーション用のメッシュと形状を重ねて表示する/しない）を切り替えることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/3eb34113-4b96-adf4-5ff9-94259e2971a5.png)
3Dグラフィック画面で形状をクリックすると、対応する形状の名前がConstructionブラウザのリストでハイライト表示されます。
例えば下図のように放射器の形状をクリックするとWire6がハイライトされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/2e7076ad-dab5-dcc2-c3dc-3150b2afc30f.png)
ConstructionタブのLine6をクリックすると、Wire6が選択されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/56219090-3687-9fb5-64ac-c031e7d02b88.png)
反射器の配置を確認してみます。このモデルにおいて反射器の形状を定義しているLine7をConstructionタブ上でダブルクリックすると、Line7の始点と終点の座標値が確認できます。始点と終点のU座標値を見ると、反射器の位置はYagi_Uda1_reflector_u_posという変数で定義されていることを確認したら、Cancelボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/542d54f1-2714-602a-2dc5-d3993bc7f1c2.png)
次に反射器の位置に関するパラメータを変更します。下図を参考に、Configurationsタブのフィルタのアイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/1b85d414-fe70-2202-bf0d-e5243e05f80c.png)
Label Filterにreflectと入力し、反射器に関連するパラメータを表示させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/a9d19676-7013-6277-b11d-016a49f3d207.png)
Yagi_Uda1_reflector_u_posをダブルクリックし、Modify Variableダイアログを表示させます。このモデルでは波長の0.12554倍を反射器と放射器の距離として設定していますが、必要に応じてExpressionの数値を変更してApplyボタンをクリックします。本例題では0.13(オリジナルから3.5%増)を試行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/2c61e051-ca2e-4f3d-4203-b130d3f7ec5a.png)
Project FilterのCancelをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/09c208eb-3e91-0400-4041-d7f76a107771.png)
File > Save Asで変更後のモデルを別名保存します。
Solve/RunメニューのFeko Solverをクリックして変更後のモデルのシミュレーションを実行します。
計算が終了したらPOSTFEKOを起動し、結果を表示します。以前に計算したモデルと比較して結果表示する場合はファイルメニューのAdd modelを選択し、計算結果を格納した*.fekファイルを読み込みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/89a1441b-7ef5-c688-ec02-858b742d871b.png)
二つのモデルの反射係数を比較します。
Project Browserをクリックし、Yagi_Uda1_f_rangeをクリック、ExcitationsのYagi_Uda1_VoltageSourceを右クリックしてAdd to new > Cartesian graphを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/abe03824-80e5-5b41-2aa7-102341596384.png)
画面右側のdBチェックボタンをオンにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/bcbeedb8-74f0-9e00-2bbb-57a4abbc25a7.png)

次にProject Browserで二つ目のモデルをクリック、Yagi_Uda1_f_rangeのExcitationsのYagi_Uda1_VoltageSourceを右クリックしてAdd to active windowをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/3124ce0c-1ea5-9459-1ced-f2a47c0baa37.png)
二つのモデルの反射係数を比較します。MeasureメニューのCursorsをクリックすると、縦線のカーソルが表示されます。カーソルをドラッグして指定した位置の周波数で反射係数の数値が表示されます。ここでマウスのローラーを回転させることでグラフを拡大縮小表示できます。反射器の位置を3.5%増加させることによって、144MHzにおける反射係数が2.4dB程度増加しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/92be4fe3-2826-8b47-9d9e-2178e85ec498.png)
1.amazonaws.com/0/3468376/d4a90bcd-f6a1-38a7-bcf7-bb4c02957081.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/34eefc99-07ba-98f6-689a-d01b14f1b6df.png)

同様に各モデルのゲインを比較します。各モデルのYagi_Uda1_f_rangeのRequestsのYagi_Uda1_Far_Fieldを右クリックしてゲインのグラフを表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/8890a736-934b-e72c-15fd-98e65d5a8a65.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/742c2486-ee97-97ab-85ba-193004223bbc.png)

この記事では試行しませんが、アンテナをコンパクトにするために導波器の素子を削除して素子数を変更することも可能です。
CADFEKOのConstructionタブにおいて削除対象素子のLineを右クリックしてDelを選択することで削除できます。もし操作を間違えても、Ctrl+ZキーでUndo（やり直し）できます。ただしモデルを保存してしまうと、それまでの操作のやり直しができなくなりますので、ご注意ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468376/94d1b7f4-fc86-e54d-33a8-8547cf0ea30e.png)
素子数を変更した場合、各素子の長さや素子間の距離を調整する必要があります。
嶋田らによる、異なる素子数の八木アンテナの設計を検討した文献などが参考になるかもしれません。
http://wireless.fuis.u-fukui.ac.jp/japanese/results_j/AP2003247.pdf

## 6. まとめ
電磁界解析ツールFekoを使用して、アマチュア無線（144MHz帯）の八木アンテナのシミュレーションを実施しました。アンテナの反射器の位置を変更したときの影響を比較しました。放射器と反射器の距離を3.5%増加させたところ、反射係数は144MHzにおいて2.4dB増加しました。Fekoのコンポーネントライブラリを利用することにより、手軽にアンテナのモデルを作成しシミュレーションできることを示しました。