轮式移动机器人轨迹跟踪的MATHLAB程序,运用运动学和动力学模型的双闭环控制,借鉴自抗扰控制技术结合了非线性ESO,跟踪效果良好,控制和抗扰效果较优,可分享控制结构图。
这段程序主要是一个小车的动力学仿真程序,用于模拟小车在参考轨迹下的运动。下面我将对程序进行详细的分析解释。
首先,程序开始时使用clear
、clc
和close all
命令来清除工作空间、命令窗口和图形窗口中的内容。
接下来,程序定义了一系列参数和变量,用于设置仿真的参数和存储仿真过程中的数据。这些参数包括小车的质量、车宽、驱动轮半径等,还有参考轨迹的振幅和频率,仿真步长,仿真时间等。
然后,程序定义了一些元胞数组,用于存储不同阶段的数据。这些数组包括参考轨迹位姿、真实运动轨迹位姿、参考轨迹一阶导数、虚拟参考轨迹速度、期望速度、真实速度、控制器输出的控制力矩、控制输入、期望速度与真实速度误差、摩擦值、外界扰动值、总扰动、位姿跟踪误差、扰动观测值等。
接下来,程序给这些变量赋初始值,包括小车的初始位姿和速度,虚拟初始速度,期望初始速度,控制器输出的控制力矩,扰动观测值等。
然后,程序进入一个循环,仿真时间从0到给定的仿真时间tf。在每个循环中,程序根据给定的参考轨迹生成圆形参考轨迹,并计算参考轨迹的一阶导数和虚拟参考轨迹速度。
接下来,程序计算位姿误差,并使用运动学控制器计算期望速度。然后,程序使用非线性ESO(Extended State Observer)估计速度扰动,并使用动力学控制器计算控制力矩。最后,程序根据控制力矩和扰动计算小车的实际速度和位姿,并计算位姿跟