基于二阶自抗扰ADRC和MPC的路径跟踪控制,使用ADRC对前轮转角进行补偿,对车辆的不确定性...

张开发
2026/4/3 20:33:39 15 分钟阅读
基于二阶自抗扰ADRC和MPC的路径跟踪控制,使用ADRC对前轮转角进行补偿,对车辆的不确定性...
基于二阶自抗扰ADRC和MPC的路径跟踪控制使用ADRC对前轮转角进行补偿对车辆的不确定性和外界干扰具有一定抗干扰性有参考论文Carsim版本为2019Matlab版本为2021最近在研究车辆路径跟踪控制的问题发现结合二阶自抗扰控制ADRC和模型预测控制MPC的方法挺有意思的。ADRC的自适应性和抗干扰能力确实能为系统带来不少优势而MPC的优化特性又能很好地规划路径。下面分享一下我的学习和仿真过程。一、ADRC的基本思想ADRC的核心思想是通过状态观测器实时估计系统的不确定性并通过反馈机制进行补偿。对于车辆的前轮转角控制ADRC可以有效抑制外界干扰和系统参数的变化。代码实现起来其实不难关键是要设计好状态观测器的参数。% ADRC状态观测器部分 function [x_hat, z_hat] adrc_observer(x, u, x_hat_prev, z_hat_prev, r) % x: 系统状态 % u: 控制输入 % x_hat_prev: 上一时刻的状态估计 % z_hat_prev: 上一时刻的观测器状态 % r: 观察器增益 % 状态观测器更新 x_hat x_hat_prev r*(x - x_hat_prev) u; z_hat z_hat_prev r*(x_hat - z_hat_prev); end从代码可以看出ADRC通过引入观测器增益r可以快速跟踪系统的状态变化。这在车辆控制中非常有用尤其是面对路面摩擦力变化或风扰等不确定性时。二、MPC的优化特性MPC的优势在于它能够基于模型对未来状态进行预测并通过优化算法找到最优控制序列。对于路径跟踪问题MPC可以很好地平衡车辆的转向和速度控制。% MPC优化问题 function [u_opt] mpc_optimizer(x_current, ref_path, horizon) % x_current: 当前状态 % ref_path: 参考路径 % horizon: 优化时域 % 定义优化变量 u optimvar(u, horizon, 1); % 定义状态转移方程 x x_current; for i 1:horizon x x u(i); % 添加路径跟踪误差约束 cost cost (x - ref_path(i))^2; end % 解决优化问题 options optimoptions(fmincon,Algorithm,interior-point); problem optimproblem(Objective,cost,Variables,u); u_opt solve(problem, options); end这段代码简化了MPC的优化过程实际应用中可能需要更复杂的模型和约束条件。不过从逻辑上看MPC确实能够通过滚动优化找到一条最优路径。三、ADRC与MPC的结合在实际应用中ADRC和MPC的结合可以互补优势。ADRC负责实时补偿系统的不确定性而MPC则负责路径规划和优化。这种组合在车辆控制中表现不错。% 车辆控制主程序 function [x_next] vehicle_control(x_current, u_adrc, u_mpc) % x_current: 当前状态 % u_adrc: ADRC输出 % u_mpc: MPC输出 % 组合控制信号 u_total u_adrc u_mpc; % 状态更新 x_next x_current u_total; end从代码中可以看出ADRC和MPC的控制信号是叠加的关系。这种设计既能保证系统的抗干扰能力又能实现路径的精准跟踪。四、仿真结果在Carsim 2019中搭建了车辆模型并通过Matlab 2021进行联合仿真。仿真结果表明结合ADRC和MPC的控制策略确实能够提高车辆的路径跟踪精度尤其是在面对路面不平和风扰时系统的鲁棒性表现不错。五、总结这次的研究让我对ADRC和MPC有了更深的理解。ADRC的自适应性和MPC的优化特性确实是一对不错的搭档。不过在实际应用中还需要考虑更多复杂的工况比如多目标优化和实时性问题。希望未来能在这方面继续深入研究。基于二阶自抗扰ADRC和MPC的路径跟踪控制使用ADRC对前轮转角进行补偿对车辆的不确定性和外界干扰具有一定抗干扰性有参考论文Carsim版本为2019Matlab版本为2021

更多文章