线性控制器设计
系统控制对于一个开环控制器来说
\dot{X}=AX这里的 $A$ 的特征值 $\lambda$ 决定系统的表现,稳定性
当引入一个输入量时,控制器变为
\dot{X}=AX+Bu其中由于 $u$ 是 $X$ 的函数,所以系统形成了一个闭环控制
对于线性控制器来说,输入 $u$ 满足
u=-KX代入到控制器中可以得到
\dot{X}=AX-BKX=(A-BK)X可以选择 $K$ 的数值来使得 $X$ 前的系数的特征值 $\lambda_i$ 处于一个期望的位置上,一般来说,需要保证其特征值均 $≤0$ 才能使得系统稳定
选取 $\lambda_i$ 的原则
如果选取 $\lambda$ 为虚数,那么一定会有共轭解存在,将一定会引入一个反复的振动
$\lambda$ 决定收敛的速度,最后的解的形式会变为 $c_1e^{\lambda_1}+c_2e^{\lambda_2}+…$
考虑输入 $u$,有些控制理论中会引入代价函数 $J=\int_0^{\infty}(X^TQX+U^TRU)dt$ ,用于调节参数平衡 u 与系统稳定的关系
控制器设计之前一定要判断一下系统的可控性 ...
线性状态观测器
对于系统的状态,一般都是可以直接测定的,但是有些情况,系统的状态不能够直接测定,所以要根据系统的输入和输出来估计系统的状态
对于一个系统
\dot{X}=AX+Bu\\y=CX+Du设定 $\hat{X}$ 为系统状态的估计值, $\hat{y}$ 为输出的估计值
\dot{\hat{X}}=A\hat{X}+Bu+L(y-\hat{y})\\\hat{y}=C\hat{X}+Du两式合并得
\dot{\hat{X}}=(A-LC)\hat{X}+(B-LD)u+Ly这就是观测器形式
可以得到
\dot{X}-\dot{\hat{X}}=AX+Bu-((A-LC)\hat{X}+(B-LD)u+Ly)\\\Downarrow\\\dot{X}-\dot{\hat{X}}=(A-LC)X-(A-LC)\hat{X}=(A-LC)(X-\hat{X})此时,令
e_x={X}-{\hat{X}}是估计值与实际值之间的误差
由于我们的目标肯定是使得实际值与估计值是一致的,所以误差值的期望是变小的,也就是 $e_x→0$
所以根据上式可以得到一个这样的式子
\dot{e_x}=(A ...
LQR线性二次型调节器
github仓库
线性指的是系统是线性的,典型的线性系统的状态方程
x(k+1)=Ax(k)+Bu(k)二次型是指代价函数 $J$ 是二次型的。
J=\frac{1}{2} x(N)^TSx(N)+\frac{1}{2}\sum_{k=0}^{N-1}{[x^T(k)Qx(k)+u^T(k)Ru(k)]}其中前一项中 $N$ 表示末端时刻, $x_d$ 是系统的参考,也就是目标,这个 $J$ 是末端代价, $S$ 为末端状态的权重矩阵,是一个对角阵, $Q$ 是运行过程中的权重矩阵, $R$ 是控制量的权重矩阵, $S$ 和 $Q$ 是 $N\times N$ 的,但是 $R$ 是 $P\times P$的,如果对某个元素要求大时可以对应的将 $R$ 增大,关键的是 $S$ 和 $Q$ 都是半正定阵, $R$ 为正定阵,只有这样系统才会有最小值,即 $s≥0,q≥0,r>0$
对于一个系统来说,当 $x_d$ 为零时,该系统就是一个调节系统,不为零就是一个跟踪系统。
LQR线性二次型调节器对应的调节二次型的 LQR 的代价函数就是
J=\frac{1}{2} x(N)^T ...
matlab中LMI工具箱使用
初始化一个 LMI 系统12setlmis(lmi0);setlmis([]); % 常用
向 LMI 系统中添加矩阵变量 lmivar12X = lmivar(type, struct); % 常用[X, ndec, xdec] = lmivar(type, struct); % ndec表述与X有关的决策变量的个数,xdec表示X对这些决策变量的初始依赖关系
type类型对应的数值
含义
1
对角线对称矩阵格式,每个对角块都是满块
2
矩形块,struct=[m,n] 表示 m x n 阶矩阵
3
描述复杂类型的矩阵
type=1
struct 包含两个基本变量
第一个描述矩阵块的阶数
第二个描述矩阵块的类型
| 0 | 标量 | | —- | —— | | 1 | 满块 | | -1 | 零块 |
type=2
type=3
描述复杂类型的矩阵
返回 LMI 的函数的内部描述 getlmis1lmisys = getlmis % lmisys 称为存储在机器内部线性矩阵不等式系统的名称,一个线性矩阵不等式以 s ...
不变性原理
例子
对于一个简单的倒立摆
可以知道系统状态方程是
L\ddot{\phi}+gsin\phi=0设
x_1=\phi\\\\
x_2=\dot{\phi}得到
\dot{x}_1=x_2\\\\
\dot{x}_2=-\frac{g}{L}sinx_1寻找李雅普诺夫函数,可以使用能量方程
E=K动能+P势能\\\\
=\frac{1}{2}mv^2+mgh=\frac{1}{2}m(L\dot{\phi})^2+mgL(1-cos\phi)所以得到李雅普诺夫函数
V(x)=\frac{1}{2}m(Lx_2)^2+mgL(1-cosx_1)开始分析,看得出来
V(0)=0并且,对于任意 $x_1,x_2$,可以得到
V(x)>0是满足正定条件的
求导得到
\dot{V}=\triangledown V f(x)=\begin{bmatrix}\frac{\partial V}{\partial x_1}&\frac{\partial V}{\partial x_2}\end{bmatrix}\begin{bmatrix}f_1\\f_2\end{bmatrix}=\ ...
系统的稳定性
稳定性:系统在离开平衡点之后的动态反应随时间不增加
函数的一些知识PD 正定
$V(x)=0\ if\ and\ only\ if\ x=0$
$V(x)>0\ if\ and\ only\ if\ x\neq 0$
PSD 半正定
$V(x)=0\ if\ and\ only\ if\ x=0$
$V(x)\geq0\ if\ and\ only\ if\ x\neq 0$
ND 负定
$V(x)=0\ if\ and\ only\ if\ x=0$
$V(x)<0\ if\ and\ only\ if\ x\neq 0$
NSD 半负定
$V(x)=0\ if\ and\ only\ if\ x=0$
$V(x)\leq0\ if\ and\ only\ if\ x\neq 0$
平衡点
对于一个函数满足
\dot{x}=f(x)\\f(x=0)=0\\\downarrow\\\dot{x}_{x=0}=0那就说这个 $x=0$ 点是该函数的一个平衡点
如果此时的函数 V 满足
V:PD\\\dot{V}:NSD\\\downarrow\\x=0是稳 ...
系统的可控性
对于一个系统状态方程
\dot{X}=AX+Bu离散型与连续型是一样的
X_{k+1}=AX_k+Bu_k
X_{1}=AX_0+Bu_0\\\\
X_2=AX_1+Bu_1=A^2X_0+ABu_0+Bu_1\\\\
\dots\\\\
X_n=AX_{n-1}+Bu_{n-1}=A^nX_0+A^{n-1}Bu_0+\dots+ABu_{n-2}+Bu_{n-1}转化为矩阵形式
X_n=\begin{bmatrix}B&AB&A^{n-1}B&A^n\end{bmatrix}\begin{bmatrix}u_{n-1}\\u_{n-2}\\\dots\\u_0\\X_0\end{bmatrix}想要实现该方程中 $u$ 有解,需要保证系数矩阵行满秩,也就是可控,一般来说初始状态 $X_0=0$,所以上式可以写作
X_n=\begin{bmatrix}B&AB&A^{n-1}B\end{bmatrix}\begin{bmatrix}u_{n-1}\\u_{n-2}\\\dots\\u_0\end{bmatrix}但是这里所说的系统可控并不能使系统从一点直接到另一点,只能沿着特 ...
Hamilton Matrix and Equation
最优化问题求解中的汉密尔顿方程是最优控制方法解决动态优化问题的一阶必要条件
汉密尔顿方程(Hamilton Equation)
理论推导首先看需要解决的问题
max\int_{t_0}^{t_1}f(x,u)dt\\\\
\dot{x}=g(x,u)\\\\
x(t_0)=x_0\\\\
x(t_1):free引入一个函数 $\lambda (t)$ 表示一个定义在 $t_0\leq t\leq t_1$ 上的连续的可微函数,那么对于任何满足上述约束的 $x(t),u(t)$ 有
\int_{t_0}^{t_1}f(x,u)dt=\int_{t_0}^{t_1}[f(x,u)+\lambda g(x,u)-\lambda \dot{x}]dt对上式最右侧右侧部分进行分部积分可以得到
-\int_{t_0}^{t_1}\lambda \dot{x}dt=-\lambda(t_1)x(t_1)+\lambda (t_0)x(t_0)+\int_{t_0}^{t_1}x\dot{\lambda}dt将上式带回原来的方程
\int_{t_0}^{t_1}f(x,u)dt=\int_{t ...
Riccati方程
前言第四讲:李群和李代数 - 知乎 (zhihu.com)
辛矩阵数学中,辛矩阵是指存在一个 $2n\times 2n$ 的矩阵 M,使之满足
M^T\Omega M=\Omega其中 $M^T$ 为 M 的转置矩阵,而辛矩阵 $\Omega$ 是一个固定的可逆斜对称矩阵,这类矩阵在适当的变化后皆能表为
\Omega=\begin{bmatrix}0&I\\-I&0\end{bmatrix}或者
\Omega=\begin{bmatrix}0&1\\-1&0\\&&...\\&&&0&1\\&&&-1&0\\\end{bmatrix}两者的差异仅在于基的排列,其中 $I$ 是 $n\times n$ 的单位矩阵,此外 $\det\Omega=1$ 并且 $\Omega ^{-1}=-\Omega$
性质
$\Omega^T=-\Omega=\Omega^{-1}$
$\Omega^T\Omega=\Omega\Omega^T=I$
$\Omega\Omega=-I$
$\det\Omega=1$
代数Riccati方程黎卡提方程是最简单的一类非线性方程。例如
y' = P( ...
矩阵求导和迹运算
求导对与矩阵 $X$, $A$, $U$, $V$
\frac{dX^T}{X}=I\\\\
\frac{dX}{X^T}=I\\\\
\frac{dX^TA}{X}=A\\\\
\frac{dAX}{X^T}=A\\\\
\frac{dAX}{X}=A^T\\\\
\frac{dXA}{X}=A^T\\\\
\frac{dX^TX}{X}=2X\\\\
\frac{dX^TAX}{X}=(A+A^T)X\\\\
\frac{dX^TAX}{XX^T}=\frac{d}{dX}(\frac{dX^TAX}{dX})=A^T+A\\\\
\frac{\partial U}{\partial X^T}=(\frac{\partial U^T}{\partial X})^T\\\\
\frac{\partial U^TV}{\partial X}=\frac{\partial U^T}{\partial X}V+\frac{\partial V^T}{\partial X}U^T\\\\
\frac{\partial UV^T}{\partial X}=\frac{\partial U}{ ...