プラズマ境界力学実験装置QUESTにおけるFPGA利用の現状紹介
九州大学応用力学研究所
長谷川真、QUESTグループ
於 核融合・加速器科学分野合同計測技術ワークショップ～計測システム開発の現状と新しい開発手法の可能性～
日程：2016年10月28日（金） 13:00 - 17:30
場所：核融合科学研究所（岐阜県土岐市）
シミュレーション科学研究棟１階会議室
http://openit.kek.jp/workshop/2016/nifs/main

1/27

内容
• QUEST装置の紹介• LabVIEW言語でのFPGA開発• FPGAの利用例• TFコイルの電気抵抗値監視• 磁気計測• プラズマの電子密度計測• トリガー遅延分配器• まとめ2/27

QUEST(Q-shu University experiment withsteady-state spherical tokamak)
HeightWidth
Vessel Radius
Vessel Height

Apr. 4, 2008

: ～6.6 ｍ: 5ｍ: 1.4 ｍ: 2.8 ｍ3/27

トロイダルフィールドコイル(TF Coil)

ポロイダルフィールドコイル(PF Coil)

QUEST装置

真空容器(Vacuum Vessel)

各コイルの作り出す磁場
PF CoilTF Coil

4/27

真空容器断面とプラズマ

プラズマ電流分布

磁場フラックス分布

5/27

内容
• QUEST装置の紹介• LabVIEW言語でのFPGA開発• FPGAの利用例• TFコイルの電気抵抗値監視• 磁気計測• プラズマの電子密度計測• トリガー遅延分配器
• まとめ
6/27

プログラミング言語LabVIEWによるハードウェア制御• グラフィカルプログラミング言語• グラフィカルユーザーインターフェースを作るのが容易• 様々なモジュールが提供されている。
(Real-time, FPGA, Vision, and etc.)

FPGA（field-programmable gate array）は、製造後に購入者や設計者が構成を設定できる集積回路であり、広義にはPLD（プログラマブルロジックデバイス）の一種である。現場でプログラム可能なゲートアレイであることから、このように呼ばれている。
(Wikipedia)

LabVIEW言語の例 ---「cal」ボタンを押すと答えが表示される。--グラフィカルユーザーインターフェース

グラフィカルプログラミング言語

7/27

QUEST装置でのLabVIEWによるハードウェア制御-------------- 多くの機能をLabVIEWを用いて実現 -------------LabVIEWで構成されたシステム例
中央制御システム
プラズマコントロールシステム
冷却水監視モニター
入退室監視盤
クライオポンプ遠隔監視と操作
遅延トリガー分配器
データ収集器TFコイル電気抵抗監視器

FPGA applications for real-time processing
Plasma density calculation with 50kHz using interferometer
Numerical integration with 100kHz for magnetic signals
Data acquisition using DMA FIFO
Digital low pass filter in noisy environment

Digital low pass filter described with LabVIEW FPGAetc.

8/27

LabVIEW言語で動作する機器の実装例（その１）ーー 入退室管理盤 ーー

入退室監視盤

入退室監視盤の中身入室する際には各自のトグルスイッチをONにする。

シャーシにモジュールを差し込んで構成

入室者の有無、及び入室者の名前をEthernetを通じて、中央制御システムへ連絡
中央制御システムは、入室者がいないことを確認した上で、プラズマの生成を開始する。

9/27

LabVIEW言語で動作する機器の実装例（その２）ーー プラズマ制御システム ーー
プラズマ制御システム：

プラズマ制御システム

計測器等の信号を受け取り、プラズマ等の状態を算出する。
算出結果に応じて、制御信号を周辺機器に送出する。

シャーシにEx.
モジュールを差し込んで構成 FPGAモジュール(8AI, 8AO, 96DIO)

シャーシにモジュールを差し込んで構成

現状、２つのシャーシをリフレクティブメモリで繋ぎ、一つのプラズマ制御システムとしている。
10/27

LabVIEW言語におけるFPGAの開発
ーー プラズマ制御システムを例にして ーー
自身の開発端末
１つ目のシャーシ

シャーシ内にあるFPGAボード群

FPGAボード配下のプログラム

２つ目のシャーシ
11/27

LabVIEW言語におけるFPGAの開発
ーー プラズマ制御システムを例にして ーー

FPGAを使用するには、①FPGA配下にプログラムを作成して実行する。
②初回の実行であれば、コンパイルが始まる。

12/27

LabVIEW言語におけるFPGAの開発
ーー プラズマ制御システムを例にして ーー

コンパイル中、または後に下のようなログが出力される。
• 概要
• 構成
• 予想デバイス使用状況（シンセシス）• 最終デバイス使用状況（配置）• 予想タイミング（配置）• 最終タイミング（経路決定）• Xilinxログ

13/27

LabVIEW言語におけるFPGAの開発
ー FPGAのプログラムを上位(CPUベース)から使用する際には、FPGAリファレンスを開く ー

FPGAの初期設定を行う

使い終わったらFPGAリファレンスを閉じる

FPGAリファレンスを開くFPGAを実行する。
実行している間のデータの送受

14/27

LabVIEW言語におけるFPGAの開発
ーー プラズマ制御システムを例にして ーー•

シャーシ配下のプログラムはCPUベース（Intel Core i7-820クアッドコア）のプログラムとして実行される。
プラズマ制御システムでのCPUベースのプログラム•••

シャーシ配下のプログラム•

各種設定ファイルの読込み
電圧信号の収集と物理量への変換• プラズマ由来の信号抽出処理• プラズマ位置の算出
etc.
制御量の算出と電圧信号への出力• コイル電流PID制御• 燃料供給フィードバック制御• 加熱パワー制御
etc.
データファイル等の出力など

15/27

LabVIEW言語におけるFPGAの開発
LabVIEW言語で記述している事柄• ハードウェアとの取り合い• DIO, AIO, Reflective memory, etc.
• グラフィカルユーザーインターフェース• Ethernetによる他機器との通信• 画像処理など

ーー プラズマ制御システムを例にして ーー
その他の事柄• Microsoft Visual Studioなどを用いて、C言語によるDLL(Dynamic Link Library)を作成して記述

2枚のAIOボードからのデータをDLLに送受する箇所
DLLを表すアイコン

16/27

内容
• QUEST装置の紹介• LabVIEW言語でのFPGA開発• FPGAの利用例• TFコイルの電気抵抗値監視• 磁気計測• プラズマの電子密度計測• トリガー遅延分配器• まとめ17/27

FPGAの利用例 ーTFコイルの電気抵抗値監視ー
電流フィーダーの接続部の経年劣化を監視するため、TFコイルの通電時における接続部の電位差を計測して、接続部の抵抗値を監視する。

TFコイルの電流フィーダー< 50kA

電流フィーダーの接続部
18/27

FPGAの利用例 ーTFコイルの電気抵抗値監視ー
留意点①微弱電圧を計測することになる。
中央制御

TF接続点

ΔV
電位差計測
DAQ

ΔV_max

接続点の電気抵抗： ～数μΩ
10kAの通電時の電位差：～数10mV

Itf_max
プラズマ制御システム②電位差計測DAQはシーケンスと連動する必要がある。（プログラミン
グが行える計測器）①コイル通電時のTFコイルの接続点の電位差を電位差計測DAQが計測②そのショット内の最大電位差を電位差計測DAQが中央制御に送出③そのショット内の最大TF電流値をプラズマ制御システムが中央制御に送出④中央制御は抵抗値を計算して、異常の場合は警報を発生させる。

電位差計測DAQ 19/27

FPGAの利用例 ーTFコイルの電気抵抗値監視ー
生データには、ノイズ成分が重畳されており、TFコイルの通電電流に由来する電位差が見積もれない。

251510••

50.04

00.03

TFコイルの通電電流
接続部の電位差

0.3

vol (V)vol (V)Itf (kA)

20

ポスト処理
1HzのLowPass デジタルフィルター処理

0.02
0.01

0.2

00.1-0.01-200-1001020time (sec)3040-0.1-0.2-20-1001020time (sec)

3040

FPGAを用いて、リアルタイムに、LowPass デジタルフィルター処理を行う。
20/27

FPGAの利用例 ーTFコイルの電気抵抗値監視ー
電位差計測DAQのインターフェース

LabVIEWによるデジタルローパスフィルター

𝑦𝑘 = 𝑎 𝑥𝑘 − 𝑦𝑘−1 + 𝑦𝑘−1

𝑦𝑘 : output sequence of numbers
𝑥𝑘 : input sequence of numbers（25kHz sampling, 1Hz digital low-pass filter）• RやCを使わないのでハードウェア構成がシンプルになる。
• 時定数などをすぐに変えられる。
21/27

FPGAの利用例 ー磁気計測ー
𝜙𝑉

従来○電子回路積分器を使用する方法
電子回路積分器

計測電圧

プラズマ制御システム

電子回路積分器を別途用意する必要がある。

𝑑𝜙 𝑉: 計測電圧
𝑉=−𝑑𝑡 𝜙: 磁束○CPUベースで数値積分を行う方法
計測電圧

プラズマ制御システム

計測電圧𝑉を時間積分して、磁束𝜙を求める。

積分間隔が数kHz程度であって粗い計測・計算になる。

磁束𝜙はプラズマの制御に用いられ、リアルタイムに求める必要がある。

FPGAを用いて、リアルタイムに高速サンプリングをして数値積分を行う。
22/27

FPGAの利用例 ー磁気計測ー現在の構成

LabVIEWによる数値積分
プラズマ制御システム

計測電圧••FPGAボード（100kHzの数値積分）

4kHz

プラズマ制御ソフトウェア（CPUベース）

FPGAボードにおいて100kHzの数値積分を行う。
プラズマ制御ソフトウェアは、その計測結果を4kHzで受け取り、プラズマの制御に用いる。

FPGAを用いることで、電子回路積分器を用いないシンプルな構成になり、かつ従来のCPUベースの計算に比べて、高速に計算が行えるようになった。
23/27

FPGAの利用例 ープラズマの電子密度計測ー
干渉計による電子密度計測

従来○CPUベースで位相の算出を行う場合

プラズマ
X, Y信号電磁波

プラズマ制御システム

密度の計算が数kHz程度で行われるため、位相の数え落しが生じることが懸念される。

X, Y信号から電磁波の位相を算出して、電子密度を計算する。

FPGAを用いて、高速サンプリングで位相を算出して、電子密度を計算する。

位相を求めるために必要な、所謂x(cos)信号と、y(sin)信号はハードウェアによって出力されているとする。

プラズマの電子密度をリアルタイムに算出して、制御パラメータの一つに加えたい。

プラズマ制御システム

X, Y信号FPGAボード（位相算出と電子密度計算）

4kHz

プラズマ制御ソフトウェア（CPUベース）
24/27

FPGAの利用例 ープラズマの電子密度計測ー
LabVIEWのFPGAで逆正接(ArcTan)を求める箇所

ルックアップテーブル

x(cos)信号とy(sin)信号の長さを規格化した後、ルックアップテーブルを用いて逆正接を算出。

•••

逆正接は、1025個のデータを持つルックアップテーブルを用いて算出
FPGAボードにおいて50kHz (max 76kHz)でサンプリング及び電子密度の計算を行う。
プラズマ制御ソフトウェアは、その計算結果を4kHzで受け取り、制御に用いる。

FPGAを用いることで、従来のCPUベースの計算に比べて、高速に計算が行えるようになり、位相の数え落としが低減された。
25/27

FPGAの利用例 ートリガー遅延分配器ー目的計測器等の各機器に、計測タイミング等を知らせるトリガーを任意の時刻に送出。

仕様• 40chのDO• マイクロ秒の精度• 0-7chは、シーケンスに応じて常にON• 他のchは、所定の時刻にトリガー送出

トリガー遅延分配器の設定画面

特徴• 40MHzの内部クロックをもつFPGAを用いてマイクロ秒の精度を実現• プログラミングによりチャンネル構成が可変 26/27

まとめ• 高速動作が求められる箇所にFPGAを使用している。
• ハードウェアをソフトウェアに置き換えることで、構成がシンプルになると同時に、変更・修正が容易になる。
今後• FPGAの、より高度な利用を推進する。

27/27