HyperStudyによるバンドパスフィルターの最適化
HyperStudyを設定し、最適化を実行します。ここでは反射係数を最小にします。
-
%FEKO_HOME%/help/feko/example/ExampleGuide_models/Example-I04-HyperStudy_bandpass_filter_optimisation/opt_scriptingのファイルを作業用のディレクトリにコピーします。
Note: 作業用ディレクトリに書き込み権限があり、そのディレクトリが読み取り専用になっていないことを確認してください。
スクリプbandpassfilter.cfx_extract.luaは、フィルターのs11avg を計算し、その結果をHyperStudy .hstpファイルに書き込むようにあらかじめ設定されています。
-- Run into POSTFEKO to fetch results and push the scalar values to a HyperStudy .hstp file HstUtl = require "hst.hstutl" local app = pf.GetApplication() local config = app.Models[1].Configurations[1] -- Get first s-parameter result local sparam = pf.SParameter.GetDataSet( pf.SParameter.GetNames()[1] ) local s11 = sparam[1][1].SParameter -- Calculate the average reflection coefficient across the frequency band local s11avg = 0 local num_frequencies = sparam.Axes[pf.Enums.DataSetAxisEnum.Frequency].Count for findex = 1,num_frequencies do s11avg = s11avg + sparam[findex][1].SParameter:Abs() end s11avg = s11avg/num_frequencies -- Create the output file file = HstUtl.NewOutputFile( ) HstUtl.StoreScalarValue( file, "s11avg", s11avg ) HstUtl.WriteFile( file ) -- End of file
- Altair HyperStudyを開きます。
-
Studyグループの下で、Newをクリックします。
Add Studyダイアログ表示されます。
Figure 1. Add Studyダイアログ - [オプション] Label フィールドで、スタディの名前を指定します。
- Locationの下に、bandpassfilter.cfxがある作業ディレクトリへのパスを入力します。
-
ExplorerタブのSetup > Definition > Define modelsをクリックします。
Figure 2. HyperStudyのStudyツリーの例。 -
Add Modelをクリックします。
Addダイアログ表示されます。
Figure 3. Addダイアログ - Select Typeeの下で、FEKOを選択し、OKをクリックします。
-
Resourceで、、作業ディレクトリにある bandpassfilter.cfxを選択します。
Note:
- ソルバースクリプトは自動的に登録されます。このスクリプトにはEdit > Register Solver Scriptからアクセスでき、他のソルバーやバージョンを登録することができます。
- ソルバーの入力引数は、デフォルトでは${filebasename}を表示します。ここで引数-npを入力すると、使用するコア数を指定できます。
- 用意されているファイルbandpassfilter.cfx_extract.luaは、モデルファイルと同じ場所に保存されています。
-
Import Variablesをクリックすると、CADFEKOのモデル変数がインポートされます。
Figure 4. Import Variablesボタンの選択例。 - Nextをクリックします。
-
スタディで扱う変数を選択します。S1~S3のみが有効であることを確認し、デフォルトの範囲を使用します。
選択した変数の例が表示されます。
Figure 5. 変数選択の例 - Nextをクリックします。
-
Run Definitionをクリックします。
Figure 6. Run Definitionボタンの選択例。Writeフェーズでは、bandpassfilter.cfx_extract.luaファイルが実行ディレクトリにコピーされ、ExtractフェーズでのFekoソルバー実行後に実行されます。これにより、HyperStudyで容易に処理できる出力ファイルが生成されます。Note: スクリプトbandpassfilter.cfx_extract.luaは、変数をインポートする前に.pfsファイルが存在していた場合とは異なり、Cartesian graphとpolar graphの表示可能なトレースを自動的に抽出します。HyperStudyによって実行された初期テスト用にWrite、Execute、Extractのフェーズの定義が完了した実行についてはFigure 7を参照してください。
Figure 7. 定義が完了した実行のの例。 - Nextをクリックします。
-
File Assistantをクリックします。
Figure 8. File Assistantボタンの選択。File Assistantダイアログ表示されます。
Figure 9. File Assistantダイアログ。 - デフォルトの実行ディレクトリにある./m_1/hst_output.hstpを選択します。
- Altair HyperWorks (HstReaderPdd)が選択されていることを確認し、Nextをクリックします。
-
Single Item in a Time Seriesが選択されていることを確認し、Nextをクリックします。
Figure 10. File Assistantダイアログ。 -
s11avgが選択されていることを確認し、Nextをクリックします。
Figure 11. File Assistantダイアログ。 -
Label欄にs11avgを入力し、応答のラベルの名前を変更します。
Figure 12. File Assistantダイアログ。 - Finishをクリックしてダイアログを閉じます。
-
Goalsの
をクリックして、最適化目標を追加します。
以下のダイアログが表示されます。
Figure 13. 最適化目標の追加例。 - 目標のTypeをMinimizeに設定し、OKをクリックします。
-
Evaluateをクリックして出力ファイルから値を抽出します。
Figure 14. Evaluateボタンの選択例。HyperStudyは、これで、使用するモデル、修正で使用できる変数、出力の処理方法のそれぞれを把握できるように設定されています。 -
Explorerタブで定義済みのスタディを右クリックし、Addをクリックします。
Figure 15. 最適化目標の追加例。 -
Select Typeeの下で、Optimizationを選択し、OKをクリックします。
最適化アプローチは、Explorerタブで作成します。
Figure 16. Optimisation 1アプローチの作成例。 -
Optimization 1 > Specificationsをクリックし、オプティマイザとしてAdaptive Response Surface
Methodを選択します。
Figure 17. Adaptive Response Surface Methodの選択。 -
Applyをクリックし、Nextをクリックします。
Figure 18. Applyボタンの選択例。 -
Evaluate Tasksをクリックします。
Figure 19. Evaluate Tasksボタンの選択例。各入力変数がランダムに変更され、応答に対するその効果が解析されます。
Figure 20. ARSM 最適化で一般的な進捗データ。 -
Iteration Historyで、緑色で強調表示されている行を確認します。
最適値は次のようになります。
- S1 = 0.4500000
- S2 = 1.9254786
- S3 = 2.2000000