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.
© Copyright 2026 Paperzz