サンプリングとディジタル制御

3 分で読了
このページの目次

ソフトウェアは離散時刻に測定と操作を更新しますが、その間も対象は変化します。動的モデルの厳密な更新式を使い、サンプリング、保持、計算遅延、数値積分を区別します。

一回の測定と保持

でを測定してを計算し、次の更新まで保持します。これが零次ホールドです。まず追加の計算・通信遅延がないと仮定します。は実際の制御周期で、画面の更新周期ではありません。

サンプリング、計算、保持の順序t = kTₛ:yₖを測定現在の状態からuₖを計算区間内でuₖを保持対象は連続的に変化t = (k+1)Tₛ:次の測定

の入力を区間内で一定にすると、厳密な離散モデルは

が区間に作用して次の状態を作ります。未来の状態で現在の操作を決めてはいけません。この偏差モデルは正負の操作を許し、飽和はありません。

連続系で安定でも、サンプリングすると?

連続帰還はとなり、で安定です。一方、サンプル値帰還では

状態はに従うため、漸近安定にはが必要です。ならより

0.2 sでは倍率約0.456で単調減衰、1 sでは−0.896で符号を交互に変えながら減衰、1.2 sでは−1.096で発散します。これは厳密な対象計算でも残る、実際のサンプリングと保持の効果です。

図を準備しています
サンプリングとディジタル制御 · 実験

対象ẋ=−x+u、x0=1、K=2。区間内は厳密解で、操作を1周期保持します。遅延時はx−1=x0で初期化します。漸近安定にはスペクトル半径1未満が必要です。

から開始し、同じ12 sの観測窓で周期を変えます。標本点と区間内の連続応答を比較してください。点間は直線補間ではなく、一定入力での厳密解です。

1サンプルの遅れは記憶を増やす

前回の操作を実行するならなので、

古い状態や待機中の操作を保存する必要があります。では遅れなしの極は−0.180、遅れありの共役根の大きさはです。では、遅れなしは−0.652で安定ですが、遅れありは根の大きさ1.049で不安定になります。

離散LTI系では、閉ループの全固有値が単位円の厳密な内側にあることが必要です。は連続自由モードの厳密な標本化に対応します。サンプル間で操作を保持する帰還系は、連続閉ループの極をそのまま写すだけでは通常求まりません。

積分刻み幅は別の量

連続系をEuler法で計算するとです。では倍率−2で数値発散しますが、厳密解は減衰します。

制御周期と遅延を固定し、積分刻みだけを小さくして収束を確認します。零次ホールドの厳密離散化ならこの数値誤差を避けられますが、測定の折り返しや計算遅延は残ります。

離散PIDの更新順序

前進積分はです。測定保持に対するフィルタは、と書けます。現在の操作に更新前・更新後のどちらの状態を使うか明示します。

アンチエイリアスフィルタはサンプリング前に作用し、事後の平滑化では失われた情報を復元できません。フィルタ自体の位相遅れもあります。帯域、計算・通信予算、対象のモードから周期を選び、最悪遅延とジッタを検証します。万能な周期倍率はありません。

理解を確かめる

で倍率−1は漸近安定ですか。

考え方

振幅が減衰せず符号だけ交代するので、漸近安定ではありません。大きさが1未満である必要があります。

ブラウザのフレームレートを下げると極や制御周期も変わるべきですか。

考え方

変わるべきではありません。物理時間と制御イベントで計算し、画面は結果を表示します。

発展資料

python-controlのsample_systemでは複数の離散化法を選べます。実際の保持機構に合わせてモデルを作ってから設計します。