广州做网站的公,百度公司有哪些部门,甜品网页设计图片,网站开发需要的知识和技术本笔记来自北航诸兵老师的课程 课程地址#xff1a;模型预测控制#xff08;2022春#xff09;lecture 1-1 Unconstrained MPC 接上一篇#xff1a;【MPC学习笔记】01#xff1a;MPC简介#xff08;Lecture 1_1 Unconstrained MPC#xff09; 文章目录 1 详细介绍1.1 状…本笔记来自北航诸兵老师的课程 课程地址模型预测控制2022春lecture 1-1 Unconstrained MPC 接上一篇【MPC学习笔记】01MPC简介Lecture 1_1 Unconstrained MPC 文章目录 1 详细介绍1.1 状态方程1.2 Cost Function1.3 状态变量 u ( k ) u(k) u(k) 的求解1.4 举例 1 详细介绍
1.1 状态方程
对 LTI 离散系统 x ( k 1 ) A x ( k ) B u ( k ) x ∈ R n , u ∈ R p x(k1) Ax(k) Bu(k)\quad x\in\R^n, u\in R^p x(k1)Ax(k)Bu(k)x∈Rn,u∈Rp 对传统控制系统连续系统是好处理的离散系统是要额外考虑其他因素的 对MPC则是反过来离散系统是好处理的连续系统是要额外考虑其他因素的 假设 A , B A,B A,B 可控Stablizable状态和控制输入不存在约束本节讨论无约束MPC
Define x ( i ∣ k ) , u ( i ∣ k ) x(i|k), u(i|k) x(i∣k),u(i∣k): Prediction of i i isteps ahead from time k k k (比如在时刻 k k k 预测下一时刻的状态记为 x ( 1 ∣ k ) x(1|k) x(1∣k)当前时刻的输入记为 u ( 0 ∣ k ) u(0|k) u(0∣k)) 预测 x ( 1 ∣ k ) A x ( 0 ∣ k ) B u ( 0 ∣ k ) x ( 2 ∣ k ) A x ( 1 ∣ k ) B u ( 1 ∣ k ) A [ A x ( 0 ∣ k ) B u ( 0 ∣ k ) ] B u ( 1 ∣ k ) A 2 x ( 0 ∣ k ) A B u ( 0 ∣ k ) B u ( 1 ∣ k ) ⋮ ⋮ ⋮ x ( i ∣ k ) A i x ( 0 ∣ k ) A i − 1 B u ( 0 ∣ k ) A i − 2 B 2 u ( 1 ∣ k ) ⋯ B u ( i − 1 ∣ k ) \begin{aligned} x(1|k) Ax(0|k) Bu(0|k) \\ x(2|k) Ax(1|k) Bu(1|k)A[Ax(0|k) Bu(0|k)] Bu(1|k) \\ A^2x(0|k) ABu(0|k) Bu(1|k) \\ \quad\quad \quad \quad \quad \quad \vdots\quad \quad \quad \vdots\quad \quad \quad \vdots \\ x(i|k) A^ix(0|k) A^{i-1}Bu(0|k) A^{i-2}B^2u(1|k) \cdots Bu(i-1|k) \end{aligned} x(1∣k)x(2∣k)x(i∣k)Ax(0∣k)Bu(0∣k)Ax(1∣k)Bu(1∣k)A[Ax(0∣k)Bu(0∣k)]Bu(1∣k)A2x(0∣k)ABu(0∣k)Bu(1∣k)⋮⋮⋮Aix(0∣k)Ai−1Bu(0∣k)Ai−2B2u(1∣k)⋯Bu(i−1∣k)
In compact form: X ( k ) F x ( k ) Φ U ( k ) X(k) Fx(k) \Phi U(k) X(k)Fx(k)ΦU(k) X ( k ) ≜ [ x ( 1 ∣ k ) x ( 2 ∣ k ) ⋮ x ( N ∣ k ) ] U ( k ) ≜ [ u ( 0 ∣ k ) u ( 1 ∣ k ) ⋮ u ( N − 1 ∣ k ) ] X(k)\triangleq \begin{bmatrix} x(1|k)\\ x(2|k)\\ \vdots\\ x(N|k) \end{bmatrix} \quad\quad U(k)\triangleq \begin{bmatrix} u(0|k)\\ u(1|k)\\ \vdots\\ u(N-1|k) \end{bmatrix} X(k)≜ x(1∣k)x(2∣k)⋮x(N∣k) U(k)≜ u(0∣k)u(1∣k)⋮u(N−1∣k) X ( k ) X(k) X(k) 式中的 x ( k ) x(k) x(k) 也即 x ( 0 ∣ k ) x(0|k) x(0∣k) ≜ \triangleq ≜ : 表示定义为 N N N : Control/Predictive horizon实际上二者有区别但这里不做区分 1.2 Cost Function
这里cost function 的控制/预测时域是一个有限的数 J ( k ) ∑ i 1 N ∣ ∣ x ( i ∣ k ) ∣ ∣ Q 2 ∣ ∣ u ( i − 1 ∣ k ) ∣ ∣ R 2 X T ( k ) Q X ( k ) U T ( k ) R U ( k ) \begin{aligned} J(k) \sum^{N}_{i1}||x(i|k)||_Q^2 ||u(i-1|k)||_R^2 \\ X^T(k)\mathcal{Q}X(k) U^T(k)\mathcal{R}U(k) \end{aligned} J(k)i1∑N∣∣x(i∣k)∣∣Q2∣∣u(i−1∣k)∣∣R2XT(k)QX(k)UT(k)RU(k) 假设 Q Q Q和 R R R是正定的是权重 Q [ Q Q ⋱ Q ] R [ R R ⋱ R ] \mathcal{Q} \begin{bmatrix} Q\\ Q\\ \ddots\\ Q \end{bmatrix} \quad\quad \mathcal{R} \begin{bmatrix} R\\ R\\ \ddots\\ R \end{bmatrix} Q QQ⋱Q R RR⋱R 将 X ( k ) F x ( k ) Φ U ( k ) X(k) Fx(k) \Phi U(k) X(k)Fx(k)ΦU(k) 代入 J ( k ) J(k) J(k) 有 J ( k ) ( F x ( k ) Φ U ( k ) ) T Q ( F x ( k ) Φ U ( k ) ) U T ( k ) R U ( k ) ( x ( k ) T F T U ( k ) T Φ T ) ( Q F x ( k ) Q Φ U ( k ) ) U T ( k ) R U ( k ) x ( k ) T F T Q F x ( k ) U ( k ) T Φ T Q F x ( k ) x ( k ) T F T Q Φ U ( k ) U ( k ) T Φ T Q Φ U ( k ) U T ( k ) R U ( k ) x ( k ) T F T Q F x ( k ) 2 x ( k ) T F T Q Φ U ( k ) U ( k ) T ( Φ T Q Φ R ) U ( k ) \begin{equation*} \begin{aligned} J(k) (Fx(k) \Phi U(k))^{T} \mathcal{Q} (Fx(k) \Phi U(k)) U^T(k)\mathcal{R}U(k) \\ (x(k)^TF^T U(k)^T\Phi^T)(\mathcal{Q}Fx(k) \mathcal{Q}\Phi U(k)) U^T(k)\mathcal{R}U(k) \\ \textcolor{green}{x(k)^TF^T\mathcal{Q}Fx(k)} \textcolor{red}{U(k)^T\Phi^T\mathcal{Q}Fx(k) x(k)^TF^T\mathcal{Q}\Phi U(k)} \textcolor{blue}{U(k)^T\Phi^T\mathcal{Q}\Phi U(k) U^T(k)\mathcal{R}U(k)} \\ \textcolor{green}{x(k)^TF^T\mathcal{Q}Fx(k)} \textcolor{red}{2x(k)^TF^T\mathcal{Q}\Phi U(k)} \textcolor{blue}{U(k)^T(\Phi^T\mathcal{Q}\Phi\mathcal{R})U(k)} \end{aligned} \end{equation*} J(k)(Fx(k)ΦU(k))TQ(Fx(k)ΦU(k))UT(k)RU(k)(x(k)TFTU(k)TΦT)(QFx(k)QΦU(k))UT(k)RU(k)x(k)TFTQFx(k)U(k)TΦTQFx(k)x(k)TFTQΦU(k)U(k)TΦTQΦU(k)UT(k)RU(k)x(k)TFTQFx(k)2x(k)TFTQΦU(k)U(k)T(ΦTQΦR)U(k) F x ( k ) Fx(k) Fx(k) 和 Φ U ( k ) \Phi U(k) ΦU(k) 维数相同是系统状态的维数*N而 Q \mathcal{Q} Q是一个对角方阵故 U ( k ) T Φ T Q F x ( k ) x ( k ) T F T Q Φ U ( k ) 一个标量 {U(k)^T\Phi^T\mathcal{Q}Fx(k) x(k)^TF^T\mathcal{Q}\Phi U(k)}一个标量 U(k)TΦTQFx(k)x(k)TFTQΦU(k)一个标量故红色部分相加相当于其中一个乘2 1.3 状态变量 u ( k ) u(k) u(k) 的求解
Minimize the control function by predictive control series: 可以不严谨地理解为让 J J J最小相当于求 J J J在 J J J对 U U U导数为0 点的值 ∇ U ∣ U U ∗ ∂ J ∂ U ∣ U U ∗ 0 \nabla_U{|}_{UU^*}\frac{\partial{J}}{\partial U}{|}_{UU^*}0 ∇U∣UU∗∂U∂J∣UU∗0 ∂ J ∂ U 0 2 x ( k ) T F T Q Φ 2 U ( k ) T ( Φ T Q Φ R ) \frac{\partial{J}}{\partial U}\textcolor{green}{0} \textcolor{red}{2x(k)^TF^T\mathcal{Q}\Phi}\textcolor{blue}{2U(k)^T(\Phi^T\mathcal{Q}\Phi\mathcal{R})} ∂U∂J02x(k)TFTQΦ2U(k)T(ΦTQΦR) 令 ∂ J ∂ U 0 \frac{\partial{J}}{\partial U}0 ∂U∂J0可得 x ( k ) T F T Q Φ U ( k ) T ( Φ T Q Φ R ) 0 ( x ( k ) T F T Q Φ U ( k ) T ( Φ T Q Φ R ) ) T 0 ( x ( k ) T F T Q Φ ) T ( Φ T Q Φ R ) T U ( k ) 0 Φ T Q F x ( k ) ( Φ T Q Φ R ) U ( k ) 0 ( Φ T Q Φ R ) U ( k ) − Φ T Q F x ( k ) U ( k ) − ( Φ T Q Φ R ) − 1 Φ T Q F x ( k ) \begin{equation*} \begin{aligned} \textcolor{red}{x(k)^T F^T \mathcal{Q} \Phi}\textcolor{blue}{U(k)^T (\Phi^T\mathcal{Q}\Phi\mathcal{R})} 0 \\ (\textcolor{red}{x(k)^TF^T\mathcal{Q}\Phi}\textcolor{blue}{U(k)^T(\Phi^T\mathcal{Q}\Phi\mathcal{R})})^T0 \\ \textcolor{red}{(x(k)^TF^T\mathcal{Q}\Phi)^T}\textcolor{blue}{(\Phi^T\mathcal{Q}\Phi\mathcal{R})^TU(k)}0 \\ \textcolor{red}{\Phi^T \mathcal{Q} Fx(k)} \textcolor{blue} {(\Phi^T\mathcal{Q}\Phi\mathcal{R})U(k)}0 \\ \textcolor{blue}{(\Phi^T\mathcal{Q}\Phi\mathcal{R})U(k)}-\textcolor{red}{\Phi^T\mathcal{Q}Fx(k)} \\ \textcolor{blue}{U(k)}-\textcolor{blue}{(\Phi^T\mathcal{Q}\Phi\mathcal{R})^{-1}}\textcolor{red}{\Phi^T\mathcal{Q}Fx(k)} \end{aligned} \end{equation*} x(k)TFTQΦU(k)T(ΦTQΦR)0(x(k)TFTQΦU(k)T(ΦTQΦR))T0(x(k)TFTQΦ)T(ΦTQΦR)TU(k)0ΦTQFx(k)(ΦTQΦR)U(k)0(ΦTQΦR)U(k)−ΦTQFx(k)U(k)−(ΦTQΦR)−1ΦTQFx(k) 即 U ( k ) − ( Φ T Q Φ R ) − 1 Φ T Q F x ( k ) ( R 0 , Q ≥ 0 ; o r R ≥ 0 , Q 0 , a n d Φ i s f u l l y r a n k e d ) \begin{equation*} \begin{aligned} \textcolor{blue}{U(k)}- \textcolor{blue}{(\Phi^T\mathcal{Q}\Phi\mathcal{R})^{-1}} \textcolor{red}{\Phi^T\mathcal{Q}Fx(k)}\\ (R0,Q\ge0;or R\ge0,Q\gt0, and\ \Phi\ is\ fully\ ranked) \end{aligned} \end{equation*} U(k)−(ΦTQΦR)−1ΦTQFx(k)(R0,Q≥0;orR≥0,Q0,and Φ is fully ranked) 满足括号里的条件 ( Φ T Q Φ R ) (\Phi^T\mathcal{Q}\Phi\mathcal{R}) (ΦTQΦR)才可逆 u ∗ ( k ) − [ I p × p 0 ⋯ 0 ] ( Φ T Q Φ R ) − 1 Φ T Q F x ( k ) − K m p c x ( k ) \begin{equation*} \begin{aligned} \begin{aligned} \textcolor{blue}{u^*(k)}- \begin{bmatrix} I_{p\times p}0\cdots 0 \end{bmatrix} \textcolor{blue}{(\Phi^T\mathcal{Q}\Phi\mathcal{R})^{-1}} \textcolor{red}{\Phi^T\mathcal{Q}Fx(k)} \\ -K_{mpc}x(k) \end{aligned} \end{aligned} \end{equation*} u∗(k)−[Ip×p0⋯0](ΦTQΦR)−1ΦTQFx(k)−Kmpcx(k) 取 u ∗ ( k ) u^*(k) u∗(k) 则在 U ( k ) U(k) U(k) 前乘一个分块矩阵对角线上的第一个分块是一个单位阵维度为控制输入的维度 p p p ,如果不是多输入而是单输入则 p 1 p1 p1 。 u ∗ ( k ) u^*(k) u∗(k) 最后化简为一个常数矩阵 K m p c K_{mpc} Kmpc 因为 Φ \Phi Φ, Q \mathcal{Q} Q, R \mathcal{R} R, F F F这些全部是已知量乘上 k k k 时刻的状态变量从形式上看是状态反馈。 因此无约束线性MPC实际上是一个线性反馈控制。
1.4 举例 写一段matlab程序即可求解 F F F Φ \Phi Φ 和 u ∗ ( k ) u^*(k) u∗(k)。但问题是求解出来的 u ∗ ( k ) u^*(k) u∗(k)是否能保证系统是稳定的 对于有稳定性的判定有李雅普诺夫直接法和李雅普诺夫间接法见下 0 和 0 0和0 0和0 分别指的是正定和负定验证稳定性的前提是 K m p c K_{mpc} Kmpc 存在可优化性 并不决定 可稳定性两种可能的原因见下a和b所以这里验证稳定性的操作是必要的。优化是在一段时间上进行的在这段时间内 x x x不一定由大变小也可能先变小再变大从而不收敛对于非最小相位系统系统响应方向可能相反N取得不够大时预测不能反映真实运动趋势那么优化的不是系统真正的性能导致不稳定的情况发生 本例采用李雅普诺夫间接法在离散时间系统下的判据 当 N N N的取值越来越小如下面这个例子所示 特征值超出了单位圆从而不稳定。 知道如何判断稳定性后现在的问题变成了每一次优化后都要去验证一下系统的稳定性呢有没有一种机制保证每一次算出来的 K K K都保证系统的稳定性