目录
转载参考资料:
LQR:Linear Quadratic Regulator 线性二次型调节器_One.Wan 的博客 - 优快云 博客_线性二次型调节器
【控制理论】离散及连续的 LQR 控制算法原理推导_CHH3213 的博客 - 优快云 博客_lqr 控制
1 LQR 简介
LQR:Linear Quadratic Regulator 线性二次型调节器,常用于车辆的横向控制中。
那么,什么是 LQR 呢?
如果所研究的系统是线性的,且性能指标为状态变量和控制变量的二次型函数,则最优控制问题称为线性二次型问题。
而 LQR,Linear Quadratic Regulator,即线性二次型调节器, 是求解线性二次型问题常用的求解方法。
LQR ,其对象是现代控制理论中以状态空间形式给出的线性系统,而目标函数为对象状态和控制输入的二次型函数。
LQR 最优设计是指设计出的状态反馈控制器 K 要使二次型目标函数 J 取最小值,而 K 由权矩阵 Q 与 R 唯一决定,故此 Q、 R 的选择尤为重要。
LQR 理论是现代控制理论中发展最早也最为成熟的一种状态空间设计法。特别可贵的是,LQR 可得到状态线性反馈的最优控制规律,易于构成闭环最优控制。
2 现代控制理论基础
2.1 状态空间描述
2.2 线性定常系统的状态空间描述框图
2.3 线性系统连续系统的反馈控制
经典控制理论中,我们依据描述对象输入输出行为的传递函数模型来设计控制器,因此只能用系统的可测量输出作为反馈信号。
而现代控制理论则是用刻画系统内部特征的状态空间模型来描述对象,除了可测量的输出信号外,还可以用系统的内部状态来作为反馈信号。
根据可利用的信息是系统的输出还是状态,相应的反馈控制可分为输出反馈和状态反馈。
****现代控制理论中,更多地使用状态反馈,****由于状态反馈能提供更丰富的状态信息和可供选择的自由度,因而能使系统更容易获得更为优异的性能。其实,输出反馈是可以看做是部分状态反馈。
2.31 全状态反馈控制器
(1)设计一个状态反馈控制器,如下图所示:多了个 K 反馈环节,一般直接取 u=-Kx;
(2)设计完反馈控制器的架构之后,下面要保证反馈系统的稳定性。
反馈系统稳定性的充要条件是系统闭环传递函数的所有极点均有负实部,即均在复频域 S 平面的左侧。
根据稳定性判定的条件,首先求闭环系统的传递函数。
为了书写一致性,我们重写系统状态表达式将 r 替换成 u:意思是最后实际是 Y(s)/r(s);
可以得到系统的闭环传递函数的形式如式 (6) 所示,只需要分母表达式。可见系统传递的极点就是矩阵 A − BK 的特征值。
因此,可以通过配置 K 矩阵 (r*n 矩阵),使闭环系统达到我们期望的状态。
问题是:当系统变量很多的时候,即使设计好了极点,但是矩阵 K 也不好计算。接下来开始引入 LQR 帮助求解 K。
3 LQR 设计控制器的方法
3.1 什么是二次型
在不指定优化标准的前提下,控制领域中的 “最优” 体现在“输出能够完全跟踪控制,即在每一时刻输出量与控制量完全一致”。实际过程并不是这样完美的过程,每一时刻都会存在误差。退而求其次,追求在整个工作时间的范围内误差最小, 与轨迹误差类似,我们研究状态误差。
因此,把整个工作时间内每一时刻状态的误差都累加起来,只要累加值更小,便会更加接近系统性能的期望。
1 首先,假设状态向量 x****(t)**** 的维度为 1 以及闭环系统稳定。
- 扩充状态变量到 n 个,则代价函数为:
类似的 J 的函数称为二次型函数,变量的最高次数是 2。
所有展开的函数最高次数为 2 的,这种类型的函数统称为二次型函数。
3.2 二次型最优控制(注意:代价函数前面有公式加系数 1/2)
3.3 连续时间下的 LQR 调节器设计步骤
3.3.1 Q、R 矩阵选取
Q 为半正定的状态加权矩阵, R 为正定的控制加权矩阵(注意这里),两者通常取为对角阵。Q 矩阵元素变大意味着希望状态量能够快速趋近于零;R 矩阵元素变大意味着希望控制输入能够尽可能小,它意味着系统的状态衰减将变慢。所以,Q、R 的选取,要综合看具体的实际应用场景来调节。
3.3.2 求解 Riccati 方程得到矩阵 P
我们求解的前提是假定系统处于稳定状态,此时的状态反馈为 u(t)=-Kx(t);
将状态方程代入到代价函数中
状态方程:x ˙ (t) = ( A − B K ) x ( t )
式(10)中 A,B,Q,R 都是已知量,那么通过式 (10) 可以求解出 P(n×n 维),式 (10) 就是著名的连续时间代数 Riccati 方程 (CARE)。
3.3.3 计算反馈矩阵
根据 P,可计算出反馈矩阵 K=R-1BTP;
3.3.4 计算控制量
u=-Kx;
3.4 离散时间下的 LQR 调节器的设计(重要!!)
3.41 推导
首先,对状态方程进行离散化,如下图:Apollo 是第二种
接着,以这个离散的系统进行 dlqr 推导,注意此时的代价函数略微不同,多了一项。
推导参考:
基础算法 - LQR - 离散时间有限边界 | Henry-Z
3.42 推导结果
3.43 离散 lqr 算法步骤:
一般迭代个几十步,P 就不变了!!收敛了!!
输入 A、B、Q、R、最大迭代次数 N,以及精度,即 P 变化量多少时可以看做不变收敛了。
补充知识:
“Transpose” 是一个在数学、计算机科学和线性代数中常用的术语,它指的是矩阵的一种操作,即将矩阵的行和列互换。
“Transpose” 是一个在数学、计算机科学和线性代数中常用的术语,它指的是矩阵的一种操作,即将矩阵的行和列互换。具体来说,如果一个矩阵 A 有 m 行 n 列,那么它的转置(transpose)是一个 n 行 m 列的矩阵,其中 A 的转置矩阵的第 i 行第 j 列的元素是 A 的第 j 行第 i 列的元素。
在数学符号中,矩阵 A 的转置通常表示为 A^T 或 A’(具体符号可能因上下文而异)。
矩阵的转置操作具有一些重要的性质,比如:
- (AT)T = A:一个矩阵的转置的转置等于原矩阵本身。
- (AB)^T = B^T A^T:如果 A 和 B 是两个可以相乘的矩阵,那么它们的乘积的转置等于 B 的转置与 A 的转置的乘积(注意顺序)。
- 转置不改变矩阵的迹(trace):矩阵的迹是其对角线上元素的和,而转置操作不会改变对角线上的元素,因此也不会改变矩阵的迹。
转置矩阵在多种领域中有广泛应用,包括但不限于统计学、经济学、物理学、计算机科学等。在统计学中,转置矩阵常用于表示数据集的行和列的互换;在计算机科学中,转置矩阵可以用于图像处理、文本挖掘等领域。