🎯 02. モデル参照型適応制御(MRAC:Model Reference Adaptive Control)

⚠️ Mermaid図について
Website版ではMermaid図が表示されない場合があります。
正しく表示したい場合は GitHub版はこちら をご覧ください。


MRACは、制御対象(Plant)に対して理想的な動作をする「参照モデル」を設定し、
そのモデルに近づくように制御器のパラメータをリアルタイムに調整する、代表的な適応制御手法です。
MRAC sets an ideal “reference model” for the plant and updates controller parameters online so the plant follows the model.


🎯 学習目標 / Learning Goals

# 日本語 / Japanese English
1 MRACの基本構造と考え方を理解 Understand MRAC structure & idea
2 MITルールによる適応律の導出を説明 Explain update law via MIT rule
3 誤差を用いたゲイン更新の意味を理解 Understand error-driven gain updates
4 Pythonで簡単なMRAC実装 Implement a simple MRAC in Python

🎨 色分類ルール / Color Classification Rules

| 分類 / Category | 色 / Color | 用途 / Usage | |—————–|————|————–| | 入力信号 / Input | 黄色(Yellow) | 参照入力などの外部入力信号 | | モデル / Model | 青色(Blue) | 参照モデルなど理想挙動を定義するブロック | | 誤差信号 / Error | オレンジ色(Orange) | 出力とモデルとの差分 | | 制御器 / Controller | 紫色(Purple) | パラメータ可変の制御ブロック | | プラント / Plant | 赤色(Red) | 制御対象の物理システム | | 出力信号 / Output | 緑色(Green) | 実際の出力やモデル出力 |

🎨 色分類ルール / Color Classification Rules


⚙️ MRACの基本構成 / Basic Structure

flowchart TB
    R["r(t)"]:::input --> M["参照モデル M<br/>Reference Model M"]:::model
    M --> YM["y_m(t)"]:::output
    YM --> E["e(t) = y_m(t) - y(t)"]:::error
    E --> CTRL["可変制御器(θ)<br/>Variable Controller (θ)<br/>θ: 適応パラメータ"]:::controller
    CTRL --> U["u(t)"]:::input
    U --> P["プラント P<br/>Plant P"]:::plant
    P --> Y["y(t)"]:::output
    Y -.-> E

    %% Color definitions
    classDef input fill:#FFF3B0,stroke:#333,stroke-width:1px;
    classDef model fill:#A0C4FF,stroke:#333,stroke-width:1px;
    classDef controller fill:#BDB2FF,stroke:#333,stroke-width:1px;
    classDef plant fill:#FFADAD,stroke:#333,stroke-width:1px;
    classDef error fill:#FFD6A5,stroke:#333,stroke-width:1px;
    classDef output fill:#CAFFBF,stroke:#333,stroke-width:1px;

📘 例:1次系への適用 / Example to 1st-Order Plant

項目 / Item 数式 / Equation 説明 / Description
対象プラント / Plant $P(s)=\dfrac{k}{\tau s+1}$ $k,\tau$ 未知(安定・正系)
参照モデル / Ref. model $M(s)=\dfrac{1}{T_m s+1}$ 目標応答を規定

🧠 可変制御器(例) / Controller (example)

\[u(t)=\theta_1\,r(t)+\theta_2\,y(t)\]

🔁 MITルール / MIT Rule

項目 / Item 数式 / Equation
誤差 / Error $e(t)=y(t)-y_m(t)$
コスト / Cost $J(\theta)=\tfrac12 e(t)^2$
更新 / Update $\dot{\theta}_i=-\gamma_i\,e(t)\,\dfrac{\partial e(t)}{\partial \theta_i}$

📐 実装の注意 / Implementation Notes


📚 参考資料 / References


⬅️ 前節 / Previous: 01. 適応制御の概要
適応制御の基本概念と必要性を解説 / Introduction and necessity of adaptive control

➡️➡️ 次節 / Next: 03. ゲインスケジューリング
状態に応じたゲイン切替の手法 / Method of switching gains based on system state

📚 第3章 README / Chapter Top: 適応制御とロバスト制御
第3章の全体構成と教材一覧 / Overview and chapter contents