在模型预测控制(MPC)中优化问题的最小成本V指的是什么?

本文介绍了模型预测控制(MPC)中的运行成本和终端成本概念,强调了两者在优化整个预测期内总成本中的关键作用,以及终端成本如何保证系统的长期稳定性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  在模型预测控制(MPC)框架中,目标是在给定的预测范围内选择一系列控制动作,以最小化与该控制策略相关的总成本。这里的成本通常包含两个主要部分:运行成本和终端成本。

  1. 运行成本(或阶段成本):

    • 这些成本是对控制行为在每个时间步上的评价,目的是确保系统的当前状态和控制输入尽可能接近期望的目标或轨迹。
    • 运行成本函数通常形式为x'*Q*x + u'*R*u,其中x是系统状态,u是控制输入,QR是权重矩阵。Q矩阵用于加权状态变量的偏差,R矩阵用于加权控制输入,以反映对系统性能和控制能力的不同偏好。
  2. 终端成本:

    • 终端成本是在预测范围结束时计算的,目的是评估最终状态与目标状态之间的差异。
    • 终端成本有助于引导系统状态向期望的最终状态或集合收敛,这对于确保系统的长期行为符合预定目标很重要。

  V表示整个预测范围内所有这些成本的累计。它通过整合运行成本和终端成本来计算得到。优化问题的目标是找到一系列控制动作,这些动作能够最小化V,即整个预测范围内的总成本。

  在MPC中,这个优化问题在每个采样时间都会被重新求解,得到一个最优的控制序列。然后,通常只有这个序列的第一个控制动作会被应用到实际系统中,之后系统进入下一个采样时间,再次进行测量和优化。

为什么需要终端成本?

  终端成本在MPC中的作用是确保优化过程考虑到长期行为,避免短视的优化决策。它有助于确保系统状态在预测范围结束时接近稳定或优化状态,从而在整个控制过程中保持稳定和高效。没有合适的终端成本,控制策略可能只注重即时的性能改进,而忽略了系统长期的效率。

### 差分轮移动机器人模型预测控制MPC)实现方法 #### 1. 模型预测控制基本原理 模型预测控制是一种基于优化的方法,通过在线解决有限时间范围内的最优控制问题来计算当前时刻的最佳输入序列。对于差分轮移动机器人,其核心在于构建合适的动态模型并将其转化为可求解的优化问题。 在轨迹跟踪应用中,MPC 的建模可以分为两类:基于运动学的状态方程建模和基于动力学的状态方程建模[^2]。由于差分轮移动机器人通常运行在较低速度下,因此更常用的是基于运动学的建模方式。 --- #### 2. 双轮差速运动学模型 双轮差速移动机器人的运动可以用如下连续时间状态空间表示: \[ \begin{aligned} \dot{x} &= v \cos(\theta), \\ \dot{y} &= v \sin(\theta), \\ \dot{\theta} &= \frac{v}{L} \tan(\phi), \end{aligned} \] 其中 \(x\) 和 \(y\) 表示机器人中心的位置坐标,\(\theta\) 是朝向角,\(v\) 是线速度,\(\phi\) 是车轮转向角,\(L\) 是轴距长度。为了简化控制器设计,可以通过假设或近似处理将该非线性模型线性化[^1]。 --- #### 3. 状态方程的线性化与离散化 通过对上述非线性模型进行泰勒级数展开,并忽略高阶项,得到局部线性化的状态转移矩阵形式: \[ \Delta X_{k+1} = A_k \Delta X_k + B_k \Delta U_k, \] 其中, - \(\Delta X_k = [e_x, e_y, e_\theta]^T\) 表示当前位置误差; - \(\Delta U_k = [\Delta v, \Delta w]^T\) 表示控制增量; - \(A_k\) 和 \(B_k\) 分别为雅可比矩阵,在特定工作点处计算得出。 随后利用后向差分法完成系统的离散化过程,从而便于数值求解。 --- #### 4. 预测方程与优化目标函数 给定未来 N 步的时间窗口,定义代价函数 J 如下: \[ J(U) = \sum_{i=0}^{N_p-1} (X_i - R)^T Q (X_i - R) + \sum_{j=0}^{N_c-1} (\Delta U_j)^T R_d (\Delta U_j), \] 这里: - \(Q\) 和 \(R_d\) 分别代表状态偏差权重矩阵以及控制变化量惩罚系数; - \(N_p\) 称作预测步长; - \(N_c\)代控制更新周期数目。 最终目的是寻找使总成本最小的一组控制令集合 {Δu₀,..., Δuₙ₋₁} ,并通过滚动时域策略不断重复此操作直至达到期望终点位置附近区域为止。 --- #### 5. 约束条件设置 实际工程实践中还需考虑物理层面的各种限制因素,比如最大允许加减速率、电机电流极限值等等。这些都可以作为附加不等式加入到原二次规划(QP)框架之中加以体现出来: \[ C_min ≤ C(X,U) ≤ C_max. \] --- #### 6. 数值求解器的选择 针对所形成的标准化QP子问题可以选择多种高效算法予以解答,例如Gurobi、OSQP或者是CasADi工具包内部集成的相关功能模块均能胜任此项任务需求。 --- ```python import numpy as np from scipy.optimize import minimize def mpc_control(x_current, u_prev, ref_traj, params): """ Model Predictive Control for differential drive robot. Args: x_current: Current state vector [x; y; theta]. u_prev: Previous control input [v; omega]. ref_traj: Reference trajectory points [[xr]; [yr]]. params: System parameters including L, dt etc. Returns: Optimal control inputs [v*, omega*]. """ def cost_function(u_flat): # Reshape flat array into matrix form u_pred = u_flat.reshape((-1, 2)) # Initialize variables total_cost = 0 x_pred = x_current.copy() for k in range(len(ref_traj)): # State prediction using kinematic model dx = u_pred[k][0]*np.cos(x_pred[2]) dy = u_pred[k][0]*np.sin(x_pred[2]) dtheta = u_pred[k][1] x_next = x_pred + np.array([dx, dy, dtheta]) * params['dt'] # Compute error and add to the cost function err_pos = ((ref_traj[k][:2]-x_next[:2])**2).sum() err_theta = abs((ref_traj[k][2]-x_next[2])) ctrl_effort = sum(abs(u_pred[k])) total_cost += err_pos + err_theta + ctrl_effort x_pred = x_next return total_cost res = minimize(cost_function, np.zeros(2*Np), method='SLSQP') return res.x[:2].reshape(-1) # Example usage of MPC controller with dummy data if __name__ == "__main__": initial_state = np.array([0., 0., 0.]) # Initial position & orientation prev_input = np.array([0.5, 0.]) # Last applied velocities reference_points = [(1., 1.), (-1., -1.)] # Desired waypoints system_params = {'L': 0.5, 'dt': 0.1} optimal_u = mpc_control(initial_state, prev_input, reference_points, system_params) print(f"Optimized Controls: Linear Velocity={optimal_u[0]}, Angular Velocity={optimal_u[1]}") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值