バリコン式ATUの自作 4
VC1とVC2が容量最大状態に収束し、真のSWR最少ポイントを見つけない問題を解決する為、仮に、バリコンの角度センサーが有った場合どうなるかシュミレーションしていきますと、コイルのTAPを適宜選択する事により収束しやすくなる事が判ってきました。 さらに、前回までの実験はダミー抵抗による収束検討でしたが、実際のアンテナの場合、周波数を変えると、リアクタンスも抵抗も変化するという違いがあり、VC1,VC2ともに最大容量へ収束する確率はかなり低くなる事も判りました。
バリコンの角度センサーをどうするかは、先送りして、角度センサーなしでどこまで改善できるかトライしました。
サーボ機能はその応答特性が重要で、状態の変化に対して、応答が速すぎても、遅すぎても収束に必要な時間は長くかかります。 モーターの駆動時間やブレーキをかけてから完全停止するまでの待ち時間などを変えてやると、SWR最少ポイントへの収束時間は大きく変わります。早い時は1秒くらいで収束し、遅い時は30秒近くかかる場合もあります。 また、バリコンの最大容量もしくは最少容量の付近で行ったり来たりして、永久に収束しない事も出てきます。そこで、収束させる条件を前回より以下のごとく変更しました。
- サーボ動作に入る為のSWR条件をSWR5からSWR10に変更しました。 例えば、21.05でSWR1.05に収束した状態で周波数を21.40に変えると、私のアンテナでは、SWRが5を超えてしまいます。従来のままなら、SWR5を超えた時点で、メクラ状態でVC1とVC2を回し、SWR5以下を探す事になってしまいます。SWR10以下に変更すると、この値以下のSWRの時は、即サーボ動作を開始しますので、収束が速くなります。
- SWRの収束目標を3段階にします。 従来はSWR1.15を目標にしていましたが、最初の目標をSWR1.05以下とし、10秒以上経過しても、収束しない場合、SWR1.20まで緩めることにします。 さらに20秒経過しても収束しない場合、SWR1.40で緩めます。 収束しないよりはましです。 1.40くらいで収束した状態で再度チューニングをかけると、1.05以下に収まります。
- それでも収束しない場合、コイルのタップ位置を手動で切り替えてみる事にしました。 コイルのタップ位置は7メガのダイポールに18メガを整合させる場合と、17メガくらいに共振周波数のあるスカイドアアンテナを18メガに整合させる場合、違ってくる事が判りましたので、バンドとタップの関係は固定しない事にします。 バンドとタップの関係はEEPROMに記憶させ、次回からは成功したタップ位置を呼び出す方式です。
- チューニング動作を開始する送信機の出力範囲を広げました。 前回までは、5Wから40Wくらいの範囲にしてありましたが、SWRの計算にエラーが発生しない事を確かめて、1Wから40Wまでの範囲でチューニングできるようにしました。 出力が上ると、コイルの切り替え時、リレーへの負担が大きくなるので、実際にチューニングする時は、10W以下の必要最小限に抑える事にしています。
- モーターの回転数は12V駆動の高速と4.5V駆動の低速にしていましたが、4.5Vでは加速が遅く、短時間駆動では、ギアのバックラッシュすら吸収できない事がわかりました。この低速状態は機械的に非常に不安定で、温度や湿度でサーボの応答特性が変わってしまいそうです。 色々実験しましたが、低速は6V駆動として、最低限の起動トルクを確保した上で、動作時間を細かく調整する事にしました。 6Vの場合、最初のメクラ状態でSWRのディップポイントを探す時粗くなりますので、ディップポイントを見逃して、結果的に探す時間が長くなりますが、やむなしです。
以上の改善を行うと、実際のアンテナの場合、角度センサー無しでも、全バンドSWR1.40以下に収束できるようになりました。 左の画像は、現在のタップ位置4をLCDに表示した状態です。またこのタップ番号を手動でアップしたりダウン出来るスィッチを追加しました。 チューニングを開始し、いつまで経っても、終わらない場合、手元でタップ位置を上げたり下げたりして確認する事ができます。
この為もあり、一定の時間チューニングしてダメなら、そこでチューニング動作を中止するという機能は廃止しました。チューニングを止めたい時はSTOPボタンをおします。 しかし、まだ、収束時間は長く、最適状態にするには、かなりの試行錯誤が必要なようです。 多分、最終的には、バリコンの角度センサーが必要になるとおもわれますが、それまでは、現状でトライしてみます。
今回、PICのTimer4を使い、0.2mSecごとに割込みが発生するようにソフト変更し、この割込みを使い、時限設定機能を使えるよにしましたが、C コンパイラーの中にある関数
__delay_ms(20) ; // (括弧内の数値を変えて任意の遅延が可能。ただし数値は実数のみ)
の実際の遅延時間が設定した時間より8%ほど長くなる事が判りました。Timer4以外に未使用のタイマーとして、Timer2とTimer6がありますが、どれを使っても8%長くなります。この既成の関数もこれらのタイマーを使っている為でしょう。 このATUの場合、周波数カウンター動作時は全割込み禁止で影響なし。その他の遅延設定でも8%くらいの誤差は無視できますので問題なしです。
設定したアルゴリズム通りに動作しないバグを取り除き、モーターの駆動時間や、ブレーキ後の待ち時間の調整をした結果、14MHz以上のバンドでは、サーボ動作開始後からSWR収束までの時間は最短で1秒、長くても5秒くらいになりました。 しかし、10MHz以下のバンドは20秒を超える事がしばしばです。バンドによってサーボ定数を変更しなければならないかも知れません。
検討の為、このATUは、トランシーバーと同じ場所に置いてあり、アンテナからここまで約20mの長さの同調フィーダーでつないでいます。18MHzでラオスが聞こえますので、このATUでチューニングしてコールしてみました。一応交信は成立しましたが、アンテナ直下のプリセットMTUに比べて、受信信号強度はS半分ほど悪く、ノイズはMTUがS2でATUがS5でした。 ATUはアンテナ直下に限りますね。
現在まで発生したハードの変更を網羅した配線図は以下からダウンロード出来ます。