分割主鏡シミュレーター — パイロット版設計 I
岡山新技術望遠鏡グループ
平成 22 年 5 月 21 日

目次
1

概要

12仕様

12.1
2.2
2.3
3

設定項目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

122設計
3.1 定数定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22入出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
入力共有メモリデータ構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

233.2.2 設定共有メモリデータ構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3 出力共有メモリデータ構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

333

3.2

入力データ
出力データ

3.2.1

3.3

概要

1

分割主鏡の制御システムをどう構築するかの検討・検証のため、モデルシミュレーションが可能になるようなシミュレータを構築することを目的とする。
このパイロット版では、セグメントの動きを把握するという目的の元、与えられたアクチュエーターの位置に対する分割主鏡のパラメータ、および指定された位置に設置したギャップセンサーの値を出力するモジュールを作成する。

2仕様

2.1

設定項目

設定項目は以下のものがあげられる。
セグメントごとのギャップセンサー取り付け位置 ギャップセンサーを取り付ける位置をセグメントごとに指定できなければならない。最終的に全セグメントに対して同じ位置に取り付ける可能性はあるが、さまざまな仮想実験を行うために、全セグメントに対して任意個数の任意位置に設定できるようにしておくのが望ましい。
ギャップセンサーペアの対応関係 上の設定項目で設定されたギャップセンサーの配置に対して、一つのギャップセンサーを構成するような二つの取り付け位置を設定できるようにする。

1なお、本シミュレータでは上記二つの設定項目がコンシステントであることを確認することについては、ソフトウェアの仕様としては含まない。
ただし、上記で任意個数としている設定数について、ソフトウェアの設計を簡単にするために、それぞれ、取り付け位置については一つのセグメントに対して設定できる個数、ギャップセンサーペアの対応関係についてはギャップセンサー個数、のそれぞれについての上限を設ける。

入力データ

2.2

アクチュエーターの理想的原点に対する相対現在位置を本シミュレータの入力データとする。この理想的原点は、すべてのアクチュエーターが原点にある場合に鏡面が理想形状を実現するような点をいう。実際の望遠鏡においては SH/PCS系を利用して光学的にキャリブレーションを行った際に得られる点となる。

出力データ

2.3

出力は、セグメントの配置について計算できるすべてのパラメータを外部から参照できるようにする。これに当てはまるものを書き上げると以下のようになる。
背面に対する法線単位ベクトル
鏡面側の中心点における法線単位ベクトルに一致し、SH カメラで光学的に試験した場合に得られるデータに相当する。
全ギャップセンサー取り付け位置の z 値指定した取り付け位置について z 座標の値はデバッグ・チェックのために必要である。
全ギャップセンサーの出力値
シミュレーターの目的となる値である。

3設計

3.1

定数定義

望遠鏡の設定や、動作設定のためにいくつかの定数を定義している。これらの定数はすべて common.hh に記述されている。

divm1 sim segments 全セグメント数。通常 18 である。
divm1 sim ipc pos max 定義可能な全センサー固定位置の数。各セグメントに対しての固定位置であるので、ギャップセンサー一つに付き二つの固定位置が必要であることに注意。

divm1 sim ipc gap max 定義可能な全ギャップセンサーの数。センサー固定位置二つをペアにして一つのギャップセンサーを構成する。その組み合わせを定義する。

3.2

入出力

入出力はすべて IPC/SHM (共有メモリ) から読み出し、もしくはへ書き込みを行うことによる。
本パイロット版では、共有メモリを入力・出力・設定の 3 種類持つ。

2

3.2.1

入力共有メモリデータ構造

入力共有メモリは SHM_Actuator クラスが取り扱う。データは各セグメントごとに 3 個あるアクチュエーターの制御位置である。

double head value p1 セグメント内の 1 番目のアクチュエーターの制御位置。
double head value p2 セグメント内の 2 番目のアクチュエーターの制御位置。
double head value p3 セグメント内の 3 番目のアクチュエーターの制御位置。

3.2.2

設定共有メモリデータ構造

この共有メモリは SHM_SegConf クラスが取り扱う。データはセンサー固定位置とギャップセンサーの定義である。

size t valid pos count 定義されているセンサー固定位置の数。
unsigned char head seg 定義しているセンサー固定位置がどのセグメント上にあるかの定義。
double head value x センサー固定位置の x 座標。
double head value y センサー固定位置の y 座標。
size t valid gap count 定義されているギャップセンサーの数。
unsigned short gap id a ギャップセンサーを構成するセンサー固定位置一つ目。
unsigned short gap id b ギャップセンサーを構成するセンサー固定位置二つ目。

3.2.3

出力共有メモリデータ構造

この共有メモリは SHM_Segstat クラスが取り扱う。データは各セグメントに対する鏡面中心での単位垂線ベクトル、センサー固定位置の z 座標値、ギャップセンサーの値である。

double normal vector x 各セグメントに対する鏡面中心での単位垂線ベクトル x。
double normal vector y 各セグメントに対する鏡面中心での単位垂線ベクトル y 。
double normal vector z 各セグメントに対する鏡面中心での単位垂線ベクトル z 。
size t valid pos count 定義されているセンサー固定位置の数。
double head value z センサー固定位置の z 値。
size t valid gap count 定義されているギャップセンサーの数。
double gap value ギャップセンサーの値。

3.3

動作

シミュレーター本体はループを実行し続ける構成とし、あるタイミングでの共有メモリのデータを参照して演算した結果を出力用共有メモリに書き込む。
シミュレーターの補助プログラムとして、共有メモリのデータを参照するステータスモニター、およびアクチュエー
ター駆動のコマンドを発行するためのコントローラを提供する。

3