2023年2月15日水曜日

小ネタ



***

 超音波距離計みたいな遊び。


 ch1(黄)が送信波形(差動出力の片側)、ch2(紫)が計算中のフラグ(Lowがビジー、Highが無負荷)。送受信中以外はビジー出力は止まってる。LPFの関係でパルス後端が切れてるのでなんとかしなければ。


 DACで波形出力、オペアンプで増幅してADCでサンプリング。DAC/ADC共に1Msps、DACはR64N3インターポレーション、ADCはR64N3デシメーションで、15.625kspsのIQ信号として持っている。DACは1ch、ADCは4chの同時処理なので、いろいろ遊ぶ余地がある。受信側は処理にあまり余裕がなくて、送受信を同時に行うことは難しいので、FMCWみたいな遊びはできない。受信chを減らして計算量を減らせば同時に処理できるだろうけど、パルス周期管理とかと相性が悪いので、当面は送受信同時処理はやらない方針。

 サンプリングした値は32bitで持っているから、IQで8バイト、4chで32バイト、15.625kspsで500kbyte/s(10^3)、くらいのデータレート。UARTは15Mbaudとか12Mbaudが通るので、5Mbpsなら通るはず。バッファリングで死にそうな気もするけど。NucleoオンボードのST-Link v3はたぶん15Mbaudとか設定できるはずだし、FT232Hとかを使えば12Mbaudとかも設定できるはずだけど、はたしてどの程度のスループットが得られるのか。バースト的に細切れのデータを送るのは早そうだけど、10Mbps弱が通るかどうかは怪しそうなところ。

 Cortex-M4FはFP16(半精度浮動小数点数)とFP32(単精度浮動小数点数)の変換ができるので(FP16の演算は非対応)、32bit整数は多少の劣化を許容できるならFP16で保存できる。まず固定小数点からFP32へ変換する。続いてFP32からFP16へ変換する。直接メモリにストアするのに比べてだいぶ処理が増えるはずだけど、計算速度にはほとんど差がなかった。データ帯域幅が減った分で帳消しにできてるのかも。

 S32にしろFP16にしろ、おそらくBase64とかでエンコードしてUARTに流すと思うので、FP16が使えるなら帯域幅が半分で済む。便利。バイナリからBase64へのエンコードでどの程度リソースが必要なのやら。まぁ、バイナリデータしか通らなくても、それはそれでターミナルソフトで見えないだけなので、手間の問題。


 パルス毎にサンプリングした波形がつながってグラフ化してるので、2個目以降はタイミングは合ってないけど、1.5mくらい上の天井からの強いピークが見える。正弦波状の窓のパルスで幅が2ms、DACからのADCの遅延が4msという感じ。横軸はミリ秒。色々合わせて9msくらいのところにピークがあるので、9ms * 340m/s / 2 = 1.53mくらいと、おおよそいい感じの数値になる。


 タイミングはタイマで結構厳密に動いているはずなので、コヒーレントな信号処理もできるはず。今のところ未実装だけど、PRIやパルス幅、ゲート位置やゲート幅もパルス毎に設定できるはず。

 送信波形はS8bitIQで保持している。1ポイント64usなので、例えば256ポイント(512バイト)で約16ミリ秒のパルス幅になる。CICでLPF特性になっているけど、ある程度の任意波形を生成できるので、FMチャープとかBPSKみたいな広帯域パルスも出せる(受信波形はUARTでどんどん吐き出すので、メモリはほとんど送信波形で専有できる)。ある程度の数のパルスをメモリに入れても数KiBくらいで収まるから、複数種類のパルスを切り替えたりもできる。短パルスと長パルスを組み合わせてレンジを広げるとか、複数のBPSKコードを使ってセカンダリエコーを分離したりとか。パルス毎に適当な変調を作ることもできるはずなので、パルス1個毎に連番をつけて出したりもできるはず。連番が送れるなら素数列も送れるから、宇宙人と遭遇しても安心。

 送信波形はRAMに持っているので、任意のタイミングで出せる(PCから低レイテンシで入れなくてもいい)。受信した波形はデータ量が大きいので、適当なタイミングでUARTで吐き出す。DMA転送ならCPU負荷は無いから、たぶん間に合う(受信側の能力次第)。


 ということで、超音波を使ったレーダ的な遊びをするための目処はおおよそ立ったかな、という感じ。PCで適当な信号処理を行えばモノパルス測角とかMTIとか一通り遊べるはず。サーボでジンバルを作れば首振りでラスタスキャンやコニカルスキャンができるし、リニアレールに乗せれば合成開口みたいなこともできるはず。

 問題があるとすれば、ハードウェアを作るのがメンドクセってのと、パルス幅の広い広帯域信号を使うにはある程度の広さの空間が必要、といったあたりか(狭いとパルスを出し終わる前にエコーが帰ってくる)。


 一点、タイマ間の同期で謎の挙動がある。TIM4でPRIを作って、TIM3でDACの、TIM2でADCのサンプリング周期を作っていて、TIM4の更新を出してTIM2とTIM3をトリガしている。ところが、TIM4.CR1.CENを1にした瞬間にTIM3.CR1.CENも1になる。一方で、同じ信号でトリガされるTIM2はトリガされない。

 ちょろっと色々試してみたけど解決しないので、TIM4.CR1.CENを1にした直後にTIM3.CR1.CENを0にして、TIM3.EGR.UGを1にしている(念のためにTIM2も同様)。

 タイマの動作は例えばPWMを出してロジアナで見ればある程度の挙動は見えてくるはずなので、タイミングを作れるかとか変な挙動が無いかとかは事前に確認しておいたほうがいいかもしれない。

***

* 雑記


 星の航海者1 遠い旅人 (創元SF文庫) | 笹本 祐一 | 日本の小説・文芸 | Kindleストア | Amazon

 https://www.amazon.co.jp/dp/B0BV9SN1LZ/

 こっちも久しぶりの新刊だ。


 国際状況がピリピリしているときにトリガーが軽くなると航空機事故が起きやすいってのは歴史から学ぶべきことなので、大きな事態にはならないうちに落ち着いてほしいなぁといったところ。

 米空軍の戦闘機パイロットが目視で識別して撃墜した相手が米陸軍のUH-60だったみたいな事例もあるので、相当慎重に判断する必要がある。さすがに飛行機と気球じゃ形が全然違うし、対気速度が全く違うのでレーダで見ても別物とは言え、有人の高高度気球で宇宙っぽい景色を、みたいな旅行プランが売られている昨今、気球だからといって気軽に撃つと……


 気球がRCS小さいから便利ってのはどうなんだろうか。相手は防空レーダーだぞ。今の時代、ステルス性ガン無視の大型爆撃機しか見えないってこともないだろうし、ある程度はレーダーステルス機も想定して仕様を決めてるだろうし。いくら気球のキャノピーがプラスチックだからって、それにぶら下がってるのが数百kgのほとんど金属の塊だからなぁ。民間ATCレーダーならともかくとして、空軍のレーダーからは容易に見えそうだが(そもそもアメリカに稼働中のATC PSRがどれだけあるのかは置いておいて)。

 速度オーダーは雨滴とかと同じだから気象レーダーからは特徴的なシグネチャが見えそうではある。そういう意味では防空システムから見つけるのは大変そうだ。だからパラメータ変えたら急に何個も出てきた、みたいな事態になってるんだろうけど。気球なんてそれこそ気象関係で毎日2個ずつ複数箇所で大量に放球したりしてるし、アメリカなら個人でバルーン飛ばしてるやつも多いだろうし、チマチマしたやつ全部監視して識別してたらメンドクセーみたいな状態だったんだろうな。


 日本の、と言うかJAXAの気球実験では、ATCトランスポンダを積んでるみたいな話はあるんだけど、調べても情報があまり出てこない。フィルムみたいな開発要素とか、実験機材みたいな話はポツポツと出てくるし、ダウンリンクみたいな周りも多少は出てくるけど、トランスポンダに関しては航空管制から要求されて市販品を載せているだけだろうから、ほとんど情報が無い。

 Fr24のログで去年の実験日を見ても特に何も無いから、少なくともADS-Bは載せてないんじゃないかな? たぶんモード3/Aくらいであろう。もしかしたらモードCも対応してるかもしれないけど。

 ADS-Bを乗せるにはICAOの24bitコードの割当が必要で、日本では国交省が管理しているはずだけど、使用前に申請して、使用後にも(運用終了の)申請が必要で、結構煩雑そうな感じがする(試作機等のためにレジ無しでも申請はできるらしい)。そもそも気球実験を行うときは基本的にNOTAMで飛行機の侵入を制限するはずだから、あくまでも気球がNOTAMの範囲から逸脱していないかを確認する程度でしか使っておらず、TCASみたいな用途は想定していない気がする。ATC SSRの目が届く範囲で使うのであれば、モードAだけあれば良い。ADS-Bが乗っていれば簡易的な機器(それこそノートPCとUSBドングル1個)でトラッキングできるから実験運用は便利かもしれないけど、それ以上に手続きが面倒そう。そのあたりを、例えばJAXAが実験用に一括して16個くらいのIDを管理して、簡単な手続きで使えるようになれば多用されるようになるかもしれないけど。最近だと無人航空機の運行の最適化とかいろいろ研究分野はあるだろうし、気軽に使えるIDを何個か持っていれば便利そうではあるが。

 Fr24のMLATってどのくらい普及してるんだろう? アメリカだとADS-Bが義務化されてるからMLATは不要そうな気がする。とすると仮にモードA/Cを載せていても見えなさそう。


 ゼロプレッシャー気球は文字通りキャノピー内外の差圧がゼロなので、ちょっと穴が空いたくらいだと抜けるのには時間がかかりそうだな(あくまでも下端での話だけど)。連続ロッド弾頭とかだとスパッと破れそうだけど、今どきCR弾頭なんて運用中のやつあるんだろうか? 結局狭いエリアで落としたいとなると、残骸しか回収できないとしてもペイロードに直撃させるような手段にならざるをえないんだろう。気球の落下特性とかはGSFCあたりに聞きに行ったのかなーとか想像しつつ、でも米陸軍だって高高度気球を試したりしてるからな。空軍にだっていろいろノウハウはあるだろうし。

 全く関係ないどうでもいい話だけど、最近の電気自動車とかの関係で、CR弾頭みたいな見た目の物体は増えてきてるなーという感じはある。密度が全く違うし、銅じゃ柔らかすぎて弾頭には使えないだろうけども。モーターの中身なんてマブチ130とかしか触れてきてないので、EV用モーターとかはなかなかに凄まじい。


 昭和末期頃の資料?で、SSRモードA/Cに関連して「応答モードの「SSRモードB及びSSRモードD」に関する規定を削除すること」という表記が出てくる。ということはこれ以前(昭和50年代?)にはモードB/Dが使われていたんだろうか? モードBが使われていたらしいみたいな話は読んだことあるような気がするけど、モードDは見かけたことがない気がする。A/Cパルスの特性に関して、Xビットの位置も規定されている。単にICAO等の文書を翻訳しただけなのか、あるいは日本でもXビットが必要だから残しているのか。防衛庁でXビットを使ったりしていたんだろうか?

 一方で、1990年代末頃の資料では「(ADS-Bに対して)従来型のSSRには、モードA、B、C、Dの4種類の質問信号が定義され(以下略」というような表記が出てくる。都合よく解釈するなら、質問だけは定義してある、みたいな意味かもしれないけど。

 '82年頃の資料だと、モード1,2が軍用IFF、3/Aが共用ATC、Bが民間用ATC、Cが高度、Dが未使用、とのこと。おそらく'71年のF-4衝突事故以降に民間だけでなく軍用機にもATCRBSを乗せる必要に迫られて、数が足りなくなったので、モード3と互換性のあるモードAは主に軍用機に使用して、民間機にはモードBを使って、みたいなことだったのかな。


 ETS-V(’87年打上げ)、構造系はCFRPのセントラルシリンダにアルミハニカムパネルで箱を作る構造だけど、推進剤(ヒドラジン1液)のタンク2個はシリンダ内ではなく、構造パネルの外側に少し露出するような構造。2個のタンクはそれぞれTNK WとTNK Eで、東西で識別。スラスタは20N1本と1N8本の9本が冗長系で合わせて18本。系統間は東西タンクでクロスフィード。1本しかない20N(冗長系で2本)はプリセッション制御用とのこと。3段目とAKMが固体でスピン安定なので、その間の姿勢制御(スピン軸を倒す)に使ったのだろう。


 初期のRCS、コールドガスジェットだけど、GN2はもちろんとして、GH2も使っていたらしい。軽いガスの方が噴射速度で有利でIsp稼げるみたいな利点があるんだろうか? Isp高くても充填効率悪そうだからタンクの容量とか考えると微妙そうな気もする。リークも怖いし。

 1985年の資料だけど、ヒドラジンスラスタ(1液)は第3世代に分類されている(コールドガスが第1世代、H2O2が第2世代?)。第4世代として位置付けられているのが電熱式1液(EHT)で、0.25Nで300秒以上を出せるらしい(比較として、例えばSLATS搭載の1Nスラスタ(IA製)は連続222秒以上とか)。高比推力の代わりに低連続推力で大電力(1W/mN)が必要。ホットガススラスタと言うより電気推進に近い方向性(温度で堆積を増やすというよりは分解を促進する方向なので、レジストジェットとかとは多少異なる)。

 当時の2液が最大285秒で、大幅な性能向上は困難、複雑な配管系、といったデメリットがあるので、シンプルな1液で耐熱材料によって300秒前後を達成できるEHTはかなり期待されていたらしい。既存の1液推進系をベースに、電源系の改造のみで高性能化できるのも利点。大比推力が必要なスラスタ(e.g. 南北制御)だけEHT化してもいいし、EHT系が故障しても従来の比推力で運用が可能。

 電気推進(IES)は大幅な高比推力化が可能だがシステムが複雑になるため、次の世代に。実際にはIESの実用化が思ったより早かったらしく、EHTは過渡的な感じがする。あとは、2液のデメリット(複雑な配管系)が受け入れられたのと。


 ASTRO-C(’87年)のスタートラッカ、ペルチェ冷却のCCD、画素は18um/px程度で、384x490px、画角8x6度、光学系はf70mm、F1、星像を10px程度にデフォーカス、という感じらしい。5等星程度まで撮影できて、画像をダウンリンクすることもできる。姿勢決定精度は0.01度くらいまで。画素の分解能と同じくらい。なお、ASTRO-Cは科学衛星として初めて3軸制御を行った衛星。


 GroundBIRD、地上設置型のCMB偏光観測だけど、1トン近い機材を20rpmで回して、超伝導検出器(MKID)のために17気圧のヘリウムを供給するロータリージョイントとかなかなかすごい。


 AMSATあたりで、ポストアポカリプスを見据えて稼働期間に極振りした通信衛星を作ろうみたいな話ってないのかな? 真空管でV/U変換して、将来的にはRTGとか。むしろ真空管だと経年劣化するから半導体のほうがいいのかな? アルファ・ケンタウリへ向かった有人探査船。探査を終えて帰ってきた彼らを出迎えたのは荒廃した地球と、何百年も稼働を続けるビーコン衛星のみだった……


 衛星周りの資料漁りしたいなーと言い続けて、今週も全く進まなかった。。。

0 件のコメント:

コメントを投稿