2018年1月19日金曜日

海軍

 最近の地上を部隊にしたドンパチの映画はたくさんあるのに、どうして海軍の映画が少ないのかと。

 そもそも最近の海軍は戦争をやっていない、とか、映像になるような(できるような)作戦をやっていない、とかなのかなぁ。

 最近の中でも、一昔まえだと、フォークランド紛争があって、海軍が作戦をやってるけど、海軍を題材にした映画化はされてないっぽい。
 浅学のため、それ以外の史実の作戦行動は知らん。


 僕の好みに入る艦の分類の作戦行動だと、CGヴィンセンスの事件とかCGレイク・エリーの作戦がある。けど前者は流石にこれで商業作品つくっちゃマズいだろうし、後者は作戦の内容の問題もあってか映像化されてない。
 時々トマホークCMがイージス艦等から発射されてるけど、艦としての戦闘ではない。
 あとは、マースクアラバマの映画化(キャプテン・フィリップス)でちらっと出てくる。あくまで「浮かぶ台」としか使われてない気がするけど。

 フィクションだと、THE LAST SHIPがある。S1しか見てないけど。
 バトルシップは好き。やられ役だけど。
 国内作品だと、アニメだとジパングがある。1回レンタルで見ただけだけど。
 小説なら、ルーントルーパーズがあるけど、1巻だけ読んで、自分には合わないなぁと思ってそれっきり。
 実写だと、亡国のイージスもあるね。昔見たっきりだけど。

 こうしてみると、結構いろいろあるなぁ。
 国内作品も多い。でも全部フィクション。そりゃそうか。


 現在の世界情勢でイージス艦がフル能力で作戦を行うには、かなりの理由が必要で、それがTHE LAST SHIPだったり、ルーントルーパーズやジパングみたいになるんであろう。あるいは、バトルシップのような、地球の外から何かを持ってくるか。


 USA-193の映画化とか、見てみたい気もするけど、アレはSM-3を1本、タイミングを合わせて撃っただけで、あんまり見せ場は無いんだよなぁ。むしろ落とすか落とさないかの、事務方の判断、みたいな部分が大多数を占めて、ゼロ・ダーク・サーティを希釈した感じの内容になってしまいそう。

***

 個人的に「この局が再放送をすると2期か映画化が来る」と好評のBS11ではいふりが再放送されてるのが気になってる。前回の再放送ではOVAを作ったけど、次もOVAを作るのか、劇場に行くのか、2期を作るのか。もしくは何もないということもありうるが、放送終了あたりでイベントをやるそうだから、何かありそうな気がする。
 劇場で1年生の残りをやるか、2期で2年生をやるか、してほしいなぁ。あの晴風組のことだから、2年生にもなればまた色々やるであろう。

 あと幼女戦記も再放送してるので、見てる(こちらは映画化発表済み)。
 はいふりでも、ミーちゃん初めドイツから来てる人間がいるし、相性よさそう。はいふりの航空機禁止縛りでも、魔法少女的なモノなら問題ないんじゃないかな、と、無理やりこじつける。
 シロ「あれは…人間?飛んでる!?魔女なのか!?」
 ココ「通信です!ターニャ・デグレチャフと名乗っています!」
 ミー「ターニャ?まさか、本当にターニャ・デグレチャフなのか!?」
 ミケ「ミーちゃん、知ってるの!?」

 感嘆符多いなぁ。あの娘たちは。


 この際だから、僕の好きな作品全部混ぜで、はいふりの水上艦と、アルペジオの水中艦、バトルシップの水上艦も混ぜて、幼女戦記から魔女も。あと、茉莉香船長以下弁天丸とジェニー元部長以下オデットII世も。プラネットG起源の侵略生宇宙人の追跡を頼まれた茉莉香船長が、いろいろ(主に某王女絡み)あってオデットII世と共に地球へやってきて、航空戦力、水上戦力、水中戦力とも力を合わせて対処する、みたいな話。
 ……好きなものなんでも混ぜりゃいいってもんじゃないな。
 光は混ぜれば白くなるが、色を混ぜても濁った色にしかならない。それぞれの作品にはそれぞれの特色が有る。

***

 土曜は朝早い用事があるのだけど、生活リズムが狂って戻らない。今日は1日寝ずにいれば位相を戻せるんじゃないか…みたいな事を考えつつ。
 人間も位相変調できればいいのにね、と思ったけど、ドーピングすればできないこともないよなぁ。睡眠薬とか、エナジードリンクとか。前者が容量性、後者が誘導性(あってるのか?)。

2018年1月17日水曜日

「ツバメは巣を立った」


 久しぶりにチェックしてみたら、SLATS(ツバメ)が動いておりました。
 グラフは横軸が時間、縦軸が軌道長半径で、横軸は1マス1日、縦軸は1マス20km、縦軸の原点は地表高度です。
 一番下の赤い線がツバメで、1月13日頃から継続的に減速を行っているのが確認できます。また、よく見ると、7日頃にも若干の減速を行い、わずかに半径が小さくなっています。
 おそらく、7日にスラスタの動作確認を行い、正常に(あるいは問題ない範囲で)動作することが確認されたため、機動の変更を開始した、ということではないかと思います。

***

 燕は巣を立った、というのは、なかなかかっこいい響きだと思います。鷲は舞い降りた、に近い感じですね。向こうは着陸するのがミッションですから「舞い降りた」という表現ですが、SLATSの場合は、「大気の中を舞う」というのが最大のミッションですから、「巣を立った」という表現が似合うかな、と思ってこのタイトルにしました。
 現在は520km付近を飛んでいますが、目標では2年ほどを掛けて高度180kmまで下ろすそうです。
 高度を落とす物体といえば、キューブサット等は簡単に落ちてきますが、グラフで見ても「落ちてる」というのがわかるような動きです。おそらく、ツバメはある程度の高度を保って「飛び続ける」ようなグラフになるはずです。
 もうしばらく、雛鳥を愛でるように眺めるとしましょう。
 (蛇足ですが、僕は本物のツバメというのは見たことがありません。北海道でも、結構広い範囲にいるようなので、どこかで見かけているのかもしれませんが、意識して見かけたことはありません)

2018年1月11日木曜日

AAM-4

 AIM-120の気分転換に、99式空対空誘導弾を調べてみました。
 といってもwikimediaの写真を眺めるだけだけど。

 用語(俺々用語)
 フィン:固定翼(AAM-4の場合は前側)
 ウイング:動翼(AAM-4の場合は後ろ側)


AAM-4




JASDF AAM-4 in Hamamatsu Air Base 20140928

 F-15に搭載された状態。フィン/ウイングには「訓練用ミサイル専用」と書いてある。フィンの後ろにはホースバンドが巻いてあるので、このまま飛ぶのではなさそう。もしかしたら飛べるのかもしれないが。。。
 フィンとウイングの厚さの違いにも注目。フィンはかなり薄いが、ウイングの根本は裾広がりで非常に分厚くなっている。
 AIM-120によくある「LIFT HIRE」「NO LIFT」や、重心マーク、シリアルナンバーといった文字は一切かかれていない。


JASDF AAM-4 left front low-angle view at Gifu Air Base November 19, 2017

 ノーズコーン付近のネジがよく分かる写真。ノーズコーンのボルトは六角穴だが、その後ろは十字溝になっている。メーカーで組み立てる部分が六角で、基地で触る部分が十字溝? 不用意に回されたくない場所は頭が変えてあるのかもしれない。六角穴ボルトを回すならそれに合った工具が必要なので、作業場に工具が無いようにすれば不用意に触ってしまうことはない。
 配線ダクトはかなり厚ぼったい感じ。


JASDF AAM-4 left front view at Gifu Air Base November 19, 2017 01

 「試験用飛しょう体(フラッタ計測用)」みたいなことが書いてある(ボケて読めない)。AAM-4B(AAM-4(改))かな?
 米軍に倣うなら、装薬ではなくイナートなので、実際に発射はできない。機体に搭載した上で、様々な速度・姿勢をとって、その際に致命的な振動が発生しないか、といった試験を行うための弾体だと思う。あちこちにひずみゲージとか貼ってあるんであろう。あとで回収して超音波診断だけ、というわけではないはず。併用はしてるかもしれないが。


JASDF AAM-4 left front view at Gifu Air Base November 19, 2017 02

 これもウイングの厚さがわかりやすいアングル。ランチラグの形状も。こんな小さな金具で220kg*10g機動とかに耐えるわけだから、末恐ろしい。おそらく後ろ側の金具1個で荷重を支えてるだろうから、これだけで3トンくらいに耐えられるんじゃないかな。破壊するなら6トンとか10トンくらいの荷重が必要?


JASDF AAM-4 left front view at Gifu Air Base November 19, 2017 03

 ノーズコーンの先端部。塗装の上からでは素材の違いとかは見られない。AIM-120だとノーズコーンの先端は空力加熱対策?の金属パーツが入ってるんだけど。


JASDF AAM-4 Warhead Section 20131124

 AAM-4Bのフィン部分。フィンに時計回りの矢印とともに「解除」の文字がある。この方向に回すとロックを解除して、フィンの着脱ができるのかな。CWにまわして解除???
 SAFE/ARMの部分にはカバーがついてる。目立たないのでこのまま飛ばしそうで怖い。


JASDF AAM-4B 20131124

 こちらも4B。上の背景ブルーシートの弾体とくらべて、ノーズコーンの後ろの構造が大きく違う(ネジの本数が増えてる)。
 ミサイルを置いているスタンドに「取扱責任者」みたいなタグがある。スタンドが壊れると上に乗ってる数千万円のミサイルも道連れになるので、管理が厳重なのかも? そういう配慮をしてるってことは、そういう事故があったんだろうか。


JASDF AAM-4B at Gifu Air Base October 25, 2015

 2枚上のフィン拡大写真の、突起のところに、REMOVE BEFORE FLIGHTタグが付いている。
 RBFがついてるということは、この棒状の部品はワンタッチで着脱できる?
 赤に斜めの白帯は、ミサイルをどの方向から見てるかを知るためのマーキングだと思う。白が赤の中間部に見えれば、ランチラグ側がこちらを向いていて、白が赤の端に見えれば、配線ダクト側がこちらを向いている。発射試験(or投下試験)のときの映像解析に使うマーキングだと思う。赤の前にある黒い四角も同様。ミサイルの直径がnピクセルで、1フレームで黒がnピクセル動いていると、1秒間に何回転している、というのを計算できる。


JASDF AAM-4B Guidance Section 20131124

 点検ハッチ?のボルトに締付けトルクが書いてある。0.85N・m±7%くらい。トルクで言うと、M3.5かM4くらいのビスかな。
 ノーズコーンに変な模様が見える。ワインディングの跡?


JASDF F-2 , 航空自衛隊 F-2 - panoramio (2)

 ちょっと解像度低い。全景だからしょうがない。
 手前のオレンジが500lb LJDAM、F-2についてるのは端から90式空対空誘導弾、99式空対空誘導弾、93式空対艦誘導弾、かな? チンステーションにはJ/AAQ-2ポッド(FLIR)がついてる。チン=顎(chin)の意味。F-16SEADとかでもHTSとか、ポッド類を吊るのによく使われる場所。
 F-2のあちこちにマーキングがついているので、試験を主にしている機体かな? 画像解析ソフトだと、マーキングの位置を解析して、姿勢や歪みを計測できるものもあるらしい。空自がそういうシステムを使っているかは不明だが、これだけあちこちにつけてるんだから使ってるんであろう。


JASDF XAAM-4 Propulsion Section 20131124

 ウイング部の拡大。
 四角い黒のマーキングがない。
 ウイングにはLOCK PINの文字がある。ということは、ここからピンを差し込んでウイングを固定するのであろう。反対側にも穴があるから、抜き取るときはそこから細い工具を差し込んで、ピンを押して抜くはず。前から後ろに向けてピンを差すのは、飛行中に空力等で抜けるのを防ぐため、と思われる。後ろから前向きに差し込むと、風圧で抜けてしまう可能性がある。
 AIM-120のウイングはナットで固定するので、取り付けには多少の手間がかかる。ピン方式なら、ウイングを差し込んで、ピンを差すだけで終わるので簡単。ピンを無くすと目も当てられないが。ウイングの根本がこれだけ太いなら、ピンの抜け止めみたいな細工もしてあるのかもしれない。

***

 AIM-120の息抜きにAAM-4を調べてみたけど、こっちも面白そうだなぁ。120が一段落したらこっちも作ってみたい。

 色々考えても、謎が謎を呼ぶ、みたいな状況。「百聞は一見にしかず」とはよく言うけど、1回詳しい人に根掘り葉掘り聞いてみたい。誰に聞くんだ、って話だけど。空自関係者に聞いてもあんまり教えてもらえないだろうしなぁ。

 空自基地って、予め予約しておけば見学できるみたい。
 最寄りの千歳基地だと、1ヶ月前までに予約してね、という感じ。最寄りと言っても、片道4時間位かかる長旅なんだが。
 Webページの説明によると、基地の説明と、F-15/UH-60の説明があるらしい。おそらく周辺住民向けの説明だろうから、通り一遍の、ググれば出てくるような話が大半だろうなぁ。残りはそこでしか聞けないこぼれ話とか。
 Mk 13ミサイル発射機とか調べようと思ったときは、ミサイル護衛艦を見学したくなった。どっちにしろ北海道のど真ん中からだと、空自も海自もとても遠くて、気軽に行ける距離じゃない。
 陸自駐屯地は気軽に行ける範囲にあるけど、陸自装備はあんまり心惹かれないからなぁ。
 陸自演習場(砲弾弾着地点)が徒歩数分で見える場所ってのは、地の利があるか。海自も空自も演習海域/空域は気軽に見れる場所じゃないから。
 照明弾を使った演習をしてる時とかはとても綺麗だし、楽しい。
 「た~まや~」「か~ぎや~」「よ~そろ~」
 陸自はようそろは違うか。

2018年1月9日火曜日

カラーチャート

 写真用紙をペーパークラフトに流用しようと思ってたんですが、某F社のインクジェット紙だとうまくできませんでした。
 紙が固く、折り曲げるのが非常に大変で、少しこするだけでインクが剥がれてしまいます。ま、ペーパークラフト用に作られた用紙ではないので、当然といえば当然かもしれません。写真を折り曲げようとしたり、表面を擦ったりすることなんて殆ど無いでしょうから。
 ということで、amazonでケント紙を注文したので、それが到着するまではAIM-120は一時休止ということで。

 印刷ツールの内、C#の部分を新造しています。今まではLuaからの関数呼び出しをリストに保存し、PrintDocumentのPrintPageでリストの処理を行う、という流れでした。新しいプログラムでは、PrintDocumentのBeginPrintでLuaスクリプトを読み込み、PrintPageが呼ばれる毎にLuaの関数を呼び出し、Luaからの関数呼び出しで直接Graphicsを操作するようにしています。
 一旦リストに保存する方式では、リストの管理が面倒なのですが、いちいちGraphicsを操作する方法でも、それはそれで面倒な感じです。


 それと、ミサイルの色の調整もやろうと思っています。
 手始めに、Luaで色のマトリクスを印刷して、本物の色に近いカラーコードを探しています。forループを書けば色の一覧を印刷できるのも、スクリプトベースの楽なところですね。
 R16色G16色B16色の4096マトリクスと、R6色G32色B6色ステップの1296ストリップの2種類を印刷してみました。4kは色の分解能は高いのですが、1マスが小さく、またA4用紙1枚にすべて印刷しているので、本や写真等と見比べるのには不向きです。1.3kの方は、特に赤と青の分解能が低いですが、36本の帯状に切断しておけば、見比べるのに非常に便利です(下の写真)。切断するのがかなり面倒で、分解能も低いですが、この用途には帯のほうが向いていると思います。A4用紙2ページ分ですが、コンビニで印刷しても100円くらいで済むはずです。
 市販のカラーチャートやカラーパレットは、色の信頼性が高い反面、値段も高く。色数もあまり多くありません。また、色の正しさは、今回に限ってはまったく不要で、むしろ逆に、自分のプリンタで印刷した色に対するカラーコードがほしいので、自分で印刷するカラーチャートのほうが利点が大きいです。
 あと、amazonで買った厚紙が届くのを待つ間に色を探したいのに、それに必要な道具をamazonで買う、という本末転倒なことをしなくても済みます。それに、印刷すればいくらでも量産できるので、汚れたり濡れたりといった心配が不要という利点もあります。帯の切断は想像以上に大変な作業なので、できればやりたくないですが。


 僕が持っている本の中で、ミサイルの写真が掲載されているのは「最新ミサイルがよ~くわかる本」「F-15完全マニュアル」「F-16完全マニュアル」くらいしかありません。
 "最新ミサイル"に掲載されている写真は、かなりの確率でイナートです。一般公開の際に撮影された写真が多い感じです。F-15本やF-16本は、そもそも機体の紹介がメインで、兵装の写真はかなり少ないです。
 「軍用機ウェポン・ハンドブック」という本も持っていますが、これは1種類あたり見開き1ページの文がメインで、写真も1種類あたり2,3枚ありますが、全てのページがモノクロなので、色の参考には使えません。
 上の画像は、F-16本の中でも数少ない、ミサイルがそれなりの大きさで写っている写真です。写真を見て分かる通り、AIM-120ではなく、AIM-9の古いタイプのミサイルです。

 ネットで拾ったAIM-120の写真だけを見ても、カラーバンドの色はかなり異なっています。撮影条件によって変わって見えるのか、仕様として色が固定されていないのかはわかりませんが、前者なら本物と見比べる必要がありますし、後者なら大体色を合わせておけばそれで十分です。
 後者だと楽ですが、前者ならかなり難しいです。おそらくJASDAFの基地公開とかで実弾を見れる機会は無いでしょうから、基地公開に行っても、整備員やパイロットっぽい人に色見本を見せて「どれが本物っぽいですか?」と聞くくらいしかできません。
 wikimediaとかを見てると、米国だと各地にミサイルを含めた展示施設があるようです。国土が広いので、空軍の施設だけでも複数ありそうですし、陸軍の施設でもAAMが展示されていたりするようです。あと、あの国のことですから、民間の博物館とかも多そうな気がします。でも流石にアメリカまで行くのは無理です。行けるかいけないかで言えば、国内の展示施設も似たような感じですが。

***

 僕は興味と関心がコロコロと移りゆくので、かなり短い期間で飽きて次のネタを探しています。さすがに三日坊主というほど短くはないですが。
 自分が何をやっていたか、あんまり思い入れもないので思い出せないですが、写真フォルダを見てみると、AIM-120の前は視線同軸カメラを作ろうとしていたようです。その前はジンバルの制御をやったり、更にその前は電光掲示板を作ったり、更にその前はライトセーバーを作ろうとしていたようです。夏頃に電光掲示板を使う用があって、その時は比較的長い期間これをやっていました。さらにその前は、超音波風速計、ジンバルで衛星追尾、といったことをやっていたようです。他にも、写真に取るまでもないようなこと、写真に残さないような小さいソフトウェア、とかを含めれば、かなり多そうです。
 約1年でも色々やっていたようですね(こういう振り返るのって年変わる前にやるべきだったんじゃないのか)。

 AIM-120もちょっと飽きてきました。AIM-9とかRIM-66なら良いとか、そういう方向ではなく、ペーパークラフトに飽きてきた感じです。そろそろ次のネタを探さないとなぁ。
 youtubeでプラモデル動画を見て、面白そうだなぁと思っているのと、積みプラモもあるので、それをやりたいんですが、なんせ田舎なので、塗料の入手性が悪すぎます。なんでprimeで売ってないんだよぅ。
 AIM-120は、モデルロケットエンジンを買ってくれば、もうちょっとドーピングできるかな。

2018年1月6日土曜日

ペパクラAIM-120A


 中央の翼もついて、AIM-120らしくなってきました。

 下から、最初に作った紙筒+円錐、2番目に作った尾翼付き、3番目に作ったフィンを追加して色を修正したもの、です。
 最初に作ったのはイナート色でした。印刷ツールの動作テストや、円筒の練習とかも兼ねていたので、ちゃんとイナートとしての役割を果たしたかなと思います。尾翼やフィンがありませんが、AIM-120の輸送形態はこの形なので、それはそれでアリな気がします。
 2番目に作ったのは、尾翼を追加して、バンドの色を変えました。ただ色の順番が違うというミスをしています。
 3番目は、作成途中で微妙にデータを変更しています。2本の茶色の帯の色が違うのはそのためです。中央の帯のほうがそれっぽい色合いですね。これを作った後に弾頭のバンドも変更しています。

 形はかなりAIM-120A/Bに近くなってきたので、あとは作る人間の技量向上と、色の修正でしょうか。全体的にグレーにするのと、バンドの色を修正するのと、フィン/翼の色を変更するのと。
 それと、今はコピー用紙で作っていますが、厚紙で作りたい気がしています。田舎だと厚紙の入手性は劣悪なので、とりあえず写真用紙で作ろうかなと思っていますが、光沢紙しか持っていないので、かなりテカテカになるはずです。

 大きさとしては、モデルロケットに近い大きさです。Alpha IIIよりは大きいですが、A-Cエンジンで打ち上げるペーパークラフトロケットの中では小型な方です。ということで、A8-3を入れればかなり飛ぶと思います。
 重心がかなり後ろで、おそらく後端バンドの前方くらいです。静安定はネガティブなので、このままでは飛ばせません。フィンを外して、ノーズに重りを入れれば飛ぶと思います。重りの量次第では、フィンが有っても飛ぶかもしれません。
 AIM-120は本来空対空ミサイルなので、地上からモデルロケットで発射するには向かない設定ですが、SLAMRAAMのように、地上発射型のAIM-120もあるので、その辺りは柔軟に解釈すればいいかな、と思っています。

 今は5分の1ですが、2分の1にしてA3に印刷すれば2.5分の1で、1.4mくらいになります。ローソンのマルチコピー機ならA3でも印刷できますし、400円くらいで済みます。とはいえ、コピー用紙ですから、かなりふにゃふにゃになりそうですね。プチプチを入れるなり、発泡充填剤を入れるなりすれば大丈夫かな? それにしても、ただでさえ円筒の作成は大変なのに、この倍ともなるとどうなることやら。
 A3に印刷するより、スクリプトを組み直してA4で10枚くらいのほうが楽かもしれません。でもそうなると、実物大のAMRAMMも作りたくなってくるなぁ。AIM-120より一回り小さいAIM-9なら、実物大でも作れるかもしれません。実物大AIM-9があれば、殺せんせーごっことかできるな!

***

 ペーパークラフトで重要なスキルは、接着剤の塗布じゃないかな、と思い始めています。紙を切るのは、直線ならカッターを使えばきれいに切れますし、曲線でもハサミでゆっくり切ればそれなりにきれいに切ることができます。折れ目も、予めけがいておけば、直線で折り曲げるのは簡単です。
 接着剤の塗布は、多すぎると紙がふやけ、接着面が厚くなり、乾燥にも時間がかかり、といった問題があり、逆に少なすぎると貼り合わせる前に乾燥してしまいます。特に大きなものを接着する場合は、均一に、かつ必要な量の接着剤を塗布するのは、なかなか大変です。ハサミのように、ゆっくり作業する、ということもできません。
 接着剤が多ければ、何回か貼り直せますが、少ないと一瞬で固まるので、それも接着剤を塗りすぎる原因かもしれません。
 とにかく、ペーパークラフトの練習は接着剤の塗布の練習と言っても良いかもしれません。
 もちろん、それほど大きくないものなら、少しずつ爪楊枝とかで塗っていけば簡単なのですけども。

Luaでソート(手抜き)

 Luaでソートしたくなったので作ってみた

 ソート関数

function sort(array, compare)
 for i = 1, #array do
  for j = #array, i + 1, -1 do
   if compare(array[i], array[j]) < 0 then
    array[i], array[j] = array[j], array[i]
   end
  end
 end
end

 サンプル

function color_to_luminance(color)
 return(0.299 * (color.R or 0) + 0.587 * (color.G or 0) + 0.114 * (color.B or 0))
end

do
 local numbers = {
  10, 5, 8, 3,
 }

 print("---")
 for i = 1, #numbers do
  print(numbers[i])
 end

 sort(numbers, function(a, b) return(b - a) end)

 print("---")
 for i = 1, #numbers do
  print(numbers[i])
 end

 local colors = {
  { R = 255, G = 255, B = 255 },
  { R = 255 },
  { G = 255 },
  { B = 255 },
  { },
 }

 print("---")
 for i = 1, #colors do
  print((colors[i].R or 0) .. " " .. (colors[i].G or 0) .. " " .. (colors[i].B or 0))
 end

 sort(colors, function(a, b) return(color_to_luminance(b) - color_to_luminance(a)) end)

 print("---")
 for i = 1, #colors do
  print((colors[i].R or 0) .. " " .. (colors[i].G or 0) .. " " .. (colors[i].B or 0))
 end

end

 結果

10
5
8
3
---
3
5
8
10
---
255 255 255
255 0 0
0 255 0
0 0 255
0 0 0
---
0 0 0
0 0 255
255 0 0
0 255 0
255 255 255


 バブルソートなのであまり早くない。今回は要素数200未満を1回通せば終わるので、たぶん問題ない。
 第2引数に比較関数を渡さないといけない。このあたりは使い方次第なので各自工夫してください。

 Luaはswapが簡単にできたり、デフォルト値をorで簡単に設定できたりするので便利。インクリメントとかデクリメントとか演算代入が使えないのは不便だけど。^で累乗できたりするのは結構便利。math.powとか使わなくても済むので、数式的に見やすい。なれないとちょっと違和感あるけど。
 あとCらいくに戻った時にセミコロンを忘れるのが欠点らしい欠点か。

2018年1月5日金曜日

ペーパークラフト

 ペーパークラフトを作りたくなった。ので、印刷ツールを作った。




 ペーパークラフトを作りたくて、ペパクラデザイナーのライセンスも持っているのだが、SketchUpとは相性が悪く、新しいCADを導入するのも面倒くさい、ということで、簡単に印刷ツールを作ってみた。
 C#のPrintDocumentからLuaを呼び出して、Grahicsのラッパーを提供するプログラムを作った。これにより、図形をLuaで作ることができる。
 イメージとしてはPostScriptに似ているかもしれない。forや数学関数が使える点が特徴的かな。

 とりあえずAIM-120A/Bをモデルにしてみた。というか、AIM-120のプラモデルがほしいけど多分売ってないのでペーパークラフトで作ろうと思い至った次第。
 スクリプト言語ベースなので、同じような図形を配置するのはとても簡単。ボルトが60本ほどあるが、ボルトの形を書く関数を作れば、あとはforで配置できる。
 ただ、形状は全部自分で書く必要があるから、ノーズコーンみたいな、矩形で表現できない形状を追加するのは大変。1回処理を作ってしまえば、パラメータを変えて再利用できるのだが、抽象化がうまくできてないと流用できない。面倒。

 昨日あたりから初めて、1日かかってようやく印刷できるようになってきた。今は簡単な円筒と円錐だけで、安定翼や操舵翼は作っていない。それを追加すれば見た目は完全にAIM-120になるはず。
 5分の1スケールだけど、長さは73cmくらいある。そのくせ直径は3.6cmしかない。LD比20くらいで、APFSDSっぽい。図らずもほぼ実寸台のAPFSDSペーパークラフトになりそうだ。
 直径3.6cmだと、A8-3とか入れればそのまま飛ばせそう。ただしこの細長いのが座屈しないかという問題があるけど。印刷ツールのテストが目的なのでコピー用紙で作ったが、かなりフニャフニャ。でもちゃんと接着したらそれなりに強くなるかも。写真用紙みたいな厚紙なら、かなりの強度があるかも。
 3.6cmは持っててかなり頼りないので、3分の1とか2.5分の1くらいにしたい。でもそうすると全長が1mを超えてしまう。AIM-120ってデカいんだなぁと実感。でもAIM-54だと長さは同じ程度ながら、直径で2倍以上でかい。デカい。

 ペーパークラフトだけで言えば、あとはフィン8枚をつければそれで終りとなる。飛ばすわけじゃないから、エンジンブロックとかも必要ない。
 C#側の処理の流れがもうちょっとなんとかなりそうなので、こちらは作り直したいところ。でも今のプログラム向けのスクリプトもすでに700行を超えていて、これを新しいプログラム向けに書き直すのもいやだなぁ、と思っている。目論見どおりに、プログラムの効率化が進めばもっと少ないスクリプトで同じことができるはずなんだけど。

 とりあえず、AIM-120が形になったら、次はRIM-67あたりも作ってみたいなぁ。

2018年1月3日水曜日

フルカラーLED

 フルカラーLEDを使いたかったので、ちょっと調べてみた。
 今回はいつも以上に空想が多く含まれております。ご了承を。(訳:ちゃんとデータシート読まないでテキトーに考えてる)

 マイコン内蔵RGB 5mmLED PL9823-F5: LED(発光ダイオード) 秋月電子通商 電子部品 ネット通販
 安心と信頼のWS28系チップ内蔵品。FT232でPCから直接制御可能なことを確認済み(FT232 Invert)。マイコンでも容易に制御できる。

 マイコン内蔵RGB 5mmLED OST4ML5B32A: LED(発光ダイオード) 秋月電子通商 電子部品 ネット通販
 信頼と実績のオプトサプライ製。最初にデータシートを見た時、思わず「バカだろ!?」と言ってしまった。このデバイスは、いわゆる3値理論に基づいた信号が必要になる。日本語圏だと使ってる人いないっぽい?。

 RGBフルカラーLED 5mm OSTAMA5B31A アノードコモン (10個入): LED(発光ダイオード) 秋月電子通商 電子部品 ネット通販
 信頼と実績のオプトサプライ製。マイコン内蔵型ではないが、それに比べて輝度が20倍くらいある。とても明るい。


 使うならWS28系かOSTAMA5B31Aの2択だなぁ。3値は未知数すぎる。Low, High, HighZの3値が必要なので、STM32系からは扱いづらい。だからあれほどOpenDrain以外にOpenSourceも実装しろと(以下略。
 PICはHiZを作りやすい気がするけど、結局レジスタを叩くならSTM32でも良さそうだなぁ。STMでやるなら、外にトランジスタを2石置いて、2ピンで制御するのが妥当なところか。もしくは、10kOhmでプルアップして、OD直結でLow、ODに10kOhmで0.5VDD、オープンで1VDDを作るとか。こちらも結局2ピンが必要なのは同じ。マイコンの内蔵プル抵抗とか使えば1ピンで使えそうだけど、数十kOhmだから、高速な信号を通すのは厳しいかも。高速といってもmin5kBaudだけど。でもGPIOを中途半端な値で放置して大丈夫なんだろうか。一応STM32はシュミットトリガを通してはいるが。

 今回の用途は、できるだけ高輝度がほしいので、5B31Aかなぁ。20mAなので、マイコンに直結できる。DCで最大50mA流せるけど。フルカラーで使うと、STBee Miniなら5個くらいしか制御できない。TLC5940とかを使えばfloor(5.33...n)個を制御できるけど、実装面積が大きくなる。8chトランジスタアレイ1+n個を使えば16n個くらいは制御できそうだけど、パラレルバスで8+8n本くらいの配線が必要になるので、ちょっと面倒な気がする。
 狭いスペースに詰め込みたいので、そういう意味ではマイコン内蔵LEDはかなり魅力的なんだが。1.25mmピッチの8ピンSOPみたいなパッケージで、max150mAくらいまで流せて、SPIライクなバスで3x8bitの、アノードコモンとカソードコモンに互換性のあるドライバICとかがあれば良いんだけどなぁ。これなら既存のフルカラーLEDに追加できるし、最近流行りの液晶バックライトにも採用を見込めるし。いや、たかが3chでバックライト用途は無理だろうけど。

 なかなか思い通りにはいかないもんだなぁ。

2018年1月2日火曜日

NLua

 C#で簡単なスクリプト機能が欲しかったけど、自前で作るほどじゃないし、かと言ってC#のスクリプトを作るほどじゃないし、ということで、NLuaを試してみた。NuGetで入れれるけど、最新版でも14年10月と、かなり前に更新が止まってる。

 テストコード

double coefficient;

private void Button1_Click(Object sender, EventArgs e)
{
    using (NLua.Lua lua = new NLua.Lua())
    {
        lua.RegisterFunction("TDAM", this, typeof(Form1).GetMethod("to_double_and_multiply"));

        string lua_version = lua["_VERSION"] as string;

        coefficient = 1;
        double v1 = (double)lua.DoString("return(TDAM(\"123.456\"))")[0];

        coefficient = 2;
        double v2 = (double)lua.DoString("return(TDAM(\"123.456\"))")[0];

        double sin45deg = (double)lua.DoString("return(math.sin(45 / 180.0 * math.pi))")[0];
    }
}

public double to_double_and_multiply(string value_str)
{
    double value = double.NaN;

    if (double.TryParse(value_str, out value))
    {
        value *= coefficient;
    }
    else
    {
        value = double.NaN;
    }

    return (value);
}

 結果は、lua_version="Lua 5.2"(string), v1=123.456(double), v2=246.912(double), sin45deg=0.70710(以下略)(double)という感じ。
 内部ではLua5.2が動いていて、標準ライブラリは何もしなくても読み込まれて、関数の登録もできる。

 もしかしたらAny CPUじゃ動かないかも(未確認)。

 関数は引数の型が違うと呼び出せない。戻り値は適当に処理してくれるっぽいけど、要素数1のobject配列が帰る。戻り値がない場合はnullになる。Luaの言語的には複数の戻り値を持てるが、C#ではできないっぽい。スタックとか気にせずにC#側を書けるのは便利な気もする。オーバーロードはGetMethodの引数でできるっぽい。
 もちろんC#で書いた部分はVisual Studioのデバッガで見れる。
 Luaの広域変数はlua["value_name"]みたいにして取れる。
 広域変数はDoStringとかを繰り返しても初期化されないので、前回の実行時の変数とかを持ち越したくない場合は、都度インスタンスを作る必要がある。

 関数の登録以外は結構簡単に書けそう。

AIM-9X

 年末年始といえども、代り映えしないものですな。前回Mk41 VLSの話でちらっと出てきた「洪水」から、艦のダメコンの話でも書こうかと思ったけど、長くなりそうなのでキャンセル。興味がある人は空母フォレスタルでググってください。ナショジオの「衝撃の瞬間」とかも面白いよ。油火災の対応とかもある程度理解できます。空母事故も天ぷら火災も似たようなもんです。

***

 AIM-9Xについて。AIM-9は言わずと知れたミサイルであろう。
 AIM-9X Blk Iでは、対地攻撃能力(Sidewinder’s Surface Attack Capability)を持っている。AIM-9XにBlock Iという名称は見当たらないが、Block IIの前、という意味なら、最初の頃のAIM-9Xを指すのであろう。

 2010年3月と5月に行われたテストでは、キャプティブ弾を使った7回のテストと、実弾を使った6回のテストが行われ、内、実弾のテストでは4発が命中、1発が指定した目標とは別の目標のに命中し、1発はロックを失った、らしい。
 その前に行われた、2007年3月の試験では、米空軍F-15Cが移動する装甲兵員輸送車に対してAIM-9Xを発射し、これを破壊した。翌年2008年4月に行われた試験では、米空軍F-16がAIM-9Xを発射し、移動中のボートを沈めた。


 最近の攻撃ヘリコプター(e.g. AH-1Z、AH-64)はAIM-9を搭載可能だから、対地攻撃用のミサイル、あるいはその予備として、AIM-9Xを使うことができるかもしれない。もちろん、戦車を相手にするならAIM-9Xの弾頭では無理だろうが、ちょっとした装甲車や、非装甲目標なら問題ないはず。対空装備で待機しているF-15やF-16を対地攻撃の即応機として使うこともできるだろう。ま、それならM61で十分だろ、という気もするが。
 F-16のSEAD機はECMポッド、HTSポッド、2x AGM-88、2x AIM-120、2x AIM-9、2x 増槽といった構成になっているが、コストや機動性を無視すれば、この装備は対空戦闘にも、対地攻撃にも、防空網制圧にも、オールマイティーに使うことができる。
 フィクション的には、「早急に対地攻撃が必要になったが、対地装備の機体はないのか?」「AIM-9Xを搭載したスクランブル待機機が使えるぞ!」みたいな事もできるかもしれない。

***

 ミサイルの模擬弾には、完全なダミー(見た目だけ似てる)というのが一般的な「模擬弾」だろうが、実際にはイナート(Inert)と呼ばれるタイプと、キャプティブ(Captive)という2種類がある。イナート弾は外形と重量を模擬している。重量や重心は本物と同じ為、飛行訓練で使ったり、ミサイルの装填の訓練にも使用される。キャプティブ弾は、イナートに加え、いくつかの電子機器が追加されており、実際にロックオンを行い、発射ボタンを押すところまでの訓練ができる(発射ボタンを押しても発射はされない)。どちらも装薬されていない点は同じ。弾頭の炸薬や、推進剤等の火薬は入っていないため、火薬に関する(危険物としての)手順は省略して扱うことができる。
 ミサイルを装填する訓練を行う際は、本物のミサイルと同じ重さ・重心・形状で訓練する必要がある。しかし装薬や電子機器は必要ない。練習で使うため、落としたりぶつけたりする可能性もある。なので、危険な火薬や高価な電子機器は省略した物(イナート)を使う。戦闘機で飛行訓練を行う場合、単純に飛ばす訓練だけなら、ロックオンしたりする必要はないので、イナートを使う。ただし、電子機器が必要ないとはいえ、機体等とデータをやり取りする配線のコネクタが付いていたりはするが。
 一方、戦闘機の訓練で実際に撃墜の手順を訓練する場合、ロックオンを行う必要がある。AIM-120のような、中間誘導を行うミサイルの場合は、発射時にミサイルのロックは必要ない。しかし、AIM-9Mのような、発射前にロックオンが必要なミサイルの訓練を行ったり、AIM-120等でも中間誘導を使わずに発射する訓練を行う場合は、実際にロックオンを行うための電子機器が必要になる。また、ロックオンされた状態から逃げる、あるいは、ロックオンされないように逃げる訓練を行う場合にも、本当に正しい機動を行っているかを確認するのに、本物の電子機器が必要になる(敵が使うミサイルとは別のシステム、という問題はあるが)。この場合、追いかける方は、実際にロックオンが可能なキャプティブ弾を使用する。
 最近の軍用電子機器は高コストなので、形(と重さ)だけのイナートより、電子機器を搭載したキャプティブのほうが高価格になっている。はず。それでも本物のミサイルよりは格段に安いだろうし、火薬としての取扱も必要ない。

 最近、というか、夏頃によく行われていた、PAC-3の展開訓練では、よく見るとINERTと書いてある発射機を使っている(全て確認したわけではないから、場合によっては違うかもしれない)。展開訓練というのは、平時に部隊がいる場所から、迎撃予想地点まで移動するのにどれくらい時間がかかるか、どういった支障があるか(道路の凹凸は大丈夫か、支障になるような高架は無いか、雨で崩れそうな斜面はないか、カーブや交差点は通れるか)、といったことを調べるのが主な目的なので、実際に撃てるミサイルを持っていく必要はない。なので、安価なイナートを使う。もちろん、イナートだとしても、本物のミサイルと同様の扱いをしなければ、訓練としての意味が無いので、危険物(火薬)を運搬している、という認識を持つ必要はあるが。

 基本的に、INERTやCAPTIVEの場合は、ミサイル本体やキャニスターに水色の帯が書いてあり、場合によってはさらにINERTと書いてあったりするので、見ればすぐに分かる。このミサイルは安全か、慎重に扱うべきかを見分けるためのものだから、ひと目で分かるようにマーキングされている。基本的に、水色の帯がない場合は実弾として扱う。
 戦闘機に搭載するミサイルでは、弾頭に炸薬が入っていれば黄色の帯が、推進用のロケットに推薬が入っていれば茶色の帯が書いてある。どちらも危険物だから区別する必要はない気もするが、もしかしたら発射だけの訓練で使うための、炸薬抜きで推薬入りミサイルがあるのかもしれない。

 余談だが、航空自衛隊では、訓練を行う際は、毎回イナートやキャプティブに積み替えるようにしている。以前は、訓練をするたびにミサイルを積み替えるのは大変だからと、実弾で訓練を行っていたが、それで事故を起こしてしまったため。

***

Raytheon AIM-9X Block II Air/Air Missile | Defense Update:

***

/* ダメコンは長くなりそうだから、と思ってAIM-9Xの妄想を書き始めたのに、イナートとキャプティブで想像以上に長くなってしまった。。。 */


追記:2018/01/03

F-18C of VX-4 with 8 AIM-120 missiles in 1992

 この写真はF/A-18Cに10本のAIM-120と、2本のAIM-9を搭載しています。SRMはAIM-9Mあたり、MRMはAIM-120Aあたりでしょう。撮影されたのが1992年で、AIM-120の初期作戦能力が91年、フル生産が92年、米海軍の初期作戦能力が93年なので、この写真は海軍が採用試験を行っている最中に撮影されたものなのかもしれません。「こんなにたくさんのミサイルを搭載できますよ!たくさんの敵機が来ても安心ですよ!」みたいなデモンストレーションをしていたのかも。
 さて、上に書いたイナートと実弾の話ですが、この写真のAIM-120は、よく見ると、茶帯2本と黄帯1本のミサイルと、青帯2本のミサイルがあることがわかります。茶帯と黄帯が実弾、青帯がイナート(もしくはキャプティブ)なので、この写真では10本中3本が実弾、残り7本が模擬弾、ということになります。
 この写真では、青帯は茶帯の場所にしか書かれていませんが、最近のAIM-120の模擬弾では、黄帯の部分も青帯が書かれています。
 実弾と模擬弾を混ぜて搭載する理由は不明ですが、大量のミサイルを搭載して、本当に発射できるのか、といった試験を行っていたのかもしれません。ミサイルは重量的に搭載することができたとしても、上層部が「この組み合わせで飛行しても大丈夫」と文章にしない限り、実際に飛ばすことはできません。また、飛ぶことができたとしても、「この組み合わせでミサイルを発射しても大丈夫」としない限り、発射することはできません。例えばF-14はミサイルの試験中に「自分が撃ったミサイルが自分の腹に命中する」という事故を起こしています。こういう事が無いように、実際に試験をした組み合わせでなければ飛行/発射は許可されません。また、新型機の試験中に戦争が発生してしまった場合は、試験をある程度省略して許可を出す場合があります。例えばF-15Eは試験中に湾岸戦争が始まってしまい、応急的に兵器の使用許可を出していたようです。平時は事故が発生すれば莫大な損害が発生しますが、戦争中であれば、危険を犯してでも使ったほうが良い、という判断がされるようです。イージス艦のミサイルでも、製造上の問題が判明し、「平時の訓練では仕様を禁止するが、戦時に使うのは許可する」という運用が行われているものがあります。