文章目录
- NMPC轨迹跟踪控制器推导及Simulink验证
- NMPC与MPC的不同特点
- MPC(模型预测控制):
- NMPC(非线性模型预测控制):
- NMPC轨迹跟踪控制器推导
- 一 系统模型建立
- 二 预测区间状态和变量推导
- 三 代价函数推导
- 四 优化求解
基于MPC的倒立摆控制系统 - 相关资料
- Reference:
NMPC轨迹跟踪控制器推导及Simulink验证
NMPC与MPC的不同特点
MPC(模型预测控制):
- 线性或线性化模型:MPC通常基于线性系统模型,或者将非线性系统模型在工作点附近进行线性化处理。
- 优化问题:在每一个控制周期内,MPC解决一个线性规划或二次规划问题,以优化未来的控制行为。
- 适用范围:适用于线性系统或者可以在操作点附近线性化的非线性系统。
- 计算复杂度:相对较低,因为优化问题相对简单。
NMPC(非线性模型预测控制):
- 非线性模型:NMPC直接使用非线性系统模型,不进行线性化处理。
- 优化问题:在每一个控制周期内,NMPC解决一个非线性规划问题,这通常比线性或二次规划问题更复杂。
- 适用范围:适用于非线性系统,尤其是当线性化处理无法准确描述系统动态时。
- 计算复杂度:相对较高,因为非线性优化问题通常更难求解。
NMPC轨迹跟踪控制器推导
一 系统模型建立
将非线性系统表述如下:
X
˙
=
f
(
X
,
u
)
\dot{X} = f(X,u)
X˙=f(X,u)
二 预测区间状态和变量推导
采用4阶Runge-Kutta方法对系统状态变量进行预测:
针对非线性微分方程 X ˙ = f ( X , u ) \dot{X} = f(X,u) X˙=f(X,u),以时间间隔 Δ t \Delta{t} Δt进行数值求解:
{ k 1 = f ( X t , u t ) k 2 = f ( X t + k 1 Δ t 2 , u t ) k 3 = f ( X t + k 2 Δ t 2 , u t ) k 4 = f ( X t + k 3 Δ t , u t ) X t + 1 = X t + ( k 1 + 2 k 2 + 2 k 3 + k 4 ) Δ t 6 \left\{ \begin{aligned} k_1 & = f(X_t,u_t)\\ k_2 & = f(X_t+k_1\frac{\Delta{t}}{2},u_t)\\ k_3 & = f(X_t+k_2\frac{\Delta{t}}{2},u_t)\\ k_4 & = f(X_t+k_3\Delta{t},u_t)\\ X_{t+1} & = X_t + (k_1+2k_2+2k_3+k_4)\frac{\Delta{t}}{6}\\ \end{aligned} \right. ⎩ ⎨ ⎧k1k2k3k4Xt+1=f(Xt,ut)=f(Xt+k12Δt,ut)=f(Xt+k22Δt,ut)=f(Xt+k3Δt,ut)=Xt+(k1+2k2+2k3+k4)6Δt
三 代价函数推导
定义代价函数为阶段成本和最终成本之和:
J
=
∫
t
t
+
N
Δ
t
L
(
X
(
τ
)
,
u
(
τ
)
)
d
τ
+
V
(
X
(
t
+
N
Δ
t
)
)
J = \int_{t}^{t+N\Delta{t}}L(X(\tau),u(\tau))d\tau + V(X(t+N\Delta{t}))
J=∫tt+NΔtL(X(τ),u(τ))dτ+V(X(t+NΔt))
其中,
N
N
N为预测步长,
L
、
V
L、V
L、V分别为阶段成本和最终成本函数。
定义阶段成本函数为:
L
(
X
(
τ
)
,
u
(
τ
)
)
=
(
X
(
τ
)
−
R
e
f
(
τ
)
)
T
Q
(
X
(
τ
)
−
R
e
f
(
τ
)
)
+
u
(
τ
)
T
R
u
(
τ
)
L(X(\tau),u(\tau)) = (X(\tau)-R_{ef}(\tau))^TQ(X(\tau)-R_{ef}(\tau)) + u(\tau)^TRu(\tau)
L(X(τ),u(τ))=(X(τ)−Ref(τ))TQ(X(τ)−Ref(τ))+u(τ)TRu(τ)
包含位置误差成本和控制输入成本两部分。
最终成本函数为:
V
(
X
(
t
+
N
Δ
t
)
)
=
X
(
t
+
N
Δ
t
)
T
F
X
(
t
+
N
Δ
t
)
V(X(t+N\Delta{t}) )= X(t+N\Delta{t})^TFX(t+N\Delta{t})
V(X(t+NΔt))=X(t+NΔt)TFX(t+NΔt)
为最终误差成本。
四 优化求解
通过3. 代价函数推导,采用内点优化方法使得代价
J
J
J最小,进而进行控制,定义优化问题如下:
min
u
k
J
=
∫
t
t
+
N
Δ
t
L
(
X
(
τ
)
,
u
(
τ
)
)
d
τ
+
V
(
X
(
t
+
N
Δ
t
)
)
subject to
u
m
i
n
≤
u
(
τ
)
≤
u
m
a
x
\begin{aligned} \underset{u_k}\min \quad & J = \int_{t}^{t+N\Delta{t}}L(X(\tau),u(\tau))d\tau + V(X(t+N\Delta{t})) \\ \text{subject to}\quad & u_{min}\leq u(\tau) \leq u_{max}\\ \end{aligned}
ukminsubject toJ=∫tt+NΔtL(X(τ),u(τ))dτ+V(X(t+NΔt))umin≤u(τ)≤umax
在MATLAB中可使用函数fmincon(fmincon函数介绍)求解:
根据MATLAB中quadprog要求,定义:
{
f
u
n
=
J
A
=
[
]
b
=
[
]
A
e
q
=