尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

轮式移动机器人动力学仿真程序:基于双闭环控制与非线性ESO的轨迹跟踪MATLAB实现

轮式移动机器人动力学仿真程序:基于双闭环控制与非线性ESO的轨迹跟踪MATLAB实现 轮式移动机器人轨迹跟踪的MATHLAB程序运用运动学和动力学模型的双闭环控制借鉴自抗扰控制技术结合了非线性ESO跟踪效果良好控制和抗扰效果较优可分享控制结构图。 这段程序主要是一个小车的动力学仿真程序用于模拟小车在参考轨迹下的运动。下面我将对程序进行详细的分析解释。 首先程序开始时使用clear、clc和close all命令来清除工作空间、命令窗口和图形窗口中的内容。 接下来程序定义了一系列参数和变量用于设置仿真的参数和存储仿真过程中的数据。这些参数包括小车的质量、车宽、驱动轮半径等还有参考轨迹的振幅和频率仿真步长仿真时间等。 然后程序定义了一些元胞数组用于存储不同阶段的数据。这些数组包括参考轨迹位姿、真实运动轨迹位姿、参考轨迹一阶导数、虚拟参考轨迹速度、期望速度、真实速度、控制器输出的控制力矩、控制输入、期望速度与真实速度误差、摩擦值、外界扰动值、总扰动、位姿跟踪误差、扰动观测值等。 接下来程序给这些变量赋初始值包括小车的初始位姿和速度虚拟初始速度期望初始速度控制器输出的控制力矩扰动观测值等。 然后程序进入一个循环仿真时间从0到给定的仿真时间tf。在每个循环中程序根据给定的参考轨迹生成圆形参考轨迹并计算参考轨迹的一阶导数和虚拟参考轨迹速度。 接下来程序计算位姿误差并使用运动学控制器计算期望速度。然后程序使用非线性ESOExtended State Observer估计速度扰动并使用动力学控制器计算控制力矩。最后程序根据控制力矩和扰动计算小车的实际速度和位姿并计算位姿跟踪误差。 在每个循环结束时程序更新时间和循环索引并继续下一次循环直到仿真时间达到设定的结束时间tf。 最后程序绘制了多个图形来展示仿真结果。这些图形包括参考轨迹和实际运动轨迹的图像、参考轨迹角度和实际角度的图像、内环速度误差的图像、位姿跟踪误差的图像、线速度扰动和观测器估计的图像、角速度扰动和观测器估计的图像、速度曲线的图像和控制量输入的图像。 通过这些图形可以直观地了解小车在参考轨迹下的运动情况以及控制器的性能和位姿跟踪误差等。 这段程序涉及到的知识点包括动力学方程、参考轨迹生成、运动学控制器、非线性ESO、动力学控制器等。它主要用于解决小车在给定参考轨迹下的运动控制问题通过控制器输出的控制力矩来控制小车的速度和位姿以实现对参考轨迹的跟踪。一、代码整体概述本MATLAB代码针对轮式移动机器人构建了基于运动学与动力学模型的双闭环控制体系并融入抗扰控制技术与非线性扩张状态观测器ESO实现了对圆形参考轨迹的精准跟踪。代码通过多模块协同工作完成从参考轨迹生成、位姿误差计算、控制量输出到运动状态更新的全流程同时具备对扰动的观测与抑制能力最终通过多维度数据可视化呈现跟踪效果为轮式移动机器人轨迹跟踪算法的验证与优化提供了完整的仿真平台。二、核心功能模块解析一仿真参数配置模块该模块为整个仿真系统奠定基础通过定义机器人物理属性、环境干扰参数、控制与观测器参数及时间参数确保仿真场景与实际应用场景的一致性具体功能如下机器人物理属性参数明确机器人关键物理特征包括质量m、车宽b、驱动轮半径r、质心到驱动轮中点距离d及转动惯量J。这些参数直接决定机器人的动力学特性例如质量和转动惯量会影响机器人对控制力矩的响应速度驱动轮半径则关联线速度与角速度的转换关系。干扰参数设置摩擦力Fd和外界扰动tau_d模拟机器人在实际运行中可能遇到的阻力与不确定性干扰如地面摩擦阻力、风阻等为后续抗扰控制提供干扰源。参考轨迹参数定义圆形参考轨迹的振幅A和频率omega确定参考轨迹的形状与运动速度振幅决定圆的半径频率决定机器人沿轨迹运动的角速度。时间参数设定仿真步长h、初始时间to和终止时间tf。仿真步长影响仿真精度与计算效率步长越小精度越高但计算量越大仿真时间范围则决定了轨迹跟踪效果的观测时长。控制与观测器参数配置运动学控制器参数ko、kt、kth、观测器参数w1、w2及动力学控制器参数kf。这些参数直接影响控制性能如运动学控制器参数决定位姿误差的收敛速度观测器参数影响扰动观测的准确性动力学控制器参数则关系到速度误差的抑制效果。矩阵参数构建动力学模型中的关键矩阵Mba和Vmba。Mba矩阵反映机器人惯性特性由质量和转动惯量等物理参数推导得出Vmba矩阵根据模型化简结果设置在本代码中简化为零矩阵体现了对特定场景下机器人动力学模型的合理简化。二变量与数据结构初始化模块为保证仿真过程中数据的有序存储与调用该模块定义了多种类型的变量与元胞数组并完成初始值赋值具体功能包括变量类型与功能定义-位姿相关变量qr参考轨迹位姿、q真实运动位姿均包含x坐标、y坐标和转角theta三个维度分别记录机器人期望运动状态与实际运动状态。-速度相关变量qrdot参考轨迹一阶导数、vr虚拟参考轨迹速度、Vqr期望速度、v真实速度涵盖线速度和角速度两个维度用于描述机器人运动的快慢与转向变化。-控制与误差变量tauba控制器输出控制力矩、U控制输入、ec期望速度与真实速度误差、eq位姿跟踪误差实现控制量计算与跟踪精度评估。-扰动与观测变量Fba摩擦值、taudba外界扰动值、F_sum总扰动、X3扰动观测值、fal非线性函数计算结果支撑扰动的观测与抑制功能。元胞数组选择依据考虑到仿真过程中各变量的维度会随时间步长动态变化元胞数组具有灵活存储不同维度数据的特性能够高效存储每一时间步的变量值便于后续数据处理与结果分析。初始值赋值原则参考轨迹初始位姿q_r{1}(1:3,1)与真实初始位姿q{1}(1:3,1)设置不同值模拟机器人初始状态与期望状态的偏差速度、控制量及扰动观测值的初始值根据实际工况经验设定确保仿真启动时系统状态稳定避免初始冲击。三参考轨迹生成模块该模块基于三角函数关系在每一时间步生成圆形参考轨迹的位姿与速度信息为机器人提供明确的运动目标具体功能实现如下位姿生成利用余弦函数和正弦函数分别计算参考轨迹的x坐标Acos(omegato)和y坐标Asin(omegato)确保轨迹呈圆形转角omega*topi/2随时间线性变化保证机器人沿轨迹运动时的朝向与轨迹切线方向一致符合轮式机器人运动特性。速度生成对x坐标和y坐标分别求导得到x方向和y方向的线速度分量再通过平方和开方运算计算出合成线速度sqrt((qrdot{1}(1,k))^2(qrdot{1}(2,k))^2)转角的导数即为角速度omega为后续速度跟踪提供期望速度参考。四位姿误差计算模块为准确评估机器人实际位姿与参考位姿的偏差该模块通过坐标系转换将全局坐标系下的位姿误差转换为机器人本体坐标系下的误差具体功能如下误差转换原理基于机器人当前转角theta利用三角函数构建坐标转换关系。x方向误差eo通过当前转角的余弦和正弦函数加权计算全局x、y坐标误差得到y方向误差et通过负正弦和余弦函数加权计算全局x、y坐标误差得到转角误差e_th直接为参考转角与真实转角的差值。转换意义将全局误差转换为本体坐标系下的误差更符合机器人的控制逻辑。因为机器人的控制量如轮速是基于本体坐标系输出的本体坐标系下的误差能更直接地反映机器人在自身运动方向上的偏差便于后续运动学控制器生成合理的期望速度。五双闭环控制模块作为代码的核心控制部分双闭环控制模块包含运动学控制器外环和动力学控制器内环通过两层控制协同工作实现高精度轨迹跟踪具体功能如下运动学控制器外环以位姿误差为输入输出期望速度。根据位姿误差eo、et、eth和虚拟参考轨迹速度vr结合预设的控制参数ko、kt、kth通过特定的控制算法计算期望线速度和角速度Vq_r。其核心作用是根据位姿偏差调整期望速度使机器人逐步向参考轨迹靠拢例如当x方向误差较大时通过增大期望线速度中的误差补偿项加快机器人在x方向的修正速度。动力学控制器内环以速度误差为输入输出控制力矩与控制输入。首先计算期望速度与真实速度的误差ec然后结合非线性ESO观测到的扰动信息X2和预设的控制器参数Kf计算出期望控制力矩tauba再通过动力学模型中的惯性矩阵Mba求逆将控制力矩转换为实际控制输入U作用于机器人驱动系统。该控制器能够快速抑制速度误差确保机器人实际速度紧密跟踪期望速度同时抵消扰动对速度的影响。六非线性扩张状态观测器ESO模块该模块是抗扰控制的关键能够实时观测机器人运动过程中的未知扰动并为控制器提供扰动补偿信息具体功能实现如下观测器核心逻辑以机器人真实速度v与观测速度X1的误差e_v为输入通过非线性fal函数处理误差信号再结合控制输入U和预设的观测器参数zo、zt动态更新观测速度X1和扰动观测值X2。其中fal函数具有非线性特性在误差较大时采用大增益快速跟踪误差在误差较小时采用小增益保证观测精度有效平衡观测速度与稳定性。扰动观测值计算通过惯性矩阵M_ba与扰动观测中间值X2的乘积运算得到最终的扰动观测值X3该值能够准确反映摩擦力、外界扰动等综合干扰的大小为动力学控制器提供精准的扰动补偿依据减少扰动对机器人运动状态的影响。七运动状态更新模块该模块根据动力学方程和运动学方程结合控制输入与扰动信息实时更新机器人的速度和位姿模拟机器人的实际运动过程具体功能如下速度更新基于动力学方程考虑摩擦力Fba、外界扰动taudba和控制力矩tauba的综合作用通过惯性矩阵M_ba求逆运算计算出速度变化量进而更新机器人的真实速度v。速度更新直接反映了控制输入对机器人运动状态的影响以及扰动对速度的干扰程度。位姿更新根据运动学方程利用机器人当前转角构建转换矩阵S将速度信息转换为位姿变化量从而更新机器人的真实位姿q。位姿更新结果是评估轨迹跟踪效果的直接依据每一时间步的位姿数据构成了机器人的实际运动轨迹。八结果可视化模块该模块通过多组图形展示仿真结果从不同维度直观呈现机器人轨迹跟踪性能、速度跟踪情况、扰动观测效果及控制输入特性具体功能如下轨迹对比图绘制参考轨迹与实际轨迹直观对比两者的重合程度评估机器人在空间上的轨迹跟踪精度可直接观察到实际轨迹是否紧密围绕参考轨迹运动。角度对比图展示参考轨迹角度与实际跟踪角度随时间的变化曲线分析机器人转角的跟踪效果判断机器人在运动过程中朝向是否与参考轨迹要求一致。内环速度误差图呈现内环线速度误差和角速度误差的变化趋势反映动力学控制器对速度误差的抑制能力误差曲线的收敛速度和波动范围是评估内环控制性能的关键指标。位姿跟踪误差图显示x坐标、y坐标和转角的跟踪误差全面评估机器人位姿跟踪的准确性误差的大小和稳定性直接体现了整个控制体系的综合性能。扰动观测对比图分别对比线速度扰动和角速度扰动的实际值与观测值验证非线性ESO的观测精度观测值与实际值的重合度越高说明观测器的抗扰效果越好。速度曲线图同时展示虚拟速度、期望速度与实际速度的变化情况分析速度跟踪的动态过程可观察到实际速度如何逐步逼近期望速度以及虚拟速度对期望速度的引导作用。控制输入图绘制两个控制输入随时间的变化曲线反映控制器为实现轨迹跟踪所输出的控制量大小与变化规律控制输入的平稳性和幅值范围为实际硬件设计提供参考。三、代码运行流程初始化阶段执行clear、clc、close all命令清除工作空间变量、命令行窗口内容和已打开图形窗口避免历史数据干扰随后调用仿真参数配置模块和变量与数据结构初始化模块完成参数设置与变量初始化。循环仿真阶段以时间步长为单位在仿真时间范围内to tf循环执行以下操作- 调用参考轨迹生成模块生成当前时间步的参考位姿与参考速度。- 调用位姿误差计算模块计算当前时间步的本体坐标系下位姿误差。- 调用运动学控制器根据位姿误差和参考速度生成期望速度。- 调用非线性ESO模块观测当前时间步的扰动信息。- 调用动力学控制器根据速度误差和扰动观测值生成控制输入。- 调用运动状态更新模块更新当前时间步的机器人真实速度与位姿。- 更新时间变量to to h和循环计数变量k k 1进入下一时间步循环。结果处理与可视化阶段循环结束后对仿真数据进行整理计算时间轴数据rk随后调用结果可视化模块生成多组图形展示仿真结果为轨迹跟踪性能分析提供直观数据支持。四、关键技术亮点双闭环控制架构外环运动学控制确保机器人位姿向参考轨迹收敛内环动力学控制快速抑制速度误差两层控制相互配合兼顾了轨迹跟踪的准确性和动态响应速度有效提升了系统的控制精度与稳定性。非线性ESO抗扰技术通过非线性fal函数实现对扰动的高精度观测能够实时跟踪并补偿摩擦力、外界扰动等未知干扰减少扰动对机器人运动状态的影响增强了系统的鲁棒性使机器人在复杂干扰环境下仍能保持良好的跟踪性能。坐标系转换误差计算将全局坐标系下的位姿误差转换为本体坐标系下的误差使误差信息更符合机器人控制逻辑为运动学控制器生成合理的期望速度提供了准确依据提高了误差修正的有效性。全面的结果可视化通过多维度图形展示仿真结果涵盖轨迹、角度、速度、误差、扰动及控制输入等关键指标不仅便于直观评估控制性能还能为算法优化提供清晰的数据支撑例如通过扰动观测对比图可调整观测器参数以提高观测精度。五、应用场景与扩展方向应用场景本代码可广泛应用于轮式移动机器人轨迹跟踪算法的研发、验证与优化如室内服务机器人、AGV自动导引车等需要精准轨迹跟踪的设备。在算法设计初期可通过该代码快速验证控制算法的可行性在算法优化阶段可通过调整参数并观察仿真结果优化控制性能同时也可作为教学案例帮助相关专业学生理解轮式机器人运动控制原理与抗扰控制技术。扩展方向-参考轨迹扩展当前代码仅支持圆形参考轨迹未来可扩展为直线、折线、椭圆等多种复杂轨迹通过增加轨迹生成逻辑满足不同应用场景下的轨迹跟踪需求。-控制算法优化可尝试引入先进的控制算法如模型预测控制MPC、自适应控制等与现有双闭环控制架构结合进一步提升轨迹跟踪精度与系统鲁棒性。-硬件在环仿真将代码与实际机器人硬件结合搭建硬件在环仿真平台使仿真更贴近实际工况为实际机器人控制程序的编写与调试提供更可靠的依据。-多机器人协同控制扩展代码功能实现多台轮式移动机器人的协同轨迹跟踪添加机器人间通信与避障逻辑满足多机器人协作作业场景的需求。轮式移动机器人轨迹跟踪的MATHLAB程序运用运动学和动力学模型的双闭环控制借鉴自抗扰控制技术结合了非线性ESO跟踪效果良好控制和抗扰效果较优可分享控制结构图。 这段程序主要是一个小车的动力学仿真程序用于模拟小车在参考轨迹下的运动。下面我将对程序进行详细的分析解释。 首先程序开始时使用clear、clc和close all命令来清除工作空间、命令窗口和图形窗口中的内容。 接下来程序定义了一系列参数和变量用于设置仿真的参数和存储仿真过程中的数据。这些参数包括小车的质量、车宽、驱动轮半径等还有参考轨迹的振幅和频率仿真步长仿真时间等。 然后程序定义了一些元胞数组用于存储不同阶段的数据。这些数组包括参考轨迹位姿、真实运动轨迹位姿、参考轨迹一阶导数、虚拟参考轨迹速度、期望速度、真实速度、控制器输出的控制力矩、控制输入、期望速度与真实速度误差、摩擦值、外界扰动值、总扰动、位姿跟踪误差、扰动观测值等。 接下来程序给这些变量赋初始值包括小车的初始位姿和速度虚拟初始速度期望初始速度控制器输出的控制力矩扰动观测值等。 然后程序进入一个循环仿真时间从0到给定的仿真时间tf。在每个循环中程序根据给定的参考轨迹生成圆形参考轨迹并计算参考轨迹的一阶导数和虚拟参考轨迹速度。 接下来程序计算位姿误差并使用运动学控制器计算期望速度。然后程序使用非线性ESOExtended State Observer估计速度扰动并使用动力学控制器计算控制力矩。最后程序根据控制力矩和扰动计算小车的实际速度和位姿并计算位姿跟踪误差。 在每个循环结束时程序更新时间和循环索引并继续下一次循环直到仿真时间达到设定的结束时间tf。 最后程序绘制了多个图形来展示仿真结果。这些图形包括参考轨迹和实际运动轨迹的图像、参考轨迹角度和实际角度的图像、内环速度误差的图像、位姿跟踪误差的图像、线速度扰动和观测器估计的图像、角速度扰动和观测器估计的图像、速度曲线的图像和控制量输入的图像。 通过这些图形可以直观地了解小车在参考轨迹下的运动情况以及控制器的性能和位姿跟踪误差等。 这段程序涉及到的知识点包括动力学方程、参考轨迹生成、运动学控制器、非线性ESO、动力学控制器等。它主要用于解决小车在给定参考轨迹下的运动控制问题通过控制器输出的控制力矩来控制小车的速度和位姿以实现对参考轨迹的跟踪。
返回列表