现代控制理论-5系统的可控性

在这里插入图片描述
假设有两个小车m1和m2,中间靠一根弹簧连着。如果没有弹簧以及后面的m2的话,我们凭直觉可能会觉得我们可以通过控制u来控制 x 1 ,   x 1 ˙ x_1, \ \dot{x_1} x1, x1˙。但是有了弹簧以及m2之后,我们还能通过控制u来控制 x 1 ,   x 1 ˙ ,   x 2 ,   x 2 ˙ x_1, \ \dot{x_1}, \ x_2, \ \dot{x_2} x1, x1˙, x2, x2˙吗?也就是通过控制u来控制两辆车的速度和位置,有没有这种可能?

用数学一点的语言来说,就是一个系统的状态方程是 x ˙ = A x + B u \dot{x} = Ax+Bu x˙=Ax+Bu,是否存在一个u,使得 t 0 t_0 t0时的 x 0 x_0 x0状态在 t 1 t_1 t1时变成 x 1 x_1 x1状态。

可控性的推导

我们用一个离散型的状态来进行推导

x k + 1 = A x k + B u k x_{k+1} = Ax_k+Bu_k xk+1=Axk+Buk

我们令初始状态 x 0 = 0 x_0=0 x0=0,当

k = 0 ,   x 1 = A x 0 + B u 0 = B u 0 k=0,\ x_1 = Ax_0+Bu_0 = Bu_0 k=0, x1=Ax0+Bu0=Bu0

k = 1 ,   x 2 = A x 1 + B u 1 = A B u 0 + B u 1 k=1,\ x_2 = Ax_1+Bu_1 = ABu_0+Bu_1 k=1, x2=Ax1+Bu1=ABu0+Bu1

k = 2 ,   x 3 = A x 2 + B u 2 = A 2 B u 0 + A B u 1 + B u 2 k=2,\ x_3 = Ax_2+Bu_2 = A^2Bu_0+ABu_1+Bu_2 k=2, x3=Ax2+Bu2=A2Bu0+ABu1+Bu2

. . . ... ...

k = n − 1 ,   x n = A x n − 1 + B u n − 1 = A n − 1 B u 0 + . . . + A B u n − 2 + B u n − 1 k=n-1,\ x_n = Ax_{n-1}+Bu_{n-1} = A^{n-1}Bu_0+...+ABu_{n-2}+Bu_{n-1} k=n1, xn=Axn1+Bun1=An1Bu0+...+ABun2+Bun1

如果我们用一个矩阵来表示 x n x_n xn,就是下面这种形式

x n = [ B A B . . . A n − 1 B ] [ u n − 1 u n − 2 . . . u 0 ] = C o × U x_n = [B \quad AB \quad ... \quad A^{n-1}B] \left[ \begin{matrix} u_{n-1} \\ u_{n-2} \\ ... \\ u_0 \end{matrix}\right] = Co \times U xn=[BAB...An1B]un1un2...u0=Co×U

经过n步之后,我们把系统的状态从 x 0 x_0 x0变成了 x n x_n xn,如果我们想要 U U U有解的话,则 C o Co Co矩阵的秩 R a n k ( C o ) = n Rank(Co)=n Rank(Co)=n。对于连续系统,我们可以和离散系统做类似,若想系统可控的话,则 C o Co Co矩阵必须是满秩的。

举例

假设一个系统的状态方程如下

x ˙ = [ 2 0 1 1 ] x + [ 1 1 ] u \dot{x} = \left[ \begin{matrix} 2 & 0 \\ 1 & 1\end{matrix}\right]x +\left[ \begin{matrix} 1 \\ 1 \end{matrix}\right]u x˙=[2101]x+[11]u

这个系统的 C o Co Co矩阵如下

C o = [ B A B ] = [ 1 2 1 2 ] Co = [B \quad AB] = \left[ \begin{matrix} 1 & 2 \\ 1 & 2\end{matrix}\right] Co=[BAB]=[1122]

这个矩阵的行列式为0,秩为1,。是一个不可控的系统。

再来看一个系统

x ˙ = [ 0 1 0 0 ] x + [ 0 1 ] u \dot{x} = \left[ \begin{matrix} 0 & 1 \\ 0 & 0\end{matrix}\right]x +\left[ \begin{matrix} 0 \\ 1 \end{matrix}\right]u x˙=[0010]x+[01]u

C o = [ B A B ] = [ 0 1 1 0 ] Co = [B \quad AB] = \left[ \begin{matrix} 0 & 1 \\ 1 & 0\end{matrix}\right] Co=[BAB]=[0110]

这是一个可控的系统。它代表的物理意义就是我们上面所说的只有一个小车的情况,如果我们只对一个小车建模,不包括弹簧和第二个小车,根据牛顿第二定律, u = m x ¨ u = m\ddot{x} u=mx¨,我们令 x 1 = x ,   x 2 = x ˙ x_1=x,\ x_2 = \dot{x} x1=x, x2=x˙,就能得到这个状态方程了。

这里还牵扯到一个问题,系统的可控性指的是点到点的可控还是轨迹的可控,我们可以看一个例子,下面这幅图横轴是位置,纵轴是速度,如果我们想让小车从A点到B点,我们是走AB这条路呢还是ACB这条路呢?
在这里插入图片描述
事实上,AB这条路是行不通的,我们不能在速度为正的时候位移却一直在往后,所以我们只能走ACB这条路,即速度先逐渐降低,然后反向,最后再把速度加上去。所以,系统的可控性指的是我们可以从一点到达另一点,却不能使系统按照我们想要的轨迹去走。

回到问题

在这里插入图片描述
我们对m2进行受力分析, m 2 x 2 ¨ = k ( x 1 − x 2 ) m_2\ddot{x_2}=k(x_1-x_2) m2x2¨=k(x1x2),对m1进行受力分析, m 1 x 1 ¨ = u − k ( x 1 − x 2 ) m_1\ddot{x_1} = u-k(x_1-x_2) m1x1¨=uk(x1x2),我们稍微简化一下, m 1 = m 2 = 1 m_1=m_2=1 m1=m2=1Kg,k=100,我们就能得到

x 2 ¨ = 100 x 1 − 100 x 2 \ddot{x_2} = 100x_1-100x_2 x2¨=100x1100x2

x 1 ¨ = u − 100 x 1 + 100 x 2 \ddot{x_1} = u-100x_1+100x_2 x1¨=u100x1+100x2

化成状态方程的形式,令 z 1 = x 1 ,   z 2 = z 1 ˙ ,   z 3 = x 2 ,   z 4 = z 3 ˙ z_1=x_1, \ z_2 = \dot{z_1}, \ z_3=x_2, \ z_4 = \dot{z_3} z1=x1, z2=z1˙, z3=x2, z4=z3˙,就可以写成下面

d d t [ z 1 z 2 z 3 z 4 ] = [ 0 1 0 0 − 100 0 100 0 0 0 0 1 100 0 − 100 0 ] [ z 1 z 2 z 3 z 4 ] + [ 0 1 0 0 ] u \frac{d}{dt} \left[ \begin{matrix} z_1 \\ z_2 \\ z_3 \\ z_4 \end{matrix}\right] = \left[ \begin{matrix} 0 & 1 & 0 & 0 \\ -100 & 0 & 100 & 0 \\ 0 & 0 & 0 & 1 \\ 100 & 0 & -100 & 0 \end{matrix}\right] \left[ \begin{matrix} z_1 \\ z_2 \\ z_3 \\ z_4 \end{matrix}\right] +\left[ \begin{matrix} 0 \\ 1 \\ 0 \\ 0 \end{matrix}\right]u dtdz1z2z3z4=010001001000010001000010z1z2z3z4+0100u

我们用MATLAB来求解一下这个系统的可控性,MATLAB里面有Co = ctrb(A,B)这样一个函数,求一下Co矩阵的秩是4,也就是这个系统是可控的。也就是我们可以从一个小车上施加力,但会控制两个车的速度和位置。最后up主总结系统的可控是指理论上的可控,实际上的系统有各种的物理约束,不一定是可控的!

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值