分割主鏡シミュレータ IV (波面誤差・PSF シミュレーター)
岡山新技術望遠鏡グループ
平成 22 年 9 月 24 日

目次
1 概要

12 仕様の定義

22.1
2.2

ギャップセンサー配置データ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3
2.4
2.5

オフセット初期値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
逆解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2222.6

PSF 出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
乱数生成器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 実装と利用方法

223. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.1
3.2

コマンドラインオプション一覧

3.33.43.5

乱数分布 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

乱数生成器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4444 添付ソフト
4.1 actuator-eps.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55test_segment_actuator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54.2

1

セグメント・アクチュエーターオフセット定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

概要
分割鏡動作パラメータの把握 I, II では、アクチュエーター制御量とギャップセンサー読み出し量の間の変換行列を求め、その特性を計算することでどのようなセグメントの変形モードが退化して判別できなくなるかの判定、もしくはギャップセンサーの配置の最適化を行えるような解析ソフトを作成した。シミュレーター III では、その解析のルーチンを流用し、実際に制御の際に行うような変換がどのような振る舞いを見せるかについて検証できるようなシミュレーションソ
フトを作成した。これは、アクチュエーターへのオフセットやギャップセンサー読み出しのノイズへの安定性の評価を行えるシミュレーターとなっている。
今回のシミュレーター IV では、実際にシミュレートした分割主鏡の波面ずれやその状態で得られるであろう PSF を出力することで、実際の像として、また視覚的に状態を把握できるシミュレーターを構築した。
シミュレーター III と IV との間の変更点は、PSF の FITS 形式出力の追加、及びそれに伴う内部のリファクタリング(主にモジュール化構成の変更) となる。

1

22

仕様の定義

2.1

ギャップセンサー配置データ

ギャップセンサー配置データは以前の特異値解析ソフトで定義したデータ形式に従うものとする。

2.2

出力

波面ずれや PSF のイメージを出力できるようにする以外は、シミュレーター III と同じシミュレーションを行う。
モンテカルロシミュレーション的に多数回モデル計算を繰り返し、各回でのギャップセンサーノイズとしての入力値と制御系へ渡す値であるアクチュエーター移動量についての統計量を出力する。出力する統計量は、各回のギャップセンサーノイズ値もしくはアクチュエーター移動量全体における平均値・分散・最大絶対値に対して、多数回の全試行での平均値と分散とする。また、これらのシミュレーションにおける、波面ずれと PSF を FITS 画像形式で出力する。
また、オプションで、アクチュエーターの個々の制御量を出力できるようにしておく。この出力値はノイズ入力があった場合に変換ルーチンの耐性の欠落から反応してしまう量といえる。アクチュエーター制御量の空間に変換した特異ベクトルとの内積を取ることで、制御残差がどのモードに依存しているかを判別することができる。

2.3

オフセット初期値

実機上では、アクチュエーターもしくはギャップセンサーが完全にゼロ点から駆動するということはありえないので、オフセット量を与えられる機構を追加する。
アクチュエーター駆動量からギャップセンサー読み出し値への変換は、望遠鏡画移動した際の望遠鏡主鏡セルの機械変形を考えなければ線形変換で表されることがわかっている。このため、アクチュエーター原点をゼロ点でない値に設定できるようにし、シミュレーターの入力となるギャップセンサーノイズに対してバイアスとして付加する。このとき、出力されたアクチュエーター駆動量は、理想的には元のアクチュエーター駆動量へのバイアス分がノイズへの応答に足された値になっているはずである。よって、このバイアス分を引いた入力・出力値をシミュレーター系の応答と解釈する。

2.4

乱数生成器

乱数生成器は、GNU Scientific Library のモジュールを利用し、各種アルゴリズムをコマンドラインオプションで選択できるようにする。
また、乱数の分布についても、一定分布、ガウス分布など各種の分布を同様に選択できるようにしておく。

2.5

逆解析

得られたアクチュエーター制御量を再度ギャップセンサー読みの値に変換し、制御量を適用した際にどの程度の残差が残るかを調査できるようにしておく。この残差については、各試行毎に平均・分散・最大絶対値を出力可能にしておく。

2.6 PSF 出力
PSF や波面ずれの出力は、FITS ファイルの拡張形式を利用し、1 つのファイルに複数イメージ HDU を入れた単一ファイルとする。

233

実装と利用方法

3.1

コマンドラインオプション一覧

コマンドラインオプションは 1 のようになる。短形式は’–’ を、長形式は’– –’ を前につける。なお、すべての長さを示す値は、mm 単位であることに注意1 。
表 1: コマンドラインオプション一覧
短形式

長形式

引数

既定値

設定内容

備考

セグメント・アクチュエーター関係

dideffile
inner

文字列

—

オフセット定義

—
—

ファイル名

内周リングを定義するかセグメント・ギャップセンサー関係

ssegment

文字列

ギャップセンサー定義ファイル—

必須

シミュレーター実行オプション

ccheck

—

—

elr

limit
loop
random数値

0.00011000
1数値
数値

逆解析を行う縮退とみなす特異値の閾値0 以下ですべて利用

ループ回数
ギャップセンサー用乱数の制御値

モジュールにより解釈が異なる

出力オプション

aoactuator
output文字列——

アクチュエーター制御量出力先

文字列

ppsf

文字列

—PSF 出力先 FITS ファイル名

verbose でのみ有効

特異ベクトル出力先
乱数生成器

ggenerator

文字列

mt19937

乱数生成器形式

mmethod

文字列

uniform

乱数分布形式
全般

3.2

hhelp

—

—

ヘルプ表示v

verbose——verbose オプション

複数つけるとレベルアップ

乱数生成器

すべて GSL で定義されているものそのまま。

mt19937 Mersenne Twister で、219937 − 1 の周期と 623 次元をもつ乱数生成器。
ranlxs0, ranlxs1, ranlxs2 RANLUX アルゴリズムの 24bit 乱数生成器。10171 の周期を持つ。
ranlxd1, ranlxd2 RANLUX アルゴリズムの 48bit 乱数生成器。
ranlux, ranlux389 オリジナルの RANLUX アルゴリズムの 24bit 乱数生成器。
cmrg
mrg
taus
1 シミュレーター III と異なり、内部表記・外部表記ともに mm で統一された。ただし出力時に特記のある出力フォーマットでは nm での出力も存在する。

34taus2
gfsr4

3.3

乱数分布

uniform 一様分布。制御値 γ に対して (−γ, γ) に一様分布する乱数を返す。
gaussian ガウス分布。制御値を標準偏差とする正規分布をなす乱数を返す。
exponential 指数分布。制御値 γ に対して exp(−x/γ)/γ に分布する乱数を返す。(ただし x > 0)
laplace ラプラス分布。制御値 γ に対して exp(−x/γ)/2γ に分布する乱数を返す。
()−1cauchy コーシー分布。制御値 γ に対して γπ(1 + (x/γ)2 )) に分布する乱数を返す。
rayleigh レーリー分布。制御値 γ に対して x/γ2 × exp(−x2 /(2γ2 )) に分布する乱数を返す。(ただし x > 0)

3.4

セグメント・アクチュエーターオフセット定義

セグメントの横ずれとアクチュエーターへの固定オフセットの定義ファイルは以下のようなファイル形式となる。

# ID bias:random:fix? bias:random:fix? bias:random:fix? move_x move_y
1 0.0001:0.00025:0 0.0002:0.00025:0 0.0003:0.00025:0 0.1 0.0
2 0.0001:0.00025:0 0.0002:0.00025:0 0.0003:0.00025:0 0.1 0.0
各行が一つのセグメントを示し、空白 (またはタブ) 区切りのオプションを並べる。オプションは先頭から次のように並ぶ。

• セグメント ID• セグメント中のアクチュエーター 1 の制御値 (内周側)• セグメント中のアクチュエーター 2 の制御値 (外周側、上から見て左)• セグメント中のアクチュエーター 3 の制御値 (外周側、上から見て右)• セグメントの x 方向 (動径方向) 横ずれ量
• セグメントの y 方向 (半径方向) 横ずれ量
なお、アクチュエーターの制御値は、’:’ で区切られた 3 つの値で構成され、それぞれ定数の固定バイアス、乱数をかけて加える固定バイアス、アクチュエーターを固定するかどうか、を示す。固定バイアスはシミュレーターのループ前に一度だけ初期化されるため、乱数値を指定しても、毎回のループで反映されるわけではない。また、3 つ目について、アクチュエーターは 0 で制御に利用、1 で固定される。
単位は全て mm 単位となるので注意。

3.5

出力

ラベルの後ろに値が二つついた形式の行が出力される。二つの値は、前が平均値、後ろが標準偏差となる。なお、すべての値は、nm 単位であることに注意。

Offset of actuat アクチュエーター制御値へのバイアス (オフセット)
Offset of gapsns ギャップセンサー値へのバイアス (オフセット)
Averge of input ギャップセンサー値への入力乱数の平均値
Sigma of input ギャップセンサー値への入力乱数の標準偏差45
Maxim of input ギャップセンサー値への入力乱数の最大絶対値
Averge of result 出力されたアクチュエーター制御値の平均値
Sigma of result 出力されたアクチュエーター制御値の標準偏差Maxim of result 出力されたアクチュエーター制御値の最大絶対値
なお、アクチュエーター制御値に変換する際に退化した特異値を 0 でつぶしている場合は、ギャップセンサー値の組に対応するアクチュエーター制御値は空間内で平面を構成するが、この逆変換ルーチンでは原点に最も近い平面上の値をとってきていることに注意。この場合、出力された制御値の平均はほぼ 0 に近づき、計算誤差によりその標準偏差が無効値になる場合がある。
出力 FITS ファイルは、5 つの HDU で構成され、最終のループの結果しか出力されない。ただし、内部的には毎回ファイルが上書きされるため、ループ回数が多い設定では、無駄なファイル IO の時間がかさむ。HDU の中身は以下のとおり。リファレンス波長は 1um、波面ずれの FITS 画像は生で 4mm/pixel、PSF 演算用で 4cm/pixel、PSF 画像の分解能は5.04mas となる。
• 1 (PHDU) : 補正前の入力アクチュエーター制御値・セグメント横ずれ量による波面形状• 2 : 有効開口面• 3 : PSF
• 4 : 補正後の波面ずれ量 (PSF 演算用変換後)• 5 : 補正後の波面ずれ量

4

添付ソフト

4.1 actuator-eps.pl
引数を一つもしくは二つとる。一つ目の引数は–a で出力されたアクチュエーター制御量のデータファイル名。二つ目の引数は表示における色の倍率で、アクチュエーター制御量にこの倍率をかけた値がカラーの濃さとして利用される。制御量プラスは青、マイナスは赤で表示される。
出力は EPS ファイルとして作成され、54 データごとに 1 ファイル、"データファイル名"."シーケンシャル ID".eps というファイル名で作成される。

4.2 test_segment_actuator
セグメント・アクチュエーター定義ファイルのパーサーテストプログラム。
シミュレーターのオプション f,g,m を解釈し、シミュレーターで利用するアクチュエーターの初期固定オフセット値のサンプルを出力する。
パースした結果をそのまま単純に表示するわけではないので注意。

5