離散化を1次近似で行う方法~その2~

制御工学

みなさん,こんにちは
おかしょです.

前回に続いて離散化を1次近似で行う別の方法を詳しく解説していきます.

この記事を読むと以下のようなことがわかる・できるようになります.

  • 制御対象や制御器を離散化する方法
  • 離散化を1次近似で行う方法

 

この記事を読む前に

この記事は以下の記事の続きとなっています.

まだ読んでいない方は以下の記事を先に読んでおくことをおすすめします.

制御対象を離散化するのはなんのため?~理論式や手法にはどのようなものがあるのか~
みなさん,こんにちはおかしょです.制御工学を学び,実際のロボットに設計した制御器を適用するには離散化という作業が必ず必要になります.この記事をはじめとして,これから何回かに分けて制御対象を離散化する方法について解説していき...

 

1次近似で離散化する方法

こちらの記事で離散化の理論式を示しました.

\[
x_{k+1}=x_k+A\int_{t_k}^{t_{k+1}}(x(t))dt+T_s Bu_k \tag{1}
\]

この理論式の積分の部分を1次関数で近似をします.

この記事では前回のその1とは違って以下の条件を満たす1次関数で近似します.

時刻\(t_k\)と\(t_{k+1}\)で\(x\)が離散化したものと実際のもので一致する

 

1次関数を求める

まずは上の条件を満たす1次関数を求めます.

近似した後のデータを\(\bar{x}\)とおいて実際のデータを\(x\)とおきます.

時刻\(t_k\)での実際のデータ\(x\)を\(x_k\)と表記することにします.

ここで近似する1次関数を以下のようにおきます.

\[
\bar{x}=at+b \tag{2}
\]

上式の傾き\(a\)と切片\(b\)を求めます.

まず,時刻\(t_k\)で実際のデータ(\(x_k\))と離散化したもの(\(\bar{x}_k\))が一致します.
つまり,式で表すと以下のようになります.

\begin{eqnarray}
\bar{x}_k&=&at_k+b\\
x_k&=& at_k+b \tag{3}
\end{eqnarray}

次に時刻\(t_{k+1}\)でも実際のデータ(\(x_{k+1}\))と離散化したもの(\(\bar{x}_{k+1}\))が一致するので,これも式(2)に代入します.

\begin{eqnarray}
\bar{x}_{k+1}&=&at_{k+1}+b\\
x_{k+1}&=& at_{k+1}+b \tag{4}
\end{eqnarray}

ここで,式(3)と式(4)を連立させて傾き\(a\)と切片\(b\)を求めます.
式(4)から式(3)を引くと以下のようになります.

\begin{eqnarray}
x_{k+1}-x_k&=& a(t_{k+1}-t_k)\tag{5}
\end{eqnarray}

ここで\(t_{k+1}-t_k\)はデータのサンプリングを間隔を表しています.このサンプリングの間隔を\(T_s\)と置くと傾き\(a\)は以下のようになります.

\begin{eqnarray}
x_{k+1}-x_k&=& aT_s\\
a&=&\frac{x_{k+1}-x_k}{T_s}\tag{6}
\end{eqnarray}

この結果を式(3)に代入します.

\begin{eqnarray}
x_k&=& \frac{x_{k+1}-x_k}{T_s}t_k+b\\
b&=& x_k-\frac{x_{k+1}-x_k}{T_s}t_k \tag{7}
\end{eqnarray}

これで,傾き\(a\)と切片\(b\)を求められました.以上より,条件を満たす1次関数は以下のようになります.

\begin{eqnarray}
\bar{x}=\frac{x_{k+1}-x_k}{T_s}t+x_k-\frac{x_{k+1}-x_k}{T_s}t_k\\
\bar{x}=\frac{x_{k+1}-x_k}{T_s} (t-t_k)+x_k \tag{8}
\end{eqnarray}

 

積分項を求める

先ほど求めた式(8)の1次関数で理論式の積分項を求めます.

理論式(1)にもあるように1次関数(8)を時刻\(t_k\)から\(t_{k+1}\)まで積分します・

\begin{eqnarray}
\int_{t_k}^{t_{k+1}}\{\bar{x}(t)\}dt &=& \int_{t_k}^{t_{k+1}}\{\frac{x_{k+1}-x_k}{T_s} (t-t_k)+x_k\}dt\\
&=& \left[\frac{x_{k+1}-x_k}{T_s} \left(\frac{1}{2}t^2-t_k t\right)+x_k t\right]^{t_{k+1}}_{t_{k}}\\
&=& \frac{x_{k+1}-x_k}{T_s}\left\{\frac{1}{2}(t_{k+1}^2-t_k^2)-t_k(t_{k+1}-t_k)\right\}+x_k(t_{k+1}-t_k) \\
&=& \frac{x_{k+1}-x_k}{T_s}\left\{\frac{1}{2}(t_{k+1}+t_k)(t_{k+1}-t_k)-t_k(t_{k+1}-t_k)\right\}+x_k(t_{k+1}-t_k)\\
&=& \frac{x_{k+1}-x_k}{T_s}\left\{\frac{1}{2}(t_{k+1}+t_k)-t_k\right\}(t_{k+1}-t_k)+x_k(t_{k+1}-t_k)\\
&=& \frac{x_{k+1}-x_k}{T_s}\frac{1}{2}(t_{k+1}-t_k)(t_{k+1}-t_k)+x_k(t_{k+1}-t_k)\\
&=& \frac{1}{2}\frac{x_{k+1}-x_k}{T_s}(t_{k+1}-t_k)^2+x_k(t_{k+1}-t_k)\\
&=& \frac{1}{2}\frac{x_{k+1}-x_k}{T_s}T_s^2+x_k T_s\\
&=& \frac{1}{2}(x_{k+1}-x_k)T_s+x_k T_s\\
&=& \frac{1}{2}(x_{k+1}+x_k)T_s \tag{9}
\end{eqnarray}

以上によって理論式(1)の積分項を求めることができました.

 

理論式に代入する

積分項を求めることができたので,あとは理論式に代入するだけです.

\begin{eqnarray}
x_{k+1}&=&x_k+A\int_{t_k}^{t_{k+1}}(x(t))dt+T_s Bu_k \\
&=& x_k+A\frac{1}{2}(x_{k+1}+x_k)T_s+T_s Bu_k\\
&=& x_k+\frac{1}{2}Ax_{k+1}T_s+\frac{1}{2}Ax_k T_s+T_s Bu_k\\
x_{k+1}-\frac{1}{2}Ax_{k+1}T_s&=& x_k+\frac{1}{2}Ax_k T_s+T_s Bu_k\\
\left(I-\frac{1}{2}AT_s\right)x_{k+1}&=& \left(I+\frac{1}{2}AT_s\right)x_k+T_s Bu_k\\
x_{k+1}&=& \left(I-\frac{1}{2}AT_s\right)^{-1}\left\{\left(I+\frac{1}{2}AT_s\right)x_k+T_s Bu_k\right\} \tag{10}
\end{eqnarray}

以上が状態方程式を1次関数で近似した離散化した式になります.

 

まとめ

この記事では1次関数を「時刻\(t_k\)で\(x\)と\(\dot{x}\)が離散化したものと実際のもので一致する」という条件で決定して,その1次関数で近似して状態方程式を離散化しました.

\begin{eqnarray}
x_{k+1}= \left(I-\frac{1}{2}AT_s\right)^{-1}\left\{\left(I+\frac{1}{2}AT_s\right)x_k+T_s Bu_k\right\}
\end{eqnarray}

 

続けて読む

1次関数で近似して離散化する方法は他にもあり,以下の記事で解説しているので続けて読んでみてください.

「こちらの記事は現在準備中です」

Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.

YouTubeでも制御工学や電子工作などの解説をしているので,ぜひのぞいてみてください.

それでは最後まで読んでいただきありがとうございました.

コメント

タイトルとURLをコピーしました