EduController

🧠 02. NN-PID制御:ニューラルネットによるPID補完制御

本章では、従来のPID制御にニューラルネット(NN)を組み合わせた
NN-PID制御(Neural Network-aided PID Control)について学びます。

PIDの堅牢性とNNの柔軟性を組み合わせることで、非線形系や外乱変動に強い制御が可能になります。


🎯 学習目標 / Learning Objectives


🔧 1. NN-PIDの構成

ベース:標準PID制御

[ u(t) = K_p e(t) + K_i \int e(t) dt + K_d \frac{de(t)}{dt} ]

NN-PID構成例①:NNによる誤差補正項

[ u(t) = u_{\text{PID}}(t) + f_\theta(e(t), \dot{e}(t), \int e(t) dt) ]

NN-PID構成例②:NNがPIDゲインを動的生成

[ K_p(t), K_i(t), K_d(t) = f_\theta(x(t))
\quad \Rightarrow \quad u(t) = K_p(t)e(t) + … ]

📌 いずれの方式も、NNは非線形性や時変性の補償に強みを発揮します。


🧠 2. 学習方法

学習方式 説明 メリット / 注意点
教師あり学習 最適入力データを教師にして回帰 安定・再現性高いが教師が必要
強化学習 報酬に基づき最適なNN制御則を学習 自律性高いが学習時間・安定性が課題
エンドツーエンド 時系列データから直接NNを学習 高精度だが訓練データ整備が必須

🧪 3. 実験構成と実装例

📦 実験構成例(倒立振子)

項目 内容
入力 $e(t)$, $\dot{e}(t)$, $\int e(t)dt$ 等
出力 制御入力 $u(t)$(モータトルクなど)
NN構成 MLP(多層パーセプトロン)またはLSTMなど
実装 nn_pid_control.py + train_nn_pid.ipynb

📊 4. 古典PIDとの比較

項目 PID制御 NN-PID制御
設計法 手動 / ゲイン調整 学習ベース(関数近似)
適応性 時間不変が前提 状態依存で動的に変化可能
実装難易度 高(学習・訓練が必要)
利点 安定・解釈性あり 非線形性・複雑系に強い

📘 今後の展開


📚 参考文献