手把手教你:用STM32与PID算法,DIY一个磁悬浮装置

嵌入式ARM 2022-10-09 12:00

今天教大家做一个磁悬浮玩具,先上两张成品的效果图:

1、磁悬浮的基本原理

磁悬浮有下推式和上拉式两种基本形式。

所谓下推式,就是控制部分在底座上,悬浮的磁铁在上面,依靠底座从下往上的排斥磁力推动磁铁悬浮;而上拉式,是控制部分在上面,悬浮的磁铁在下面,依靠控制部分从上方的吸引力吸住磁铁不会落下去。

本文实现的是下推式,仅讲解推式磁悬浮的原理和实现方法。

如下图,是一个环形磁铁的磁力线:

如果在它上方放置另一个小磁铁,N极向下S极向上,那么它会受到下面的环形磁铁的斥力。越靠近下方的环形磁铁,斥力就越大。当距离合适时,斥力与上方磁铁的重力相等时,就能实现悬浮:

但是,仅仅依靠两个磁铁的相互作用是不能保持稳定的,因为两个磁铁的斥力只要与重力的方向不在同一直线上,就不能保持平衡,上方的小磁铁就会向旁边飞出去。

而下推式磁悬浮的实现方法,就是在上述的系统里,再增加一个控制上方小磁铁保持在中轴线位置的装置。这样,小磁铁即不能往旁边移动,垂直方向的重力又和磁铁斥力相抵消,就能实现稳定的悬浮了。

具体实现时,如果没有大环形磁铁,可以使用一圈小磁铁代替,效果是一样,如本文效果图里用的4个、8个都行,但是一定要排布在对称位置。

控制小磁铁位置的装置,一般由霍尔元件和电磁铁组成。用两个霍尔元器件来检测磁场,两个霍尔元件安装在环形磁铁的中心处,且互相垂直,检测面都与铅垂线平行。如果上方的小磁铁在中轴线上,那么系统的磁力线也是铅垂线方向的,两个霍尔元件都无输出;如果小磁铁偏离了中轴线,那么系统的磁力线方向会偏离铅垂线方向,霍尔元件就能检测出往某个方向偏移了。此时,由MCU采集霍尔元件的输出,控制电磁铁,产生一个水平方向相反的磁力,将小磁铁拉回中轴线上就行了。

由于该系统是一个动态平衡的系统,需要不断地采集、判断、调整,最好使用PID控制。

了解完原理,下面就一起实现吧!

2、硬件电路图及调试

由上述的原理讲解,我们的硬件只需要处理好两件事情就行了:一是采集两个相互垂直安装的霍尔元件的输出,以获取小磁铁的偏移位置;二是控制两组相互垂直的电磁铁,产生水平的磁力。

主要的原理图附在下面,完整的图纸可以关注文末的公众.号,找到下载地址。

霍尔元件及其信号放大部分,UGN3503是霍尔元器件,电位器提供一个初始的零位电压,霍尔的输出信号通过反向放大后,输出到STM32的AD口采集:

电磁铁驱动部分,使用L293D电机驱动芯片来驱动电磁铁,L293D由STM32输出的PWM波来驱动:

电源部分,驱动电磁铁用9~12V的电压比较合适,霍尔供电用5V:

因为我在DIY的时候STM32是外接的最小系统,所以原理图里没画STM32,只留了几个接点。

注意布局时,霍尔元件和电磁铁的放置位置,有特殊要求。最终的PCB图如下:

U3和U4是两个检测磁铁位置的霍尔元件,需要安装在环形磁铁中心附近,并且互相垂直;而且霍尔的平面要在相对角电磁铁的连线上。

如下图所示,注意两个霍尔U3和U4的位置:(U5也是个霍尔,本来是预留来检测是否有磁铁放在上面的,暂时没有用上)

LL1~LL4是四个电磁铁,LL1和LL2一组,LL3和LL4一组,安装时,同组的需要对角放置;而且要注意安装时同名端相连,通电后,同组的两个电磁铁磁力线能相互连接产生闭合磁力线(也就是一个上方为N极时同组另一个上方为S极)。这样才能保证同组的电磁铁产生的磁力在水平方向是相同的。

在电路图焊接完成后,与STM32F103C8T6最小系统相连,霍尔的输出AD1、AD2连接到STM32的PA0和PA1;PWM1~4依次连接到STM32的PA15、PB4、PB3、PB5。其他供电部分的连接就不说了。

安装好环形磁铁,上电后,在空载状态下调整U3、U4连接的电位器,使得AD1和AD2都在1.65V左右(也即AD采集时3.3V的中间值)。

到这里,硬件的设计工作就基本完成了。

3、软件编程实现

软件的实现也是大致分为两大功能:一是通过AD采集,获取磁铁再水平方向X、Y轴的位置;二是通过两个方向位置偏移的大小来计算驱动两个方向电磁铁的PWM输出值,这个计算过程使用了PID算法。

程序架构是:在主循环里不断地采集霍尔元件的电压,也就是AD1、AD2的值;在中断里计算PID控制算法,设置PWM的输出。

首先在cubemx里配置ADC,打开AD0、AD1和AD4(实际只用了AD0和AD1,AD4是预留的,采集了但是没有用于计算),分别配置到图中的rank1、rank2、rank3下:

定时器和PWM设置:

定时器分频设置为36,计数到1000时溢出;主频是72M,所以定时器中断是2KHz。

设置CH1和CH2两个通道PWM输出,模式1(先高电平,匹配后拉低,初始值可以设置为任意值,图中的初始值100和300对系统无影响):

设置完成后,PA15和PB3自动被占用为PWM输出引脚。

再手动设置PB4和PB5为输出引脚,这里设置PB4和PB5是为了配合PWM引脚来控制电机驱动芯片来使电磁铁改变正、反向。

使能定时器TIM2中断:

到这里,cubemx里的硬件主要配置就完成了。接下来可以生成keil工程,编写软件代码。

由于整个工程源代码比较长,这里只讲解最核心的部分。完整的代码可以关注文末的公 众号后,找到下载地址。

在keil工程里,adc部分,使用如下函数进行AD采集,采集了三个通道,即AD0、AD1、AD4:

然后进行滑动平均滤波,这里最终只保留了AD0和AD1两路,10bit的精度,存放到了xPos和yPos中,作为两个方向的位置值。

filter_adc()函数需要放在主循环中循环调用,不断更新位置值:

PID部分主要的实现代码如下:

注意,这里PID实现时对积分项的处理,当误差的累加值非常大时(也即积分项很大时)不会再累加误差项,而是限制到一个最大值MAX_INTEGRATION_ERROR,这是一种避免积分饱和的方法。

接下来,讲一下如何设置PWM输出值,以及怎么控制电磁铁磁场的正负向。

由于我们使用了L293D芯片来驱动电磁铁,以LL1和LL2这一路为例,当PWM2设置为低电平,则PWM1输出为高时就能驱动电磁铁;当PWM2设置为高电平,则PWM1输出为低时,电流与前述状态相反,就能反向驱动电磁铁。如下图所示:

同时,我们只需要改变PWM1的脉宽,就能实现电磁铁的磁场强度控制。

另一路LL3和LL4电磁铁也是一样的原理,可以通过PWM3控制磁场强度,通过PWM4来控制磁场方向。

这部分的实现代码如下,其中PWM1和PWM3的输出值(也就是代码中的xPWM和yPWM),是先通过调用PID计算函数得出值,再依据正负向设置到定时器的PWM输出的,整个函数放在定时器中断中调用。

最后提醒一下,PID的参数值,是需要调整的,这些值与磁铁大小、定时器的控制周期长短都是相关的,本文中的取值如下:

#define P_value    4

#define I_value     1

#define D_value    30

4、一些补充内容

在调试时,可以先拿住小磁铁从上往下移动,当感觉重力被磁力抵消时,再向水平的X、Y方向移动,如果感觉有水平的阻力,那么就成功了一大半了,后面只需要微调参数即可。要注意保护强磁铁,如果两个磁铁不加保护直接吸到一起很可能会被撞碎。

到这里,磁悬浮最基本的功能就做好了,但是还有很多可以优化的地方。

比如现在计算周期用的是2KHz,正好在人的听觉范围内,这在使用时,电磁铁可能会产生一些噪音,可以考虑把控制周期改到20KHz以上,但是要注意PID的参数需要调整。

再比如,多利用一个霍尔元件,可以增加检测载荷的功能,如果没有载荷,可以关闭PWM省电。

最后来一张全系统的照片:

END

来源:小白白学电子

版权归原作者所有,如有侵权,请联系删除。

推荐阅读
可怕!CPU暗藏了这些未公开的指令!
I2C接口通讯实现方式,你掌握了几种?
printf()是如何与UART外设驱动函数“勾搭”起来的?

→点关注,不迷路←
嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论 (0)
  • 文/Leon编辑/cc孙聪颖‍2025年1月至今,AI领域最出圈的除了DeepSeek,就是号称首个“通用AI Agent”(智能体)的Manus了,其邀请码一度被炒到8万元。很快,通用Agent就成为互联网大厂、AI独角兽们的新方向,迅速地“卷”了起来。国外市场,Open AI、Claude、微软等迅速推出Agent产品或构建平台,国内企业也在4月迅速跟进。4月,字节跳动、阿里巴巴、百度纷纷入局通用Agent市场,主打复杂的多任务、工作流功能,并对个人用户免费。腾讯则迅速更新腾讯元器的API接
    华尔街科技眼 2025-05-12 22:29 160浏览
  •   军事领域仿真推演系统的战略价值与发展前瞻   北京华盛恒辉仿真推演系统通过技术创新与应用拓展,已成为作战效能提升的核心支撑。以下从战略应用与未来趋势展开解析:   应用案例   目前,已有多个仿真推演系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润仿真推演系统。这些成功案例为仿真推演系统的推广和应用提供了有力支持。   一、核心战略应用   1. 作战理论创新引擎   依托低成本仿真平台,军事人员可高效验证新型作战概念。   2. 装备全周期优化   覆盖武器
    华盛恒辉l58ll334744 2025-05-14 16:41 53浏览
  • 在当下竞争激烈的 AI 赛道,企业高层的变动往往牵一发而动全身,零一万物近来就深陷这样的动荡漩涡。近日,零一万物联合创始人、技术副总裁戴宗宏离职创业的消息不胫而走。这位在大模型基础设施领域造诣颇深的专家,此前在华为云、阿里达摩院积累了深厚经验,在零一万物时更是带领团队短期内完成了千卡 GPU 集群等关键设施搭建,其离去无疑是重大损失。而这并非个例,自 2024 年下半年以来,李先刚、黄文灏、潘欣、曹大鹏等一众联创和早期核心成员纷纷出走。
    用户1742991715177 2025-05-13 21:24 122浏览
  • 在当下的商业版图中,胖东来宛如一颗璀璨的明星,散发着独特的光芒。它以卓越的服务、优质的商品以及独特的企业文化,赢得了消费者的广泛赞誉和业界的高度关注。然而,近期胖东来与自媒体博主之间的一场激烈对战,却如同一面镜子,映照出了这家企业在光环背后的真实与挣扎,也引发了我们对于商业本质、企业发展以及舆论生态的深入思考。​冲突爆发:舆论场中的硝烟弥漫​2025年4月,抖音玉石博主“柴怼怼”(粉丝约28万)突然发难,发布多条视频直指河南零售巨头胖东来。他言辞犀利,指控胖东来在玉石销售方面存在暴利行为,声称其
    疯人评 2025-05-14 13:49 37浏览
  •   电磁数据展示系统平台解析   北京华盛恒辉电磁数据展示系统平台是实现电磁数据高效展示、分析与管理的综合性软件体系,以下从核心功能、技术特性、应用场景及发展趋势展开解读:   应用案例   目前,已有多个电磁数据展示系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁数据展示系统。这些成功案例为电磁数据展示系统的推广和应用提供了有力支持。   一、核心功能模块   数据采集与预处理   智能分析处理   集成频谱分析、时频变换等信号处理算法,自动提取时域频域特征;
    华盛恒辉l58ll334744 2025-05-13 10:20 370浏览
  •   电磁数据管理系统深度解析   北京华盛恒辉电磁数据管理系统作为专业的数据处理平台,旨在提升电磁数据的处理效率、安全性与可靠性。以下从功能架构、核心特性、应用场景及技术实现展开分析:   应用案例   目前,已有多个电磁数据管理系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁数据管理系统。这些成功案例为电磁数据管理系统的推广和应用提供了有力支持。   一、核心功能模块   数据采集与接入:实时接收天线、频谱仪等设备数据,兼容多协议接口,确保数据采集的全面性与实时性
    华盛恒辉l58ll334744 2025-05-13 10:59 274浏览
  •   舰艇电磁兼容分析与整改系统平台解析   北京华盛恒辉舰艇电磁兼容分析与整改系统平台是保障海军装备作战效能的关键技术,旨在确保舰艇电子设备在复杂电磁环境中协同运行。本文从架构、技术、流程、价值及趋势五个维度展开解析。   应用案例   目前,已有多个舰艇电磁兼容分析与整改系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润舰艇电磁兼容分析与整改系统。这些成功案例为舰艇电磁兼容分析与整改系统的推广和应用提供了有力支持。   一、系统架构:模块化智能体系   电磁环境建模:基
    华盛恒辉l58ll334744 2025-05-14 11:22 66浏览
  •   军事仿真推演系统平台核心解析   北京华盛恒辉军事仿真推演系统平台以计算机仿真技术为基石,在功能、架构、应用及效能上展现显著优势,成为提升军事作战与决策能力的核心工具。   应用案例   目前,已有多个仿真推演系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润仿真推演系统。这些成功案例为仿真推演系统的推广和应用提供了有力支持。   一、全流程功能体系   精准推演控制:覆盖推演启动至结束全流程。   智能想定管理:集成作战信息配置、兵力部署功能。   数据模型整合
    华盛恒辉l58ll334744 2025-05-14 17:11 47浏览
  • 在全球能源结构转型加速推进与政策驱动的双重作用下,油气输送、智慧水务及化学化工等流体计量场景正面临效率革命与智能化升级的迫切需求。传统机械式流量计虽在工业初期有效支撑了基础计量需求,但其机械磨损、精度衰减与运维困难等固有缺陷已难以适应现代工业对精准化、智能化与可持续发展的多维诉求。在此背景下,超声波流量计则凭借着高精度探测、可实时监测、无侵入式安装、无阻流部件、易于维护与绿色环保等优势实现了突破性发展,成为当代高精度流体计量体系中不可或缺的重要一环。该技术不仅是撬动能源利用效率提升、支撑智慧管网
    华普微HOPERF 2025-05-14 11:49 31浏览
  • 感谢面包板论坛组织的本次测评活动,本次测评的对象是STM32WL Nucleo-64板 (NUCLEO-WL55JC) ,该测试板专为LoRa™应用原型构建,基于STM32WL系列sub-GHz无线微控制器。其性能、功耗及特性组合经过精心挑选,支持通过Arduino® Uno V3连接,并利用ST morpho接头扩展STM32WL Nucleo功能,便于访问多种专用屏蔽。STM32WL Nucleo-64板集成STLINK-V3E调试器与编程器,无需额外探测器。该板配备全面的STM
    无言的朝圣 2025-05-13 09:47 173浏览
  • 一、蓝牙射频电路设计的核心价值在智能穿戴、智能家居等物联网设备中,射频性能直接决定通信质量与用户体验。WT2605C等蓝牙语音芯片的射频电路设计,需在紧凑的PCB空间内实现低损耗信号传输与强抗干扰能力。射频走线每0.1dB的损耗优化可使通信距离提升3-5米,而阻抗失配可能导致30%以上的能效损失。二、射频走线设计规范1. 阻抗控制黄金法则50Ω标准阻抗实现:采用4层板时,顶层走线宽度0.3mm(FR4材质,介电常数4.3)双面板需通过SI9000软件计算,典型线宽1.2mm(1.6mm板厚)阻抗
    广州唯创电子 2025-05-13 09:00 22浏览
  • 一、量子自旋态光学操控1、‌拓扑量子态探测‌磁光克尔效应通过检测拓扑磁结构(如磁斯格明子)的磁光响应,实现对量子材料中非平庸拓扑自旋序的非侵入式表征。例如,二维量子磁体中的“拓扑克尔效应”可通过偏振光旋转角变化揭示斯格明子阵列的动态演化,为拓扑量子比特的稳定性评估提供关键手段。2、‌量子态调控界面‌非厄米磁光耦合系统(如法布里-珀罗腔)通过耗散调控增强克尔灵敏度,可用于奇异点附近的量子自旋态高精度操控,为超导量子比特与光子系统的耦合提供新思路。二、光子量子计算架构优化1、‌光子内存计算器件‌基于
    锦正茂科技 2025-05-13 09:57 28浏览
我要评论
0
7
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦