轮式移动机器人轨迹跟踪的 MATHLAB 程序,运用运动学和动力学模型的双闭环控制,借鉴自抗扰控
制技术结合了非线性 ESO,跟踪效果良好,控制和抗扰效果较优,可分享控制结构图。
这段程序主要是一个小车的动力学仿真程序,用于模拟小车在参考轨迹下的运动。下面我将对程序进
行详细的分析解释。
首先,在程序的开头使用`clear`、`clc`和`close all`命令来清除工作空间、命令窗口和图形
窗口中的内容。这是一种良好的编程习惯,可以确保程序的运行环境是干净的,不会受到之前运行结
果的干扰。
接下来,程序定义了一系列参数和变量,用于设置仿真的参数和存储仿真过程中的数据。这些参数包
括小车的质量、车宽、驱动轮半径等,还有参考轨迹的振幅和频率,仿真步长,仿真时间等。这些参
数和变量的定义使得程序具有了一定的灵活性,可以根据具体的仿真需求进行调整。
然后,程序定义了一些元胞数组,用于存储不同阶段的数据。这些数组包括参考轨迹位姿、真实运动
轨迹位姿、参考轨迹一阶导数、虚拟参考轨迹速度、期望速度、真实速度、控制器输出的控制力矩、
控制输入、期望速度与真实速度误差、摩擦值、外界扰动值、总扰动、位姿跟踪误差、扰动观测值等
。这些变量的定义使得程序能够记录和分析仿真过程中的关键数据,以便对仿真结果进行评估和优化
。
接下来,程序给这些变量赋初始值,包括小车的初始位姿和速度,虚拟初始速度,期望初始速度,控
制器输出的控制力矩,扰动观测值等。这些初始值的设置是根据实际情况进行调整的,并且可以在程
序运行过程中进行修改。这样,程序的初始状态就可以满足仿真需求。
然后,程序进入一个循环,仿真时间从 0 到给定的仿真时间 tf。在每个循环中,程序根据给定的参
考轨迹生成圆形参考轨迹,并计算参考轨迹的一阶导数和虚拟参考轨迹速度。这样,程序就能够根据
参考轨迹生成具体的运动路径,并计算出运动的速度和加速度。
接下来,程序计算位姿误差,并使用运动学控制器计算期望速度。然后,程序使用非线性 ESO(
Extended State Observer)估计速度扰动,并使用动力学控制器计算控制力矩。最后,程序根
据控制力矩和扰动计算小车的实际速度和位姿,并计算位姿跟踪误差。这些计算过程是根据控制理论
和动力学方程进行的,可以实现对小车运动的精确控制。
在每个循环结束时,程序更新时间和循环索引,并继续下一次循环,直到仿真时间达到设定的结束时
间 tf。这样,程序就能够进行连续的仿真运算,并获得完整的运动轨迹和控制结果。
最后,程序绘制了多个图形来展示仿真结果。这些图形包括参考轨迹和实际运动轨迹的图像、参考轨
迹角度和实际角度的图像、内环速度误差的图像、位姿跟踪误差的图像、线速度扰动和观测器估计的
图像、角速度扰动和观测器估计的图像、速度曲线的图像和控制量输入的图像。这些图形直观地展示