系统控制
对于一个开环控制器来说
X˙=AX
这里的 A 的特征值 λ 决定系统的表现,稳定性
当引入一个输入量时,控制器变为
X˙=AX+Bu
其中由于 u 是 X 的函数,所以系统形成了一个闭环控制
对于线性控制器来说,输入 u 满足
u=−KX
代入到控制器中可以得到
X˙=AX−BKX=(A−BK)X
可以选择 K 的数值来使得 X 前的系数的特征值 λi 处于一个期望的位置上,一般来说,需要保证其特征值均 ≤0 才能使得系统稳定
选取 λi 的原则
- 如果选取 λ 为虚数,那么一定会有共轭解存在,将一定会引入一个反复的振动
- λ 决定收敛的速度,最后的解的形式会变为 c1eλ1+c2eλ2+...
- 考虑输入 u,有些控制理论中会引入代价函数 J=∫0∞(XTQX+UTRU)dt ,用于调节参数平衡 u 与系统稳定的关系
控制器设计之前一定要判断一下系统的可控性,一般来说 先可控,再稳定
一个小栗子
对于一阶倒立摆模型,下面的小块也能移动

当小球在运动中的运动学方程(初始位置为竖直点)
xball=Lsin(ϕ)+xblock→xball=Lϕ+xblockyball=L(1−cos(ϕ))=0
小球的动力学方程
Fx=mx¨ball=Fsin(ϕ)=Fϕ=MLϕ¨+mx¨blockFy=Fcos(ϕ)=F=Mg
动力学方程化简得到
Mgϕ=MLϕ¨+Mx¨block⇓ϕ¨−Lgϕ+L1x¨block=0
建立系统状态空间方程,令
X=[x1x2]x1=ϕx2=ϕ˙u=L1x¨block
则从上式可以得到状态空间方程
X˙=[0Lg10]X+[0−1]uy=[10]X+[0]u
-
对于开环系统,也就是没有输入 u
A=[0Lg10]
特征值中有一个大于 0 的特征值,不稳定
-
对于闭环系统
系统的可控性,由系统的可控性中可知
Co=[BAB]=[0−1−10]Rank(Co)=2
所以系统可控,令
u=−[k1k2]X
带入之后得到
X˙=[0Lg+k11k2]X=AdX
求系数矩阵的特征根
∣λI−Ad∣=0⇓λ2−k2λ−Lg−k1=0
为了使得系统稳定,所以一般使其特征根位于负半轴上,所以可以将该式子定义为
λ2−k2λ−Lg−k1=0=λ2+2λ+1
得到
k1=−1−Lgk2=−2
带入之后得到
u=[1+Lg2]X
线性控制器——状态跟踪
对于上面所设计的控制器,如果想要使系统状态稳定再某一个位置时,就需要使用状态跟踪了
所以引入一个期望值,这里不对 x2 进行跟踪
x1d
令
e1=x1d−x1E=[e1x2]
一般来说,系统的期望值是不变的,所以可以得到
e1˙=−x˙1
所以可以得到,这里的 a11 是矩阵 A 中的一个元素
E˙=AE+Bu−[0a11]x1d
可以设计控制器,目的是稳定系统和调整平衡点
u=−KE−Bd−1GXd
带入得到
E˙=(Ad−BdK)E
所以需要选择合适的 K 使系统稳定
还是上面那个倒立摆的例子
对于上面所设计的控制器,如果想要使系统状态稳定再某一个位置时,就需要使用状态跟踪了
所以引入一个期望值,这里不对 x2 进行跟踪
x1d
令
e1=x1d−x1E=[e1x2]
一般来说,系统的期望值是不变的,所以可以得到
e1˙=−x˙1
对于上面的系统
A=[0Lg10]B=[0−1]
带入得到
E˙=[0−Lg−10]E+[0−1]u+[0Lg]x1d
所以可以设计
u=−KE+Lgx1d
带入之后得到
A−BK=[0−Lg+k11k2]
求得特征方程为
λ2−k2λ+k1−Lg=0
令
λ2−k2λ−Lg+k1=0=λ2+2λ+1
得到
k2=−2k1=1+Lg
也就是
u=[−1−Lg2]E+Lgx1d=−x1d+(1+Lg)x1+2x2