APP下载

基于STM32的无刷直流电动机控制器设计

2021-10-26王劲桑凌峰

机械工程师 2021年10期
关键词:电动机动机驱动

王劲,桑凌峰

(宁波职业技术学院机电工程学院,浙江宁波 315800)

0 引言

服务机器人的电动机多为直流电动机,直流电动机分为无刷直流电动机控制和有刷直流电动机控制,其中有刷直流电动机的控制现在已经比较成熟[5-6],且有刷电动机存在机械换向问题,因此寿命较短;无刷电动机采用电子换向的方式,具有响应快、效率高、噪声小等优点,因此已经在服务机器人行业广泛应用[7-11]。

在采用多电动机进行驱动时,往往需要进行多电动机的协调控制,实现电动机的主动控制、被动控制及跟随控制,因此在进行电动机控制器设计时,不仅需要考虑位置控制、速度控制,还需要电流控制[12-14]。基于此,本文采用STM32芯片设计了一款控制器,该控制器可以实现位置控制、速度控制及电流控制,并能实时实现这3种模式的切换。

1 无刷直流电动机控制工作原理

1.1 无刷直流电动机数学模型

无刷直流电动机单相定子绕组的电压平衡方程可以通过下式进行表述:

通过上述状态方程,可以把无刷电动机等效为图1所示电路。

图1 无刷电动机等效电路

因此可以得到无刷直流电动机的电磁转矩为

由于无刷直流电动机在每次通电时,仅有两相绕组可以得电,因此可以得到

通过无刷电动机的数学推导可以看出,我们可以通过控制无刷电动机通电绕组的电流及通电绕组两端的电压来控制无刷电动机的速度和力矩。

1.2 无刷直流电动机控制器的工作原理

图2为无刷直流电动机的控制框图。采用意法半导体公司生产的STM32F103RBT6作为主处理芯片。硬件电路主要包含电源电路、驱动电路、逆变电路、电流检测电路、霍尔传感及光电编码器。其中电源电路用于处理电动机供电、芯片供电及运算放大器等的供电;驱动电路用于驱动逆变电路换向;电流检测电路用来检测通过三相绕组的电流,间接获得此时电动机的力矩;逆变电路根据驱动电路的指令导通相应的MOS管,实现电动机对应绕组通电;霍尔传感用于检测电动机转子当前所处的位置;光电编码器用于实现对当前电动机位置的反馈。

上面说到的一些原材料中,质量控制主要是体现在含泥量方面,按照已有的标准惯例来看,在砂石的含泥量中不得大于3%,而碎石的含泥量也不能超过2%,假若是不小心超过了这个已有的标准,那将会对整个建筑工程的质量带来尤为严重的危害。并且除了上文说的要保证碎石、砂石等原材料的含泥量外,也需要做好对于骨料的质量控制,骨料看重的是他的含水量,这个因素将直接影响着混凝土的强度,在选择骨料的时候应该选择热膨胀系数比较小,且含泥量相对较低的骨料。在材料的质量控制中,要对混凝土进行严格把控,这也是整个建筑材料的质量核心,混凝土质量与规格的达标是对整个建筑材料的保证,更是有利于提升建筑工程整体的施工质量和建设水平。

图2 无刷电动机控制框图

2 硬件设计

2.1 电源硬件设计

本系统采用多电源供电,如图3所示。24 V主要用电动机供电,13 V用于功率驱动模块供电,5 V用于霍尔和编码器供电,3.3 V用于单片机供电。

图3 电源电路设计

2.2 STM32最小系统设计

STM32最小系统包括工作模式选择(如图4)、复位电路、滤波电路和晶振电路(如图5)。工作模式选择为上电即从用户程序开始执行;复位采用上电自复位电路来实现。

图4 单片机工作模式选择

图5 滤波和晶振电路

2.3 功率驱动模块设计

图6为单相绕组的功率驱动模块设计。采用IR2103STRPBF芯片进行驱动,依靠D4 二极管和C12的电容构成自举电路。当HIN和LIN同时为高电平时,HO输出高电平使Q1导通,当HIN和LIN同时为低电平时,LO输出高电平使Q2导通。通过图6所示的3个单相功率驱动模块电路可以实现对6个MOS管不同时刻的导通,进而实现电动机旋转。

图6 功率驱动模块设计

2.4 电流检测设计

由于单片机的检测电压在0~3.3 V之间,对于较小的电压或较大电压其检测的灵敏度较弱,因此我们将检测电压设计在1.6~2.2 V之间;控制器最高可以承受的工作电流为30 A,以封装、功率满足情况下选择较大阻值为原则进行设计,可得采样电压变化如下:

式中:Imax=30 A;Ps=3 W。

将数据代入式(8)可以得到采样电阻为Rs≈0.003 Ω。进而可以得到采样电压的变化范围为0~90 mV。由于将电压直接升至1.6~2.2 V较为困难,先将电压抬高至1.65 V(如图7),之后在此基础上再将原有的采样电压放大5倍,可以得到最终的采样电压变化范围为1.65~2.10 V。图8为采样电阻电压放大电路。

图7 采样电阻电压拉升电路

图8 采样电阻电压放大电路

3 软件设计

图9为无刷电动机驱动控制的软件控制框图。分别于1、10、50 ms周期处对电流、速度和位置进行检测。在进行电流控制时,采用位置式PID进行运算;在进行速度控制时采用增量式PID进行计算;在进行位置控制时采用位置式PID进行计算。

图9 无刷驱动控制软件框图

4 控制算法

在每一个控制周期,3种控制模式独立运行,计算结果作为PWM的操作变量进行输出。

4.1 位置控制

4.2 速度控制

速度控制的操作变量Prv可以通过下式进行表示:

4.3 电流控制

对于电流控制,分3种情况来讨论:1)实际测得电流比目标电流大,根据电动机转动受到的阻力不同又分为3种情况。a.有阻力但不足以卡死电动机;b.阻力刚好卡死电动机;c.阻力大于电动机产生的转矩,造成反转。2)实际测得电流比目标电流小,电动机转动方向和电流控制方向相同且带动电动机旋转。3)实际测得电流和目标电流相同,阻力很小。可以采用下面公式进行描述:

5 实验研究

基于前述的硬件电路设计和软件程序设计,开发无刷电动机控制器,如图10所示。利用该控制器对单个电动机的位置控制、速度控制及电流控制分别进行实验。

使用Processing软件进行了调试界面编程;整个调试界面如图11所示,可以使用该调试界面进行位置控制、速度控制和电流控制。

图11 电动机调试界面

整个测试系统如图12所示。在此系统下对电动机的控制模式进行测试,首先是位置模式,测试结果如图13(a)所示。电动机每转1圈可以产生的pulse数为24,预设的电动机运动位置pulse数为6000,电动机运行到5 s位置时到达此位置;电动机总共运转了250圈。电动机运行到恒定速度约为3750 r/min,通过计算得到,在5 s内可以运动到达该位置,因此可以看出运动曲线正确。同时反复进行运动测试,结果发现,其误差均小于±0.1%。

图12 电动机控制测试系统

设定电动机的控制速度为6000 r/min, 通过电动机调试界面反馈数据并将其保存,我们可以得到运行结果为图13(b);观察曲线可以看出,在大约8.4 s时上升到该速度;指定速度和实际速度之间的误差小于±1%。

设定电动机的控制电流为0.4 A,在电动机运行开始的时候,增加外力,可以看出电动机电流升至1 A左右,当时间在1.7 s时,电动机电流又被控制拉回到原来的电流位置,保持在0.4 A左右,运行结果如图13(c)所示。

图13 3种控制测试曲线

6 结语

1)通过无刷电动机理论分析和控制算法设计,完成了无刷电动机控制器的硬件电路和软件框架,通过测试可以看出,控制器可以实现位置控制、速度控制和电流控制,并能实时实现3种控制方式的任意切换;其中位置控制和速度控制误差分别小于±0.1%和±1%,能够很好地满足控制要求。

2)本文中虽然实现了电流控制,但是电流控制的精度及控制时间需要在后续的研究中进一步提高。

猜你喜欢

电动机动机驱动
Zimbabwean students chase their dreams by learning Chinese
基于模糊PI控制的驱动防滑仿真系统分析
二语动机自我系统对动机调控策略及动机行为的影响研究
浅析电动机日常维护与保养
永磁同步电动机的节能计算
动机比能力重要
屈宏斌:未来五年,双轮驱动,砥砺前行
轨旁ATC系统门控柜接收/驱动板改造
基于S3C6410的Wi-Fi驱动移植实现
基于KB0的电动机软启动控制系统