外乱オブザーバー (DOB) シミュレーター 戻る
制御工学シミュレーター

外乱オブザーバー (DOB) シミュレーター — PI 単独との外乱抑制比較

1 次プロセスへの入力外乱を、公称モデルと Q フィルタで推定して打ち消す外乱オブザーバー (DOB) の効果を、PI 単独制御と並べて可視化。Q フィルタ時定数とモデル誤差の影響を体感できます。

パラメータ設定
真のプロセスゲイン K_p
PI 比例ゲイン K_c
DOB フィルタ時定数 τ_Q
s
入力外乱大きさ d

プラント時定数 T_p = 5 s、公称モデル K_n = 2 / T_n = 5 s、PI 積分時間 T_i = 5 s、サンプリング dt = 0.05 s、シミュレーション時間 T_sim = 20 s。t = 0 で目標値 r = 1 をステップ印加し、t = 10 s で外乱 d をステップ印加します。

計算結果
PI 単独 ピーク偏差
DOB+PI ピーク偏差
偏差削減率
推定整定時間 (≈4 τ_Q)
出力 y(t) と外乱 d(t)・推定 d̂(t)・制御入力 u(t)

上段=出力 y(赤=PI 単独、青=DOB+PI、灰=目標 r)/中段=外乱 d(黒)と DOB 推定 d̂(緑)/下段=制御入力 u(赤=PI、青=DOB+PI)

理論・主要公式

1 次プロセス $G_p(s) = K_p/(T_p s + 1)$ に入力外乱 $d$ が加わるとき、公称モデル $G_n(s) = K_n/(T_n s + 1)$ を用いて外乱を推定するのが DOB です。

外乱推定(理想形と Q フィルタ形):

$$\hat{d}_{\text{raw}} = G_n^{-1}(s)\, y - u, \qquad \hat{d} = Q(s)\,\hat{d}_{\text{raw}}$$

$G_n^{-1}$ は不適切(improper)なので低域通過 Q フィルタ $Q(s) = 1/(\tau_Q s + 1)$ で実装可能化します。

最終的な制御入力(DOB+PI):

$$u = u_c - \hat{d}, \qquad u_c = K_c\, e + \frac{K_c}{T_i} \int e\, dt$$

離散実装では $\hat{d}[k] = (1-\alpha)\,\hat{d}[k-1] + \alpha\,\hat{d}_{\text{raw}}[k]$、ただし $\alpha = dt/(\tau_Q + dt)$。

外乱オブザーバー (DOB) シミュレーターとは

🙋
PI 制御だけでも外乱は最終的にゼロに収束するはずですよね。なぜわざわざ「外乱オブザーバー」みたいな仕組みを足すんですか?
🎓
ざっくり言うと、PI は「結果(出力誤差)を見てから動く」事後対応だからだ。外乱が入った瞬間に出力が偏差を持ち、その偏差を見て初めて積分項がじわじわ立ち上がって打ち消す。シミュレーターで「PI 単独 ピーク偏差」のカードを見てみて。デフォルト値で約 0.5 の偏差が出る。これは応答が遅いから避けられない。
🙋
なるほど。じゃあ DOB は何を見て先回りするんですか?
🎓
公称モデル $G_n(s)$ と実測出力 $y$ の差を見るんだ。プラントが予測どおりに動いていれば、入力 $u$ から計算したモデル出力と実測 $y$ は一致する。ずれていれば、その差は「未知の入力外乱が入っているせいだ」と解釈する。式で書くと $\hat{d} = Q(s)(G_n^{-1}(s)\,y - u)$。これを入力に $-\hat{d}$ として注入すれば、外乱を打ち消せる。
🙋
「DOB+PI ピーク偏差」のカードを見ると 0.09 くらいで、確かに 1/5 以下になってます!でも τ_Q を大きくすると効果が落ちますね。
🎓
$Q(s) = 1/(\tau_Q s + 1)$ は推定 d̂ のローパスフィルタだ。τ_Q が大きいほど推定が鈍くなり、外乱が来てから打ち消すまでの遅れが大きくなる。じゃあ τ_Q を限界まで小さくすればいいかというと、そうもいかない。実機ではセンサノイズや高次のモデル誤差があり、Q の通過帯域が広いとそれらまで増幅して発振する。「速さとロバスト性のトレードオフ」が τ_Q 設計の核心だよ。
🙋
真のゲイン K_p を変えてもモデル K_n = 2 のままなのに、DOB はちゃんと働いてますね。
🎓
そこが DOB の強みだ。K_p を 1〜5 まで動かしてみて——どの値でも DOB+PI は PI 単独より偏差が小さい。これは DOB が「実測とモデルのずれ」を等価的な外乱として扱うから、ゲイン誤差や軽い時定数違いも自動的に補償される。だから「ロバスト制御」の入門例として教科書でよく出てくるんだ。サーボモータの負荷トルク変動補償は、まさにこの仕組みで実装されている。

よくある質問

どちらも定常外乱を打ち消す効果がありますが、メカニズムが違います。積分動作は出力誤差を時間積分するため、定常偏差はゼロにできても外乱応答中は必ず偏差が発生し、ピーク値も大きくなりがちです。DOB は外乱そのものを推定して即座に打ち消すため、過渡時の偏差ピーク値を 1 桁近く小さくできます。実機では DOB と PI を併用するのが一般的で、PI が定常追従を、DOB が外乱抑制を担う役割分担になります。
基本構造は同じですが、$Q(s)$ の次数を $G_n^{-1}$ の不適切度に合わせて上げる必要があります。$n$ 次プラントなら $Q(s) = 1/(\tau_Q s + 1)^n$ のように分母次数を $n$ にしてプロパー化します。次数が上がると設計パラメータも増え、安定余裕の評価もより慎重になります。実装面では離散化精度(dt)と微分近似のノイズ感受性が問題になりやすく、状態空間表現や同次オブザーバー (UDE) など発展的手法と組み合わされることもあります。
あります。代表的な不安定化要因は (1) Q フィルタの帯域内に未モデル化高次ダイナミクスや時間遅れが入ること、(2) 非最小位相(右半平面零点)プラントへの適用、(3) センサノイズによる微分項の発振、です。シミュレーターで τ_Q を 0.05 など極端に小さくしても理想モデルなので不安定にはなりませんが、実機では Q の帯域は概ねプラント帯域の 1/3〜1/5 以下に抑え、必ずベンチで安定余裕を確認するのが定石です。
幅広く使われています。代表例として、油圧アクチュエータの摩擦・リーク補償、化学プロセスの未測定外乱補償、自動車のアクティブ振動制御、電源コンバータの負荷変動補償、無人機 (UAV) の風外乱補償などがあります。共通するのは「モデル化困難な外乱が頻繁に入り、かつ高速応答が要求される」用途で、外乱に対する事後補償(PI のみ)では性能が不足する場面です。近年はモデル予測制御 (MPC) や強化学習との組み合わせも研究されています。

実世界での応用

サーボモータ駆動系:DOB の最大の応用先は工作機械・ロボット・半導体露光装置などの高精度サーボ系です。負荷トルクの変動・摩擦・コギングトルクといったモデル化困難な外乱を、エンコーダ位置と公称モデルから推定して打ち消すことで、追従精度を 1 桁以上改善できます。マイクロメートル単位の加工精度や、ナノメートル単位のステージ位置決めには DOB が標準装備となっています。

ハードディスク・光ディスクのヘッド位置決め:HDD のヘッドサーボでは、ディスク振動や外部衝撃、空気流による外乱を DOB で抑制します。サーボサンプル間の高速応答が要求される領域で、DOB は線形 PID では届かない高い外乱抑制性能を提供します。同じ原理は光ピックアップのフォーカス・トラッキング制御にも展開されています。

電動パワーステアリング (EPS) と電動アクチュエータ:自動車の EPS では、路面凹凸からの反力やステアリングシャフトの摩擦が外乱となります。DOB によりこれらを推定・補償することで、運転者に伝わる不快な振動を抑え、自然な操舵感覚を実現します。同様に協働ロボットの関節アクチュエータでも、人との接触検知や安全停止のために DOB ベースの外力推定が活用されます。

プロセス制御と化学プラント:反応器の発熱・吸熱変動や原料組成変化など、計測困難な外乱が連続的に入る化学プロセスでは、DOB が PI 制御の補強として用いられます。特に温度制御や濃度制御で、ゲイン・時定数の経時変化を等価外乱として吸収する設計が一般的です。実装では IMC (内部モデル制御) フレームワークと組み合わせ、教科書的な PID 整定との互換性も保たれます。

よくある誤解と注意点

最も多い誤解は、「DOB を入れれば PI のチューニングは適当でよい」と考えてしまうことです。DOB は外乱抑制を担いますが、目標値追従や定常偏差の除去は依然として PI(特に積分動作)の仕事です。シミュレーターで PI ゲイン K_c を 0.1 に絞ってみてください。DOB を有効にしても立ち上がりは遅く、整定時間が長くなります。DOB と PI は競合ではなく役割分担で、両方とも適切に設計する必要があります。

次に多いのが、τ_Q を小さくすればするほど性能が上がると思い込むことです。シミュレーター上では τ_Q = 0.05 で偏差は最小になりますが、実機では Q の通過帯域内に入る測定ノイズや未モデル化ダイナミクスが急速に増幅され、発振やチャタリングを起こします。実装目安としては τ_Q をプラントの主時定数の 1/10〜1/30、あるいは目標サーボ帯域の 2〜3 倍以下から始めて、ベンチでステップ応答とランダム外乱応答の両方を確認しながら追い込みます。

最後に、DOB は「外乱の中身」を本当に知っているわけではない点に注意してください。DOB が推定するのは「公称モデル $G_n$ から見たときの等価入力外乱」であり、実物理的な負荷トルクそのものではありません。モデルゲインや時定数を変えれば推定値も変わります。シミュレーターで K_p ≠ K_n の状態(モデル誤差あり)にしたとき、d̂ の推定値が真値 d から少しずれているのはこの理由です。重要なのは「真の外乱を当てる」ことではなく「その推定が偏差抑制に有効である」ことで、DOB はあくまでロバスト制御の一手法と位置付けられます。