学习随笔#14 一个MPC详细建模的例子

状态空间离散形态的一般表达形式为
x ( k + 1 ) = A x ( k ) + B u ( k ) \boldsymbol{x}(k+1)=\boldsymbol{A}\boldsymbol{x}(k)+\boldsymbol{B}\boldsymbol{u}(k) x(k+1)=Ax(k)+Bu(k)
公式中的矩阵大小及意义如下:

变量名大小意义
x ( k + 1 ) \boldsymbol{x}(k+1) x(k+1) n × 1 n\times1 n×1 k + 1 k+1 k+1时刻系统的状态变量
A \boldsymbol{A} A n × n n\times n n×n系统的状态矩阵
x ( k ) \boldsymbol{x}(k) x(k) n × 1 n\times1 n×1 k k k时刻系统的状态变量
B \boldsymbol{B} B n × p n\times p n×p系统的输入矩阵
u ( k ) \boldsymbol{u}(k) u(k) p × 1 p\times1 p×1 k k k时刻系统的输入变量

例如:
[ x 1 ( k + 1 ) x 2 ( k + 1 ) ] = x ( k + 1 ) [ 1 0.1 0 2 ] A [ x 1 ( k ) x 2 ( k ) ] + x ( k ) [ 0 0.5 ] B u ( k ) u ( k ) \frac{\left[\begin{matrix}x_1(k+1)\\x_2(k+1)\end{matrix}\right]=}{\scriptstyle{x(k+1)}}\frac{\left[\begin{matrix}1&0.1\\0&2\end{matrix}\right]}{\scriptstyle{A}}\frac{\left[\begin{matrix}x_1(k)\\x_2(k)\end{matrix}\right]+}{\scriptstyle{\mathrm{x(k)}}}\frac{\left[\begin{matrix}0\\0.5\end{matrix}\right]}{\scriptstyle{B}}\frac{u(k)}{\scriptstyle{u(k)}} x(k+1)[x1(k+1)x2(k+1)]=A[100.12]x(k)[x1(k)x2(k)]+B[00.5]u(k)u(k)
对于之前提出的矩阵, X ( k ) \boldsymbol{X}(k) X(k) U ( k ) \boldsymbol{U}(k) U(k) M \boldsymbol{M} M C \boldsymbol{C} C的大小分别为:
X k = [ x ( k ∣ k ) x ( k + 1 ∣ k ) x ( k + 2 ∣ k ) ⋮ x ( k + N ∣ k ) ] , ( N + 1 ) n × 1 U k = [ u ( k ∣ k ) u ( k + 1 ∣ k ) u ( k + 2 ∣ k ) ⋮ u ( k + N − 1 ∣ k ) ] , N p × 1 M = [ I n × n A n × n A 2 ⋮ A N ] , ( N + 1 ) n × n C = [ 0 0 0 … 0 B 0 0 … 0 A B B 0 … 0 ⋮ ⋮ ⋮ ⋱ ⋮ A N − 1 B A N − 2 B A N − 3 B … B ] , ( N + 1 ) n × N p \begin{aligned} \boldsymbol{X}_k=&\left[\begin{matrix}x(k|k)\\x(k+1|k)\\x(k+2|k)\\\vdots\\x(k+N|k)\end{matrix}\right],(N+1)n\times1\\\boldsymbol{U}_k=&\left[\begin{matrix}u(k|k)\\u(k+1|k)\\u(k+2|k)\\\vdots\\u(k+N-1|k)\end{matrix}\right],Np\times1\\\boldsymbol{M}=&\left[\begin{matrix}I_{n\times n}\\A_{n\times n}\\A^2\\\vdots\\A^N\end{matrix}\right],(N+1)n\times n \\\boldsymbol{C}=&\left[\begin{matrix}0&0&0&\dots&0\\B&0&0&\dots&0\\AB&B&0&\dots&0\\\vdots&\vdots&\vdots&\ddots&\vdots\\A^{N-1}B&A^{N-2}B&A^{N-3}B&\dots&B\end{matrix}\right], (N+1)n\times Np \end{aligned} Xk=Uk=M=C=x(kk)x(k+1k)x(k+2k)x(k+Nk)(N+1)n×1u(kk)u(k+1k)u(k+2k)u(k+N1k)Np×1In×nAn×nA2AN(N+1)n×n0BABAN1B00BAN2B000AN3B000B(N+1)n×Np
通过上述计算,可以从矩阵秩的角度证明下式成立。
X ( k ) = M x ( k ) + C U ( k ) \boldsymbol{X}(k)=\boldsymbol{M}\boldsymbol{x}(k)+\boldsymbol{C}\boldsymbol{U}(k) X(k)=Mx(k)+CU(k)
下面我们以上面的状态空间为例,进行建模,取
A = [ 1 0.1 0 2 ] , B = [ 0 0.5 ] , N = 3 \boldsymbol{A}=\left[\begin{matrix}1&0.1\\0&2\end{matrix}\right],\boldsymbol{B}=\left[\begin{matrix}0\\0.5\end{matrix}\right],N=3 A=[100.12]B=[00.5]N=3

X ( k ) = [ x ( k ∣ k ) x ( k + 1 ∣ k ) x ( k + 2 ∣ k ) x ( k + 3 ∣ k ) ] = [ x 1 ( k ∣ k ) x 2 ( k ∣ k ) x 1 ( k + 1 ∣ k ) x 2 ( k + 1 ∣ k ) x 1 ( k + 2 ∣ k ) x 2 ( k + 2 ∣ k ) x 1 ( k + 3 ∣ k ) x 2 ( k + 3 ∣ k ) ] U ( k ) = [ u ( k ∣ k ) u ( k + 1 ∣ k ) u ( k + 2 ∣ k ) ] = [ u ( k ∣ k ) u ( k + 1 ∣ k ) u ( k + 2 ∣ k ) ] M = [ I n × n A n × n A 2 ⋮ A N ] = [ 1 0 0 1 1 0.1 0 2 1 0.3 0 4 1 0.7 0 8 ] C = [ 0 0 0 … 0 ⋮ ⋮ ⋮ ⋮ 0 0 0 … 0 B 0 0 … 0 A B B 0 … 0 ⋮ ⋮ ⋮ ⋱ ⋮ A N − 1 B A N − 2 B A N − 3 B … B ] = [ 0 0 0 0 0 0 0 0 0 0.5 0 0 0.05 0.5 0 1 0 0 0.15 0.05 0 2 1 0 ] \boldsymbol{X}(k)=\left[\begin{matrix}\boldsymbol{x}(k|k)\\\boldsymbol{x}(k+1|k)\\\boldsymbol{x}(k+2|k)\\\boldsymbol{x}(k+3|k)\end{matrix}\right]=\left[\begin{matrix}x_1(k|k)\\x_2(k|k)\\x_1(k+1|k)\\x_2(k+1|k)\\x_1(k+2|k)\\x_2(k+2|k)\\x_1(k+3|k)\\x_2(k+3|k)\end{matrix}\right]\\\boldsymbol{U}(k)=\left[\begin{matrix}\boldsymbol{u}(k|k)\\\boldsymbol{u}(k+1|k)\\\boldsymbol{u}(k+2|k)\end{matrix}\right]=\left[\begin{matrix}u(k|k)\\u(k+1|k)\\u(k+2|k)\end{matrix}\right]\\\boldsymbol{M}=\left[\begin{matrix}I_{n\times n}\\A_{n\times n}\\A^2\\\vdots\\A^N\end{matrix}\right]=\left[\begin{matrix}1&0\\0&1\\1&0.1\\0&2\\1&0.3\\0&4\\1&0.7\\0&8\end{matrix}\right]\\ \boldsymbol{C}=\left[\begin{matrix}0&0&0&\dots&0\\\vdots&\vdots&\vdots&&\vdots\\0&0&0&\dots&0\\B&0&0&\dots&0\\AB&B&0&\dots&0\\\vdots&\vdots&\vdots&\ddots&\vdots\\A^{N-1}B&A^{N-2}B&A^{N-3}B&\dots&B\end{matrix}\right]=\left[\begin{matrix}0&0&0\\0&0&0\\0&0&0\\0.5&0&0\\0.05&0.5&0\\1&0&0\\0.15&0.05&0\\2&1&0\end{matrix}\right] X(k)=x(kk)x(k+1k)x(k+2k)x(k+3k)=x1(kk)x2(kk)x1(k+1k)x2(k+1k)x1(k+2k)x2(k+2k)x1(k+3k)x2(k+3k)U(k)=u(kk)u(k+1k)u(k+2k)=u(kk)u(k+1k)u(k+2k)M=In×nAn×nA2AN=10101010010.120.340.78C=00BABAN1B000BAN2B0000AN3B0000B=0000.50.0510.15200000.500.05100000000
代价函数为
J = ∑ i = 0 N − 1 [ x ( k ) T G x ( k ) + U ( k ) T H U ( k ) + 2 x ( k ) T E U ( k ) ] J=\sum_{i=0}^{N-1}[\boldsymbol{x}(k)^T\boldsymbol{G}\boldsymbol{x}(k)+\boldsymbol{U}(k)^T\boldsymbol{H}\boldsymbol{U}(k)+2\boldsymbol{x}(k)^T\boldsymbol{E}\boldsymbol{U}(k)] J=i=0N1[x(k)TGx(k)+U(k)THU(k)+2x(k)TEU(k)]
G = M T Q ‾ M , E = C T Q ‾ M , H = C T Q ‾ C + R ‾ \boldsymbol{G}=\boldsymbol{M}^T\overline{\boldsymbol{Q}}\boldsymbol{M,\boldsymbol{E}=\boldsymbol{C}^T\overline{Q}}\boldsymbol{M},\boldsymbol{H}=\boldsymbol{C}^T\overline{\boldsymbol{Q}} \boldsymbol{C}+\overline{\boldsymbol{R}} G=MTQME=CTQMH=CTQC+R
Q ‾ = [ Q … ⋮ Q ⋮ … F ] , R ‾ = [ R … ⋮ ⋱ ⋮ … R ] \overline{\boldsymbol{Q}}=\left[\begin{matrix}\boldsymbol{Q}&\dots&\\\vdots&\boldsymbol{Q}&\vdots\\&\dots&\boldsymbol{F}\end{matrix}\right],\overline{\boldsymbol{R}}=\left[\begin{matrix}\boldsymbol{R}&\dots&\\\vdots&\ddots&\vdots\\&\dots&\boldsymbol{R}\end{matrix}\right] Q=QQFR=RR
  本文整理自【MPC模型预测控制器】3_一个详细的建模例子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值