12
システムが可制御の場合... ここでPは正則行列 状態フィードバックを施すと d dt ˆ x 1 (t) ˆ x 2 (t) . . . ˆ x n (t) = 0 1 0 ··· 0 0 0 1 ··· 0 . . . . . . . . . 0 0 0 0 ··· 1 -a 0 -a 1 -a 2 ··· -a n-1 ˆ x 1 (t) ˆ x 2 (t) . . . ˆ x n (t) + 0 0 . . . 1 u u(t)= r - [ ˆ k 1 ˆ k 2 ··· ˆ k n ] ˆ x 1 (t) ˆ x 2 (t) . . . ˆ x n (t) ˙ x(t)= Ax(t)+ bu(t) y (t)= cx(t) ˙ ˆ x(t)= P AP -1 ˆ x(t)+ P bu(t) y (t)= cP -1 ˆ x(t) なる状態変換を施す ˆ x(t)= Px(t)

xö t xö t ut)= r kö kö ááákö .. xö tweb.me.saga-u.ac.jp/~sato/mech_sys/mech_sys_12.pdf倒立振子について... このシステムは可制御 状態フィードバックにより安定化可能!システムの状態ベクトルは

Embed Size (px)

Citation preview

システムが可制御の場合...ここでPは正則行列

状態フィードバックを施すと

d

dt

!

"

"

"

"

#

x1(t)

x2(t).

.

.

xn(t)

$

%

%

%

%

&

=

!

"

"

"

"

"

"

"

#

0 1 0 · · · 0

0 0 1 · · · 0.

.

.

.

.

.

.

.

. 0

0 0 0 · · · 1

!a0 !a1 !a2 · · · !an!1

$

%

%

%

%

%

%

%

&

!

"

"

"

"

#

x1(t)

x2(t).

.

.

xn(t)

$

%

%

%

%

&

+

!

"

"

"

"

#

0

0.

.

.

1

$

%

%

%

%

&

u

u(t) = r ! [k1 k2 · · · kn]

!

"

"

"

"

#

x1(t)

x2(t).

.

.

xn(t)

$

%

%

%

%

&

!

"

#

x(t) = Ax(t) + bu(t)

y(t) = cx(t)

!

"

#

˙x(t) = PAP !1x(t) + Pbu(t)

y(t) = cP !1x(t)

なる状態変換を施すx(t) = Px(t)

フィードバック系は...

となる.閉ループ系の特性多項式は

このように分解できる.

Λ

d

dt

x1(t)

x2(t).

.

.

xn(t)

=

0 1 0 · · · 0

0 0 1 · · · 0.

.

.

.

.

.

.

.

. 0

0 0 0 · · · 1

!a0 ! k1 !a1 ! k2 !a2 ! k3 · · · !an!1 ! kn

x1(t)

x2(t).

.

.

xn(t)

+

0

0.

.

.

1

r

|sI ! A| = sn + (an!1 + kn)sn!1 + · · ·

+ (a1 + k2)s + (a0 + k1)

= sn + !n!1sn!1 + · · · + !1s + !0

= (s ! !1)(s ! !2) · · · (s ! !n)

k1 = !0 − a0, k2 = !1 − a1, · · · kn = !n!1 − an!1

倒立振子について...このシステムは可制御

状態フィードバックにより安定化可能!システムの状態ベクトルは

台車の位置

台車の速度

振子の角度

振子の角速度状態フィードバックを使うには,これらを全て測定する必要がある.

いつもできるのか?

x(t) =

!

"

"

"

"

#

z(t)

z(t)

!(t)

!(t)

$

%

%

%

%

&

位置と角度 エンコーダで測定可能!!

速度と角速度

必要なセンサーを全て取り付けられるとは限らない!!

状態フィードバックが実現できない場合がある!!!!

速度計や角速度計が必要

コストが高い信号が多くのノイズを含む

台車の位置

台車の速度振子の角度

振子の角速度

x(t) =

!

"

"

"

"

#

z(t)

z(t)

!(t)

!(t)

$

%

%

%

%

&

オブザーバ(Observer): 状態観測器

に対して状態フィードバックを行いたいが,状態が全て観測できない場合...以下の同一次元オブザーバを構成する.

ほんとうか???

x(t) = Ax(t) + bu(t), x(0) = x0

y(t) = cx(t), x(t) ∈ Rn!1

˙x(t) = Ax(t) + bu(t) + h(y(t) ! cx(t)), x(0) = 0

x(t) " Rn!1

x(t) x(t)は の推定値となる

システムの状態方程式

システムが可観測であれば実現できる!!

x(t) = Ax(t) + bu(t)オブザーバ

˙x(t) = Ax(t) + bu(t) + h(y(t) ! cx(t))

推定誤差:x(t) = x(t) ! x(t)

˙x(t) ! x(t) = A(x(t) ! x(t)) + h(y(t) ! cx(t))

= A(x(t) ! x(t)) + h(cx(t) ! cx(t))

˙x(t) = (A ! hc)x(t), x(0) = !x0

hを選んで (A ! hc)を安定行列にできればlim

t!"

x(t) = 0 limt!"

x(t) = x(t)が実現

オブザーバの構成

+

+€

+

cb1

s

A

˙x x y

h

cb

+

+A

1

s

x x yu

状態フィードバック+オブザーバ

閉ループ系は?

状態フィードバックによる固有値

オブザーバによる固有値

システムの状態方程式 x(t) = Ax(t) + bu(t)

オブザーバ ˙x(t) = Ax(t) + bu(t) + h(y(t) ! cx(t))

状態フィードバックu(t) = r ! kx(t)

!

"

#

x(t) = (A ! bk)x(t) ! bkx(t) + br

˙x(t) = (A ! hc)x(t)

d

dt

!

x(t)

x(t)

"

=

!

A ! bk !bk

0 A ! hc

" !

x(t)

x(t)

"

+

!

b

0

"

r

閉ループ伝達関数は?

閉ループの入出力特性にオブザーバの影響は出ない!!閉ループ極の位置とオブザーバの極の位置に相関はない!!

d

dt

!

x(t)

x(t)

"

=

!

A ! bk !bk

0 A ! hc

" !

x(t)

x(t)

"

+

!

b

0

"

r

y(t) =!

c 0"

#

x(t)

x(t)

$

W (s) =Y (s)

R(s)

=!

c 0"

#

sI ! (A ! bk) !bk

0 sI ! (A ! hc)

$

!1 #

b

0

$

= c [sI ! (A ! bk)]!1b

状態フィードバック+オブザーバの構成図

+

+€

+

cb1

s

A

˙x x y

h

cb

+

+A

1

s

x x yur

オブザーバとは...システムの状態がすべて測定できない場合,状態を推定するもの

状態フィードバックとは...システムを安定化するために,入力として状態に適切なゲインを掛けたものを選ぶこと

オブザーバを用いた状態フィードバックの場合...状態フィードバックに用いる状態をオブザーバにより推定する必要がある!!

オブザーバがシステムの状態を推定する速度はオブザーバゲインの設定による!!

(A − bk)により設定される極の位置により設定

される極の位置

(A ! hc)

x(t)が収束するより速くx(t)が収束する必要がある!!

Re

Im