Proceeding

RTLinux を用いた磁気浮上システムの制御に関する研究
A Study on Control of Magnetic Levitation System using RTLinux
電気工学科 5 年 20 番 寺西由佳
2
磁気浮上システムと RTLinux
磁気浮上システムでの RTLinux の AD/DA 変換の役割は,
センサより得られた位置情報のアナログ電圧値をディジタル
変換することと, パソコン内のコントローラからの制御出力
(ディジタル) をアナログ変換することです.
本研究では, AD/DA ボード (Interface, PCI-360116) と
Red Hat Linux 9(カーネル 2.4.20), RTLinux 3.2 を用いて
います. 文献 [2, 3] の AD 変換及び DA 変換のサンプルプロ
グラムの構造を理解し, 実行することで動作確認をおこない
ます. サンプルプログラムでは, 1 件の AD 入力/DA 出力を
おこなうプログラムと関数を使い, 周期的なサンプリング及
びアナログ出力更新を実現しているプログラムの 2 つをおこ
ないます.
本研究では, これらの条件の下で, AD 変換から得られた値
と, それを DA 変換に送る間のコントローラ部のプログラム
を作成することです.
3
[問題点 2] 問題点 1 の式を導入した値が表示されない
→ [解決法] モジュール内で浮動小数点演算をするには関数
宣言が必要だと判明したので, 浮動小数点演算を許可する
pthread_setfp_np 関数を宣言し, その関数を仕様出来るよ
うにしました [4].
以上により, AD 変換データを直接 DA 変換データを出力
することができたので, 磁気浮上システムへ適用できるよう
に, AD 変換データをコントローラにより制御し, 計算値を
DA 変換してデータを出力できるようプログラムを変更し, 動
作環境を整え磁気浮上システムの実験をおこないました.
4
磁気浮上システムへの適用
正常動作確認のため, 位相進み−遅れ補償を用いたコント
ローラを作成し, シミュレーションを経て装置での実験をお
こないました. コントローラは次のように示されます.
«„
«
„
α2 (T2 s + 1)
T1 s + 1
, (α1< 1, α2 > 1)
K(s) = Kp
α1 T1 s + 1
α2 T2 s + 1
これを離散化し, RTLinux にプログラムとして記述しました.
ただし, 離散化は MATLAB を用いて 1ms のサンプリングで
おこないました.
Fig. 1, 2 にコントローラを実装した磁気浮上システムの
外乱応答を示します. 制御周期は 1ms でおこない, 1 秒後に
外乱が入力されています. Fig. 1 から制御周期が 1ms である
ことが確認できます. また, Fig. 2 から磁気浮上システムが
安定であることが分かります.
9.85
プログラムの作成
サンプルプログラムを参考にして磁気浮上システム制御に
適用するプログラムを作成します. 実験では連続制御が必要
なため AD 変換及び DA 変換において, 「アナログ入力デバイ
スから 1 件のアナログ入力データを取得する」AdInputADEx
関数を呼び出し 1 件の AD 入力を続けておこない, 「アナ
ログ出力デバイスの 1 件のアナログ出力を高速におこなう」
DaOutputDAEx 関数を使い周期的なサンプリング及びアナロ
グ出力更新を実現しています.
まず最初に, AD 変換より得た値を直接 DA 変換するプロ
グラムを作成しました. 出力はサンプルプログラム同様にオ
シロスコープでおこないました.
[問題点 1]AD 変換値値が数列 (2 進数) で表示され値が正確
か否か分からない
→ [解決法]AD 変換の分解能は 16 ビットのため, −10∼ +10V
が 0∼216 に対応している. よって, 以下の変換公式を用います.
x 10
−5
−3
1.5
x 10
1
9.8
y[m]
はじめに
リアルタイムシステムは, 実時間制約を伴う処理をおこな
うもので, 工場やプラントなどの制御装置をはじめとし, 身近
では音声や映像の処理を行う携帯電話などもリアルタイムシ
ステムといえます [1].
本研究では, リアルタイムシステムの一つとして RTLinux
を用いて磁気浮上システム構築のための AD/DA 変換を用い
たフィードバックコントローラを実装するためのプログラム
の作成をおこないます. 本稿では, RTLinux による AD 及び
DA 変換プログラムの概要とプログラム作成において問題と
なった点を示し, 磁気浮上システムへ適用します.
y [m]
1
指導教員 河合康典
9.75
0.5
0
−0.5
9.7
−1
9.65
0.112 0.114 0.116 0.118 0.12 0.122
t [s]
Fig. 1: 制御入力
5
−1.5
0
1
2
3
t [s]
4
5
Fig. 2: 出力偏差
おわりに
本研究では, RTLinux を用いて磁気浮上システム構築のた
めの AD/DA 変換を用いたフィードバックコントローラを実
装するためのプログラムの作成をおこないました. 磁気浮上
システムへ適用した結果, 一定の制御周期でフィードバック
コントローラを実装できていることが確認できました.
参考文献
[1] 日本の Linux 情報, http://www.linux.or.jp/
20
電圧値 [V] = 16 × 入力データ − 10
2
[2] Interface, RTLinux による AD ボード制御プログラミ
ング チュートリアル Ver. 1.5, Interface, 2005.
さらに, 実験で使用するセンサの値は −5∼5V が 0∼10mm
に対応しているため, 以下に示す変換公式を用います.
[3] Interface, RTLinux による DA ボード制御プログラミ
ング チュートリアル Ver. 1.4, Interface, 2005.
距離 [m] = (電圧値+ 5.0) × 0.001
[4] 森友一郎, RTLinux リアルタイム処理プログラミングハ
ンドブック, 秀和システム, 2000.