此示例显示如何在Simulink®中模拟简单的闭环控制算法以及如何在Arduino®板上运行它。金宝app
金宝app支持的硬件:
Arduino达芬奇
Arduino Mega 2560.
Arduino兆理应
Arduino由于
此示例的可用版本:
Arduino Mega 2560板:
在使用独立车轮控制的车辆中,对每个轮施加相同的电力通常不会导致车辆直线移动。这是由每个轮子经历的机械和表面差异引起的。为了减少车辆前线的偏差,更好的方法是使用闭环控制器,该控制器根据其旋转速率的差异调节施加到两个电动机的功率。一个这样的控制器是众所周知的比例 - 积分 - 衍生物(PID)控制器。
PID控制是一个基本的控制回路反馈机制。控制器通过调整系统控制输入来最小化所测量的系统变量的所需值与所需值之间的差异。
此示例显示了如何使用简单的工厂模型模拟控制器,首先没有反馈控制(开环控制),然后使用反馈控制(闭环控制)。此示例还说明了如何在模拟PID控制器之间切换并在同一模型中运行它。
我们建议完成入门Arduino硬件示例。
要运行此示例,您将需要以下硬件:
控制器板:
金宝app支持Arduino电路板
USB电缆
电机控制器部件:
Texas Instruments™SN754410四倍大电流半h驱动器
两个10欧姆电阻
小面包板
试验板线
一个四轮车辆:
一个移动平台,具有四个车轮,由四个直流电机提供动力
两个光纤编码器连接到前面的直流电机
由五个AA 1.5V电池组成的电池组
单刀单掷(SPST)开关
注:
本示例使用带有编码器的DFRobot 4WD arduino兼容平台构建的四轮车辆进行了测试。
其他车辆套件只要具有相同的机械特性(四个轮子、四个直流电机和两个编码器)也可以使用。
只需对控制器连接进行少量修改,就可以使用只有两个直流电机的车辆。
本例中使用的编码器是十步编码器。可以使用不同的编码器,只需要对示例模型稍加修改。
1.组装移动平台。将两个直流电机连接到前轮。
2.将其他两个直流电动机连接到后轮。如果您的平台只有两个直流电机,则让后轮自由旋转。
3.使用合适的紧固件组装电池组并将其连接到移动平台。
4.使用面包板电线将电池组的正端连接到交换机。
注意:如果您正在使用带有编码器工具包的DFRobot 4WD arduino兼容平台,请按照供应商的说明进行操作。
Arduino板本身无法提供足够高的电流来驱动直流电机。为此,您将构建基于Texas Instruments SN754410四倍大电流半h驱动器的电机控制器。
1.使用以下电路图组装电机控制器。此示例显示如何在Arduino Mega2560板上组装。
2.在相同的电路图之后将控制器连接到车辆电池组。
这一步说明了独立动力车轮导致车辆的方向偏差。
1.打开模型.观察模型中的两个子系统。
2.打开开环控制器子系统。该子系统控制了车辆驾驶。观察控制器不使用两个编码器输出之间的差异来控制电机。
3.注意到汽车子系统。子系统包含模拟和实际电机。环境控制器块根据当前环境取决于模拟或实际电机的输出。这允许您在一个模型中代表模拟和实际电机。作为替代方案,您可以创建两个模型,一个用于模拟,另一个用于在实际硬件上运行的模型。
4.在模拟选项卡,单击金宝app运行.单击范围阻止并观察到编码器输出不匹配随着时间的推移而增加。这表明车辆不会直接移动。
1.请断开连接Arduino Mega 2560电路板Vin终端的电池电源线,电路板将通过USB线供电。
2.使用USB电缆将Arduino Mega 2560板连接到主机。
3.在硬件Simulink模型的金宝app标签,在模式部分中,选择机上运行然后点击构建、部署和启动.
4.下载Simulink金宝app模型后,断开Arduino Mega 2560板上的USB线。
5.将电池电源线连接回Arduino Mega 2560板上的Vin终端。
6.将车辆放在地面上并转动车辆开关。该模型在电路板上运行,车辆开始移动。
7.请注意,车辆的路径不直,如模拟所预测的。
8.把汽车开关关掉。
1.打开模型.观察模型中的两个子系统。
2.双击PID控制器子系统。注意,比例(P)控制用于同步两个电机时,车辆运行直线。同样,注意在一个回合中,没有应用同步。
3.在模拟选项卡,单击金宝app运行.单击范围阻止并观察到编码器输出不匹配保持接近零。这表明车辆与...相比,车辆将偏差较少开环控制模型。
1.请断开连接Arduino Mega 2560电路板Vin终端的电池电源线,电路板将通过USB线供电。
2.使用USB电缆将Arduino Mega 2560板连接到主机。
3.在硬件Simulink模型的金宝app标签,在模式部分中,选择机上运行然后点击构建、部署和启动.
4.下载模型后,断开USB电缆与Arduino Mega 2560板的连接。
5.将电池电源线连接回Arduino Mega 2560板上的Vin终端。
6.将车辆放在地面上并转动车辆开关。该模型在电路板上运行,车辆开始移动。
7.观察车辆的路径是直线的,正如模拟预测。
8.把汽车开关关掉。
调整PID控制器设置。提高车辆在粗糙或倾斜表面上移动的能力。