状态空间离散形态的一般表达形式为
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(k∣k)x(k+1∣k)x(k+2∣k)⋮x(k+N∣k)⎦⎥⎥⎥⎥⎥⎤,(N+1)n×1⎣⎢⎢⎢⎢⎢⎡u(k∣k)u(k+1∣k)u(k+2∣k)⋮u(k+N−1∣k)⎦⎥⎥⎥⎥⎥⎤,Np×1⎣⎢⎢⎢⎢⎢⎡In×nAn×nA2⋮AN⎦⎥⎥⎥⎥⎥⎤,(N+1)n×n⎣⎢⎢⎢⎢⎢⎡0BAB⋮AN−1B00B⋮AN−2B000⋮AN−3B………⋱…000⋮B⎦⎥⎥⎥⎥⎥⎤,(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(k∣k)x(k+1∣k)x(k+2∣k)x(k+3∣k)⎦⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡x1(k∣k)x2(k∣k)x1(k+1∣k)x2(k+1∣k)x1(k+2∣k)x2(k+2∣k)x1(k+3∣k)x2(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=⎣⎢⎢⎢⎢⎢⎡In×nAn×nA2⋮AN⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡10101010010.120.340.78⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤C=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡0⋮0BAB⋮AN−1B0⋮00B⋮AN−2B0⋮000⋮AN−3B…………⋱…0⋮000⋮B⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡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=0∑N−1[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=MTQM,E=CTQM,H=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=⎣⎢⎡Q⋮…Q…⋮F⎦⎥⎤,R=⎣⎢⎡R⋮…⋱…⋮R⎦⎥⎤
本文整理自【MPC模型预测控制器】3_一个详细的建模例子。