みなさん,こんにちは
おかしょです.
制御工学の参考書では,最初にフィードバック制御とフィードフォワード制御の説明がよくされています.
そして,ほとんどの参考書ではフィードフォワード制御なんて制御性能的に使い物にならないので,フィードバック制御のことしか解説していません.
しかし,フィードフォワード制御も使い方によっては非常に優秀な制御器と呼べます.
そこで,この記事では2次遅れ系のシステムを例にして,フィードフォワード制御器の設計方法を解説します.
この記事を読むと以下のようなことがわかる・できるようになります.
- フィードフォワード制御とは
- 2次遅れ系のシステムに対するフィードフォワード制御器の設計方法
この記事を読む前に
この記事ではフィードフォワード制御について解説しますが,2次遅れ系のシステムに対するフィードフォワード制御器の設計方法をメインに解説していきます.
フィードフォワード制御についての詳しい解説を見たい方は,以下の記事を先に読んでおくことをおすすめします.
フィードフォワード制御とは
フィードフォワード制御とは,状態量をフィードバックせずに制御をする制御器で,ブロック線図は以下のようになります.
この制御器は制御入力を求めるためにフィードバック制御のような複雑な計算が必要ないので,実機へ適用するのも比較的簡単に行うことができます.
2次遅れ系のシステムとは
この記事では制御対象を以下のような伝達関数で表せる2次遅れ系を使用します.
\[
G(s) = \frac{\omega^2}{s^2+2\zeta \omega s+\omega^2} \tag{1}
\]
このシステムは\(\zeta\)と\(\omega\)の二つのパラメータによって応答特性が決まります.
特に\(\zeta\)の値によって応答が以下の3種類に分けられます.
\begin{array}{cc}
\zeta>1 & 過減衰\\
\zeta=1 & 臨界減衰\\
1>\zeta>0 & 不足減衰\\
\end{array}
特に不足減衰の時は応答が振動的になるので,制御器を工夫する必要があります.
なので,この記事では不足減衰の2次遅れ系のシステムを制御対象とします.
以下に,入力を一定値の1を与えた時の2次遅れ系のシステムの応答を示します.
この時,\(\zeta=0.1,\ \omega=1\)としました
不足減衰なので応答は振動的になっています.
また,システムの極は左半平面にあって安定なので収束していることがわかります.
フィードフォワード制御器の設計方法
以上のような2次遅れ系のシステムを対象にしてフィードフォワード制御器の設計を行っていきます.
今回は振動的な応答をなくすために,目標値へは1次遅れ系と同じような応答で収束していくことを目標とします.
そのため,まずは目標値となる応答の伝達関数を以下のように設定しておきます.
\[
G_R (s) = \frac{1}{as+1} \tag{2}
\]
前回の記事を読んだ方はお気づきかもしれませんが,制御対象が1次遅れ系の時の目標値と同じ伝達関数を設定します.
今回制御する2次遅れ系のシステムをこの\(G_R (s)\)に追従させるには,2次遅れ系のシステムを相殺する入力が必要になります.
つまり,フィードフォワード制御入力\(U(s)\)は以下のような伝達関数で表されます.
\[
U(s) = \frac{s^2+2\zeta \omega s+\omega^2}{\omega^2}\frac{1}{as+1} R(s) \tag{3}
\]
ここで,\(R(s)\)は目標値のラプラス変換を表しています.
この式を式(1)に代入すると
\[
Y(s)=\frac{1}{as+1} R(s) \tag{4}
\]
となり,目標値\(R(s)\)に出力\(Y(s)\)が追従することがわかります.
数値シミュレーション
数値シミュレーションを行うには,先程求めたフィードフォワード入力を伝達関数表現から微分方程式に直す必要があります.
そこで,\(U(s)\)を逆ラプラス変換します.
\[
\begin{eqnarray}
U(s) &=& \frac{s^2+2\zeta \omega s+\omega^2}{\omega^2}\frac{1}{as+1} R(s) \\
&=& \frac{s^2+2\zeta \omega s+\omega^2}{\omega^2(as+1)} R(s) \\
\omega^2(as+1) U(s) &=& (s^2+2\zeta \omega s+\omega^2) R(s) \\
\omega^2 a \dot{u} + \omega^2 u &=& \ddot{r}+2\zeta \omega \dot{r} +\omega^2 r \\
\dot{u} &=& -\frac{1}{a} u + \frac{1}{\omega^2 a} \ddot{r} + \frac{2\zeta}{\omega a} \dot{r} +\frac{1}{a} r \tag{5}
\end{eqnarray}
\]
この微分方程式を積分することで2次遅れ系のシステムを目標値に追従させることのできるフィードフォワード制御入力を求めることができます.
以上のようにして求められた制御器を用いて,2次遅れ系のシステムを制御すると以下のようになります.
図を見ると分かるように,設定した1次遅れ系の応答と同じように2次遅れ系のシステムを目標値へと追従させることができています.
この時,設定パラメータの\(a\)は\(1\)としました.
フィードフォワード制御の特徴
この記事の冒頭でも言いましたが,フィードフォワード制御は制御入力を求めるのが非常に簡単です.
そのため,実機への適用は比較的容易に行うことができます.
しかし,制御入力の算出には制御対象の数学モデルを使用しています.
逆に言えば,制御対象の数学モデルのみで制御入力を決めてしまっています.
そのため,数学モデルが実際のシステムを間違っていた場合は制御性能に大きな影響をもたらします.最悪の場合は目標値へと追従できないまま収束してしまうことも考えられます.
また,先程の数値シミュレーションの制御入力の時間履歴は以下のようになりました.
逆ラプラス変換をした際に目標値の2回微分がありました.
この影響で初期の制御入力が過大になってしまっています.
制御入力に制限がないのであれば,このような制御入力でも問題はないのですが
実際のシステムで制御入力に制限がないなんてことはありえません.
以上のような理由から,フィードフォワード制御を実際のシステムに適用するのは現実的ではありません.
まとめ
この記事では2次遅れ系のシステムを対象としてフィードフォワード制御器の設計方法を解説しました.
多くの参考書でも書かれているようにフィードフォワード制御と言うのは欠点の多い制御器のようです.
しかし,このフィードフォワード制御はフィードバック制御と一緒に使用することで,単純なフィードバック制御器よりも性能の良い制御器とすることが可能になります.
このようにフィードフォワードとフィードバックを併用した制御器のことを二自由度制御と言います.
興味のある方は二自由度制御についても調べてみると勉強になると思います.
Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.
それでは最後まで読んでいただきありがとうございました.
コメント