武汉理工大学第十三届电子设计竞赛一等奖 队伍成员 肖灼华 高鹏飞 王彪 指导老师 张家亮
题目所涉及的电源电路主要为两部分,第一部分为升压电源,要求在输入12V的情况下输出15V电压;第二部分为降压电路,为单片机、测量系统等提供工作电压,输入电压仍为12V。
1.1.1 升压电源设计
方案一:采用LM2577为核心芯片
LM2577是单片集成电路,该芯片有三种不同的输出电压版本:12V,15V和可调。其优点为需要很少的外部元件,设计成本较低,并且使用简单。
并且LM2577具有较宽的电压输入范围,可达3.5V~40V,内置52kHz振荡器。并且芯片发热量小,在没有加散热器的情况下可以去到15W,加了散热器之后可以去到25W的输出功率。
方案二:采用LM5122为核心芯片
LM5122是一款由德州仪器(TI)推出的高效率及高功率密度的宽泛输入电压同步升压控制器。支持3 V至65V输入电压与高达100V 的输出电压范围。该控制器可便捷进行配置,支持交错式多相位工作,从而可充分满足多种高功率应用需求。
以上两种方案均可实现题目的要求,通过比较两款芯片的性能,我们发现LM5122的高效率及高功率特点较为突出,对题目有很大帮助。并且LM5122的宽输入、输出方便电路调试。因此选用LM5122作为升压电路的核心芯片。
1.1.2 降压电路设计
该部分电路要为单片机、测量系统等提供工作电压,因此设计降压输出5V和3.3V两种电压;并且题目要求系统静态电流小于 5mA,所以就对电路的芯片性能有了要求。
通过查阅资料,我们选取了BL1117和ME6206两款芯片。BL1117芯片具有较低的静态电流2mA,并且输出电压固定或者可调。ME6206芯片输出精度约为2%,、输出电压范围为1.5 ~ 5.0V,同时具有低功耗(8uA)、大输出电流(300mA)等特点。
因此本部分采用BL1117芯片实现将12V电压降至5V电压,同时使用ME6206芯片将5V电压降至3.3V电压。
方案一:L298N电机驱动
L298N电路简单,可实现电机正反转及调速的功能,启动性能好,启动转矩大,可同时控制两台直流电机。L298N工作电压可达36V,最大电流为4A。
方案二:MOS管电机驱动
MOS管开关特性好,由4个MOS管组成H桥电路控制电机,控制电路和电机电路相互独立,最大电流不受单片机电流限制,工作电压12-24V,额定电流为7A。
题目要求电机驱动工作电压12-24V,额定电流>5A,故选择方案二。
方案一:受限单极控制
该控制方式功耗低,只需要一个PWM波控制。但是在负载超过设定速度时不能提供反向力矩。调速静差大,调速性能很差,稳定性也不好
方案二:单极控制
该控制方式启动快,能加速,刹车,能耗制动,能量反馈,调速性能不如双极模式好,但是相差不多,电机特性比较好。能在负载超速时提供反向力矩,只需要产生一个PWM波。但是刹车时,速度不能减速到0,速度接近0时没有制动力。不能突然倒转。动态性能不好,调速静差大。
方案三:双极控制
该控制方式能正反转运行,启动快,调速精度高,动态性能好,调速静差小,调速范围大,能加速、减速、刹车、倒转,能在负载超过设定速度时,提供反向力矩,能克服电机轴的静态摩擦力,产生非常低的转速。但是需要两个互补PWM波控制,功率损耗大,电机容易发烫。
题目对电机控制精度要求很高,并且要求控制速度较低,故选用动态性能好、能产生低转速的方案三。
方案一:使用霍尔传感器
此方法利用霍尔效应将电流转换为霍尔电压,两者具有线性关系。通过ADC采样测量电压值,可推算出电流的值。此方法优点是原理简单,应用方法简单,反应灵敏,测量范围广。缺点是精度不高,存在较大的噪声,容易受到外部磁场的干扰。
方案二:使用电压放大器件
此方法利用采样电阻接入待测回路,得到电流在采样电阻上的分压,然后使用电压放大器把微小的电压放大至ADC可以精确采集的电压范围。测得的电压除以放大系数除以采样电阻值便可得到电流值。优点是反映灵敏,分辨率高,量程可大范围调整。缺点是可能会产生零点漂移,对采样电阻的精度,阻值随环境因素变化的程度要求高很高
本系统由STM32控制器、电源、电机驱动、编码电机、蓝牙、OLED显示屏六部分组成。电源变压模块将+12V电压转换为+5V电压给各模块和单片机供电,单片机产生的PWM脉冲波通过电机驱动给电机供电,编码电机编码器通过脉冲波将电机的位置反馈给单片机,单片机根据反馈的脉冲波计算电机的角度和转速,并显示在OLED显示屏上,通过蓝牙串口传输给上位机,并通过PID算法调整输出的PWM脉冲信号,达到控制电机的效果。
系统的结构框图如图1所示。
图1 总体系统的结构框图
本部分电路以LM5122芯片为核心进行搭建。LM5122是一款具有多相功能的同步升压控制器,主要用于高效同步升压调节器应用。该控制方法基于峰值电流模式控制。电流模式控制提供了固有的线路前馈,逐周期电流限制,并简化了环路补偿。开关频率可编程至1 MHz。两个坚固的N沟道MOSFET栅极驱动器具有自适应空载时间控制,可以实现更高的效率。
LM5122封装分为20引脚和24引脚两种,本设计中采用了20引脚的封装,其芯片引脚分布及功能如图2所示。
图2 LM5122引脚图(俯视图)
LM5122芯片的几个主要引脚介绍: 5号引脚为VCC稳压器的电源输入端。使用短、低阻抗路径连接到输入电容器和源电源连接。17号引脚为VCC偏置电源引脚,使用一个尽可能靠近控制器的低ESR/ESL电容器在本地去耦至PGND端。9号引脚(AGND)为模拟接地端,返回内部电压基准和模拟电路。
11号引脚(COMP)为内部误差放大器的输出。在该引脚和FB引脚之间连接环路补偿网络。10号引脚(FB)为反馈端,是内部误差放大器的反向输入。从输出到到引脚的电阻分压器设置输出电平电压。FB引脚上的阈值为1.2V。如果在初始上电时FB引脚电压高于2.7V,则控制器被分配为从机模式。
本设计中输入电压为12V。输出端设计为:芯片COMP引脚和FB引脚间连接了1个电阻和2个电容形成了环路补偿网络。同时FB引脚上的阈值为1.2V,从而通过电阻分压可调节输出电压大小。如图2,FB端通过一个6.8kΩ和可调电位器接地,同时又连接了两个串联电阻接输出端。
当电位器阻值为0Ω时,输出电压约为22V
当电位器阻值为10kΩ时,输出电压约为9.6V
因此通过电位器R15输出电压约为10V-22V可调,满足题目要求的15V输出电压。
LM5122升压电路原理图如图3。
图3 LM5122升压电路原理图
本部分电路设计主要分为两部分,第一部分以BL1117芯片为核心进行搭建,实现将12V电压转换为5V电压。第二部分以ME6206芯片为核心进行搭建,实现将5V电压转换为3.3V电压。
2.3.1 BL1117降压电路
BL1117是一系列低压差三端稳压器,在1A负载电流下的低压差为1.3V。相较于其他芯片,BL1117具有非常低的待机电流2mA。同时BL1117提供热关断和限流功能,确保芯片和电源系统的稳定性。它采用微调技术,保证输出电压精度在±2%以内。
本设计采用的BL1117型号是BL1117-50CX,其固定输出电压5V,输出电压精度在±2%以内,SOT-223封装。BL1117降压电路设计如图3所示,在输入、输出端均通过一个电容接地,用于电源滤波。
2.3.2 ME6206降压电路
ME6206是一种高精度、低功耗、高电压、正电压调节器,采用CMOS和激光微调技术制造。该系列提供大电流和极小的压降。该系列与低ESR陶瓷电容兼容。限流器的折返电路也作为输出限流器和输出引脚的短路保护。
本设计采用的ME6206型号是ME6206A33XG,其固定输出电压3.3V,源电流为8μA,SOT23封装。BL1117降压电路设计如图3所示,在输入、输出端均通过一个电容接地,用于电源滤波。
辅助电源电路原理图如图4所示。
图4 辅助电源电路原理图
电机驱动电路由隔离电路、电机电路、升压电路和滤波电路四部分组成。
2.4.1 隔离电路
74HC244是一款常见的驱动信号芯片,具有三态输出的八路缓冲器和线路驱动器,74HC244可用于隔离,防止电路板故障烧毁单片机和I/O口。
图5 隔离电路
2.4.2 电机电路
电机电路采用4个NMOS组成H桥开关电路,要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。通过半桥激励器IR2184S完成逻辑转换,使得对角线上的两三极管导通。H桥可以实现电机正反转,电机PWM调速,电机刹车等控制功能。
图6 电机部分原理图
2.4.3 升压电路
采用B0512S芯片,将5V电压升到12V,为IR2184S供电。
图7 升压电路原理图
2.4.4 滤波电路
滤波电路可以抑制电机电源噪声,同时抵抗电磁干扰。
图8 滤波电路原理图
电流检测电路主要依赖于ACS712芯片,ACS712利用霍尔效应将通过芯片的电流线性转化为霍尔电压输出。
图9 ACS71205B特性曲线
此图为ACS71205B的特性曲线。曲线的斜率为电流灵敏度。ACS712芯片的零电流基准点为VCC/2,通过测量输出端的电压值,利用电流灵敏度便可计算出输入电流的值。ACS712家族共有三种不同量程的芯片,分别是05B,20A和30A,,对应量程±5A,±20A,±30A,量程越高,电流灵敏度越低。考虑到本次设计电流输出范围不会超出±5A,所以采用05B型芯片,电流灵敏度为185mV/A。
图10 ACS712典型应用
该图ACS712数据手册给出的典型应用,CF用于设置ACS712的带宽,CBYP是给电源滤波。本次设计的电流检测电路就是基于此应用电路。Vout外接单片机的ADC,并且并联上一个大电容和一个3.3v稳压二极管,大电容的目的是尽可能的消除输出信号的高频噪声,稳压二极管是为了保护单片机的IO接口。
图11 软件系统程序框图
STM32F103C8T6作为本系统主控芯片,主要完成电机闭环控制、参数显示、上位机通信等功能。
(1)电机闭环控制:STM32通过定时器输出频率为6KHz的PWM脉冲波来控制电机,通过增量编码器输入来读取电机的状态,再通过PID算法更新PWM,实现闭环控制。
(2)参数及状态显示:参数显示界面中显示了电机转速,电机位置和当前PWM值。
(3)上位机通信:通过串口实现将电机状态发送给上位机,同时接收上位机对目标转速,目标角度和PID调节的指令。
3.2.1 PID控制部分代码
该部分采用增量式PID对速度进行控制,根据编码器反馈的速度值自动调节PWM实现对速度的反馈控制。代码如下:
图12 PID控制部分代码
3.2.2 运动控制及报警代码
运动控制通过对目标速度Speed_Aim进行修改,单片机通过PID自动对电机速度进行准确控制达到调速目的,当进入匀速阶段,多次检测得到匀速运动电流,加重物后单片机对电流进行实时监测,若达到报警条件则启动蜂鸣器报警。
上升代码如下图所示:
下降代码如下图所示:
电流反馈控制电机核心实现思路为电流PID,电机内部磁场和线圈匝数是不变的,当电机内部线圈电流一定时,将产生恒定的扭力。当扭力1和拉力二力平衡时,负载物体保持静止或者在阻力作用下减速至静止;当扭力2-拉力-阻力=Fa,负载物体将以Fa/m的加速度加速向上运动,当Fa=0,将保持原速;当扭力3+拉力-阻力=Fb,负载物体将以Fb/m的加速度加速向下运动,当Fb=0,将保持原速;
如果能找到这五种状态对应的电流值,结合电流PID使电流达到预设值,便可使负载物体匀加速、匀速、在阻力作用下减速至静止这三种运动状态。
代码如下:
电压测量部分采用STM32内部12位ADC测量输出电压值,检测分辨率为3300/4096mV。输入电流的计算公式: I=(ADC计数值-no_current_cnt)*3300mV/4096/185mV/A,单位为安培,其中no_current_cnt是电流为0时ADC的计数值。具体获取电流值代码请参见源码get_Current.c
速度、距离测量显示系统主要基于高精度AB相光电编码器,结合STM32的encoder模式可准确计算出电机转动圈数,得到准确转速
将定时器的重载值设为65535,一个计数周期便为65536。如上图所示,此段代码内嵌于100hz的定时器中断中,使用now记录当前计数值,使用before记录前一次的计数值,当now-before的值过大或过小时,判断这两次记录跨过了计数器的一个计数周期,此时可通过一个周期Counter记录电机跨过了多少个计数周期。
上图为距离的计算方法,其中Period_destance为一个计数周期电机转过的距离,是一个定值。Read_Encoder()返回计数器当前计数值。
上图为速度的计算方法,CNT_SPEED为0.01s内两次计数值的差值。
通过上位机的监测和远程调节PID功能,调节难度较大的KP、KI、KD三个参数。通过反复调试,实现了加速快、无过冲、无抖动、高精度的电机转速控制。调节过程部分截图如下:
图13 调试过程部分截图
经分析速度调节时间在0.3s以内,精度达到0.005m/s
4.2.1 静止-加速-匀速测试
控制电机实现静止-加速-匀速运动。实现了静止加速到100cm/s后保持100cm/s匀速运动,图中左侧两波形为不带负载波形,右边四个波形为带1KG负载的波形,紫色波形为路程(cm),绿色波形为速度(cm/s)
图14 静止-加速-匀速测试结果截图
结果分析:带负载时速度有较大波动
原因分析:
(1)负载在被拉动时有摇晃、抖动的现象,并非严格的垂直运动;
(2)电机在1KG负载时工作不稳定没有空载稳定;
(3)PID参数是在空载时调节的,不能很好地工作在带载情况。
4.2.2 加速0.3m测试
控制电机实现静止-加速-匀速运动,实现了0.3m/s加速,加速距离0.3m。图中紫色波形为路程(cm),绿色波形为速度(cm/s)
图15 加速0.3m测试结果截图
!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。
欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。
EEWorld Datasheet 技术支持