如图1.1所示,下推式磁悬浮需要三自由度的控制,两组四个线圈提供X轴方向和Y轴方向的矫正力,Z轴方向的推力。当磁性浮子重力和线圈提供的Z轴方向推理大小相等方向相反时,系统平衡,磁性浮子悬浮。正力提供磁性浮子位置的纠正。磁性浮子下方有霍尔传感器,用来检测浮子的位置,反馈给控制器,实现闭环控制。
图1.1 下推式磁悬浮系统结构图
系统框图如下图1.2所示。
图1.2 下推式数字磁悬浮系统框图
该磁悬浮系统是由磁铁浮子,载重磁铁,浮力线圈,线圈驱动,电源模块,微控制器,线性霍尔传感器,电压控制电路组成。其中载重磁铁的作用是承受磁铁浮子的大部分重力,而浮力线圈是提供矫正力的,用于调整浮子的状态和系统的稳定性的元件。
整个系统工作原理是,依靠悬浮底座的霍尔传感器收集的磁场变化,控制底座的线圈电流的大小和方向,以此来稳定悬浮转子的在X、Y轴的悬浮居中状态。
本设计的磁悬浮系统为了进一步降低功耗,提高系统的高效性和稳定性,在系统中加入了载重磁铁,让载重磁铁提供主要的Z轴方向的浮力,不用线圈提供Z轴方向的浮力,线圈产生的浮力只起到矫正力的作用。这样会有效降低线圈中的电流的大小,减轻线圈的负载,磁性浮子从而降低整个系统的功耗。
2.1运用PID算法控制系统
磁悬浮系统是一个闭环控制系统,数字磁悬浮系统采用的控制算法有很多,最常用的是PID算法,PID控制器原理简单,容易实现,可以在被控对象的数学模型不够精确的条件下,通过调整比例、积分和微分实现对被控对象的控制,PID控制算法需要设计者理解系统状态的物理意义,需要对经典频域控制理论有深刻的认识,并且其参数的设置需要设计者有足够的经验,但是其实用性高,扩展性好的特点,使得PID控制成为了工业应用领域使用率最高的算法。
理想PID的传递函数为:
PID算法在磁悬浮当中实际上只用单环PD控制就足以让浮子稳定,所以实际微分的传递函数为:
式中,KD为微分增益。
2.2磁悬浮系统的工作原理分析
如图2.1所示,线圈1,3是一组线圈,但是绕制的方向相反,假设线圈1顺时针绕制,则线圈3逆时针绕制,线圈1和线圈3提供相反的纠正力。增强在Y轴方向上的矫正效果,当浮子向Y轴的正方向偏移时,线圈1就会提供拉力,线圈3提供推力,一推一拉就能更快将浮子矫正到平衡位置了。线圈2,4同理。而平衡位置是由霍尔传感器检测的磁场强度决定的,当浮子在平衡位置时,读取霍尔传感器的电压值作为目标设定值。
图2.1 下推式数字磁悬浮系统俯视结构
因为本系统需要三个自由度的控制和检测,所以需要三个霍尔传感器,每个轴上都放置一个霍尔传感器,即X轴霍尔传感器(检测浮子在X轴上的偏移),Y轴霍尔传感器(检测浮子在Y轴上的偏移),Z轴霍尔传感器(检测浮子在Z轴上是否放置)。当浮子偏离了目标位置,可以将偏移分解为三个轴上的单独位移分量,利用霍尔检测磁场反馈的电压值,控制器进行调控,通过线圈提供的矫正力,使得浮子回到目标位置,通过闭环控制,如此反复,实现浮子的稳定悬浮,如下图2.2所示。
图2.2下推式磁悬浮系统闭环控制图
3.1硬件器件选择
3.1.1主控芯片的选择
本次设计的磁悬浮灯主要实现的功能是磁性浮子的稳定悬浮,而控制器的选择主要针对磁悬浮系统。磁悬浮系统对控制的实时性要求比较高,所以需要考虑控制器的主频,内部资源,还要兼顾价格。8位51系列单片机最高主频48MHZ,自带AD的51内核控制器价格也和意法半导体公司生产的STM32F4系列低配版的控制器差不多了。而且STM32F4系列主频都在72MHZ,超频可以达到168MHZ,内部资源也比51丰富很多,便于后期功能的升级和拓展。
通过以上分析,本系统选择STM32F407VGT6作为控制芯片STM32F407VGT6 是ST公司推出的基于Cortex-M3内核构架的芯片。
系统示意图如图3.1所示,本系统主要包含JTAG电路、晶振电路、复位电路、电源滤波电路、电源电路。
图3.1 STM32F407VGT6最小系统原理图
3.1.2 线性霍尔传感器的选择
为了检测磁性浮子的偏移位置,需要用霍尔传感器检测浮子的磁场强度,霍尔类型要选择线性霍尔。本设计选择的是AH3503系列霍尔,其内部结构如图3.2
图3.2 霍尔内部结构
所示,该线性霍尔传感器内部由电压调整器,霍尔电压发生器,线性放大器和射极跟随器等组成,其输入的是磁感应强度,输出的是和输入量成正比的电压信号。
3.1.3 运算放大器的选择
由于霍尔传感器输出的电压范围是2.4V-2.6V之间,而STM32的AD采样电压范围是0V-3.3V,所以需要对霍尔输出的电压进行线性调整才能输入到控制器的AD采样端口,这里采用运算放大器组成的减法放大电路,实现2.4V-2.6V到0V-3.0V的调整。
因为需要三轴磁场检测,所以需要三个线性霍尔,即需要三个运算放大器。所以选择了芯片LM358,其引脚示意如图3.3所示,内部集成了两个运算放大器,使用两个即可。
图3.3 LM358引脚图
3.2 系统硬件框图
整个硬件系统是由一块STM32F407VGT6微控制器控制,每个模块的电路在下面会有详细的介绍,这里给出的是整个系统的控制框图。
图3.4 系统控制结构图
如图3.4所示,霍尔传感器测得的电压值,经过霍尔放大电路的处理,得到了磁性浮子距离线圈的距离。通过检测霍尔放大电路传入的电压信号大小,控制L298N驱动部分,通过L298N驱动线圈,带动磁性浮子运动,使其在目标位置保持平衡,稳定悬浮。
3.3 硬件电路设计
3.2.1 JTAG电路
JTAG电路用于对芯片内部测试,将软件编译器与单片机系统连接起来。电路如图3.5所示。
图3.5 JTAG接口
3.3.2 晶振电路
晶振电路可以为系统提供精确的时钟源,使用8M晶振,在经过内部的PLL锁相环后可以倍频 到168M,可以供芯片各模块使用,如图3.6所示。
图3.6 晶振电路
3.3.3 硬件复位电路
硬件复位电路可以使系统的里面的各个寄存器、I/O口恢复到初始状态,本系统则采用按键来进行复位。如图3.7所示。
图 3.7 复位电路
3.3.4 驱动电路连接
a - L298N模块接口说明
图3.8 L298N模块接口图
L298N模块,是一款接受高电压的电机驱动器,直流电机和步进电机都可以驱动。一片驱动模块可同时控制两个直流减速电机做不同动作,在6V到46V的电压范围内,提供2A的电流,并且具有过热自断和反馈检测功能。L298N可对电机进行直接控制,通过主控芯片的I/O输入对其控制电平进行设定,就可为电机进行正转反转驱动,操作简单、稳定性好。
通过单片机的I/O口来控制两个马达的输出,电机驱动模块接的马达的话是控制马达的转速快慢,实验中由STM32个I/O口来控制X轴、Y轴两对电磁铁对转子的拉扯力度大小。
b - 电磁铁同轴串连
图3.9 线圈
如图3.9所示,线圈是按照一端由内圈引出,另一端则是外圈引出的方法绕起来。
线圈同名端相接,电磁铁外圈预留的排针接口,用于L298N电机模块来驱动每个电磁铁。
c - 综合接线
电磁铁同轴内圈相连,外圈同轴接驱动板同侧(即X轴的两线圈外圈接驱动模块马达A输出的两个口out1,out2, Y轴的两线圈外圈接驱动模块的两个口out3,out4)线圈与L298N的连线如图3.10所示。
图3.10 L298N与线圈的连接
3.3.5 霍尔放大电路的设计
霍尔传感器输出的电压信号的调整电路如图3.11所示,因为霍尔传感器输出的电压范围是2.4V-2.6V,而STM32的AD输入电压的范围是0V-3.3V,显然霍尔传感器输出的电压上下限太小,不利于作为控制量,所以需要对传感器输出的电压信号进行调整,将2.4V-2.6V调整为0V-3.0V后就可以传给控制器了。通过运算放大器实现减法器电路,对传感器电压进行减法运算,降低输出电压的值。运放的反相端通过电阻分压得到一个2.6V的基准电压,运放同相端输入的传感器电压与反相端的电压做减法运算,使同相端传感器输入的电压整体下降1V,再通过反向放大器,最后分压,从而实现霍尔传感器输出电压的调整。这里使用的是LM358双运放,因为本设计中需要使用三个霍尔传感器,所以需要两个LM358运算放大器。
图3.11 霍尔放大电路
3.3.6 浮子的选择
在测试的时候,使用的是2cm和2.5cm的磁铁,发现无法稳定下来,后来发现由于线圈距离较宽,而且线圈提供的磁力较小,在磁场中心位置的时候,线圈对浮子的作用力很小,但是浮力磁铁对浮子的斥力很大,很容易将浮子推开。浮子重量也要要求,如果浮子太轻,浮子高度就很高,线圈对其控制能力非常弱。如果浮子太重,浮子高度就很低,很容易被线圈中心的铁芯吸住。浮子最好是直径3-4cm尺寸和2-2.5cm尺寸的磁铁叠加,底部用小尺寸磁铁,上面用大尺寸磁铁,系统稳定效果最好,也有专用的磁悬浮浮子。浮子使用钕铁硼材质的效果好,浮子重量的选择和浮子尺寸有一定的关系,需要多次试验。如图3.12所示。
图3.12 浮子示意图
3.3.4 系统供电电源电路原理图设计
电源部分:本系统直接取直流电12V,经过LM2596降压转换器转为5V,再通过LP2992转为3.3v供控制系统使用,电容起到滤波的作用。小电容滤出高频纹波,大电容滤出低频纹波。如图3.14所示。
图3.13 系统供电原理图
四、系统软件设计
4.1 软件设计思路
整个磁悬浮系统是一个闭环控制系统,所以对响应速度有很高的要求,响应的快慢影响着系统控制的稳定性。为此采用了STM32F407VGT6 作为主控,软件设计语言使用了C语言,C语言相比汇编而言,具有很好的可读性和移植性,方便调试和维护。
为了方便介绍系统软件的设计思路,这里采用了模块化的介绍去展示设计思路。整个系统需要软件控制的地方有:磁悬浮的反馈平衡调节,AD采集处理,栈数据传输。
4.2 软件模块化设计
4.2.1 主程序设计
整个主程序设计思路,程序采用FreeRTOS系统,主程序里面执行初始化操作,创建了vTaskReadHall、vTaskControl两个任务。vTaskReadHall任务处理ADC采集到的数据;vTaskControl任务通过vTaskReadHall任务处理的数据,运用PID
图4.1 主程序流程图
算法,来控制线圈电流的大小和方向。任务间的数据通过消息队列传递。整个控制周期为10ms,即数据的解析,命令的执行,AD转换值的读取,PID算法的执行,以及PWM输出等控制。严格限制每次执行的时间,保证PID算法采样时间的稳定一致性,有利于提高控制的效果,发挥算法的最好的控制效果。
4.2.2 AD转换程序设计
STM32F407VGT6有2个12位 ADC,每个ADC有18路采样通道,可以测量16个外部模拟信号,2个内部模拟信号。每个通道的ADC可以单次、连续、间断执行。ADC的转换速率为21MHZ,Tcovn=采样时间+12个周期,即转换时间4.54us,采样电压的范围0V-3.3V。如图4.2所示。
图4.2 AD 转换流程图
4.2.3 PID 算法程序设计
运用PID算法,通过程序预先设定一个目标初值,再与实际情况所采集到的信号作比较,得到一个偏差信号,通过调整比例、积分和微分系数,来调制电路信号的波形,通过PWM的占空比来改变电流的大小来达到实现对系统的控制。
5.1测试仪器
表5.1 测试仪器清单
序号 | 类型 | 型号 |
| 序号 | 类型 | 型号 |
1 | 数字万用表 | DT2025 | 4 | 函数信号发生器 | ||
2 | 5V直流电源 | 5 | ||||
3 | 数字示波器 |
| 6 |
|
|
5.2实物调试
5.2.1硬件调试
硬件调试中主要需要注意和去解决的三个问题。
- 霍尔传感器和环形磁铁的安装位置距离等因素是否会对调试结果造成影响
硬件问题主要是霍尔传感器和环形磁铁的安装位置距离等因素。霍尔传感器除了检测面位置跟所检测的磁场线垂直外,还要注意一下传感器焊接的高度,传感器检测面高度尽量保持在电磁铁高度的中心,且靠近磁场中心,这样可以提高磁场检测的效率。
- 传感器和线圈都安装好后,就需要调试一下硬件是否可行
首先检测的是X轴和Y轴上的两组线圈的连接是否正确,首先给X轴线圈通入单向的电流,用磁铁分别靠近两组线圈,两组线圈在同向电流下,产生的磁场方向相反,符合要求。
3.环形磁铁的磁力大小和位置安装问题
环形磁铁磁力太强,使得磁性浮子与四组线圈的距离就增大了,距离远了后,线圈对磁性浮子的作用力就小了,起不到控制浮子位置的作用。解决的办法就是增高线圈的高度,使得线圈与浮子之间的距离减少,直到线圈可以控制浮子为止。
图5.1 线圈位置安装示意图一 图5.2 线圈位置安装示意图二
图5.3 结构安装完成图 图5.4 硬件测试示意图
5.2.2 软件调试
下推式磁悬浮软件调试:由于需要对X轴和Y轴方向的两组线圈进行PID参数整定,在整定之前,首先需要设定目标位置,包括X轴方向的目标位置和Y轴方向的目标位置。设置好后,就可以进行PID参数整定了。需要整定一组PID,调节复杂一些。这里使用的是PID算法,加入积分控制,使得系统整体更加稳定。需X,Y轴单独调式,用Keil软件进行在线调试,如图5.5所示。调整X轴PID参数,先给合适的P值,使线圈的磁力能控制浮子不飞出两线圈之间,再增加D值,使浮子能在X轴上稳定。同理调整Y轴的PID参数,使浮子能稳定的悬浮。效果如图5.5所示。
图5.5 PID在线调试图
图5.6 下推式悬浮效果图
通过本次的设计,我们接触到了磁悬浮这块领域的知识,认识到自动控制技术在生活生产中的重要意义。整个过程付出了很多,也学习了很多,最后的效果虽然不是很完美,但也基本实现了当初想要实现的功能。
作品链接:https://live.csdn.net/v/243486
PCB图: