bookmark_border[378] アルゴリズム再考

SD330の実際の動作が確認できましたので、チューニングのアルゴリズムを再考しました。

① PCにマニュアルで設定周波数(freq_new)を入力し調整開始ボタン押下

② アプリ立ち上げ後に初めて動作させる場合はエレメントを基準点に戻してfreq_oldを30MHzにセット

③ freq_newとfreq_oldを比較
a) freq_new>freq_oldの場合はエレメントを縮める方向に「T1」秒間※リレーON
b) freq_new<freq_oldの場合はエレメントを伸ばす方向に「T2」秒間※リレーON
c) freq_new=freq_oldの場合はその旨をPCに表示しプロセス終了

④ NanoVNAにfreq_newを設定しSWRを測定開始
SWRが2以下になった時点でリレーを停止し調整完了フラグを立てて表示。freq_old = freq_newとしてデータを更新

⑤ SWRが2以下にならない場合はエレメントを基準点に戻してfreq_oldを30MHzにセットし、調整不能フラグを立てて表示

⑥ NanoVNAの動作を停止しプロセス終了

※「T1」「T2」はfreq_oldとfreq_newの関係により最適値を自動設定

なお、④では微調整の動作も必要かも知れませんが、机上で悩むよりも実際に動作させて修正するという形が良いと思います。しかしながら未だコーディングの技術が備わっておらず、この先も時間がかかりそうです。

bookmark_border[375] SD330 チューニング自動化のアルゴリズム

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含めてコーディングしようと思います。