ロボットのような制御対象となるシステムには、静的システムと動的システムがあります。
この二つのシステムの違いについて説明したいと思います
合わせて、因果的システムと非因果的システムにも触れていきます。
静的システムと動的システムの特徴
静的システム(Static System)とは、
- ある時間tでの出力yがその時間の入力uと1対1で対応する
システムのことです。
一方、動的システム(Dynamic System)とは、
- ある時間tでの出力yがその時間の入力uのみではなく、
- 過去に入力してきた値や未来で入力する予定の値で決定する
システムのことを言います。
一般的に、静的システムの方が動的システムに比べて簡単に扱うことが出来ます。
静的システムとは
静的システムの出力値yは、現在の時刻tの入力値uのみで求められます。
例えば、
$$ y(t) = 10 u (t) $$
のように現在時刻tの入力値u(t)を10倍したものを出力値y(t)とするシステムや、
$$ y(t) = u (t)^2 + 5 u(t) + 3 $$
のように、現在の入力値u(t)の2乗の項(u(t)2)や定数項(3)と組み合わされたシステムも静的システムです。
上の2式は、時刻tでの入力u(t)で出力y(t)が計算出来ます。
静的システムは現在時刻の入力値のみを考えればよいので、過去や未来の入力情報を保存するためのメモリが不要です。
動的システムとは
動的システムでの出力値y(t)は、現在の入力値u(t)のみではなく、過去の入力値(u(t-1), u(t-2), …)や未来の入力値(u(t+1), u(t+2), …)を使って求められます。
例えば
$$ y(t) = 2 u (t) – u (t-1) $$
のように、現在の出力y(t)を現在時刻tでの入力u(t)と過去の時刻t-1での入力u(t-1)を組み合して決定するシステムや、
$$ y(t) = u (t) + 5 u (t+2) $$
のように、現在時刻tでの入力u(t)と未来の入力値u(t+2)を組み合わせて出力値y(t)も決定するシステムなどです。
動的システムでは、出力値を求めるために現在時刻に加えて過去や未来の入力値が必要となるため、これらの入力情報を保存するためのメモリが必要です。
因果的システムと非因果的システム
現在の出力y(t)を決定するために、現在の入力u(t)および過去の入力(u(t-1), u(t-2), …)から決定されるシステムを因果的システム(Causal System)と言います。
上の例でいうと、静的システムの
$$ y(t) = 10 u (t) $$
$$ y(t) = u (t)^2 + 5 u(t) + 3 $$
や、動的システムでの
$$ y(t) = 2 u (t) – u (t-1) $$
が因果的システムです。
一方、動的システムの2つ目の例で、現在と過去の入力のほかに未来の入力値(u(t+1), u(t+2), …)も使って現在の出力y(t)を決める例を紹介しました。
$$ y(t) = u (t) + 5 u (t+2) $$
この様な、出力を決定するために未来の入力値を必要とするシステムを非因果的システム(Non-causal System)と言います。
ロボットなどの機械制御をリアルタイムで行うときは、因果的システムを用いて制御を行います。
基本的に未来のことについて現在時刻tでは分からないためです。
リアルタイムでの制御が必要なではないときや、測定したデータを後で解析する際などは非因果的なシステムを用いることが出来ます。
まとめ
今回は、
- 静的システムと動的システム
- 因果的システムと非因果的システム
について説明しました。
次回は、線形時不変システム(LTIシステム)を取り扱いたいと思います。
自動運転車などの動的システムの自己位置推定についての記事はこちら