連続時間システムの離散化
物理法則に基づいて制御対象の特性を表現すると、しばしば制御対象は微分方程式の形で表現され、連続時間表現の枠組みで扱うことになります。一方で、制御器を実装する際には、短い時間ではありますが、離散ステップごとに制御入力を演算し、それを対象に印加する形になるため、離散時間系としての表現を用いることになります。このようなことを鑑みると、連続時間系と離散時間系との間の関係を、設計者の状況に合わせて使い分けれた方が都合が良いです。連続時間の伝達関数は を変数とするのに対して、離散時間ではシフトオペレータ を利用します。
一方で、連続時間系と離散時間系の関係については、教科書レベルでさまざまな方法が書かれています。その中でも、変換としては双一次変換が有名です。
- 連続時間システムの離散化
- 連続時間システムと離散時間システムの間の関係について
- 連続時間信号と離散時間信号
- パルス伝達関数によるシステム表現
- パルス伝達関数の定義
- パルス伝達関数の導出
- パルス伝達関数の応用
- パルス伝達関数の計算例
- 状態空間表現によるシステム表現
- 離散及び連続システムの係数間の関係
- 関連記事
- 関連書籍
- 関連記事
連続時間システムと離散時間システムの間の関係について
制御を行う際、物理現象に従う制御対象を制御したい場合には、制御対象は連続時間システムとして記述されます。連続時間システムに対する制御手法は、周波数領域に基づいた設計手法や(状態方程式を用いた)時間領域に基づいた設計手法など、多くの手法が存在します。そのため、多くの場合、制御系が与えられると、それに対して妥当な制御則を得るための手法は見つけられるといえます。
しかしながら、得られた制御則を実装することは、制御則が複雑になればなるほど難しくなります。特にアナログ回路を用いて制御するような場合には、実装できるコントローラの次数などに限りがあり、コントローラの状態を自由に設定できないため、理論に対応した結果が得られない場合があります。
それに対して、コンピュータの進化に伴い、コントローラ出力(制御対象への入力)の計算にコンピュータを用いることが多くなされています。これらは、離散時間システムとして制御対象を捉えてコントローラを設計し、それを実装するパターンと、連続時間システムとして設計したコントローラに近い離散時間のコントローラを設計する場合の2種類に分かれます。しかしながら、どちらにも得手不得手があります。
一方、連続時間システムを制御対象として設計する場合、制御周期(制御のサンプリング間隔)が長くなると実際の制御性能が大幅に劣化する場合があります。これに対して、サンプル時間が短いほど、連続コントローラを用いた場合の応答と離散コントローラを用いた応答とが近くなります。
離散時間システムを制御対象として設計する場合、時間の刻み幅を小さくすると、連続時間システムが不安定零点を持っていなくても、離散時間システムに不安定零点が現れることがあります。さらに、短すぎるサンプル時間ではそのサンプリング間隔の変動が生じる場合に制御系も不安定化しうるという問題もあります。
制御周期を変更すると、それに伴って離散時間システム表現された対象の特性が変化するため、設計をやり直す必要があることも、離散時間で設計する場合に生じる問題の一つです。
システム伝達関数のにおける状態を示したものを周波数応答と呼びます。ここでは伝達関数について述べないので詳細は省略します。連続、シフト形式、デルタ形式でそれぞれ演算子が異なります。
注意:制御則とは、得られた情報を用いて入力指令値を定めるための決め方のことであるため、コントローラで得られた制御則を実装できるかどうかは別に考えなければなりません。
連続時間信号と離散時間信号
連続と離散の信号はそれぞれ次のように定義されます。
- 連続時間信号は、いかなる時間においても存在し、全ての時刻で定義できる信号である。
- 離散時間信号は、とびとびの時刻で存在し、その時刻以外では定義されない信号である。
これら二つを結びつける動作として、サンプリングとホールドがあります。サンプリングとは、連続時間信号をある時間間隔で観測し、離散時間信号を作ることを指します。このときの時間間隔をサンプリング周期といい、その逆数をサンプリング周波数と呼びます。一方、ホールドは離散時間信号を連続時間信号に戻す操作を指します。その方法の一つとして、ゼロ次ホールドがあります。ゼロ次ホールドは、ある時刻から次の時刻まで、あるサンプリング時間での値を保持し、階段状の連続時間信号にすることを指します。
一般に、連続時間信号をサンプリングして離散時間信号にしたものを、ホールドして連続時間信号に戻しても、元の連続時間信号に戻すことはできません。サンプリングやホールドには、サンプラー回路やホールド回路という装置が用いられます。サンプラーは、サンプリング時刻ごとの値を連続時間信号から取り出す回路であり、ホールド回路は、サンプリング時刻で与えられた信号値を次のサンプリング時刻まで保持するための回路です。
パルス伝達関数によるシステム表現
パルス伝達関数(Pulse Transfer Function)は、離散時間システムの入力と出力の関係を周波数領域で表現するために用いられる数学的なツールです。これは、連続時間システムの伝達関数に対応するものであり、サンプルデータやデジタル制御システムの解析と設計において非常に重要な役割を果たします。
パルス伝達関数の定義
パルス伝達関数は、離散時間システムにおけるシステム入力と出力の間の関係を表す伝達関数で、通常は変換を用いて定義されます。連続時間システムのラプラス変換を用いた伝達関数が で表されるのに対して、パルス伝達関数は で表されます。ここで、 は離散時間システムにおける複素変数です。
パルス伝達関数の導出
パルス伝達関数は、連続時間システムの伝達関数から次のように導出されます。まず、連続時間システムがサンプリングされることで、入力と出力が離散化されます。このとき、連続時間システムの伝達関数 に対して、サンプリング周期 を用いて以下の関係が成り立ちます。
\begin{equation} G(z) = \mathcal{Z}\left[ \mathcal{L}^{-1}\left[ G(s) \right] \Big|_{s = \frac{1}{T_s} \ln(z)} \right] \end{equation}
ここで、 はラプラス変換、 は逆ラプラス変換、 は変換を示します。この変換により、連続時間システムの特性を離散時間システムに適用することが可能になります。
パルス伝達関数の応用
パルス伝達関数は、デジタル制御システムの設計や解析において広く使用されます。例えば、離散時間システムの安定性解析、デジタルフィルタの設計、システムの応答解析などがその代表例です。特に、サンプリング定理や平面上での極・零点配置を理解するために重要なツールです。
また、連続時間システムとデジタル制御システムの関係を理解するためにも役立ちます。例えば、連続時間システムをデジタル制御システムに変換する際には、まず連続時間の伝達関数をパルス伝達関数に変換し、さらにそのパルス伝達関数を用いてデジタルフィルタやコントローラを設計することが行われます。
パルス伝達関数の計算例
簡単な例として、連続時間システムの伝達関数が次のように与えられているとします。
\begin{equation} G(s) = \frac{1}{s+1} \end{equation}
このシステムをサンプリング周期 でサンプリングした場合のパルス伝達関数 は次のように計算されます。
まず、逆ラプラス変換を求め、その後、変換を適用します。
\begin{equation} G(z) = \mathcal{Z}\left[ \mathcal{L}^{-1}\left[ \frac{1}{s+1} \right] \Big|_{s = \frac{1}{T_s} \ln(z)} \right] = \frac{1 - e^{-T_s}}{z - e^{-T_s}} \end{equation}
この結果から、サンプリング周期 に依存したパルス伝達関数が得られます。この関数は、デジタルシステムの特性を解析するために使用されます。
状態空間表現によるシステム表現
連続時間システム
連続時間システムの状態空間表現は次式で与えられます。
\begin{eqnarray} \dot x(t) &=& Ax(t)+Bu(t) \\y(t)&=&Cx(t)+Du(t) \end{eqnarray}
は時間であり、、、はそれぞれ時間の関数です。物理システムの多くは連続時間システムで表されます。このとき、の応答を入力を適切に決めることで所望の形にすることが、一般的な制御の目的となります。
離散時間システム
従来よく用いられる離散時間システムの状態空間表現は次式で与えられます。
\begin{eqnarray}\label{siki12} x[k+1]&=&A_s x[k]+B_s u[k]\\ y[k]&=&C_s x[k]+D_s u[k]\nonumber \end{eqnarray}
ただし、、、です。次のサンプリング時刻での状態が前の時刻の状態と入力によって表される表現形式であるため、状態の推移を表した形式としてシフト形式とも呼ばれます。
また、連続時間と離散時間の関係を表すのに適した表現形式としてデルタ形式もあります。デルタ形式は
\begin{eqnarray}\label{siki13} \frac{x[k+1]-x[k]}{\Delta}&=&A_d x[k]+B_d u[k]\\y[k]&=&C_d x[k]+D_d u[k]\nonumber \end{eqnarray}
で表されます。ただし、、、の次元はシフト形式の場合と同じです。このとき、デルタ形式で表されるシステムは、前進差分での表現となっているため、(秒)進む際の状態ベクトルの変化量を表しています。デルタ形式離散時間システムは、の極限では連続時間システムに一致します。
そのため、連続時間と離散時間との関係を表すためには、適した表現形式であると言われています。本稿では概略の理解のために1入力1出力のシステムを考えています。
離散及び連続システムの係数間の関係
ここで、それぞれの係数行列の関係を調べます。線形時不変の連続時間システムを扱っている場合に、その解軌道は次式で与えられます。
\begin{equation} x(t)=e^{At}x(0)+\int_0^t e^{ A(t-τ) } B u(τ)d τ \end{equation}
ただし、 は での状態であるとします。ここで、 ≤ < で入力 を一定値 とすると、 での状態は
\begin{equation} x(\Delta)=e^{A\Delta}x(0)+\int_0^\Delta e^{A(\Delta-τ)}B dτ U \end{equation}
となります。この式は、 を初期時刻としても同様に では
\begin{equation} x((k+1)\Delta)=e^{A\Delta}x(k\Delta)+\int_0^\Delta e^{A(\Delta-τ)}B dτ U \end{equation}
と表されます。そのため、サンプリング周期を とすると、上式は2つのサンプル点での状態の推移を表しています。そのため、 と書き、 を と表すと、離散時間システムとして表されます。その際、連続時間システムの係数行列 と離散時間システムの係数行列 との関係は次式で表されます。
\begin{equation} A_s=e^{A\Delta},B_s=\int^\Delta_0 e^{A t}dt B,C_s=C,D_s=D \end{equation}
このとき、特に が正則ならば は
\begin{equation} B_s=(e^{A\Delta}-I)A^{-1}B \end{equation}
で表されます。
一方、シフト形式とデルタ形式はそれぞれ離散時間システムを別の表現形式で表しているだけであり、全く同じ意味を持つ式です。デルタ形式の各係数は
\begin{equation} A_d = \frac{A_s-I}{\Delta},B_d=\frac{B_s}{\Delta},C_d=C,D_d=D \end{equation}
と表されます。ここで、前節で述べたように、 の極限では 、 が成り立ち、さらに、
\begin{equation} \lim_{\Delta \rightarrow 0}\frac{x[k+1]-x[k]}{\Delta}=\dot x(t)\left|_{t=k\Delta}\right. \end{equation}
が成り立ちます。このとき、 で連続時間システムとデルタ形式の離散時間システムとが等しくなります。このことから、デルタ形式離散時間システムと連続時間システムが短いサンプリング周期では方程式の記述が似ているといえます。
一方、 の極限で、シフト形式の 行列は (単位行列) となり、 も となります。そのため、極限操作において、シフト形式はおおよそ意味を持たない式となります。
本記事ではサンプル値制御については触れていませんが、いくつかの参考文献を挙げておきます。
関連記事
永原先生の記事です。2012
離散時間制御(発展編,<特集>初学者のための図解でわかる制御工学II) (jst.go.jp)
原先生、山本先生の記事です。1999
サンプル値制御理論-III : 最適制御問題とその解法 (jst.go.jp)
藤岡先生、原先生、山本先生の記事です。2000
サンプル値制御理論-IV : 最適制御問題の一般化 (jst.go.jp)
関連書籍
関連書籍は連続時間系と比べて少ないです。実装する上での需要はあると思います。萩原先生の本は絶版のようです。
以下は離散化についての記述があります。
関連記事
連続時間系と離散時間系の関係について説明した本記事は以上になります。