AA-30(2)

『モースの贈り物』(小学館)なんて本を読んだ。表紙に出ていた明治時代の民具が琴線に触れたの で手に取ってみたって訳。

おたふくの形をした下駄屋の看板、箱枕、独楽、団扇、櫛、オヒツやらが載っていた。どれも今と なっては、なかなか目にする事が出来ない代物である。

モースは元々、アメリカの動物学者。研究してた貝が日本には沢山生息していると言うので、それの 研究目当てに、明治10年に来日。臨海研究所の設立のかけあいに行くため、たまたま乗った蒸気機関車の 車窓から、大森の貝塚を発見。それを機に東京大学に請われて教授に就任。

ダーウィンの進化論を日本へ最初に紹介したのは彼。大学の休みを利用して日本各地を旅行。そこで 明治時代に普通に利用されてた道具類(今となっては民具と言うべきか)やら、普通の民家等を 研究、収拾して、博物学の標本としてアメリカへ持ち帰っている。何とその数や3万点を越えるとか。

彼が集めた物は、美醜、貴賎に関係なく、一般に使われていた物だったとか。それが、ボストンの 近くの博物館に大事に保存されている。日本は文明開化の名の下に、どんどん古い物を捨て、気が つけば、古い普通のものは何も残っていないと言う低落。

これじゃいかんと言う事で、日本の国立博物館が先方のビーボディ博物館と共同で、そのコレクションを 里帰り展示させた。その時の記念講演として、モースの人となりを紹介した。その講演録が、上記の 本となって出版されたって訳。

この本の中で、奈良国立文化財研究所の佐原眞部長は、面白い事を紹介している。曰く、今はモースと 言っているけど、明治の頃は彼の事を、親しみを込めてモールス先生と言っていたそうな。先生の名前は MORSEと綴るとか。モールスとなれば、ハムの方なら、もう一人のモールスさんを思い出さずにはいられない。 佐原さんによれば、二人は遠い親戚関係があるそうだ。

モースはスケッチが非常に旨かったそうだ。彼が付けていた日記は達筆すぎて?判読に苦労する そうだが、スケッチは絶品とか。そう言えば、モールスさんは画家でしたねぇ。やはり血は争え ないと言う事でしょうか。

AA-30で遊ぶ

前回に引き続いて、アンテナ・アナライザー AA-30 を試してみます。マニュアルをつらつらと 見て行くと、応用例の所に同軸ケーブルの物理的な長さを求める例が出ていた。

おいらもやってみたよ。まず、ケーブルの特性を知っておく必要があるんだな。必要なのは、真空での 電波の伝わる速さだ。よく、光は1秒間に地球を7回半回りますっていう、電磁定数。 マニュアルによると、299792458m/sだそうだ。

次はケーブルが固有で持っている速度係数。別名で短縮率とも言うのかな。物の本によれば、短縮率は 、同軸ケーブルの中に充填されている絶縁物の比誘電率によって決まるらしく

短縮率 = 1 / sqrt(比誘電率)

で、求められるとか。ポリエチレンとかの材質を使ったものだと、誘電率が2.3ぐらい。よって短縮率は

gosh> (/ 1 (sqrt 2.3))
0.6593804733957871

藤倉製同軸のデータが公開されてた。これを見ると 確かに、絶縁物の充填度と材質によって短縮率が変わっている事が分かる。 上記を調べている時、ちょっと面白い実験をやっている人がいたのでメモ。 アンテナ線材の短縮率の話

同軸ケーブルは遅延素子だな。電波は真空中で1m進むのに3.3nsかかるけど、同軸ケーブルだと 5nsになる。

gosh> (/ 299792458)  ; 割り算手続きに1つの引数を与えると、逆数の計算になる
1/299792458      ; 結果が分数になっちゃったんで
gosh> (/. 299792458) ;実数で返してくれるように、やり直し
3.3356409519815204e-9
gosh> (/ 3.3356409519815204e-9 0.66)
5.054001442396243e-9

昔、ICのスピード評価をする時、インバータを奇数段リング状に接続して、発振周波数を求めた事が ある。これの応用で、例えば、物理長の分かっている同軸を使って、短縮率を求める事が出来る。 インバータIC(ケーブルをドライブするので、Busドライバーみたいなファンアウトの大きなものを使う事)の入出力を同軸ケーブルで接続して リングオシレータを作り、発振周波数を測れば、速度係数を求められるな。 但し、ICのTpd(伝播遅延時間)を事前に調べておく必要があるけど。

なお、正確を機すなら、インバータの入力側に50オームの抵抗を入れてSWRが1になるようにし、 ついでに、出力側と同軸の芯線間に直列に抵抗を入れ、リバース・ターミネーションしておくと良いです。

10mの同軸を選んだとして仮に短縮率が0.66とすると、約50nsのディレーラインと見なせる。 (遅延=10m/未知の短縮率 ですが、、)ある瞬間にインバータの 出力がHだったとしたら、その出力は同軸を50nsかけて入力に戻ってくる。そして、ICのTpd後に今度は 出力がLとなる。こんな具合にして発振するんで、周波数を測る事によって、短縮率を計算出来る。

アンテナアナライザーを持っていなくたって、短縮率を測定出来ちゃうと言う、無駄知識でした。

で、肝心の測定だけど、マニュアル通りにやってみたけど、同調点をグラフから読み取るって 結構こつがいる事が分かりました。よっぽど変な同軸を使わない限り、特性表を参照した方がよさそう と言う、私なりの結論です。

本当のアンテナでSWRを測ってみる。

何と言ってもAA-30の売りは、SWRの直視でしょう。FT-817でワッチする為に応急的に作った、マグネチック・ループ・アンテナ(MLA)の 特性を測ってみます。このMLAは、2mの5D2Vを丸めて、そこに1.5D2Vの同軸を付けたものです。

で、ふと困ったのが、このアンテナにはBNCコネクタを取り付けてある事。AA-30の口は、M型のコネクタ なんで、コネクタ違いが発生してるんです。でも、こんな事もあろうかと(はやぶさの川口PM風に)、 都落ち(もとえ、故郷に錦を飾る時)する時、M型-BNC変換コネクタを手に入れておいたので、事無きを 得ました。

フルレンジにして測ったら、15.9MHzぐらいでSWRが最低になり、何とその値は、4ぐらい。その他の 周波数では軽く10を超えていました。

Z=65 R=30 X=-57 C=175pF SWR=4.0 @ f=15.9MHz
Z=57 R=10 X= 56 L=800nH SWR=10  @ f=11.1MHz

ちょいと検算してみます。まずは、4級アマチュア無線の電子工学から、周波数とC又はLの容量を 与えて、リアクタンスを計算させます。

gosh> (use math.const)
#<undef>
gosh> pi
3.141592653589793
gosh> (/ (* 2 pi 15.9e6 175e-12))   ; Xc = 1 / (2 * pi * f * C)
57.198541991696445
gosh> (* 2 pi 11.1e6 800e-9)        ; Xl = 2 * pi * f * L
55.79468552775472

まんまの計算です。値も大体合っているようです。上記は、Show all の結果を眺めながら転記 したんですが、連続測定が行われていて多少ばらつきが有ったんで適当に代表値としておきました。 測定を一時的に中止するボタンが有ったら嬉しいなと、ユーザーは勝手な希望を言っております。

さて、次は、抵抗成分とリアクタンス成分からインピーダンスの計算です。えっと、これ2アマぐらい の問題でしょうか? 複素数の領域ですからねぇ。なお、おいらは2アマすら持ってませんので、 怪しい事を書いたら、ご指摘ください。 無線従事者国家試験の過去問題一覧とか 無線工学の基礎を見れば、傾向と対策に役立つかな。

で、複素数を普通のプログラミング言語で扱えるか? 高校の時に見ていたFortranのTV講座には出てきたような。。 今流行りのrubyではどうかと思ったら、言語には組み込まれていない。でも、標準添付のライブラリーの 中にあるComprex.rbをrequireすれば使えるようになるみたい。ちょっと試してみたけど、表現が不恰好なんで 私の趣味には合いませんでした。

先ほどから使っている Gaucheと言うSchemeの一実装はどうだろうか? プログラミング言語Schemeを経由して R5RSの数の所を 調べてみると、複素数をちゃんと実装してねって書いてある。更に、該当部分を抜き出してみると

x1、x2、x3、x4が実数、zが複素数で次を満足するとすれば、

  z = x1 + x2*i = x3 * e^(i*x4)

  (make-rectangular x1 x2) => z
  (make-polar x3 x4)     => z
  (real-part z)                  => x1
  (imag-part z)                  => x2
  (magnitude z)                  => |x3|
  (angle z)                      => x_angle

が返される。ただしある整数nに対してx_angle = x4 + 2*pi*nとして、
-pi < x_angle <= piである。

理論的根拠:

    magnitudeは実数引数に対してはabsと同じものである。
    ただしabsはすべての処理系が実装しなければならないが、
    magnitudeは複素数全般をサポートする処理系にのみ実装される。 

直交座標系式も極座標形式も、扱えるようにしないといかんとな。AA-30のZの表示をみてると、|Z| の ように絶対値風になっている。って事は

gosh> (define z  (make-rectangular 30 -57))
z
gosh> z
30.0-57.0i
gosh> (abs z)
64.41273166075166
gosh> (abs 10+56i)
56.88585061331157

goshでは、複素数を作る時、X1+X2i と書いてもいいように、リーダーマクロが用意されている。 極座標の場合は、X3@X4 と書いてもよい。

gosh> (make-polar 30 0.2)
29.401997335237247+5.960079923851836i
gosh> 30@0.2
29.401997335237247+5.960079923851836i

そんじゃ、待望のSWR値の検算をしてみる。これって、ひょっとしたら1アマの酷試もとえ国試に 出てくるんでしょうか? 受験対策本が無いので先生に聞いてみた。

そしたらね、z0と言う伝送路にzと言うインピーダンスの負荷が接続された時の計算式を 教えてくれた。何度も使えるように手続きにしておいたよ。

(define (swr z z0)
  (let ([a (/ (- z z0) (+ z z0))])
    (/. (+ 1 (abs a)) (- 1 (abs a)))))

上記の式中の a は、電圧反射係数とか言うそうで、a = 反射波の電圧/進行波の電圧 と言うのが 元の定義らしい。

そんじゃ、50オームの同軸ケーブルにアンテナを接続した事にして検算。

gosh> (swr 30-57i 50)
4.194244717709399
gosh> (swr 10+56i 50)
11.384158637998759

まあまあの結果かな。そんじゃ、3C2Vみたいな75オーム系の同軸にしたら、どうなる?

gosh> (swr 30-57i 75)
4.100103731649311
gosh> (swr 10+56i 75)
11.72941089302894

出来の悪いアンテナじゃ、どんな同軸ケーブルを使っても一緒。

gosh> (swr 50+0i 50)
1.0
gosh> (swr 75+0i 75)
1.0
gosh> (swr 50+0i 75)
1.4999999999999998

こういうアンテナなら、たとえケーブルインピーダンスが違っても、まあ、なんとか。。。

今までに出てきた、Z=R+jX と言う表現は、直列モデルだ。AA-XXでは、Settingメニューから並列モデルを 選ぶ事が出来る。

Z=5.5 R=5.6 X=24.2 L=173nH  SWR=9.4 f=21MHz 並列モデル
Z=5.5 R=5.4 X=1.2  L=10nH   SWR=9.5 f=21MHz 直列モデル

でも、どうも並列モデルはしっくりこないなあ。普段アドミタンスとは付き合いが無いからだろうか?

付属のソフトを使ってみる

AA-30にはWindowsで動く便利ソフトが付いてくる。早速入れて使ってみようとしたが、アプリが 起動して直ぐに終了してしまう不思議な現象に見舞われた。販売元に問い合わせてみたが、その ような事例は無いと言う。おいらのPC環境に特有な問題だろうか? 何とか手がかりを掴みたいな。

Windowsにだって、/var/log/messages 相当ぐらいはあるっしょ。探してみたら、コンパネの中で システムとセキュリティーの中の管理ツールの中にあるイベントログがどうも、それっぽい。

そやつを起動して、Windowsログ・アプリケーションを開いてみたら、エラーが上がっていた。

ログの名前:         Application
ソース:           Application Error
日付:            2011/02/25 14:14:59
イベント ID:       1000
タスクのカテゴリ:      (100)
レベル:           エラー
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       fuga
説明:
障害が発生しているアプリケーション名: AntScope.exe、バージョン: 4.2.25.0、タイム スタンプ: 0x4ccb44ff
障害が発生しているモジュール名: AntScope.exe、バージョン: 4.2.25.0、タイム スタンプ: 0x4ccb44ff
例外コード: 0xc000000d
障害オフセット: 0x00047917
障害が発生しているプロセス ID: 0xe44
障害が発生しているアプリケーションの開始時刻: 0x01cbd4aaf298106e
障害が発生しているアプリケーション パス: C:\Program Files\RigExpert HF Antenna Analyzer\AntScope.exe
障害が発生しているモジュール パス: C:\Program Files\RigExpert HF Antenna Analyzer\AntScope.exe
レポート ID: 30913115-409e-11e0-a194-cb4f4557a1e2
イベント XML:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2011-02-25T05:14:59.000000000Z" />
    <EventRecordID>14003</EventRecordID>
    <Channel>Application</Channel>
    <Computer>fuga</Computer>
    <Security />
  </System>
  <EventData>
    <Data>AntScope.exe</Data>
    <Data>4.2.25.0</Data>
    <Data>4ccb44ff</Data>
    <Data>AntScope.exe</Data>
    <Data>4.2.25.0</Data>
    <Data>4ccb44ff</Data>
    <Data>c000000d</Data>
    <Data>00047917</Data>
    <Data>e44</Data>
    <Data>01cbd4aaf298106e</Data>
    <Data>C:\Program Files\RigExpert HF Antenna Analyzer\AntScope.exe</Data>
    <Data>C:\Program Files\RigExpert HF Antenna Analyzer\AntScope.exe</Data>
    <Data>30913115-409e-11e0-a194-cb4f4557a1e2</Data>
  </EventData>
</Event>

こんなに長ったらしい内容を表示してくる割には、クラッシュしましただと当たり前の事しか 教えてくれないのね。全くこれだから、Windows7って奴は。。。。

ぼやいていても進展が無いので、"例外コード: 0xc000000d"で検索してみたら、 NTSTATUSエラーコード一覧をまとめておられる 方が居て、それによると、"無効なパラメータをサービスまたは関数に渡しました。"と言う事らしい。 そうすると、問題の発生場所は、"障害オフセット: 0x00047917"だな。はよ、逆Asmせいと言う声が 聞こえてきそうだけど、おいらはWindowsに関しては門外漢。

でも一つ言えるのは、無効なパラメータが渡されたぐらいで落ちるアプリってどうよ。ハード同様に ソフトも繊細に出来ているのかな。

もう、いじけて 家庭内SWR調整法とか 嫁のSWRが下がらない件 こういうのを読んだりする鹿。