基于mpc模型预测轨迹跟踪控制:加入四轮侧偏角软约束的仿真实现较好的轨迹跟踪效果,基于MPC模型的轨迹跟踪控制仿真与四轮侧偏角软约束的影响

基于mpc模型预测轨迹跟踪控制,总共包含两套仿真,一套是不加入四轮侧偏角软约束,一套是加入四轮侧偏角的软约束控制,通过carsim与simulink联合仿真发现加入侧偏角软约束在进行轨迹跟踪时,能够通过控制四轮侧偏角的变化,较好的实现轨迹跟踪;而不加入侧偏角软约束的,发现车辆由于失去稳定性, 轨迹跟踪失败

ID:49120762510853969

芒果柚子


基于MPC模型预测轨迹跟踪控制的研究

摘要:

针对车辆轨迹跟踪的问题,本文基于MPC(Model Predictive Control)模型预测控制方法,通过两套仿真来比较不加入和加入四轮侧偏角软约束的情况下的轨迹跟踪效果。通过Carsim与Simulink的联合仿真实验,验证了加入侧偏角软约束能够提高轨迹跟踪的稳定性和精确性的结论。

关键词:MPC,轨迹跟踪,侧偏角软约束,Carsim,Simulink

  1. 引言

汽车轨迹跟踪问题是自动驾驶技术中的一个重要研究内容,其在实际应用中具有广泛的意义。在车辆轨迹跟踪中,MPC模型预测控制方法因其预测准确性和控制性能优良而受到广泛关注。本文基于MPC模型预测控制方法,通过仿真实验来比较不加入和加入四轮侧偏角软约束的轨迹跟踪控制效果,并探究加入侧偏角软约束对轨迹跟踪的影响。

  1. MPC模型预测控制方法

MPC模型预测控制方法是一种基于离散时间动态系统模型的控制方法。它通过对未来一段时间内的状态变化进行预测,优化控制输入,以实现对系统的精确控制。MPC方法在车辆轨迹跟踪问题中的应用较为广泛,其对于动态环境下的多约束问题具有良好的适应性和鲁棒性。

  1. 实验方法

本文通过Carsim与Simulink的联合仿真来比较不加入和加入四轮侧偏角软约束的轨迹跟踪效果。首先,利用Carsim软件建立车辆的运动学模型,并通过将该模型与Simulink进行联合仿真来实现控制策略的验证。然后,分别对不加入和加入侧偏角软约束的情况进行仿真实验,记录并分析两种情况下车辆的轨迹跟踪效果。

  1. 实验结果与分析

实验结果表明,加入侧偏角软约束的轨迹跟踪效果相较于不加入侧偏角软约束的情况更加稳定和精确。通过控制四轮侧偏角的变化,加入侧偏角软约束的控制策略能够更好地实现车辆的轨迹跟踪。而不加入侧偏角软约束的情况下,车辆因失去稳定性而导致轨迹跟踪失败。

  1. 结论与展望

本文通过基于MPC模型预测控制方法的轨迹跟踪控制实验,验证了加入侧偏角软约束能够提高轨迹跟踪的稳定性和精确性。然而,本文的研究结果仅限于仿真实验,实际应用中还需进一步验证和优化。未来的研究可以基于本文的工作,探索更多的约束条件和优化方法,以进一步提高车辆轨迹跟踪的性能和稳定性。

参考文献:

[1] C. Li, H. Zhou, X. Li, et al. Trajectory tracking control of autonomous vehicles based on MPC. Proceedings of the 2020 IEEE Intelligent Vehicles Symposium, 2020: 1-6.

[2] Y. Wang, Z. Wang. Model predictive control with online trajectory preview for autonomous ground vehicles. IEEE Transactions on Intelligent Transportation Systems, 2017, 18(7): 1833-1844.

[3] Z. Li, X. Wang, F. Liu, et al. Robust trajectory tracking control of autonomous ground vehicles based on augmented MPC. IEEE Transactions on Intelligent Transportation Systems, 2019, 20(5): 1917-1929.

以上相关代码,程序地址:http://fansik.cn/762510853969.html

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于 MPC 算法实现车辆轨迹跟踪的 MATLAB 代码示例: ```matlab %% 建立车辆动力学模型和环境模型 % 定义车辆动力学参数 m = 1000; % 质量 Cf = 16000; % 前轮向刚度 Cr = 18000; % 后轮向刚度 Lf = 1.2; % 前轴到重心距离 Lr = 1.8; % 后轴到重心距离 Vx = 10; % 车速 % 定义状态变量和控制变量 x = [0; 0; 0; Vx]; % 初始状态,分别为横向位移、横向速度、偏航角、纵向速度 u = [0; 0]; % 初始控制量,分别为前轮转角和后轮转角 % 定义预测时域和控制时域 Np = 10; % 预测时域 Nc = 2; % 控制时域 % 定义状态权重和控制权重 Q = diag([10, 100, 1, 1]); % 状态权重 R = diag([1, 1]); % 控制权重 % 定义约束条件 delta_max = 0.5; % 前轮转角限制 alpha_max = deg2rad(10); % 前轮偏角限制 % 定义 MPC 控制器 mpc_controller = mpc(tf({Cf, Cr}, {m*Lr, m*Lf+ m*Lr, m*Vx, 0}), Vx, Np, Nc, Q, R, [], [], [delta_max; alpha_max], [], []); %% MPC 控制循环 for i = 1:100 % 从传感器获取当前状态 y = [0; 0; 0; Vx]; % 假设当前状态与初始状态相同 % 更新 MPC 控制器并生成控制命令 mpc_controller = mpc_controller.setref({[], [], [], []}, {0, 0, 0, 20}); % 设置期望轨迹 u = mpc_controller(y); % 计算下一时刻状态 x = vehicle_model(x, u); % 更新环境模型 Vx = 10; % 假设车速不变 end %% 车辆动力学模型函数 function x_next = vehicle_model(x, u) % 解算车辆运动学方程 A = [0, 1, 0, 0; 0, 0, -u(1), 0; 0, 0, 0, 1; 0, 0, (u(1)*Lr - u(2)*Lf)/(m*x(4)), 0]; B = [0, 0; Cf/m, -Cr/m; 0, 0; Lf*Cf/(m*x(4)), -Lr*Cr/(m*x(4))]; x_next = A*x + B*u; end ``` 上述代码中,首先定义了车辆动力学模型参数、状态变量和控制变量、预测时域和控制时域、状态权重和控制权重、约束条件等参数。然后,通过 MPC 控制器函数 `mpc()`,建立 MPC 控制器,并在控制循环中不断更新 MPC 控制器并生成控制命令,同时计算下一时刻状态,并更新环境模型。最后,定义了车辆动力学模型函数 `vehicle_model()`,用于解算车辆运动学方程。 需要注意的是,这只是一个简单的示例,实际应用中需要根据具体情况进行参数调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值