现代控制理论
数学基础:
1.特征值λ与特征向量v:(已知A为nn,则v为n1,λ为1*1)
2.矩阵与坐标变换:
原直角系下(-1,2)的向量,将i向量变换为(3,1),j向量变换为(1,2)后的变换向量在原直角系下的值即为以下矩阵求解出来的值。
Z为状态,U为输入,Y为输出
对于n状态m输入k输出的系统而言:
[A]为nn的矩阵,[B]为nm的矩阵,[C]为kn的矩阵,[D]为km的矩阵
[X]和[dotX]为n1的向量,[U]为m1的向量,[Y]为k*1的向量
所谓开环系统,即无输入[U]=0的系统
求解状态空间方程的解:
状态转移矩阵 卷积
利用状态空间方程判断系统的稳定性:
平衡点的确定:怎么判断系统最终会趋向于一个怎样的平衡位置呢?只需令所有的[dotX]均为0,则此时系统处于平衡状态,利用状态空间方程即可求出对应的[X]值
λ其实就是经典控制理论中的极点
连续系统离散化:
由连续系统下状态空间方程的解可得:
系统的可控性判据:
离散型证明:
只有一个系统是可控的,它才可能在控制中做文章,比如改变其稳定性
李雅普诺夫意义下的稳定性:
其中蓝线为李雅普诺夫意义下的稳定性,棕线为渐进稳定性
对于线性时不变系统,λ的取值仍可以反映上述稳定性
线性控制器的设置:(前提是系统完全可控)
为了改变开环系统的稳定性,我们引入输入量使之成为闭环系统,故改变稳定性也就是改变特征根λ,故我们可以引入线性控制器[U]=-[k][X],此时[X’]=([A]-[B][k])[X]
举个例子:
这个时候我们如果要让λ1=λ2=1收敛,即:
对λ值选取的考虑涉及很多因素,例如:
其中对输入的考虑涉及到最优控制和LQR,Q矩阵看重收敛速度,R矩阵看重输入值
以倒立摆模型为例:
该模型最终的微分方程即,转换成状态空间方程就是:
其在开环下不稳定:
检验其可控性,为了使其稳定,引入线性控制器:
如果仍要让λ1=λ2=1收敛:
基于线性控制器的LQR控制器:使用代价函数来求取好的特征值
对于n状态m输入k输出的系统而言:Q矩阵规模为nn,R矩阵规模为mm
根据控制要求给定QR矩阵(Q看中状态的收敛速度,R看中输入的力度)求取代价函数J的最小值(matlab的lqr函数),可以确定线性控制器的K矩阵
以前面的倒立摆为例:
建立系统的数学模型:
利用LQR得到最适合所设QR的K1和K2代入系统即可:
由于Q大R小,可以看到x1快速收敛,而输入U的初值则非常的大
状态观测器:
先前我们进行的线性控制器设计基于[U]=-[K][X]的关系,这个关系隐含着[X]的可观性,如果[X]不可观,我们往往就需要使用状态观测器来观察系统的状态
以下面这个状态观测器为例,其引入了L(y-hat{y})项,目标是找到L(n*m)使hat{y}趋近y
可以看到⑤式即为一个接收系统输入、输出来得到估计状态的观测器
显然,为了让状态观测器尽可能精确,ex的值应趋向于零
为了让ex的值趋于稳定(0),由前知识可知应该使A-LC的特征值均小于0
以一个弹簧阻尼系统(速度不可测)为例:
确定了系统模型后,接下来开始设计状态观测器:
由此确定的观测器为:
通过simulink建模:
可以看到z2和z2hat几乎完全一致:
因此即使我们无法观测z2的值,我们也可以通过创建一个状态观测器来得到z2的一个估计值z2hat,事实证明这个估计值已足够精确于真实值。
轨迹跟踪:
所谓轨迹跟踪,就是让状态量根据自己的需求稳定在一个非零值上,仍然以倒立摆为例:
此时只需要将原来的状态量x变为误差e,把e作为新的状态量,只要让e->0就能让x->xd
此时新的状态方程开环平衡点如下,可以看到ef不等于0,也就是平衡时x不等于xd,这显然不是我们想要的结果。故设计控制器除了为让系统稳定之外,还有调整平衡点的作用。
勘误:这里ef=g/l*x1d应为x1d
于是我们设计线性控制器时有意识的添加一个常量以修正平衡点偏移:
可以看到此时平衡点已经满足要求了,接下来就是使系统稳定
可见将输入设计为上式即可使系统稳定的同时实现目标轨迹规划
系统的可观性:
只有一个系统是可观的,它才能使用观测器;只有一个系统是可控的,它才能使用控制器
可观不意味着所有状态都容易测量,因此有时仍需要使用状态观测器
下例是一个控制器+观测器系统:(此时控制器的控制依据是观测器的观测结果u=-k*hat{x})
以上就是这个控制器+观测器系统的状态方程,为使系统稳定应让特征值均小于0,而M的特征值就是A-LC和A-BK的特征值,由此实现了控制器与观测器的设计分离原则,即可以A分别设计L和K使A-LC和A-BK的特征值小于0,则M的特征值也必然小于0
为了保证观测的准确性,额外要求观测器的收敛速度快于控制器