此示例显示了如何实现闭环控制算法,使双轮LEGO®MITEDSTOMS®EV3™车辆驱动更直。
在使用独立车轮控制的车辆中,对每个轮施加相同的电力通常不会导致车辆直线移动。这是由每个轮子经历的机械和表面差异引起的。为了减少车辆前线的偏差,更好的方法是使用闭环控制器,该控制器基于其旋转的差异来调节施加到两个电动机的功率。一个这样的控制器是众所周知的比例 - 积分 - 衍生物(PID)控制器。
PID控制是一个基本的控制回路反馈机制。控制器通过调整系统控制输入来最小化所测量的系统变量的所需值与所需值之间的差异。
此示例演示了控制算法实现,首先没有反馈控制(开环控制),然后基于P控制器进行反馈控制(闭环控制)。
完成两个MATLAB®COLDS®EV3™硬件入门万博1manbetx和与EV3砖外设交互,读取传感器值,和控制电机例子。
此示例需要额外的硬件:
两台EV3大型发动机
1.使用两个电机构建车辆来控制两个独立轮子。将一个电机连接到输出端口'一种'另一个输出端口'B'.例如,您可以构建与教育核心集中打印的构建说明中描述的类似的工具。
2.与移动车辆通信的无线连接比使用USB电缆更容易。因此,我们建议设置WiFi或蓝牙通信,如上所述Matlab Support Package的Matla万博1manbetxb Spects in EV3硬件入门例子。
1.打开开环控制脚本模板。
编辑('gostraight_openloop.m')
代码将两个电机设置为相同的速度,并在执行期间保持不变。
2.运行脚本。
点击跑按钮运行开环控制脚本。执行时间为10秒钟
exe_time = 10.
3.观察与开环系统的偏差。
脚本指定两个轮子的速度相同。然而,机械和环境条件使车轮以不同的速度旋转,从而使车辆偏离直线路径。
1.打开闭环控制脚本模板。
编辑('gostraight_closeloop.m')
代码读取每个轮子上的编码器,计算出每个轮子转速之间的比例差异,并通过调整一个电机的速度来补偿这个差异。
2.运行脚本。
点击跑按钮运行闭环控制脚本。执行时间为10秒钟
exe_time = 10.
3.使用闭环系统观察偏差。
观察到,通过闭环反馈控制系统,车辆比使用开环控制的时间更直的移动。
1.改变初始速度设置并相应地调整P参数
速度= 20 p = 0.01
使车辆直接移动。
2。用积分和衍生参数优化控制算法。
该示例演示了两轮EV3车辆电机控制的实现。你了解到:
开环控制不能保证在独立驱动车轮的车辆中直线行驶。
闭环控制利用两个编码器输出的差异来同步两个轮子的转速。