主要内容

用闭环控制算法改善两轮汽车的转向性能

本示例展示了如何实现闭环控制算法,以制造两轮LEGO®MINDSTORMS®EV3™ 车辆行驶平直机。

介绍

在使用独立车轮控制的车辆中,向每个车轮施加相同的功率通常不会导致车辆直线行驶。这是由每个车轮所经历的机械和表面差异造成的。为了减少车辆航向偏差,更好的方法是使用闭环控制器,该控制器根据两个电机的旋转差异调整施加到两个电机上的功率。一个这样的控制器是众所周知的比例积分微分(PID)控制器。

PID控制是一种基本的控制回路反馈机制。控制器通过调整系统控制输入,使所选系统变量的测量值与期望值之间的差值最小化。

该示例演示了控制算法的实现,首先是无反馈控制(开环控制),然后是基于P控制器的反馈控制(闭环控制)。

先决条件

完成两者乐高®MINDSTORMS®EV3 MATLAB®支持包入金宝app门™ 硬件与EV3砖外设交互,读取传感器值,和控制电机例子。

所需硬件

此示例需要额外的硬件:

  • 两台EV3大型发动机

任务1-设置硬件

1.使用两个电机来控制两个独立的车轮来制造车辆。将一个电机连接到输出端口“A”另一个连接到输出端口“B”. 例如,您可以建造一辆类似于“核心教育”集中打印的建造说明中所述的车辆。

2.使用无线连接比使用USB电缆更容易与移动车辆通信。因此,我们建议设置WiFi或蓝牙通信,如中所述乐高MINDSTORMS EV3硬件MATLAB支持包入金宝app门的例子。

任务2-打开并运行开环控制MATLAB脚本

1.打开开环控制脚本模板。

编辑('gostraight\u openloop.m')

该代码将两个电机设置为相同的速度,并在执行过程中保持不变。

2.运行脚本。

点击按钮运行开环控制脚本。执行时间为中定义的10秒

EXE_TIME = 10

3.使用开环系统观察偏差。

脚本为两个车轮指定相同的速度。但是,机械和环境条件使车轮以不同的速度旋转,导致车辆偏离直线路径。

任务3-打开和运行闭环控制MATLAB脚本

1.打开闭环控制脚本模板。

编辑('gostraight\u closeloop.m')

代码读取每个轮子上的编码器,计算出每个轮子转速之间的比例差异,并通过调整一个电机的速度来补偿这个差异。

2.运行脚本。

点击按钮运行闭环控制脚本。执行时间为中定义的10秒

EXE_TIME = 10

3.用闭环系统观察偏差。

观察使用闭环反馈控制系统时,车辆比使用开环控制时移动得更直。

任务4 -其他要尝试的事情

1.改变初始速度设置并相应地调整P参数

速度=20 P=0.01

使车辆直线行驶。

2.使用积分和微分参数优化控制算法。

总结

本示例演示了两轮EV3车辆电机控制的实现。你了解到:

  • 开环控制不能保证在独立驱动车轮的车辆中直线行驶。

  • 闭环控制利用两个编码器输出的差异来同步两个轮子的转速。