前言
接下来几篇文章里我将介绍并开源近期完成的STM32下推式磁悬浮装置。这个项目做的时间不长(主要是在等PCB),但是坑非常多。而且网上关于STM32磁悬浮的资料基本都是演示视频。接下来我将从悬浮原理、原理图、PID算法等方面分析。该项目基于STM32,部分内容其他单片机可能不适用。
以下是本篇文章正文内容
一、悬浮原理
1842年,数学家塞缪尔·恩绍提出了“恩绍定理”:单一稳定磁场无法维持一个稳定力学结构。该定理的意思是单纯依靠两块极性相同的磁铁是无法维持磁铁悬浮的。目前的磁悬浮控制分两种,一种是使用模拟电路进行控制,一种是使用单片机进行控制。悬浮的形式也分两种,一种是上拉式,一种是下推式。本文是基于STM32下推式磁悬浮。
控制的目的就是让两块极性相反的磁铁可以维持稳定,让浮子能够稳定在一个微弱的平衡点上。所以首先需要为浮子提供一个平衡点,也就是在浮子下方需要放置一个磁铁。这个磁铁必须是一个大磁体,产生的磁力要能支撑浮子。当浮子与磁铁极性相同时,浮子就能被托起来。这时浮子与磁铁之间就存在平衡点了,不过这个平衡点太微妙了,不存在抗干扰能力。这时就可以采用电磁线圈来调节浮子的位置。因为大磁铁提供了Z轴的作用力,所以电磁线圈只需要把浮子稳定在二维平面。采用直角坐标系,两个线圈控制X+和X-,另外两个线圈控制Y+和Y-。当浮子往左偏时,左边线圈产生排斥力,右边线圈产生吸引力,这时浮子就能回到平衡点了,其他方向同理。
单片机怎么知道浮子偏移呢?这时就需要使用霍尔传感器,霍尔元件能测量磁场并输出模拟电压,浮子偏移时磁场改变,通过霍尔元件变化量就能知道浮子的偏移方向了。浮子为什么会突然往其他方向偏移?原因是提供浮力的大磁铁,中间产生的是浮力,四周产生的是吸引力。
二、元件清单
这套装置的成本挺高的,下面的元件清单仅供参考。
1.环形磁铁
环形磁铁为浮子提供悬浮所需要的浮力,推荐使用铁氧体。我购买的是100×60×15的铁氧体(直径100mm,内环直径60mm,高15mm),直径选100mm,主要是因为嘉立创打板便宜点,节约成本。
除了用这种环形大磁铁外,还可以用钕铁硼磁铁来搭建,原理跟这个环形磁铁一样。选好了大磁铁后,接下来的元件都是根据大磁铁的尺寸来选购。
2.浮子
浮子一定要买圆形的,圆形磁铁的受力更加均匀。根据环形大磁铁的内环直径是60mm,所以浮子直径最好不要超过60mm。浮子的材质很关键,最好是使用钕铁硼磁铁。钕铁硼磁铁浮力较大,我购买的是D30×3mm(直径30mm,高度3mm)和D20×3mm钕铁硼。也就是说我这个浮子是组装出来的,上面一个D30下面三个D20,中间还塞了一个一元硬币(用于配重)。
钕铁硼磁铁很脆,如果跟大磁铁碰撞大概率会碎掉,所以在表面要贴上海绵或其他缓冲材料。
3.电磁线圈
电磁线圈我买的是直径19mm×高度15mm。如果打算把线圈放到环形大磁铁内环里,那么直径就不要买太大的,19mm是比较合适的。我买的线圈质量较差,只能控制悬浮高度为1-2cm的浮子。线圈也可以自己绕制,线圈骨架最好是塑料的。我买的线圈里面是铁芯,对磁场有一定的干扰。
4.电机驱动
电磁线圈是需要较大的电流控制的,不能直接连单片机(单片机会直接烧掉)所以要外加电机驱动控制,电机驱动普遍使用L298N和TB6612。我使用的是TB6612,体积小,控制效果与L298N差不多。
关于TB6612的使用可以参考这篇文章TB6612与电机编码器
5.直流电源
电磁线圈需要较大的功率控制,我购买的是12V 2A电源适配器,足够驱动线圈和控制浮子。最大功率达到24W,实际上浮子稳定控制后功耗是非常低的,电流只有30-50ma。虽然平衡点很微妙,但是只需要很小的牵引力就能让浮子稳定到平衡点附近。
6.线性霍尔元件
霍尔元件一定要买线性的,线性霍尔才能输出磁场模拟电压值。我使用的是AH3503线性霍尔,AH3503没有内置集成运放,需要外加放大电路把输出电压放大。还有另一种AH49E线性霍尔,49E是自带集成运放的,一开始我用的也是49E,但是噪声太大了容易受到线圈磁场干扰。线性霍尔的摆放位置很关键,这点会在后面文章介绍。
7.其他元件
1-6是主要元件,剩下的就是单片机和辅助元件。如果用没有集成运放的霍尔元件,需要购买集成运放,LM358或LM324这些通用运放就行了,当然还需要电阻。单片机我用的是STM32C8T6最小系统板,用C8T6控制绰绰有余,小体积也方便我后边的集成,也可以用开发板,前期调试我就是用的开发板。我还外加了一个0.96寸的OLED,显示屏装杯必备。HC-05蓝牙模块,用于上位机调试和蓝牙遥控。ESP8266 WiFi模块,用于物联网开发。
结语
今天是2021.7.1,百年华诞当然要写篇文章庆祝下。
那么以上就是本篇文章的所有内容了。
本文如果有什么不对的或者需要改进的地方欢迎指出。