線形制御系設計

    線形システムの表現
    線形システムの特性解析
    離散時間システム
    制御器設計
    追従制御 (FF)
    外乱抑圧制御 (FB)
    観測器設計

    モーションコントロール

    加速度制御
    剛体の姿勢制御

    モータドライブ

    駆動制御法
    磁極位置推定法

    システム同定

    ホワイトボックスモデル
    パラメトリックモデル

零位相/振幅誤差追従制御

離散時間システムの指令値追従問題において,シングルレート系の枠組みで不安定零点の影響を考慮した制御手法として零位相/振幅誤差追従制御が提案されている。 不安定零点が存在する場合には完全追従の実現が困難であるため,これらは入出力の振幅誤差を許容して位相誤差を零とする,または位相誤差を許容して振幅誤差を零とすることを目標とした制御器である。

数学的準備

零位相/振幅誤差追従制御器の導出では,複素共役の性質を利用すると見通しが良い。設計目標は入出力伝達関数の整形であるため,振幅・位相特性を示す周波数伝達関数を確認することを目的とし,z=ejωtz=e^{j\omega t} として議論する。

1. z\bm{z} の複素共役
zz が単位円上に存在する場合,その複素共役は次のように表される。
z=ejωt=z1\begin{align} \overline{z} = e^{-j\omega t} = z^{-1} \end{align}
2. 多項式の複素共役
zz の実係数多項式について,その複素共役は次のように表される。
F(z)=k=1pakzk(akR,ak=ak)F(z)=k=1pakzk=k=1pakzk=F(z)=F(z1)\begin{align} F(z) &= \sum^{p}_{k=1} a_{k}z^{k} \quad (a_{k}\in\mathbb{R}, \quad \overline{a_{k}} = a_{k})\\ \overline{F(z)} &= \sum^{p}_{k=1} \overline{a_{k}z^{k}} = \sum^{p}_{k=1} a_{k}\overline{z^{k}} = F(\overline{z}) = F(z^{-1}) \end{align}
3. 多項式とその複素共役の積
zz の実係数多項式とその複素共役の積はその実係数多項式の絶対値の二乗となり,さらに次の等式が成立する。
F(z)2=F(z)F(z)=F(z)F(z1)\begin{align} |F(z)|^2 = F(z)\overline{F(z)} = F(z)F(z^{-1}) \end{align}
4. 多項式とその複素共役のノルム
zz の実係数多項式とその複素共役のノルムは一致し,さらに次の等式が成立する。
F(z)=F(z)=F(z1)\begin{align} |F(z)| = |\overline{F(z)}| = |F(z^{-1})| \end{align}

問題設定

離散時間システムの入出力関係が,既約な有理関数形式の伝達関数 G(z)G(z) を用いて以下のように表現される場合について考える。
y[k]=G(z)r[k]G(z)=B(z)A(z)zp\begin{align} y[{\rm k}] &= G(z)r[{\rm k}]\\ G(z) &=\frac{B(z)}{A(z)}z^{-{\rm p}} \end{align}
ただし,このシステムは安定であり,rr を入力値,yy を出力値とする。参照軌道 ydy_{\rm d} は事前に決定されており,未来値が使用可能であるとする。離散時間システム G(z)G(z) が不安定零点を持たない場合,次の入力決定則により完全追従が実現する。
r[k]=A(z)B(z)yd[k+p]\begin{align} r[{\rm k}] &= \frac{A(z)}{B(z)}y_{\rm d}[{\rm k}+{\rm p}] \end{align}
しかしながら,システムが持つ真性零点やサンプラ・ホールダの影響により発生する離散化零点が離散時間システムに不安定零点を与える場合には,この入力決定則を利用することはできない。このようなシステムに対して,所望の振幅・位相特性を与える入力決定則を導出する。

設計方針

離散時間システムの伝達関数 G(z)G(z)について,分子を安定零点を持つ多項式 Bs(z)B_{\rm s}(z) と不安値零点持つ多項式 Bu(z)B_{\rm u}(z) に分離して表現する。
G(z)=Bs(z)Bu(z)A(z)zd \begin{align} G(z) &=\frac{B_{\rm s}(z)B_{\rm u}(z)}{A(z)}z^{-d} \ \end{align}
このシステムに対し,不安定逆系の要因となる Bu(z)B_{\rm u}(z) を無視して逆系を作れば,以下のような出力を得る[1]
r[k]=A(z)Bs(z)yd[k+p]y[k]=Bu(z)yd[k]\begin{align} r[{\rm k}] &= \frac{A(z)}{B_{\rm s}(z)}y_{\rm d}[{\rm k}+{\rm p}]\\ y[{\rm k}] &= B_{\rm u}(z)y_{\rm d}[{\rm k}] \end{align}
上記の決定則では不安定零点の影響が出力に残ることとなり,望ましい出力を得られない場合がある。そこで,入力整形フィルタ F(z)F(z) を導入して入出力伝達特性を整形する。
r[k]=A(z)Bs(z)F(z)yd[k+p]y[k]=Bu(z)F(z)yd[k]\begin{align} r[{\rm k}] &= \frac{A(z)}{B_{\rm s}(z)}F(z)y_{\rm d}[{\rm k}+{\rm p}]\\ y[{\rm k}] &= B_{\rm u}(z)F(z)y_{\rm d}[{\rm k}] \end{align}
追従制御系の設計目標は,参照軌道から出力までの伝達関数 Gd(z)G_{\rm d}(z) が所望の特性を持つように F(z)F(z) を設計することとなる。
Gd(z)=Bu(z)F(z)\begin{align} G_{\rm d}(z) &= B_{\rm u}(z)F(z) \end{align}

零位相誤差追従制御

零位相誤差追従制御(Zero phase error tracking control: ZPETC)は入力と出力の振幅差を許容するが位相差を零とする制御である[2]。位相誤差が零となるためには,周波数伝達関数 Gd(ejωt)G_{\rm d}(e^{j\omega t}) が実数値を取る必要がある。これは次の入力整形フィルタ F(z)F(z) によって達成される。
F(z)=Bu(z)K=Bu(z1)KGd(z)=Bu(z)Bu(z1)K=Bu(z)2K\begin{align} F(z) &= \overline{B_{\rm u}(z)}K = B_{\rm u}(z^{-1})K \\ \rightarrow G_{\rm d}(z) &= B_{\rm u}(z)B_{\rm u}(z^{-1})K = |B_{\rm u}(z)|^2K \end{align}
ただし,KK は定数ゲインであり,DCゲイン Gd(z)z=1=1G_{\rm d}(z)|_{z=1}=1 とするためには次のように設計すれば良い。
K=1Bu(1)2F(z)=Bu(z1)Bu(1)2\begin{align} K &= \frac{1}{|B_{\rm u}(1)|^{2}}\\ \rightarrow F(z) &= \frac{B_{\rm u}(z^{-1})}{|B_{\rm u}(1)|^{2}} \end{align}
以上より,零位相誤差追従制御では入力を次のように決定する。
r[k]=A(z)Bu(z1)Bs(z)Bu(1)2yd[k+p]\begin{align} r[{\rm k}] &= \frac{A(z)B_{\rm u}(z^{-1})}{B_{\rm s}(z)|B_{\rm u}(1)|^{2}} y_{\rm d}[{\rm k}+{\rm p}] \end{align}
また,このときの入出力関係は次のように記述される。
y[k]=Bu(z)2Bu(1)2yd[k]\begin{align} y[{\rm k}] &= \frac{|B_{\rm u}(z)|^2}{|B_{\rm u}(1)|^{2}} y_{\rm d}[{\rm k}] \end{align}

零振幅誤差追従制御

零振幅誤差追従制御(Zero magnitude error tracking control: ZMETC)は入力と出力の位相差を許容するが振幅差を零とする制御である[3]。振幅誤差が零となるためには,周波数伝達関数 Gd(ejωt)G_{\rm d}(e^{j\omega t}) の分母と分子のノルムが一致する必要がある。これは次の入力整形フィルタ F(z)F(z) によって達成される。
F(z)=1Bu(z)=1Bu(z1)Gd(z)=Bu(z)Bu(z1)=ej2argBu(z)\begin{align} F(z) &= \frac{1}{\overline{B_{\rm u}(z)}} = \frac{1}{B_{\rm u}(z^{-1})} \\ \rightarrow G_{\rm d}(z) &= \frac{B_{\rm u}(z)}{B_{\rm u}(z^{-1})} = e^{j2\arg B_{u}(z)} \end{align}
以上より,零位相誤差追従制御では入力を次のように決定する。
r[k]=A(z)Bs(z)Bu(z1)yd[k+p]\begin{align} r[{\rm k}] &= \frac{A(z)}{B_{\rm s}(z)B_{\rm u}(z^{-1})} y_{\rm d}[{\rm k}+{\rm p}] \end{align}
また,このときの入出力関係は次のように記述される。
y[k]=ej2argBu(z)yd[k]\begin{align} y[{\rm k}] &= e^{j2\arg B_{u}(z)} y_{\rm d}[{\rm k}] \end{align}

参考文献

[1]J. A. Butterworth, L. Y. Pao, and D. Y. Abramovitch, "Analysis and comparison of three discrete-time feedforward model-inverse control techniques for nonminimum-phase systems," in Mechatronics, vol. 22, no. 5, pp. 577–587, Aug. 2012.
[2]M. Tomizuka, "Zero phase error tracking algorithm for digital control," in Journal of Dynamic Systems, Measurement, and Control, vol. 109, pp. 65-68, Mar. 1987.
[3]J. Wen and B. Potsaid, "An experimental study of a high performance motion control system," in American Control Conference, vol. 6, pp. 5158–5163, 2004.