主要内容

PID控制驱动

这个例子展示了如何在Simulink®中模拟一个简单的闭环控制算法,以及如何在LEGO®MINDSTORMS®EV3™硬件上运行它。金宝app

介绍

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

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

这个例子向您展示了如何使用一个简单的设备模型来模拟控制器,首先是没有反馈控制(开环控制),然后是反馈控制(闭环控制)。该示例还演示了如何在模拟PID控制器和在同一模型的硬件上运行PID控制器之间进行切换。

先决条件

我们建议完成入门乐高®MINDSTORMS®EV3™硬件与LEGO®MINDSTORMS®EV3™硬件通信的例子。

所需的硬件

  • 乐高MINDSTORMS EV3 Brick

  • 两台乐高MINDSTORMS EV3大型电机

  • EV3 Wi-Fi适配器或USB以太网适配器(步骤3和步骤5可选)

任务1 -建造乐高MINDSTORMS EV3汽车并建立网络连接

1.用两个马达来控制两个独立的轮子。例如,您可以构建与教育核心集中打印的构建说明中描述的类似的工具。

2.设置EV3块与主机之间的连接。请参阅中题目1和2入门乐高®MINDSTORMS®EV3™硬件的例子。

任务2 -模拟开环控制模型

这一步说明了独立动力车轮导致车辆的方向偏差。

1.打开模型.观察模型中的两个不同的子系统。

2.打开开环控制器子系统。这个子系统控制车辆的行驶。观察控制器没有使用两个编码器输出之间的差异来控制电机。

3.注意到汽车子系统。这个子系统包含了模拟的和实际的电动机。环境控制器模块根据当前环境获取模拟或实际电机的输出。这允许您在一个模型中同时表示模拟和实际的电机。作为一种替代方法,您可以创建两个模型,一个用于模拟,另一个用于在实际硬件上运行。

4.单击Simulink工具栏中的Run按钮。金宝app单击范围Block and observe that the编码器输出信号不匹配随着时间的推移增加。这表示车辆不会直线移动。

任务3 -在LEGO MINDSTORMS EV3硬件上运行开环控制模型

1.的任务5中描述的配置模型入门乐高®MINDSTORMS®EV3™硬件的例子。

2.硬件选项卡,单击金宝app构建、部署和启动.模型在乐高MINDSTORMS NXT硬件上运行,车辆开始移动。

3.注意,飞行器的路径不是直线的,正如模拟所预测的那样。

任务4 -模拟闭环控制模型

1.打开模型.观察模型中的两个子系统。

2.双击PID控制器子系统。注意,P控制用于同步两个电机时,车辆运行直线。同样,注意在一个回合中,没有应用同步。

3.点击运行按钮。金宝app单击范围Block and observe that the编码器输出信号不匹配仍然接近于零。这表明车辆的倾斜度会比开环控制模型。

任务5 -在乐高MINDSTORMS EV3硬件上运行闭环控制模型

1.的任务5中描述的配置模型入门乐高®MINDSTORMS®EV3™硬件的例子。

2.硬件选项卡,单击金宝app构建、部署和启动.模型在乐高MINDSTORMS EV3硬件上运行,车辆开始移动。

3.观察车辆的路径是直线的,正如模拟预测。

其他可以尝试的事情

  • 调整PID控制器设置。提高车辆在粗糙或倾斜表面上直线移动的能力。

  • 使用仿真金宝app软件监视和优化功能调整参数和监控信号。

总结

这个例子展示了如何在乐高MINDSTORMS EV3硬件上模拟和实现一个基本的闭环控制器。在你学到的例子中:

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

  • 闭环控制使用两个编码器输出之间的差异来计算功率,应该应用到每个车轮单独。

  • 仿真硬件和实际硬件可以在同一模型中使用,只要存在在它们之间进行切换的机制。