SD330は今の状況に満足してしまい、中々自動チューニングソフトのプログラミングは進みませんが、改めてアルゴリズムを考えてみました。
NanoVNAを利用することによりエレメントが動いている間もずっとSWRが確認できるメリットを生かし、アンテナになるべく負担をかけないようにするためにもエレメント伸長の距離や時間は最短にする動作にしたいと思います。
① PCにマニュアルで設定周波数「freq_new」を入力
② 直前の設定周波数「freq_old」と比較し、freq_newの方が高(低)ければエレメントを縮める(伸ばす)方向にリレーを制御
③ ②と同時にNanoVNAにfreq_newを設定しSWRの測定開始。これが2以下になった時点でリレーを停止し調整完了である旨を表示。freq_old = freq_newとしてデータを更新
④ 一定時間「T1」内にSWRが2以下にならない場合は、リレーを逆方向に制御
⑤ それでも一定時間「T2」内にSWRが2以下にならない場合はリレーを停止し、調整不能である旨をPC上に表示。その時点でエレメントが最長(または最短)になっているので、freq_oldは3.5MHz(または54MHz※)にリセット ※ショートエレメントの利用も考慮
⑥ ③または⑤の動作終了後にNanoVNAの動作を停止
なお「T1」「T2」ですが、T2はエレメント伸長のための最長時間に設定し、T1はT2をmaxとしてその中でfreq_newとfreq_oldの情報を使い最適値を設定する想定です。
引き続きPythonを学習しながら、GUI含めてコーディングしようと思います。