第一步:问题

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

第二步:解决方案

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

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

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

摆锤和垂线之间的角度

摆的角速度

摆的角加速度

线性加速购物车

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

第三步:控制理论

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

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

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

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

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

步骤4:在教室中实施该项目

年龄组:该计划主要面向高中生或本科生,但也可以通过概述概念作为演示呈现给幼儿。

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

所需时间:收集所有零件后,组装将需要10至15分钟。创建控制模型需要更多时间。为此,学生可以获得2到3天的假期。一旦每个学生(或一组学生)开发了自己的控制模型,另一天可以用于个人或团队演示。

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

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

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

第五步:零件和消耗品

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

电子产品:

一个Arduino兼容板,什么都可以工作。如果你不我对电子产品没有太多经验,我建议使用Uno,因为它更容易理解。

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

一个步进电机驱动器,这个又可以工作,不过我推荐一个4988的步进电机驱动器,因为简单来说就是跟随。

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

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

硬件:

1X轴承,我用滑板轴承,效果很好

2个GT2滑轮和皮带

1.5寸PVC管约2.4m

4毫米螺母和螺栓束

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

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

第六步:3D打印零件

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

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

x龙门辊

x端盖

1个步行支架

x惰轮轴承座

1个钟摆框架

x皮带附件

1个摆锤轴承座(a)

1个回转轴承座(b)

1个滑轮孔垫圈

x轴承孔垫圈

1个龙门板

1个步进支架板

1惰轮皮带轮支架板

1个摆锤(a)

1摆(b)

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

步骤7:组装龙门辊。

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

第八步:组装驱动系统(步进电机)

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

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

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

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

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

步骤10:组装机架

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

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

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

第十一步:组装钟摆。

钟摆是两件式的,只是为了节省材料。你可以通过对齐牙齿和强力胶将这两部分粘在一起。将轴承孔垫圈再次推入两个轴承中,以补偿较小的螺栓直径,然后将轴承推入两个摆轴承座的轴承孔中。将两个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的集成库管理器下载。只需去包括库管理库的草图,然后只需搜索PID,MPU6050,AccelStepper。

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

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

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

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

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

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

步骤16:进一步改进

我想尝试的事情之一是秋千功能,摆锤初始悬挂在大车下方,大车沿轨道快速上下移动,将摆锤从悬挂位置上下摆动至倒立位置。然而,这对于当前的配置是不可行的,因为长电缆必须将惯性测量单元连接到Arduino,所以钟摆所做的圆化可能会导致电缆扭曲和阻塞。这个问题可以通过使用连接到摆锤枢轴的旋转编码器而不是最复杂的惯性测量单元来解决。使用编码器时,它的轴是唯一随钟摆转动的轴,而身体保持静止,这意味着电缆不会扭曲。

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

第17步:最终结果

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