如何制作倒立摆盘_如何制作倒立摆

第一步:问题

倒立摆的问题类似于在扫帚或长扫帚的手掌上平衡杆子,这是我们大多数人小时候都尝试过的。当我们的眼睛看到杆子倒向某一侧时,会将这些信息发送到大脑进行一些计算,然后指令你的手臂以一定的速度移动到一定的位置,以对抗杆子的移动,有望使倾斜的杆子恢复垂直。这个过程每秒钟重复几百次,这样杠杆就完全在你的控制之下了。倒立摆以类似的方式工作。目的是将允许移动的车上的钟摆倒置。使用传感器代替眼睛来检测钟摆的位置,钟摆将信息发送到计算机,计算机执行一些计算并指示执行器以钟摆垂直的方式移动推车。

第二步:解决方案

平衡钟摆的问题需要深入理解运动和动力在这个系统中的作用。最后,这种洞察力将使我们能够提出系统的“运动方程”,该方程可用于计算进入致动器的输出和来自传感器的输入之间的关系。

根据你的水平,可以用两种方法推导运动方程。它们可以利用牛顿基本定律和一些高中数学或拉格朗日力学推导出来,这些通常是在本科物理课程中介绍的。(注:虽然牛顿定律简单但枯燥,拉格朗日力学更优雅,但你需要了解拉格朗日力学,虽然两种方法最终都会得到相同的解。)

它们的正式推导通常包含在高中或本科数学或物理课程中,尽管通过简单的谷歌搜索或访问此链接可以很容易地找到它们。观察最终的运动方程,我们注意到四个量之间的关系:

摆锤和垂线之间的角度

摆的角速度

摆的角加速度

线性加速购物车

前三个是传感器测得的量,最后一个量会送到执行器执行。

第三步:控制理论

控制理论是数学的一个子领域,用于控制和操作机器中的动态工程过程和系统。目标是开发一个控制模型或控制回路,以实现总体稳定性。在我们的例子中,倒立摆。

有两种主要类型的控制回路:开环控制和闭环控制。当实现开环控制时,控制器的控制操作或命令与系统的输出无关。炉子就是一个很好的例子。炉子停留的时间完全取决于计时器。

然而,在闭环系统中,控制器的命令取决于系统的状态。在我们的例子中,反馈是钟摆相对于法线的角度,它决定了小车的速度和位置,从而使系统成为一个闭环系统。上图以框图形式直观地展示了闭环系统。

有几种反馈机制技术,但最广泛使用的是比例-积分-微分控制器(PID控制器),这是我们将使用的。

注意:理解这些控制器的工作原理对开发成功的控制器非常有用,尽管解释这些控制器的操作超出了本说明书的范围。如果你在课程中没有遇到这些类型的控制器,网上有很多资料,简单的谷歌搜索或在线课程会有帮助。

第四步:在教室里实施这个项目。

年龄组:这个项目主要针对高中或本科学生,但也可以通过概述概念的方式作为演示呈现给幼儿。

涵盖的概念:这个项目涵盖的主要概念是动力学和控制理论。

所需时间:收集所有零件后,组装将需要10至15分钟。创建控制模型需要更多的时间,所以学生可以有2-3天的时间。一旦每个学生(或一组学生)都开发了他们自己的控制模型,你可以用另一天的时间让个人或团队进行演示。

在你的教室里实现这个项目的一种方法是构建系统(在下面的步骤中描述),而批处理在研究与动力学相关的物理子课题,或者他们在数学课上研究控制系统。这样,他们在课堂上遇到的想法和概念就可以直接在现实世界的应用中实现,使他们的概念更加清晰,因为没有比在现实生活中实现更好的学习新概念的方法了。

一个单独的系统可以作为一个类构建在一起,然后这个类可以分成几个组,每个组可以从头构建一个控制模型。然后,每个团队可以以比赛的形式展示他们的作品,其中最好的控制模型是能够平衡最长并且能够承受轻推和推动的模型。

在课堂上实施这个项目的另一种方法是让年龄较大的孩子(大约高中水平)开发这个项目并展示给年龄较小的孩子,并给他们一个动态和可控的概述。这不仅可以激发幼儿对物理和数学的兴趣,还可以帮助年长的学生理解他们的理论概念,因为强化你的概念的最好方法之一就是向他人解释,尤其是幼儿。你用一种非常简单明了的方式表达自己。

第五步:零件和消耗品

购物车将被允许在一组轨道上自由移动,给它一个单一的自由度。制造摆锤和推车系统需要以下零件和消耗品:

电子产品:

一个Arduino兼容板,什么都可以工作。如果你没有太多电子产品的经验,我建议用Uno,因为它比较容易上手。

Nema17步进电机用作推车的致动器。

一个步进电机驱动器可以再工作,但是我推荐一个4988的步进电机驱动器,因为它是简单的跟随。

一个MPU-6050六轴(陀螺加速度计)可以检测各种参数,比如钟摆的角度和角速度。

一个12v 10A的电源,10A对于这个具体项目来说其实有点大材小用。任何高于3A的都可以工作,但有可能获得额外的电流,以便将来需要更大功率时进行开发。/李》

硬件:

16 x轴承,我用滑板轴承,效果不错。

2个GT2滑轮和皮带

1.5寸PVC管约2.4m

4毫米螺母和螺栓束

这个项目中使用的一些零件也是3D打印的,所以使用3D打印机非常有用,尽管通常可以使用本地或在线3D打印设备。

所有组件的总成本不到50美元(不包括3D打印机)。

第六步:3D打印零件

小车和导轨系统有些部分必须定制,所以我用Autodesk和Fusion360建模cad文件,免费用3D打印机打印出来。

一些纯2D形状的零件,如钟摆和龙门床,是激光切割,因为它更快。所有的STL文件都附在下面的压缩文件夹中。以下是所有零件的完整列表:

2个龙门辊

4个端盖

1个步进支架

2个惰轮轴承座

1个钟摆框架

2个皮带附件

1个摆动轴承座(a)

1个摆动轴承座(b)

1个滑轮孔垫圈

4 x轴承孔垫圈

1个龙门板

1个步进支架板

1个惰轮支架板

1个摆锤(a)

1个摆锤(b)

一共24个零件,所以打印时间不会太长,因为零件比较小,可以一起打印。在这个教学过程中,我会根据这个列表中的名称引用零件。

步骤7:组装龙门辊

龙门辊就像手推车的轮子。这些将沿着PVC轨道滚动,这将使手推车以最小的摩擦平稳地移动。这一步,抓两个3D打印龙门辊,12个轴承和一堆螺母螺栓。每个滚子需要6个轴承。用螺母和螺栓将轴承安装到滚筒上(参考图片)。制作好每个滚筒后,将它们滑到PVC管上。

步骤8:组装驱动系统(步进电机)

小车将由标准Nema17步进电机驱动。用应与步进一起固定的螺钉将电机夹入步进支架。然后将支架拧到步进器支架板上,将支架上的四个孔与板上的四个孔对齐,用螺母和螺栓将两者固定在一起。接下来,将GT2滑轮安装在电机轴上,用更多的螺母和螺栓将2个端盖从底部连接到步进器固定板上。完成后,您可以将端盖滑到管道上。如果配合太合适而不是把端盖压到管道上,我建议打磨3D打印端盖的内表面,直到配合紧密。

步骤9:组装驱动系统(惰轮)

我使用的螺母和螺栓直径为4mm,尽管滑轮和轴承上的孔为6mm,这就是为什么我必须3D打印适配器,并将其推入滑轮和轴承的孔中,这样它们就不会在螺栓上摆动。如果你的螺母和螺栓尺寸合适,你不需要执行这一步。

将轴承安装到惰轮轴承箱中。如果配合过紧,请用砂纸轻轻打磨惰轮轴承座内壁。将螺栓穿过其中一个轴承,然后将皮带轮滑动到螺栓上,然后将另一端与第二个轴承和惰轮轴承座固定在一起。

完成后,将一对托辊支架固定在托辊支撑板上,并将端盖连接到板的底面,类似于上一步。最后,用这些端盖盖住两根PVC管的另一端。这样,你购物车的导轨就完成了。

步骤10:组装机架

下一步是建立一个购物车。用一个龙门板和四个螺母和螺栓将两个滚轮连接在一起。机架板有插槽,您可以调整板的位置进行微调。

接下来,在机架两侧安装两个皮带附件。确保从底部安装,否则皮带将不在同一水平面上。确保从底部穿过螺栓,否则,如果螺栓太长,皮带可能会被卡住。

最后,将钟摆支架安装到推车的前面。

步骤11:组装钟摆

钟摆是两件式的,只是为了节省材料。你可以把牙齿对齐,用强力胶把两部分粘在一起。将轴承孔垫圈再次推入两个轴承中,以补偿较小的螺栓直径,然后将轴承推入两个摆轴承座的轴承孔中。将两个3D打印零件夹在摆锤底端两侧,用三个穿过摆锤轴承座的螺母和螺栓固定在一起。将螺栓穿过两个轴承,用另一个螺母固定另一端。

接下来,抓住你的MPU6050,用安装螺丝把它安装在钟摆的另一端。

步骤12:安装摆锤和皮带

最后一步是在推车上安装钟摆。这是通过将之前穿过两个摆锤轴承的螺栓穿过安装在推车前部的摆锤支架上的孔,并在另一端用螺母将摆锤固定到推车上来实现的。/p】

最后,拿起你的GT2腰带,首先将一端固定在夹在推车上的腰带配件上。为此,我使用了一个整洁的3D可打印皮带夹,它被夹在皮带的末端,防止它从狭窄的插槽中滑出。你可以通过这个链接在Thingiverse上找到这个作品的标题。将皮带始终缠绕在步进滑轮和惰轮上,并将皮带的另一端固定在小车另一端的皮带连接器上。拉紧皮带,确保不要过紧或损失太多,这样你的钟摆和推车就完了!

步骤13:布线和电子设备

布线包括将MPU6050连接到Arduino和驱动系统的布线。根据上面的接线图连接每个组件。

MPU6050至Arduino:

GND到GND

5v至5v

SDA到A4

SCL到A5

D2国际机场

步进电机步进驱动器:

线圈1(a)至1A

线圈1(b)至1B

线圈2(a)至2A

线圈2(b)至2B

Arduino的步进驱动程序:

GND到GND

VDD至5v

步骤至D3

飞往D2的航班

VMOT至电源正极端子

GND至电源接地端子

步进驱动器上的睡眠和复位引脚需要连接到跳线。最后,最好在电源的正极和接地端并联一个约100 uF的电解电容。

第14步:控制系统(比例控制)

起初,我决定尝试一种基本的比例控制系统,即大车的速度只与摆和垂直方向所成的角度成正比。这只是一个测试,以确保所有组件都正常工作。虽然,这个基本的比例系统强大到足以平衡钟摆。钟摆甚至可以抵抗轻轻的推和推。虽然这个控制系统工作得很好,但是它仍然有一些问题。如果我们看一下某段时间内IMU读数的图表,可以明显注意到传感器读数的振荡。这意味着每当控制器试图校正时,它总是超过一定的量,这实际上是比例控制系统的本质。这个微小的误差可以通过实施考虑所有这些因素的不同类型的控制器来纠正。

比例控制系统的代码附后。代码需要一些附加库的支持,分别是MPU6050库、PID库和AccelStepper库。这些可以使用Arduino IDE的集成库管理器下载。去Sketch的管理库包括library就行了,然后搜索PID,MPU6050,AccelStepper就行了。

尽管如此,我建议你们所有人都是科学数学爱好者,并尝试从零开始构建这个控制器。这不仅能增强你对动力学和控制理论的概念,还能给你一个在现实生活中应用所学知识的机会。

第15步:控制系统(PID控制)

一般来说,在现实生活中,一旦控制系统被证明足够强大,能够适应其应用,工程师通常会使用更复杂的控制系统来完成项目,而不是把情况搞得太复杂。但是在我们的例子中,我们建造这个倒立摆,纯粹是为了教育的目的。所以可以尝试进入更复杂的控制系统,比如PID控制,可能比基本的比例控制系统鲁棒性更强。

虽然PID控制的实现要复杂得多,但一旦正确实现,找到完美的调节参数,钟摆显然会得到更好的平衡。在这一点上,它也可以对抗轻微的颠簸。IMU在给定时间内的读数(如上所述)也证明了读数永远不会离要求的设定值(即垂直)太远,这表明控制系统比基本的比例控制系统更有效和鲁棒。

第三,我建议所有科学和数学爱好者在使用下面的代码之前,尝试从头开始构建一个PID控制器。这可以视为一个挑战,人们永远不会知道有人可能会想出一个比迄今为止尝试过的任何东西都强大得多的控制系统。虽然Arttino已经可以使用强大的PID库,但它是由Brett Beauregard开发的,可以从Arduino IDE的库管理器安装。

注:每个控制系统及其结果将在第一步所附的文章中得到证明。

步骤16:进一步改进

其中一个我想尝试的是“摆起”功能,摆锤初始悬浮在大车下面,大车沿着轨道快速上下移动摆动将摆锤从悬浮位置翻转到倒立位置。但这对于目前的配置来说是不可行的,因为一根很长的电缆必须将惯性测量单元连接到Arduino,所以钟摆完成的完整一圈可能会导致电缆扭曲和阻碍。这个问题可以通过使用连接到摆锤枢轴的旋转编码器而不是最复杂的惯性测量单元来解决。使用编码器时,它的轴是唯一随钟摆转动的轴,机体保持静止,也就是说电缆不会扭曲。

我想尝试的第二个功能是平衡购物车上的双摆。该系统由两个依次相连的摆组成。虽然这个系统的动力学要复杂得多,但还需要更多的研究。

第17步:最终结果

这样的实验可以积极地改变班级的情绪。一般来说,大多数人更喜欢能够应用概念和想法来使它们具体化。否则这些想法还是“悬而未决”,更容易让人忘记。这只是把课堂上学到的一些概念运用到实际应用中的一个例子,虽然这肯定会激发学生的热情,最后尝试用自己的实验来检验理论,会让他们以后的课程更加生动,会让他们想知道更多,会让他们想出更新的实验。这种正向循环会一直持续下去,直到未来的教室里充满了这种有趣的、令人愉快的实验和项目。