デジタル制御:最初の最初 ①

3部構成の①です。

DCモータの速度制御を例にデジタル制御を考えみたい.

DCモータPI制御については、以前、連続系PID制御 : DCモータの速度制御で少し取り扱ったが、
多摩川精機さんのカタログ P.5にならって、簡略化したDCモータの伝達関数を使うことにしました[1].

DCモータの端子電圧V [V]に対するモータ回転数ω [rad/s]の伝達関数は
\[ G(s) = \frac{\omega (s)}{V(s)}=\frac{1/K_E}{s \tau_m+1} \]
ここで
$ K_E $ : 誘起電圧定数 $ [V/\frac{rad}{s}] $
$ \tau_m $ : 機械的時定数 $ [sec] $ 

このモータを連続系のPI制御で速度制御する場合のブロック図は、
これを例えばArduinoのようなものでデジタル制御する場合、
モータをPWM制御することが前提となって、実装上、だいたい以下のような形になります.


「A/D変換(デジタル変換)」「D/A変換(アナログ変換)」「デジタルPI」が連続系と異なるところで、
センサの値をマイコンなんかに取り込むために必須の処理です.

このデジタル変換で、「量子化」(値の離散化)と「標本化」(時間の離散化)をいっぺんにやってしまうのですが [2]、
中でも「標本化」が制御の安定性に大きな影響を与えます.

1. 標本化 と サンプル&ホールド

「標本化」「量子化」の具体的な仕組みは[Wikipedia : A/D変換回路]を参考にするとして、
標本化(サンプリング)だけに注目すると下図のような仕組みでA/D変換がなされる.

[標本化の流れ]
① 連続時間の信号が入力される
② サンプラ部がサンプリング周期T[sec]毎に値を切り出す
③ ホールド部が切り出した値をT[sec]間維持する→出力へ

この③の「切り出した値をT[sec]間維持する」という部分だけを取り出すと、
0次ホールド(Zero Order Hold : ZOH) $ H_{ZOH}(s) = \frac{1-e^{-sT}}{sT} $という伝達関数で表現できるのですが [3]
Matlabなどのシミュレータは、②と③の機能を合わせて"ZOH"と呼んでいるようです[4].
(便宜上でしょうか?)
このZOHは離散系(デジタル)の制御を、連続系として扱って考えるために便利なようです.

2. デジタル制御設計を連続系で…

ここまでを まとめて、ブロック図を書き直すと


制御周期$ T_c $とセンサのサンプリング周期 $ T_s $については、大抵 $ T_c > T_s $なので、 
特にデジタルフィルタ(含 移動平均)などの処理をしていなければ、
A/D変換のブロックは 1 に置き換えてもよいと思います.

すると、Yasunari SHIMADA先生のページ「[5]  連続制御系で近似する方法 」にならって、
連続系に近似的に表現できて、以下の制御ブロックとして扱えます.


背景にはスター変換(ラプラス変換の離散版)の考え方がありますが、
まずは、この近似の効果を見てみることにします.


参考文献
[1] DCサーボモータ - サーボモータ|多摩川精機株式会社 - カタログ (PDFへのリンクあり)
http://www.tamagawa-seiki.co.jp/jpn/servo/tredc.html

[2] CH:2 Discretization of continuous signals
http://www.wakayama-u.ac.jp/~kawahara/signalproc/CH2cont2discrete/contsig2discrete.html

[3] Wikipedia : ZOH
https://en.wikipedia.org/wiki/Zero-order_hold

[4] 連続/離散の変換方法 - MATLAB & Simulink - MathWorks 日本
http://jp.mathworks.com/help/control/ug/continuous-discrete-conversion-methods.html#bs78nig-2

[5] 連続制御系で近似する方法
http://ysserve.wakasato.jp/Lecture/ControlMecha3/node27.html

No comments:

Post a Comment