木曜日, 6月 26, 2025
木曜日, 6月 26, 2025
- Advertisment -
ホームニューステックニュース時系列データとニューラルネットワークを用いたプラントモデリングとSim2Real強化学習による制御器設計 #AI - Qiita

時系列データとニューラルネットワークを用いたプラントモデリングとSim2Real強化学習による制御器設計 #AI – Qiita



時系列データとニューラルネットワークを用いたプラントモデリングとSim2Real強化学習による制御器設計 #AI - Qiita

 以下は,本手法におけるSim2Real強化学習の成果として,時系列データのみを用いて構築した制御器が回転型倒立振子を倒立制御する様子を示した動画です.

 制御工学を学び,様々な制御器(コントローラ)を設計している皆さん,Sim2Real強化学習やモデルベーストコントロール(MBC)などが登場している現代において,複雑な制御対象の数理モデル(物理モデル)を構築することが難しい場合や,そもそも構築自体が面倒くさいと考えたことはありませんか?

 そのため今回は,ディープニューラルネットワーク(DNN)を用いて,制御対象(回転型倒立振子)の時系列データからの数理モデルを構築してみようと思います.
また,図1のようにシミュレーション環境内の制御対象の数理モデルとして,DNNモデルを用いたSim2Real強化学習による制御器設計を行ってみようと思います.

スクリーンショット 2025-06-24 143501.png
       図1 シミュレーション環境を利用した強化学習での制御器設計法

実験環境
・Windows 11 home
・Matlab/Simulink 2022a (1. Deep learning toolbox 2. Reinforcement learning toolbox)
・Qunaser Qube-Servo2

コード
Github (準備中)

 今回使用する回転型倒立振子はQuanser社が販売しているQube-Servo2です.回転型倒立振子はモータ軸に取り付けられた回転アームを水平方向に回転させることにより,回転アームの先端に取り付けられた振子が運動します.
 図2は回転型倒立振子のシステム構成図です.PC(Matlab/Simulink)から電圧値を指令するとDAQを通してPWM信号が生成され,DCモータへ電圧 $V$ が印加されます.回転アームの基部(エンコーダ付きDCモータ)と振子の基部に取り付けられた2つのエンコーダにより,回転アームの角度 $\theta$ radと振子の角度 $\alpha$ radを検出し,DAQを通してPC上へ情報が送られます.
 なお,サンプリングタイムを10msと設定していますが,Qube-Servo2では最大で2msに設定可能です.エンコーダの分解能は2,048PPPとなっています.
スクリーンショット 2025-06-23 183347.png
              図2 回転型倒立振子システム

 本章では,回転型倒立振子に対する制御対象のモデリング手法として,DNNを用いたアプローチを紹介します.
 まず初めに,従来広く用いられてきた物理モデルと,近年注目を集めているDNNモデルの考え方の違いについて整理します(2.1節).その後,DNNによるモデリングの具体的な手順(2.2節)や,構築したモデルの予測性能に関する検証結果(2.3節)を通じて,両者の適用性や精度に関する比較を行います.

2.1 モデルの考え方の違い

2.1.1 物理モデルの特徴

物理モデルでは,物理法則などの基礎的な原理に基づいて運動方程式を導出し,システムの状態を予測します.付録
このようなモデルはホワイトボックスモデルに分類され,制御理論に基づいた解析や設計が可能です.
一方で,エンジンのような複雑かつ非線形な制御対象に対しては,モデルの構築が困難になる場合があります.
さらに,摩擦や外乱といった不確定要素に対応するためには,パラメータの同定など追加の手間が必要となります.

2.1.2 DNNモデルの特徴

DNNを用いたモデリングでは,観測された状態$x_k$と操作量$u_k$の履歴から,次の状態を直接予測する関数を学習します.そのモデルは次のように表されます:

$$
x_{k+1} = f_\theta(x_k, u_k) \quad (1)
$$

ここで:
・$x_{k+1} \quad \text{(DNNが予測する次時刻の状態)}$

・$f_{\theta}(\cdot) \quad \text{(パラメータ } \theta \text{ を持つニューラルネットワーク)}$

 このアプローチは,非線形性や未知の外乱をデータから学習して取り込むことができ,モデル構造に高い柔軟性を持つという利点があります.一方で,ブラックボックスモデルであるため,制御理論に基づいた設計や挙動の解釈が難しく,また,モデルの予測性能が学習データの質や量に大きく依存するという課題もあります.

2.2 モデリング方法

モデリング方法としては図3に示すように3ステップで行います.
ステップ1では,DNNの学習を行う際に必要となる教師データを取得します.教師データはシステムの挙動を表現するため,システムに任意の入力を与えたときの挙動を時系列データとして取得します.
ステップ2では,取得した時系列データをDNNが学習させるために正規化などの前処理を行います.
ステップ3では,DNNモデル構造の構築を行い,そこに教師データを用いて学習させます.

スクリーンショット 2025-06-23 195654.png
          図3 DNNを用いた回転型倒立振子のモデリング方法

STEP 1: 時系列データの取得方法

 教師データとなるシステムの時系列データ $s_t$ を図4の電圧印加方法によって取得します.
回転アームの角度 $\theta$ が $-70^\circ$($\frac{-7\pi}{18}$ rad)~$70^\circ$($\frac{7\pi}{18}$ rad) の範囲においては,振幅 5V で周波数 0.5Hz の正弦波電圧を印加させます.$|\theta|$ が $70^\circ$ を超えるような場合は,$\theta$ を $0^\circ$ 方向へ戻す電圧を印加させます.
 このとき,印加電圧 $V_t$,回転アームの角度$\theta_t$,回転アームの角速度 $\dot{\theta}_t$,振子の角度$\alpha_t$,振子の角速度 $\dot{\alpha}_t$の5次元を時系列データ $s_t$として取得します.

スクリーンショット 2025-06-23 202555.png
         図4 システムへの印加電圧と時系列データの取得方法

 図4のような電圧を印加させてあげると図5のように回転アームと振子は様々な状態を作り出すことができます.特に倒立制御で必要となる振子の角度$a$が0(rad)付近の状態も取得できていることが確認できます.(動画でも確認できます)
この時系列データを600,000個(100分間)取得しました.なお,サンプリングタイムは10msです.

以下は時系列データ取得中における回転型倒立振子の様子を撮影した動画になります.

スクリーンショット 2025-06-23 205130.png
             図5 実際の印加電圧とシステムの挙動

STEP 2: 学習データとなる時系列データの前処理

 取得した時系列データをDNNモデルの学習に使用するため,データの正規化を行います.振子の角速度$\dot{\alpha}_t$ はMin-Max法によって正規化を行います.
 時系列データを取得した際,回転アームの角度$θ_t$と振子の角度$a_t$は単位円とした極座標によって表現されています.しかし,極座標表現はある角度において,値がジャンプしてしまう特徴があり,時系列データの中にジャンプが存在していると学習が上手くいきませんでした.そこで,図6のように角度を2次元で表現する直交座標によって-1~1への正規化と角度の連続化を行っています.
スクリーンショット 2025-06-23 215335.png
          図6 角度の直交座標表現例
したがって,正規化前の時系列データ$s_t$は次式の5次元で表されますが,

$$
s_t = [V_t,\ \theta_t,\ \alpha_t,\ \dot{\theta}_t,\ \dot{\alpha}_t]^\mathrm{T} \quad (2)
$$

正規化後の時系列データ$s_t$は次式のように7次元に拡張されます.

$$
s_t = [V_t,\ \theta_{yt},\ \theta_{xt},\ \alpha_{yt},\ \alpha_{xt},\ \dot{\theta}_t,\ \dot{\alpha}_t]^\mathrm{T} \quad (3)
$$

STEP 3: DNN構造とハイパラメータの設定

 図7は回転型倒立振子の挙動を予測するDNNモデル構造です.DNNの入力には現在の状態$s_t$となります.出力にはシステムの挙動を予測するため,1ステップ後の状態$s_{t+1}$となります.中間層では2層とも200個のニューロンを使用しており,活性化関数にはReLUを使用しています.なお,予測時には直交座標表現から極座標表現に再変換しています.
スクリーンショット 2025-06-23 220853.png
         図7 回転型倒立振子の挙動を予測するDNNモデル構造

 ハイパラメータなどの学習の設定を表1に示します.取得した600,000個の時系列データのうち,教師データに70%,検証データとテストデータに15%を振り分けています.

               表1 学習データの設定
スクリーンショット 2025-06-24 123838.png

2.3 モデルの予測精度を検証

 学習したDNNモデルの性能評価を行うため,図8のように既存の物理モデルと予測精度の比較を行いたいと思います.初期状態$s_0$を同一に設定して,電圧$V$をDNNモデル,物理モデル,実際のシステムに印加し,それぞれが予測する状態$s_{t+1}$をもとに予測精度を比較します.なお,物理モデルの詳細は付録をご覧ください

スクリーンショット 2025-06-24 125910.png
         図8 DNNモデルと物理モデルの予測精度の比較方法

検証結果
 図9にDNNモデルと物理モデルの予測精度の比較結果を示します.RMSEより,DNNモデルは物理モデルよりも高い予測精度を示していることが分かります.
 その要因として,DNNモデルは実際のシステムから取得したデータを基にモデリングされているため,摩擦やモータ特性などのパラメータがモデル内部で実際のシステムに近い形で表現されていると考えられます.
 例えば,回転アームの角速度において,0.4 s~0.8 sの間では,物理モデルが実際の挙動とは異なる動きを示しているのに対し,DNN モデルは実際の挙動とほぼ同じ動きを再現しています.さらに,1.2 sの時点では,物理モデルが過剰に反応する挙動を示している一方で,DNN モデルは過剰な反応を示していません.
 なお,物理モデルでは,使用している物理パラメータをパラメータ同定によって決定したのではなく,製造元の特性表を参照して設定しています.このことから,DNN モデルでは摩擦などの影響がモデル内部で適切に反映され,結果として物理モデルよりも高い予測精度を実現できたと考えられます.以上により非線形表現が可能な DNN を用いてモデリングを行うことで,時系列データからシステムの挙動(予測)が可能であるとわかりました.

スクリーンショット 2025-06-24 130510.png
               図9 予測精度の比較方法

 図10のようにSim2Real強化学習を利用して,回転型倒立振子の倒立制御を行うコントローラを設計してみたいと思います.その際に,制御対象の数理モデルとして物理モデルDNNモデルを使用した場合の2種類の制御器を設計し,数理モデルの違いによる倒立制御の結果を比較してみたいと思います.なお,強化学習及び,パラメータ設定はQuanser社が作成しているMatlab/Simulink環境を使用しました.このパッケージではアルゴリズムとしてDeep Deterministic Policy Gradient(DDPG)を用いており,出力(印加電圧$V$)を連続値で扱えるという特徴があります.

こちらに詳しい説明が記載されています.
第7回 今更だけど基礎から強化学習を勉強する DDPG/TD3編(連続行動空間)

スクリーンショット 2025-06-24 132721.png
       図10 Sim2Real強化学習による回転型倒立振子の倒立制御器設計

本節では,シミュレーションで強化学習した制御器を実世界のシステムに適用して倒立制御を行った結果になります.倒立制御を行っている動画と状態をプロットしたグラフがあります.

3.1.1 物理モデルを使用した場合

スクリーンショット 2025-06-24 133641.png

     図11 物理モデルを使用した強化学習で設計した制御器による倒立制御

3.1.2 DNNモデルを使用した場合

スクリーンショット 2025-06-24 133719.png

     図12 DNNモデルを使用した強化学習で設計した制御器による倒立制御

 図11に物理モデルを使用した場合の実験結果,図12に DNN モデルを使用した場合の実験結果となっています.印加電圧を見ると,DNN モデルよりも物理モデルの方が収束した波形を示していることが分かります.
 また,振子の角度に関しては,物理モデルではほぼ 0 radで倒立状態を維持しているのに対し,DNN モデルは-0.025 rad~0.025 radの範囲で倒立状態を維持していることがわかります.
 したがって,倒立状態を維持する制御器としての性能の観点からでは,物理モデルの方が少ない電圧(エネルギー)で安定した倒立を実現しており,物理モデルを用いた制御の方が優れている結果となってしまいました.

 本手法では,制御対象の数理モデルとして DNN を用いたモデリング手法を提示し,既存の物理モデルよりも高い予測精度を示すことができました.
 さらに,DNN を制御対象の数理モデルとして採用したシミュレーション環境を活用し,強化学習による制御器設計が 可能であることを示しめすことができました.これは,ロボットや情報システム,金融システムなど,既存の数理モデルでは構築が困難な実世界のシステムにおいても,時系列データを取得することで制御器設計が可能となる可能性を示唆することができます.
 一方で課題として,強化学習において制御対象の数理モデルとして DNN モデルを使用した場合よりも,既存の物理モデルを使用した方が性能の高い制御器を設計可能が確認されました.したがって,より性能の高い制御器を設計するためには,多様な時系列データの収集を行い,モデルの精度向上を図ることが重要となります.さらに,DNN モデルを用いたさまざまな強化学習手法による制御器設計の検討が今後の課題となっています.
 最終的には,時系列データから何らか制御を行う手法として,DNN モデルを制御対象の数理モデルとしたシミュレーション環境を活用した強化学習による制御器設計手法の一般化を目指し,さまざまな分野への応用を図ることが本手法の最終的な目標です.

最後まで読んでいただき誠にありがとうございました.

回転型倒立振子の運動方程式
 図13に示す回転型倒立振子の物理モデルは古田振子の一般的な運動方程式を用いて表すことができます.
導出過程はこちらのサイトをご覧ください
LEGO 部品を利用した回転型倒立振子のレシピを公開!(第 3 回:運動方程式 ー MATLAB / Symbolic Math Toolbox)

スクリーンショット 2025-06-24 150045.png
              図13 回転型倒立振子モデル

まず,印加電圧$V$により発生する回転トルク$\tau$は次式で表されます.

$$
\tau = k_t \left( \frac{V – k_m \dot{\theta}}{R_m} \right) \quad (4)
$$

回転トルクは印加電圧に比例して増加し,回転アームの角速度$\dot\theta$と逆起電力定数$k_m$の情報による逆起電力により減少します.
次に,ラグランジュの運動方程式を基に得られた回転型倒立振子の運動方程式を次式に示します.

\begin{cases}
\left(J_r + m_p L_r^2 + J_p \sin^2 \alpha \right)\ddot{\theta} 
+ \left(m_p L_r l_p \cos \alpha \right)\ddot{\alpha}
=  \\
\;     \tau - 2 J_p \dot{\theta} \dot{\alpha} \sin \alpha \cos \alpha
+ m_p L_r l_p \dot{\alpha}^2 \sin \alpha
+ - c_r \dot{\theta}\\
\left(m_p L_r l_p \cos \alpha \right) \ddot{\theta}+ J_p \ddot{\alpha} = \\
\;     J_p \dot{\theta}^2 \sin \alpha \cos \alpha + m_p g l_p \sin \alpha - c_p \dot{\alpha}
\end{cases}  
\quad (5)

なお,物理パラメータは製造元Quanserが公表している特性表を参照しています.

         表2 回転型倒立振子システムの物理パラメータ
スクリーンショット 2025-06-24 145939.png





Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -