当前位置: 首页 > news >正文

网站漏洞 在线扫描贵州网站建设营销公司

网站漏洞 在线扫描,贵州网站建设营销公司,推广的方式,企业查询天眼查免费目录 前言【基础】二次型是凸函数【基础】常见的凸约束 一、约束MPC的求解1.1 等式约束MPC1.2 不等式约束MPC 二、稳定性分析2.1 终端等式约束2.1.1 稳定性证明2.1.2 迭代可行性分析2.1.3 MATLAB应用实例2.1.4 总结 2.2 终端不等式约束#xff08;优化无限时域#xff09;2.2… 目录 前言【基础】二次型是凸函数【基础】常见的凸约束 一、约束MPC的求解1.1 等式约束MPC1.2 不等式约束MPC 二、稳定性分析2.1 终端等式约束2.1.1 稳定性证明2.1.2 迭代可行性分析2.1.3 MATLAB应用实例2.1.4 总结 2.2 终端不等式约束优化无限时域2.2.1 求解步骤与稳定性保证2.2.2 迭代可行性分析2.2.3 MATLAB应用实例2.2.4 总结 附录1附录2 前言 由上一节可以看到MPC是通过优化代价函数来求解最优控制序列这一般是通过凸优化来进行的。 凸优化问题已有高效的算法来进行求解我们确保构建的优化问题是凸优化即可。 致谢 【模型预测控制2022春lecture 2-1 Constrained MPC】、【模型预测控制2022春lecture 2-2 Constrained MPC】 【基础】二次型是凸函数 凸函数定义设 C C C 是非空凸集 f f f 是定义在 D D D 上的函数对任意 x 1 , x 2 ∈ C x_1, x_2 \in C x1​,x2​∈C λ ∈ ( 0 , 1 ) \lambda \in (0,~1) λ∈(0, 1) 均有 f ( λ x 1 ( 1 − λ ) x 2 ) ≤ λ f ( x 1 ) ( 1 − λ ) f ( x 2 ) (1) f(\lambda x_1 (1-\lambda) x_2) \le \lambda f(x_1)(1-\lambda)f(x_2) \tag{1} f(λx1​(1−λ)x2​)≤λf(x1​)(1−λ)f(x2​)(1)则称 f f f 为 C C C 上的凸函数。 证明二次型 f ( x ) 1 2 x T H x f T x f(x) \frac{1}{2}x^THxf^Tx f(x)21​xTHxfTx是凸函数 其中 x ∈ R n x \in \mathbb{R}^n x∈Rn 任取 x 1 , x 2 ∈ R n x_1, x_2 \in \mathbb{R}^n x1​,x2​∈Rn 计算式 (1) 左侧 f ( λ x 1 ( 1 − λ ) x 2 ) 1 2 [ λ 2 x 1 T H x 1 ( 1 − λ ) 2 x 2 T H x 2 2 λ ( 1 − λ ) x 1 T H x 2 ] f T [ λ x 1 ( 1 − λ ) x 2 ] \begin{align*} f(\lambda x_1 (1-\lambda) x_2) \frac{1}{2} \left[ \lambda ^2 x_1^THx_1 (1-\lambda) ^2 x_2^THx_2 2\lambda (1-\lambda) x_1^THx_2\right] f^T \left[ \lambda x_1 (1-\lambda) x_2\right] \end{align*} f(λx1​(1−λ)x2​)​21​[λ2x1T​Hx1​(1−λ)2x2T​Hx2​2λ(1−λ)x1T​Hx2​]fT[λx1​(1−λ)x2​]​ 计算式 (1) 右侧 λ f ( x 1 ) ( 1 − λ ) f ( x 2 ) 1 2 λ x 1 T H x 1 1 2 ( 1 − λ ) x 2 T H x 2 λ f T x 1 ( 1 − λ ) f T x 2 \begin{align*} \lambda f(x_1) (1-\lambda) f(x_2) \frac{1}{2} \lambda x_1^THx_1 \frac{1}{2} (1-\lambda) x_2^THx_2 \lambda f^Tx_1 (1-\lambda) f^Tx_2 \end{align*} λf(x1​)(1−λ)f(x2​)​21​λx1T​Hx1​21​(1−λ)x2T​Hx2​λfTx1​(1−λ)fTx2​​ 左侧减右侧得 f ( λ x 1 ( 1 − λ ) x 2 ) − ( λ f ( x 1 ) ( 1 − λ ) f ( x 2 ) ) − 1 2 λ ( 1 − λ ) x 1 T H x 1 − 1 2 λ ( 1 − λ ) x 2 T H x 2 λ ( 1 − λ ) x 1 T H x 2 1 2 λ ( 1 − λ ) [ x 1 T H x 2 − x 1 T H x 1 x 1 T H x 2 − x 2 T H x 2 ] 1 2 λ ( 1 − λ ) [ x 1 T H ( x 2 − x 1 ) ( x 1 − x 2 ) T H x 2 ] 1 2 λ ( 1 − λ ) [ x 1 T H ( x 2 − x 1 ) − x 2 T H ( x 2 − x 1 ) ] − 1 2 λ ( 1 − λ ) ( x 2 − x 1 ) T H ( x 2 − x 1 ) ≤ 0 (当  H 半正定) \begin{align*} \hspace{0.5cm} f(\lambda x_1 (1-\lambda) x_2) - \left(\lambda f(x_1) (1-\lambda) f(x_2) \right) \\ -\frac{1}{2} \lambda (1 - \lambda )x_1^THx_1 -\frac{1}{2}\lambda(1-\lambda) x_2^THx_2 \lambda (1-\lambda) x_1^THx_2 \\ \frac{1}{2}\lambda(1-\lambda) \left[ x_1^THx_2 - x_1^THx_1 x_1^THx_2 - x_2^THx_2 \right] \\ \frac{1}{2}\lambda(1-\lambda) \left[ x_1^TH(x_2 - x_1) (x_1 - x_2)^THx_2 \right] \\ \frac{1}{2}\lambda(1-\lambda) \left[ x_1^TH(x_2 - x_1) - x_2^TH(x_2 - x_1) \right] \\ -\frac{1}{2}\lambda(1-\lambda) (x_2-x_1)^TH(x_2 - x_1) \le 0 \quad \text{(当 $H$ 半正定)} \end{align*} ​f(λx1​(1−λ)x2​)−(λf(x1​)(1−λ)f(x2​))−21​λ(1−λ)x1T​Hx1​−21​λ(1−λ)x2T​Hx2​λ(1−λ)x1T​Hx2​21​λ(1−λ)[x1T​Hx2​−x1T​Hx1​x1T​Hx2​−x2T​Hx2​]21​λ(1−λ)[x1T​H(x2​−x1​)(x1​−x2​)THx2​]21​λ(1−λ)[x1T​H(x2​−x1​)−x2T​H(x2​−x1​)]−21​λ(1−λ)(x2​−x1​)TH(x2​−x1​)≤0(当 H 半正定)​ 即 f ( λ x 1 ( 1 − λ ) x 2 ) ≤ λ f ( x 1 ) ( 1 − λ ) f ( x 2 ) f(\lambda x_1 (1-\lambda) x_2) \le \lambda f(x_1) (1-\lambda) f(x_2) f(λx1​(1−λ)x2​)≤λf(x1​)(1−λ)f(x2​) 【基础】常见的凸约束 约束条件构成凸集即为凸约束 凸集定义如果 C C C 中任意两点间的线段仍然在 C C C 中则该集合为凸集即对于任意 x 1 , x 2 ∈ C x_1, x_2 \in C x1​,x2​∈C λ ∈ [ 0 , 1 ] \lambda \in [0,~1] λ∈[0, 1]都有 λ x 1 ( 1 − λ ) x 2 ∈ C \lambda x_1 (1-\lambda) x_2 \in C λx1​(1−λ)x2​∈C. 来源凸优化(Convex Optimization) (Stephen Boyd, Lieven Vandenberghe, 王书宁译) 常见凸约束 (1) 等式约束 A e q x b e q A_{eq}xb_{eq} Aeq​xbeq​ (2) 不等式约束 A x ≤ b Ax \le b Ax≤b 证明 1任取 x 1 , x 2 ∈ { x ∣ A e q x b e q } x_1, x_2 \in \{x |A_{eq}xb_{eq}\} x1​,x2​∈{x∣Aeq​xbeq​} λ ∈ [ 0 , 1 ] \lambda \in [0,~1] λ∈[0, 1]有 A e q [ λ x 1 ( 1 − λ ) x 2 ] λ A e q x 1 ( 1 − λ ) A e q x 2 λ b e q ( 1 − λ ) b e q b e q \begin{align*} \hspace{0.5cm} A_{eq}\left[\lambda x_1 (1-\lambda) x_2 \right] \\ \lambda A_{eq}x_1 (1-\lambda) A_{eq}x_2 \\ \lambda b_{eq} (1-\lambda) b_{eq} \\ b_{eq} \end{align*} ​Aeq​[λx1​(1−λ)x2​]λAeq​x1​(1−λ)Aeq​x2​λbeq​(1−λ)beq​beq​​故 λ x 1 ( 1 − λ ) x 2 ∈ { x ∣ A e q x b e q } \lambda x_1 (1-\lambda) x_2 \in \{x |A_{eq}xb_{eq}\} λx1​(1−λ)x2​∈{x∣Aeq​xbeq​}. 2任取 x 1 , x 2 ∈ { x ∣ A x ≤ b } x_1, x_2 \in \{x |Ax \le b\} x1​,x2​∈{x∣Ax≤b} λ ∈ [ 0 , 1 ] \lambda \in [0,~1] λ∈[0, 1]有 A [ λ x 1 ( 1 − λ ) x 2 ] ≤ λ A x 1 ( 1 − λ ) A x 2 λ b ( 1 − λ ) b b \begin{align*} \hspace{0.5cm} A\left[\lambda x_1 (1-\lambda) x_2 \right] \\ \le \lambda Ax_1 (1-\lambda) Ax_2 \\ \lambda b (1-\lambda) b \\ b \end{align*} ​A[λx1​(1−λ)x2​]≤λAx1​(1−λ)Ax2​λb(1−λ)bb​故 λ x 1 ( 1 − λ ) x 2 ∈ { x ∣ A x b } \lambda x_1 (1-\lambda) x_2 \in \{x |Axb\} λx1​(1−λ)x2​∈{x∣Axb}. 一、约束MPC的求解 约束MPC的求解相似于上一节【MPC】模型预测控制笔记 (1)无约束MPC同样是构建二次规划问题来求解最优控制序列 U ∗ U^* U∗即 U ∗ a r g min ⁡ U 1 2 U T H U f T U U^* \mathrm{arg} \min_U \frac{1}{2}U^THUf^TU U∗argUmin​21​UTHUfTU 符号说明 arg min (argument of the minimum): 使得目标函数取得最小值的自变量. s. t. (subject to): 满足以下条件 1.1 等式约束MPC 在等式约束下优化问题可表述为 U ∗ a r g min ⁡ U 1 2 U T H U f T U s . t . A e q U b e q \begin{align*} U^* \mathrm{arg} \min_U \frac{1}{2}U^THUf^TU \\ \mathrm{s. t.} \quad A_{eq}U b_{eq} \end{align*} U∗​argUmin​21​UTHUfTUs.t.Aeq​Ubeq​​ 可通过拉格朗日乘子法将带约束优化问题转换为无约束优化问题。 引入未知的拉格朗日乘子 λ \lambda λ构造拉格朗日函数为 L 1 2 U T H U f T U λ ( A e q U − b e q ) \mathcal{L} \frac{1}{2}U^THUf^TU \lambda (A_{eq}U - b_{eq}) L21​UTHUfTUλ(Aeq​U−beq​) 通过令一阶导数为 0 求解 U U U 和 λ \lambda λ: { ∂ L ∂ U H U f λ A e q T 0 ∂ L ∂ λ A e q U − b e q 0 \left\{ \begin{aligned} \frac{\partial \mathcal{L}}{\partial U} HU f \lambda A_{eq}^T 0 \\ \frac{\partial \mathcal{L}}{\partial \lambda} A_{eq}U - b_{eq} 0 \end{aligned} \right. ⎩ ⎨ ⎧​∂U∂L​∂λ∂L​​HUfλAeqT​0Aeq​U−beq​0​ 1.2 不等式约束MPC 在不等式约束下优化问题可表述为 U ∗ a r g min ⁡ U 1 2 U T H U f T U s . t . A U ≤ b \begin{align*} U^* \mathrm{arg} \min_U \frac{1}{2}U^THUf^TU \\ \mathrm{s. t.} \quad AU \le b \end{align*} U∗​argUmin​21​UTHUfTUs.t.AU≤b​ 在 active-set 求解方法中首先忽略约束求解 U u c ∗ U^*_{uc} Uuc∗​若 U u c ∗ U^*_{uc} Uuc∗​ 超出了不等式的约束范围说明 U ∗ U^* U∗ 落在了不等式约束的某一边界上即满足 A ′ U b ′ A^\prime Ub^\prime A′Ub′此时可根据被激活的约束构建等式约束优化问题来求解。 二、稳定性分析 最优不能保证系统稳定故需要一些措施来保证系统是渐近稳定的。 以下所有内容均针对线性定常系统 x k 1 A x x B u k x_{k1} Ax_{x} Bu_k xk1​Axx​Buk​ 2.1 终端等式约束 终端等式约束即强制令MPC最后一个状态优化为0 即在原本的优化问题中增加约束 x ( N ∣ k ) 0 x_{(N|k)} 0 x(N∣k)​0. 2.1.1 稳定性证明 选取最优的代价函数作为李雅普诺夫函数 V ( x k ) V(x_k) V(xk​) V ( x k ) J k ∗ ∑ i 1 N ( x ( i ∣ k ) T Q x ( i ∣ k ) u ( i ∣ k ) T R u ( i − 1 ∣ k ) ) V(x_k) J^*_k\sum^N_{i1} \left(x^T_{(i|k)}Qx_{(i|k)} u^T_{(i|k)}Ru_{(i-1|k)} \right) V(xk​)Jk∗​i1∑N​(x(i∣k)T​Qx(i∣k)​u(i∣k)T​Ru(i−1∣k)​) 显然满足 V ( x k ) 0 V(x_k) 0 V(xk​)0. 设 J k 1 J_{k1} Jk1​ 为完全按 U k ∗ U_k^* Uk∗​ 序列执行下的代价且令 u ( N − 1 ∣ k 1 ) 0 u_{(N-1|k1)} 0 u(N−1∣k1)​0 通过终端约束 x ( N ∣ k ) 0 x_{(N|k)} 0 x(N∣k)​0 可知在 U k ∗ U_k^* Uk∗​ 序列下有 x ( N ∣ k 1 ) A x ( N − 1 ∣ k 1 ) B u ( N − 1 ∣ k 1 ) A x ( N ∣ k ) 0 0 x_{(N|k1)} Ax_{(N-1|k1)} Bu_{(N-1|k1)} Ax_{(N|k)} 0 0 x(N∣k1)​Ax(N−1∣k1)​Bu(N−1∣k1)​Ax(N∣k)​00. 故有 J k 1 ∗ − J k ∗ ≤ J k 1 − J k ∗ ∑ i 1 N ( x ( i ∣ k 1 ) T Q x ( i ∣ k 1 ) u ( i − 1 ∣ k 1 ) T R u ( i − 1 ∣ k 1 ) ) − ∑ i 1 N ( x ( i ∣ k ) T Q x ( i ∣ k ) u ( i − 1 ∣ k ) T R u ( i − 1 ∣ k ) ) [ ∑ i 1 N − 1 ( x ( i 1 ∣ k ) T Q x ( i 1 ∣ k ) u ( i ∣ k ) T R u ( i − 1 ∣ k ) ) 0 0 ] − ∑ i 1 N ( x ( i ∣ k ) T Q x ( i ∣ k ) u ( i − 1 ∣ k ) T R u ( i − 1 ∣ k ) ) − ( x ( 1 ∣ k ) T Q x ( 1 ∣ k ) u ( 0 ∣ k ) T R u ( 0 ∣ k ) ) ≤ 0 \begin{align*} J_{k1}^* - J_{k}^* \le J_{k1} - J_{k}^* \\ \sum^{N}_{i1} \left( x^T_{(i|k1)}Qx_{(i|k1)} u^T_{(i-1|k1)}Ru_{(i-1|k1)} \right) - \sum^{N}_{i1} \left( x^T_{(i|k)}Qx_{(i|k)} u^T_{(i-1|k)}Ru_{(i-1|k)} \right) \\ \left[ \sum^{N-1}_{i1} \left( x^T_{(i1|k)}Qx_{(i1|k)} u^T_{(i|k)}Ru_{(i-1|k)} \right) 0 0 \right] - \sum^{N}_{i1} \left( x^T_{(i|k)}Qx_{(i|k)} u^T_{(i-1|k)}Ru_{(i-1|k)} \right) \\ - \left( x^T_{(1|k)}Qx_{(1|k)} u^T_{(0|k)}Ru_{(0|k)} \right) \\ \le 0 \end{align*} Jk1∗​−Jk∗​​≤Jk1​−Jk∗​i1∑N​(x(i∣k1)T​Qx(i∣k1)​u(i−1∣k1)T​Ru(i−1∣k1)​)−i1∑N​(x(i∣k)T​Qx(i∣k)​u(i−1∣k)T​Ru(i−1∣k)​)[i1∑N−1​(x(i1∣k)T​Qx(i1∣k)​u(i∣k)T​Ru(i−1∣k)​)00]−i1∑N​(x(i∣k)T​Qx(i∣k)​u(i−1∣k)T​Ru(i−1∣k)​)−(x(1∣k)T​Qx(1∣k)​u(0∣k)T​Ru(0∣k)​)≤0​ 其中 Q Q Q、 R R R 正定。故有 Δ V ( x ) J k 1 ∗ − J k ∗ ≤ 0 \Delta V(x) J_{k1}^* - J_{k}^* \le 0 ΔV(x)Jk1∗​−Jk∗​≤0当且仅当 x ( 1 ∣ k ) T 0 x^T_{(1|k)}0 x(1∣k)T​0 u ( 0 ∣ k ) T 0 u^T_{(0|k)}0 u(0∣k)T​0时等号成立。 故系统渐近稳定。 2.1.2 迭代可行性分析 终端约束 x ( N ∣ k ) 0 x_{(N|k)} 0 x(N∣k)​0 其实是难以保证可达到的 可以证明的是当在初始状态下可达则未来迭代中均可达 所谓迭代可行性。 在无约束系统中 一阶系统可以在 1 步的跌代中使状态归零 如系统 v ˙ F / m \dot{v} F/m v˙F/m无论初值 v 0 v_0 v0​ 为多少都可施加适当的作用力使速度在一个迭代中归零即令 v v 0 ( F ∗ / m ) Δ t 0 v v_0 (F^*/m) \Delta t 0 vv0​(F∗/m)Δt0. 二阶系统可以在 2 步的跌代中使状态归零 如系统 { s ˙ v v ˙ F / m \left\{ \begin{aligned} \dot{s} v\\ \dot{v} F/m \end{aligned} \right. {s˙v˙​vF/m​ 在第一步迭代中 s 1 s 0 v 0 Δ t s_1 s_0 v_0 \Delta t s1​s0​v0​Δt使 v 1 s 1 / Δ t v_1 s_1/\Delta t v1​s1​/Δt则 F 0 m ( v 1 − v 0 ) / Δ t F_0 m(v_1-v_0)/ \Delta t F0​m(v1​−v0​)/Δt. 在第二步迭代中 s 2 s 1 v 1 Δ t 0 s_2 s_1 v_1 \Delta t 0 s2​s1​v1​Δt0使 v 2 v 1 ( F 1 / m ) Δ t 0 v_2 v_1 (F_1/m)\Delta t 0 v2​v1​(F1​/m)Δt0 即完成系统状态归零. 但在约束系统中这是难以保证的。 我们可分析初始状态下终端约束 x ( N ∣ k ) 0 x_{(N|k)} 0 x(N∣k)​0 是否可达来保证终端约束可达。 迭代可行性终端约束 x ( N ∣ k ) 0 x_{(N|k)} 0 x(N∣k)​0 当在初始状态下可达则未来迭代中均可达 证明 若在初始状态下有可行解 U 0 [ u ( 0 ∣ 0 ) , u ( 1 ∣ 0 ) , u ( 2 ∣ 0 ) , ⋯ , u ( N − 1 ∣ 0 ) ] U_0 \left[ u_{(0|0)},~ u_{(1|0)}, ~u_{(2|0)},~\cdots,~ u_{(N-1|0)} \right] U0​[u(0∣0)​, u(1∣0)​, u(2∣0)​, ⋯, u(N−1∣0)​]使得 x ( N ∣ 0 ) 0 x_{(N|0)} 0 x(N∣0)​0. 则在执行 u ( 0 ∣ 0 ) u_{(0|0)} u(0∣0)​ 后进入下一状态必然存在可行解 U 1 [ u ( 1 ∣ 0 ) , u ( 2 ∣ 0 ) , ⋯ , u ( N − 1 ∣ 0 ) , u ( N − 1 ∣ 1 ) ] U_1 \left[ u_{(1|0)}, ~u_{(2|0)},~\cdots,~ u_{(N-1|0)},~u_{(N-1|1)} \right] U1​[u(1∣0)​, u(2∣0)​, ⋯, u(N−1∣0)​, u(N−1∣1)​]. 其中 u ( N − 1 ∣ 1 ) 0 u_{(N-1|1)} 0 u(N−1∣1)​0. 因 x ( N − 1 ∣ 1 ) x ( N ∣ 0 ) 0 x_{(N-1|1)} x_{(N|0)} 0 x(N−1∣1)​x(N∣0)​0仅当 u ( N − 1 ∣ 1 ) 0 u_{(N-1|1)} 0 u(N−1∣1)​0 时有 x ( N ∣ 1 ) A x ( N − 1 ∣ 1 ) B u ( N − 1 ∣ 1 ) 0 x_{(N|1)} Ax_{(N-1|1)} Bu_{(N-1|1)} 0 x(N∣1)​Ax(N−1∣1)​Bu(N−1∣1)​0. 由此类推 当在初始状态下有可行解 U 0 [ u ( 0 ∣ 0 ) , u ( 1 ∣ 0 ) , u ( 2 ∣ 0 ) , ⋯ , u ( N − 1 ∣ 0 ) ] U_0 \left[ u_{(0|0)},~ u_{(1|0)}, ~u_{(2|0)},~\cdots,~ u_{(N-1|0)} \right] U0​[u(0∣0)​, u(1∣0)​, u(2∣0)​, ⋯, u(N−1∣0)​] 时 系统必然有可行解 [ u ( 0 ∣ 0 ) , u ( 1 ∣ 0 ) , u ( 2 ∣ 0 ) , ⋯ , u ( N − 1 ∣ 0 ) , 0 , 0 , ⋯ ] \left[ u_{(0|0)},~ u_{(1|0)}, ~u_{(2|0)},~\cdots,~ u_{(N-1|0)},~0,~ 0,~ \cdots \right] [u(0∣0)​, u(1∣0)​, u(2∣0)​, ⋯, u(N−1∣0)​, 0, 0, ⋯] 可满足终端约束. 2.1.3 MATLAB应用实例 针对系统 x k 1 A x k B u k x_{k1} Ax_k Bu_k xk1​Axk​Buk​ 其中 x ∈ R 2 x \in \mathbb{R}^2 x∈R2 u ∈ R 1 u \in \mathbb{R}^1 u∈R1 A [ 1.1 2 0 0.95 ] A \begin{bmatrix} 1.1 2 \\ 0 0.95 \end{bmatrix} A[1.10​20.95​] B [ 0 0.079 ] B \begin{bmatrix} 0 \\ 0.079 \end{bmatrix} B[00.079​]且输入需要满足约束 − 2 ≤ u ≤ 2 -2 \le u \le 2 −2≤u≤2. 1 N N N 步预测空间的状态可写为 X G x ( 0 ∣ k ) H U (1) X\mathcal{G}x_{(0|k)} \mathcal{H}U \tag{1} XGx(0∣k)​HU(1) 其中 X [ x ( 1 ∣ k ) x ( 2 ∣ k ) ⋯ x ( N ∣ k ) ] T U [ u ( 0 ∣ k ) u ( 1 ∣ k ) ⋯ u ( N − 1 ∣ k ) ] T G [ A A 2 ⋯ A N ] T H [ B 0 0 ⋯ 0 A B B 0 ⋯ 0 A 2 B A B B ⋯ 0 ⋮ ⋮ ⋮ ⋱ ⋮ A N − 1 B A 2 B A B ⋯ B ] \begin{align*} X [x_{(1|k)} ~ x_{(2|k)} ~ \cdots~x_{(N|k)}]^T \\ U [u_{(0|k)} ~ u_{(1|k)} ~ \cdots~u_{(N-1|k)}]^T \\ \mathcal{G} \left[ A ~ A^2 ~\cdots ~ A^N \right]^T \\ \mathcal{H} \begin{bmatrix} B 0 0 \cdots 0\\ AB B 0 \cdots 0\\ A^2B AB B \cdots 0 \\ \vdots \vdots \vdots \ddots \vdots \\ A^{N-1}B A^2B AB \cdots B \end{bmatrix} \end{align*} XUGH​[x(1∣k)​ x(2∣k)​ ⋯ x(N∣k)​]T[u(0∣k)​ u(1∣k)​ ⋯ u(N−1∣k)​]T[A A2 ⋯ AN]T ​BABA2B⋮AN−1B​0BAB⋮A2B​00B⋮AB​⋯⋯⋯⋱⋯​000⋮B​ ​​ 2定义代价函数为 J X T Q X U T R U (2) JX^T\mathcal{Q}X U^T\mathcal{R}U \tag{2} JXTQXUTRU(2) 3将式 (1) 代入式 (2)并考虑约束条件增加终端约束可构建二次规划问题 U k ∗ a r g min ⁡ U k [ ( G x ( 0 ∣ k ) ) T Q ′ G x ( 0 ∣ k ) 2 x ( 0 ∣ k ) T G T Q ′ H U k U k T ( H T Q ′ H R ) U k ] s . t . − 2 N × 1 ≤ U k ≤ 2 N × 1 x ( N ∣ k ) 0 \begin{align*} U_{k}^* \mathrm{arg} \min_{U_k} \left[ (\mathcal{G}x_{(0|k)})^T \mathcal{Q}^\prime \mathcal{G}x_{(0|k)} 2x_{(0|k)}^T\mathcal{G}^T \mathcal{Q}^\prime \mathcal{H} U_k U_k^T (\mathcal{H}^T \mathcal{Q}^\prime \mathcal{H} \mathcal{R})U_k \right] \\ \hspace{3cm} \mathrm{s. t.} \quad \mathbf{-2}_{N \times1} \le U_k \le \mathbf{2}_{N \times1} \\ \hspace{4cm} x_{(N|k)} 0 \end{align*} Uk∗​​argUk​min​[(Gx(0∣k)​)TQ′Gx(0∣k)​2x(0∣k)T​GTQ′HUk​UkT​(HTQ′HR)Uk​]s.t.−2N×1​≤Uk​≤2N×1​x(N∣k)​0​ 其中 x ( N ∣ k ) [ 0 , 0 , ⋯ , I 2 × 2 ] X k [ 0 , 0 , ⋯ , I 2 × 2 ] [ G x ( 0 ∣ k ) H U k ] 0 x_{(N|k)} [0,~0,~\cdots, ~I_{2 \times 2}]X_k [0,~0,~\cdots, ~I_{2 \times 2}] \left[ \mathcal{G}x_{(0|k)} \mathcal{H}U_k \right] 0 x(N∣k)​[0, 0, ⋯, I2×2​]Xk​[0, 0, ⋯, I2×2​][Gx(0∣k)​HUk​]0. 可以改写为 A e q U k b e q A_{eq}U_k b_{eq} Aeq​Uk​beq​其中 A e q [ 0 , 0 , ⋯ , I 2 × 2 ] H A_{eq} [0,~0,~\cdots, ~I_{2 \times 2}]\mathcal{H} Aeq​[0, 0, ⋯, I2×2​]H b e q − [ 0 , 0 , ⋯ , I 2 × 2 ] G x ( 0 ∣ k ) b_{eq} -[0,~0,~\cdots, ~I_{2 \times 2}]\mathcal{G}x_{(0|k)} beq​−[0, 0, ⋯, I2×2​]Gx(0∣k)​. 忽略与输入无关的项优化问题可重新写为 U k ∗ a r g min ⁡ U k [ 1 2 U k T H U k f T U k ] s . t . − 2 N × 1 ≤ U k ≤ 2 N × 1 A e q U k b e q \begin{align*} U_{k}^* \mathrm{arg} \min_{U_k} \left[ \frac{1}{2}U_k^THU_k f^TU_k \right] \\ \mathrm{s. t.} \quad \mathbf{-2}_{N \times1} \le U_k \le \mathbf{2}_{N \times1} \\ \hspace{1cm} A_{eq}U_k b_{eq} \end{align*} Uk∗​​argUk​min​[21​UkT​HUk​fTUk​]s.t.−2N×1​≤Uk​≤2N×1​Aeq​Uk​beq​​其中 H 2 ( H T Q ′ H R ) H 2(\mathcal{H}^T \mathcal{Q}^\prime \mathcal{H} \mathcal{R}) H2(HTQ′HR) f T 2 x ( 0 ∣ k ) T G T Q ′ H f^T 2x_{(0|k)}^T\mathcal{G}^T \mathcal{Q}^\prime \mathcal{H} fT2x(0∣k)T​GTQ′H. 以上形式可使用MATLAB的 quadprog 函数求解MATLAB代码见附录1. 设置控制时域 N 20 N20 N20得到结果如下 2.1.4 总结 终端等式约束MPC特点 简单 可保证系统稳定性但需确保初始可行- 需要足够长的控制时域 N N N 来保证初始可行- 增加终端等式约束会削弱求解可行性原来的优化问题是凸优化加上等式约束后可能使原本的凸约束集变为空集无法求解 2.2 终端不等式约束优化无限时域 与上一节 【MPC】模型预测控制笔记 (1)无约束MPC 一致优化无限步预测空间时可通过选取李雅普诺夫直接法证明系统的稳定性。 但找到一个反馈增益 K K K 使系统 x k 1 ( A − B K ) x k x_{k1} (A-BK)x_{k} xk1​(A−BK)xk​ 渐近稳定时显然不能在任意状态下使所有 u k − K x k u_k -Kx_k uk​−Kxk​ 满足约束。 设集合 U \mathcal{U} U 为满足约束条件的输入集合。 我们可以寻找一个不变集 Ω \Omega Ω : 若 x k ∈ Ω x_k \in \Omega xk​∈Ω则 x k 1 ∈ Ω x_{k1} \in \Omega xk1​∈Ω. 当找到一个反馈增益 K K K 可使系统 x k 1 ( A − B K ) x k x_{k1} (A-BK)x_{k} xk1​(A−BK)xk​ 渐近稳定 且满足 x k ∈ Ω x_k \in \Omega xk​∈Ω u k ∈ − K Ω ⊂ U u_k \in -K\Omega \subset \mathcal{U} uk​∈−KΩ⊂U 则此时系统未来时刻始终满足约束条件可使用上一节中的无约束MPC的方法求解。 2.2.1 求解步骤与稳定性保证 1增加终端不等式约束 A x ( N , k ) ≤ b Ax_{(N,k)} \le b Ax(N,k)​≤b 保证优化的终端状态进入不变集 x ( N , 0 ) ∈ Ω x_{(N,0)} \in \Omega x(N,0)​∈Ω 2选择一个反馈增益 K K K 使系统 x k 1 ( A − B K ) x k x_{k1} (A-BK)x_{k} xk1​(A−BK)xk​ 渐近稳定且满足 u k ∈ − K Ω ⊂ U u_k \in -K\Omega \subset \mathcal{U} uk​∈−KΩ⊂U 3通过优化无限时域来保证稳定性证明参考【MPC】模型预测控制笔记 (1)无约束MPC 终端不等式约束保证了在 N N N 到 ∞ \infty ∞ 的时域中可使 u k − K x k u_k -Kx_k uk​−Kxk​满足 u k ∈ U u_k \in \mathcal{U} uk​∈U. 2.2.2 迭代可行性分析 当初始状态可满足终端不等式约束 A x ( N , k ) ≤ b Ax_{(N,k)} \le b Ax(N,k)​≤b 未来所有状态都可以满足 当在初始状态下有可行解 U 0 [ u ( 0 ∣ 0 ) , u ( 1 ∣ 0 ) , u ( 2 ∣ 0 ) , ⋯ , u ( N − 1 ∣ 0 ) ] U_0 \left[ u_{(0|0)},~ u_{(1|0)}, ~u_{(2|0)},~\cdots,~ u_{(N-1|0)} \right] U0​[u(0∣0)​, u(1∣0)​, u(2∣0)​, ⋯, u(N−1∣0)​] 时 系统必然有可行解 [ u ( 0 ∣ 0 ) , u ( 1 ∣ 0 ) , u ( 2 ∣ 0 ) , ⋯ , u ( N − 1 ∣ 0 ) , − K x N 1 , − K x N 2 , ⋯ ] \left[ u_{(0|0)},~ u_{(1|0)}, ~u_{(2|0)},~\cdots,~ u_{(N-1|0)},~-Kx_{N1},~ -Kx_{N2},~ \cdots \right] [u(0∣0)​, u(1∣0)​, u(2∣0)​, ⋯, u(N−1∣0)​, −KxN1​, −KxN2​, ⋯]使系统在 N N N 步状态后始终满足终端不等式约束. 2.2.3 MATLAB应用实例 同样针对系统 x k 1 A x k B u k x_{k1} Ax_k Bu_k xk1​Axk​Buk​ 其中 x ∈ R 2 x \in \mathbb{R}^2 x∈R2 u ∈ R 1 u \in \mathbb{R}^1 u∈R1 A [ 1.1 2 0 0.95 ] A \begin{bmatrix} 1.1 2 \\ 0 0.95 \end{bmatrix} A[1.10​20.95​] B [ 0 0.079 ] B \begin{bmatrix} 0 \\ 0.079 \end{bmatrix} B[00.079​]且输入需要满足约束 − 2 ≤ u ≤ 2 -2 \le u \le 2 −2≤u≤2. 1 N N N 步预测空间的状态可写为 X G x ( 0 ∣ k ) H U X\mathcal{G}x_{(0|k)} \mathcal{H}U XGx(0∣k)​HU 其中 X [ x ( 1 ∣ k ) x ( 2 ∣ k ) ⋯ x ( N ∣ k ) ] T U [ u ( 0 ∣ k ) u ( 1 ∣ k ) ⋯ u ( N − 1 ∣ k ) ] T G [ A A 2 ⋯ A N ] T H [ B 0 0 ⋯ 0 A B B 0 ⋯ 0 A 2 B A B B ⋯ 0 ⋮ ⋮ ⋮ ⋱ ⋮ A N − 1 B A 2 B A B ⋯ B ] \begin{align*} X [x_{(1|k)} ~ x_{(2|k)} ~ \cdots~x_{(N|k)}]^T \\ U [u_{(0|k)} ~ u_{(1|k)} ~ \cdots~u_{(N-1|k)}]^T \\ \mathcal{G} \left[ A ~ A^2 ~\cdots ~ A^N \right]^T \\ \mathcal{H} \begin{bmatrix} B 0 0 \cdots 0\\ AB B 0 \cdots 0\\ A^2B AB B \cdots 0 \\ \vdots \vdots \vdots \ddots \vdots \\ A^{N-1}B A^2B AB \cdots B \end{bmatrix} \end{align*} XUGH​[x(1∣k)​ x(2∣k)​ ⋯ x(N∣k)​]T[u(0∣k)​ u(1∣k)​ ⋯ u(N−1∣k)​]T[A A2 ⋯ AN]T ​BABA2B⋮AN−1B​0BAB⋮A2B​00B⋮AB​⋯⋯⋯⋱⋯​000⋮B​ ​​ 2增加终端约束 x ( N ∣ k ) ∈ Ω x_{(N|k)} \in \Omega x(N∣k)​∈Ω其中 x ( N ∣ k ) [ 0 , 0 , ⋯ , I 2 × 2 ] X k [ 0 , 0 , ⋯ , I 2 × 2 ] [ G x ( 0 ∣ k ) H U k ] x_{(N|k)} [0,~0,~\cdots, ~I_{2 \times 2}]X_k [0,~0,~\cdots, ~I_{2 \times 2}] \left[ \mathcal{G}x_{(0|k)} \mathcal{H}U_k \right] x(N∣k)​[0, 0, ⋯, I2×2​]Xk​[0, 0, ⋯, I2×2​][Gx(0∣k)​HUk​] Ω \Omega Ω 为不变集. 不变集的选取待补充目前笔者也不清楚 可以选取足够小的集合 X \mathcal{X} X 来替代不变集但集合范围越大可行性越强。 此处选取 X [ − 0.2 , 0.2 ] × [ − 0.1 , 0.1 ] ( 笛卡尔积形式等价于 { ( x 1 , x 2 ) ∈ R 2 ∣ x 1 ∈ [ − 0.2 , 0.2 ] , x 2 ∈ [ − 0.1 , 0.1 ] } ) \mathcal{X} [-0.2,~0.2] \times [-0.1,~0.1] ~~(\text{笛卡尔积形式等价于}\{(x_1, x_2) \in \mathbb{R}^2 |~ x_1 \in [-0.2,~0.2], x_2 \in [-0.1,~0.1]\}) X[−0.2, 0.2]×[−0.1, 0.1]  (笛卡尔积形式等价于{(x1​,x2​)∈R2∣ x1​∈[−0.2, 0.2],x2​∈[−0.1, 0.1]}) 约束 x ( N ∣ k ) ∈ X x_{(N|k)} \in \mathcal{X} x(N∣k)​∈X 可以改写为 A i n U k ≤ b i n A_{in}U_k \le b_{in} Ain​Uk​≤bin​其中 A i n [ 1 0 − 1 0 0 1 0 − 1 ] [ 0 , 0 , ⋯ , I 2 × 2 ] H b i n [ 0.2 0.2 0.1 0.1 ] − [ 1 0 − 1 0 0 1 0 − 1 ] [ 0 , 0 , ⋯ , I 2 × 2 ] G x ( 0 ∣ k ) \begin{align*} A_{in} \begin{bmatrix} 1 0 \\ -1 0 \\ 0 1 \\ 0 -1 \end{bmatrix} [0,~0,~\cdots, ~I_{2 \times 2}] \mathcal{H} \\ b_{in} \begin{bmatrix} 0.2 \\ 0.2 \\ 0.1 \\ 0.1 \end{bmatrix}-\begin{bmatrix} 1 0 \\ -1 0 \\ 0 1 \\ 0 -1 \end{bmatrix}[0,~0,~\cdots, ~I_{2 \times 2}] \mathcal{G} x_{(0|k)} \end{align*} Ain​bin​​ ​1−100​001−1​ ​[0, 0, ⋯, I2×2​]H ​0.20.20.10.1​ ​− ​1−100​001−1​ ​[0, 0, ⋯, I2×2​]Gx(0∣k)​​. 3选取反馈增益 K [ 1.4 5.76 ] K[1.4 \quad 5.76] K[1.45.76]可验证其满足 ∣ e i g ( A − B K ) ∣ 1 |\mathrm{eig}(A-BK)|1 ∣eig(A−BK)∣1 − 2 ≤ − K X ≤ 2 -2 \le -K\mathcal{X} \le 2 −2≤−KX≤2 4通过 P − ( A − B K ) T P ( A − B K ) Q K T R K P-(A-BK)^TP(A-BK) Q K^TRK P−(A−BK)TP(A−BK)QKTRK 求解 P 5定义代价函数为 J X T Q p X U T R p U JX^T\mathcal{Q_p}X U^T\mathcal{R_p}U JXTQp​XUTRp​U其中 Q p d i a g ( Q , Q , ⋯ , P ) Q_p \mathrm{diag}(Q, Q, \cdots, P) Qp​diag(Q,Q,⋯,P) R p d i a g ( R , R , ⋯ , R ) R_p \mathrm{diag}(R, R, \cdots, R) Rp​diag(R,R,⋯,R). 6构建二次规划问题 U k ∗ a r g min ⁡ U k [ 1 2 U k T H U k f T U k ] s . t . − 2 N × 1 ≤ U k ≤ 2 N × 1 A i n U k ≤ b i n \begin{align*} U_{k}^* \mathrm{arg} \min_{U_k} \left[ \frac{1}{2}U_k^THU_k f^TU_k \right] \\ \mathrm{s. t.} \quad \mathbf{-2}_{N \times1} \le U_k \le \mathbf{2}_{N \times1} \\ \hspace{1cm} A_{in}U_k \le b_{in} \end{align*} Uk∗​​argUk​min​[21​UkT​HUk​fTUk​]s.t.−2N×1​≤Uk​≤2N×1​Ain​Uk​≤bin​​其中 H 2 ( H T Q ′ H R ) H 2(\mathcal{H}^T \mathcal{Q}^\prime \mathcal{H} \mathcal{R}) H2(HTQ′HR) f T 2 x ( 0 ∣ k ) T G T Q ′ H f^T 2x_{(0|k)}^T\mathcal{G}^T \mathcal{Q}^\prime \mathcal{H} fT2x(0∣k)T​GTQ′H. MATLAB代码见附录2. 设置控制时域 N 20 N20 N20得到结果如下 2.2.4 总结 终端不等式约束相比终端等式约束 可行性更强但仍需确保初始可行- 更复杂 附录1 %% A [1.1 2;0 0.95]; B [0; 0.079]; Q eye(2); R 0.1;% 预测空间 N 20; % 当控制时域过小时如 N10将无法满足终端约束条件求解会导致错误[G, H] getGH(N, A, B); [Qp, Rp] getQR(N, Q, Q, R);xCur [1;1]; % 设初始状态为[1;1] %% 约束条件 lb -2 * ones(N, 1); ub 2 * ones(N, 1);n size(A, 2); tmp kron(ones(1, N-1), zeros(n)); tmp [tmp, eye(n)]; % Aeq tmp * H; % beq -tmp * G * xCur; %% 效果演示 xCur [1; 1]; % 设初始状态为[1;1] xLog xCur; uLog [];options optimoptions(quadprog, MaxIterations, 200, Display,none);step 0:50; for i stepHp 2 * (H * Qp * H Rp);fp 2 * xCur * G * Qp * H;Hp 0.5 * (Hp Hp);Aeq tmp * H;beq -tmp * G * xCur;U quadprog(Hp, fp, [], [], Aeq, beq, lb, ub, zeros(N,1), options);u U(1);xCur A*xCur B*u;xLog [xLog, xCur];uLog [uLog, u]; endfigure(1) subplot(3,1,1) plot(step, xLog(1,1:end-1)) title(x1) grid on subplot(3,1,2) plot(step, xLog(2,1:end-1)) title(x2) grid on subplot(3,1,3) plot(step, uLog) title(u) grid on %% function [Qp, Rp] getQR(N, Q, P, R)Qp eye(N);Qp(end) 0;Qp kron(Qp, Q) kron(eye(N)-Qp, P);Rp eye(N);Rp kron(Rp, R); endfunction [G, H] getGH(N, A, B) % N1tmp A;G tmp;for i2:Ntmp A*tmp;G [G; tmp];endr size(B, 1);c size(B, 2);H zeros(r * N, c * N);tmp B;for j N:-1:1H( (j-1)*r1:j*r, (j-1)*c1:j*c ) tmp;endfor i 2:Ntmp A*tmp;for j i:NH( (j-1)*r1:j*r, (j-i)*c1:(j-i1)*c ) tmp;endend end附录2 %% A [1.1 2;0 0.95]; B [0; 0.079]; Q eye(2); R 0.1;% 预测空间 N 20;% 求解P K [1.4 5.76]; Q eye(2); R 0.1; syms P [2 2] % P 为2*2的矩阵 equ P - (A - B*K) * P * (A - B*K) Q K*R*K; Psol solve(equ, P); Psol [Psol.P1_1, Psol.P2_1; Psol.P2_1, Psol.P2_2]; Psol double(Psol); disp(Psol)[G, H] getGH(N, A, B); [Qp, Rp] getQR(N, Q, Psol, R);xCur [1;1]; % 设初始状态为[1;1] %% 约束条件 lb -2 * ones(N, 1); ub 2 * ones(N, 1);n size(A, 2); tmpReshape kron(ones(1, N-1), zeros(n)); tmpReshape [tmpReshape, eye(n)]; tmpAin [1 0;-1 0;0 1;0 -1]; tmpbin [0.2; 0.2; 0.1; 0.1]; % Ain tmpAin * tmpReshape * H; % bin tmpbin - tmpAin * tmpReshape * G * xCur; %% 效果演示 xCur [1; 1]; % 设初始状态为[1;1] xLog xCur; uLog [];options optimoptions(quadprog, MaxIterations, 200, Display,none);step 0:50; u zeros(N, 1); for i stepHp 2 * (H * Qp * H Rp);fp 2 * xCur * G * Qp * H;Hp 0.5 * (Hp Hp);Ain tmpAin * tmpReshape * H;bin tmpbin - tmpAin * tmpReshape * G * xCur;U quadprog(Hp, fp, Ain, bin, [], [], lb, ub, u, options);u U(1);xCur A*xCur B*u;xLog [xLog, xCur];uLog [uLog, u]; endfigure(1) subplot(3,1,1) plot(step, xLog(1,1:end-1)) title(x1) grid on subplot(3,1,2) plot(step, xLog(2,1:end-1)) title(x2) grid on subplot(3,1,3) plot(step, uLog) title(u) grid on %% function [Qp, Rp] getQR(N, Q, P, R)Qp eye(N);Qp(end) 0;Qp kron(Qp, Q) kron(eye(N)-Qp, P);Rp eye(N);Rp kron(Rp, R); endfunction [G, H] getGH(N, A, B) % N1tmp A;G tmp;for i2:Ntmp A*tmp;G [G; tmp];endr size(B, 1);c size(B, 2);H zeros(r * N, c * N);tmp B;for j N:-1:1H( (j-1)*r1:j*r, (j-1)*c1:j*c ) tmp;endfor i 2:Ntmp A*tmp;for j i:NH( (j-1)*r1:j*r, (j-i)*c1:(j-i1)*c ) tmp;endend end
http://www.w-s-a.com/news/962693/

相关文章:

  • 芜湖建设厅官方网站wordpress自动设置缩略图
  • 推荐网站网页湛江网站建设哪家优惠多
  • 传奇网站免费空间网店装修店面
  • 网站改版 重新收录湖南建筑信息一体化管理平台
  • 可以做直播卖产品的网站陕西省建设银行网站
  • 搭建网站的英语seo优化专员招聘
  • 做网站深紫色搭配什么颜色网站的在线支付怎么做
  • 中国最大网站建设公司长沙专业做网站公司哪家好
  • 金峰辉网站建设菏泽财富中心网站建设
  • 怎么做网站站长视频企业网站开发意义
  • 网站创建多少钱商标自助查询系统官网
  • 免费做App和网站的平台广州做网站推广的公司
  • 衡水做网站推广的公司wordpress相册滑动
  • 不用域名也可以做网站公司网站建设制作难么
  • 学做网站培训机构wordpress 图片拉伸
  • 成都捕鱼网站建设wordpress自定义文章类别
  • wordpress网站怎么加速湖北网站建设企业
  • 迁安做网站中的cms开发南平网站建设公司
  • 肥西县住房和城乡建设局网站代驾系统定制开发
  • 网站建设明细报价表 服务器qq是哪家公司的产品
  • html链接网站模板wordpress怎么调用简码
  • 网站域名怎么查简述网站推广的五要素
  • 咸宁网站设计公司app安装下载
  • 丝网外贸做哪些网站最优的赣州网站建设
  • 如何做网站不被查网站开发工程师岗位说明书
  • 做网站需要vps吗网站建设后怎样发信息
  • 网站建立风格二手交易网站开发可参考文献
  • 成都微信网站开发优化大师优化项目有哪些
  • 哪个网站做自考题目免费郑州网站建设公司qq
  • 地方性的网站有前途顺的网络做网站好不好