1. Pole Placement for State Space Model

If one matrix is controllable canonical form

 x(k+1)= Phi x(k)+Gamma u(k) \ y(k)=Cx(k)

 Phi=egin{bmatrix}{} -a_1 & -a_2 &dotsm &-a_{n-1} &-a_n\ 1 & 0 &dotsm & 0&0\ 0 & 1 &dotsm & 0 & 0\ vdots & vdots &ddots & vdots& vdots\ 0 & 0 &dotsm & 1& 0\ end{bmatrix}\\

If we choose u=-Lx(k)quad L=[l_1quad l_2quad dotsm l_n ] quad Gamma=[1 quad 0 quad 0 dotsm]^T

 x(k+1)=(Phi-Gamma L)x(k)

 Phi-Gamma L=egin{bmatrix}{} -(a_1+l_1) & -(a_2+l_2) &dotsm &-(a_{n-1}+l_{n-1}) &-(a_n+l_n)\ 1 & 0 &dotsm & 0&0\ 0 & 1 &dotsm & 0 & 0\ vdots & vdots &ddots & vdots& vdots\ 0 & 0 &dotsm & 1& 0\ end{bmatrix}

For any state space model, according to Ackermanns Formula, we have

 L=[0quad0quaddotsmquad1]M_c^{-1}A_m(Phi)

For a uncontrollable system, if we use state feedback control, some poles cannot be changed.

If uncontrollable poles are stable, we can still control some poles.

2. Observer

 hat x(k+1)=Phihat x(k)+ Gamma u(k)+K(y(k)-hat y(k))\ hat y=Chat x(k) \ e(k+1)=Phi e(k)-KCe(k)=(Phi-KC)e(k)

Common used observer

Deadbeat Observer

 A_o(Phi)=Phi^n

From Ackermans Formula

 K=A_o(Phi)M_o^{-1}[0quad0quaddotsmquad1]^T

3. Disturbance Rejection

Augmented state vector

 z(k)=egin{bmatrix} x(k)\ omega(k) end{bmatrix}\ z(k+1)=egin{bmatrix} Phi&Phi_{omega x}\ 0&Phi_omega end{bmatrix}z(k) +egin{bmatrix} Gamma\ 0 end{bmatrix}u(k)

If we choose u(k)=-Lx(k)-L_ww(k) ,

Then

 x(k+1)=(Phi-Gamma L)x(k)+(Phi_{wx}-Gamma L_w)w(k)

Therefore, we only need

 Phi_{wx}-Gamma L_w=0

If the above cannot be satisfied, we can use the following method,

if the disturbance is constant

 x(k+1)=Phi x(k)+Phi_{xomega}omega(k)+Gamma u(k) \

If we use state feedback controller, then we will have,

 u(k)=-Lx(k)-L_womega(k) \ x(k+1)=(Phi-Gamma L) x(k)+(Phi_{xomega}-Gamma L_omega)omega(k) \ (zI-(Phi-Gamma L))X(z)=(Phi_{xomega}-Gamma L_omega)W(z) \ G_{xomega}(z)=(zI-(Phi-Gamma L))^{-1}(Phi_{xomega}-Gamma L_omega) \ G_{xomega}(1)=0

If the disturbance is not constant, then frequency analysis should be used.

Example

 x(k+1)= egin{bmatrix} 1 & h\ 0 & 1\ end{bmatrix}x(k)+ egin{bmatrix} frac{h^2}{2}\ h end{bmatrix}(u(k)+w(k))\ w(k+1)=w(k)

We can get the augmented state space model

 z(k+1)= egin{bmatrix} 1 & h & frac{h^2}{2}\ 0 & 1 & h\ 0 & 0 & 1\ end{bmatrix}z(k)+ egin{bmatrix} frac{h^2}{2}\ h\ 0\ end{bmatrix}u(k)\

Step1. Disturbance Rejection

 Phi_{wx}-Gamma L_{w}=0\

Then we have

 L_w=1

If not satisfied and the disturbance is constant, we will have

 G_{xw}(1)=0

Step2. Observer

 A_o(Phi)=	ilde A^n\ M_o=egin{bmatrix} 	ilde C\ 	ilde C	ildePhi\ 	ilde C	ildePhi^2 end{bmatrix} \ K=A_o(Phi)M_o^{-1}egin{bmatrix} 0\0\1 end{bmatrix}

Then we have

 hat z(k+1)=	ilde Phi z(k)+	ilde Gamma u(k)+K(y-	ilde Chat z)

Step3. Pole Placement

 L= egin{bmatrix} 0 & 0 & 1 end{bmatrix} M_c^{-1}A_m(Phi)\ u(k)=-Lhat x-L_what w

4. Feedforward Controller

We can check the transfer function from feedforward input u_{ff} to Output y

 H_{cl}(z)=C(zI-Phi+Gamma L)^{-1}Gamma L_c=L_cfrac{B(z)}{A_m(z)}

Therefore, we can choose

 H_{ff}=L_c=frac{B_m}{B}

We can achieve perfect tracking if and only if B is stable. Then the input of the feedforward controller is bounded.

5. Example

 x(k+1)= egin{bmatrix} 0.5 & 1\ 0.2 & 0.8\ end{bmatrix}x(k)+ egin{bmatrix} 1\ 1\ end{bmatrix}u(k)+ egin{bmatrix} 1\ 0\ end{bmatrix}v(k)\ y= egin{bmatrix} 0 & 1 end{bmatrix}x(k)

Where, disturbance v is constant. Design controllers such that influence of v can be eliminated in s.s. in the following cases.

a) The state and v can be measured.

The augmented state space model is

 z(k+1)=	ilde Phi z(k)+	ilde Gamma u(k)\ z(k+1)= egin{bmatrix} x(k+1)\ v(k+1) end{bmatrix}= egin{bmatrix} 0.5 & 1 & 1\ 0.2 & 0.8 & 0\ 0 & 0 & 1\ end{bmatrix} egin{bmatrix} x(k)\ v(k) end{bmatrix}+ egin{bmatrix} 1\ 1\ 0\ end{bmatrix}u(k)

We can choose the controller,

 u(k)=-Lx-L_vv

Step 1. Disturbance Rejection.

 Phi_{vx}-Gamma L_v=0\ egin{bmatrix} 1\ 0\ end{bmatrix}- egin{bmatrix} 1\ 1\ end{bmatrix}L_v=0

We cannot get a L_v to solve this equation.

Step 2. Feedback Controller

 A_m(Phi)=Phi^2\ M_c= egin{bmatrix} 1 & 1.5\ 1 & 1\ end{bmatrix}\ L= egin{bmatrix} 0 & 1 end{bmatrix}M_c^{-1}A_m(Phi)= egin{bmatrix} 0.38 & 0.92 end{bmatrix}\

Then we have

 u(k)=-Lx

Then

 H_v(z)=C(zI-Phi+Gamma L)^{-1}(Phi_{vx}-Gamma L_v)\ H_v(1)=C(I-Phi+Gamma L)^{-1}(Phi_{vx}-Gamma L_v)=0\

We can get

 L_v=0.9333

b) The state can be measured.

We set k=0.

 x(1)=Phi x(0)+Gamma u(0)+Phi_{vx}v

Because states can be measured, we can solve v

Then the controller is the same as a).

c) The input can be measured.

Now we need to design an Deadbeat observer.

 A_o(	ildePhi)=	ilde Phi^3= egin{bmatrix} 0.485 & 1.49 & 1.95\ 0.298 & 0.932 & 0.46 \ 0 & 0 & 1 end{bmatrix}\ M_o= egin{bmatrix} 1 & 0 & 0\ 0.5 & 1 & 1\ 0.45 & 1.3 & 1.5\ end{bmatrix}\ K=A_o(	ildePhi)M_o^{-1} egin{bmatrix} 0\ 0\ 1\ end{bmatrix}= egin{bmatrix} 2.3\ -2.36\ 5\ end{bmatrix}

Then we have

 {hat z(k+1)}=	ilde Phi hat z(k)+	ilde Gamma u(k)+K(y(k)-	ilde Chat z(k))

Now our controller should be

 u(k)=-Lhat x(k)-L_vhat v

推薦閱讀:

查看原文 >>
相关文章