直流电机闭环控制系统设计
刘旭辉简震张远方 丁志娟
(上海应用技术大学机械工程学院)
摘 要 基于PID 控制原理,通过STM32单片机定时器输出比较功能输出脉冲信号对直流电机进行了闭
环控制实验。编写了 LabVIEW 上位机软件,通过在LabVIEW 中调用动态链接库库函数PCOMM.dl  1的方式,
实现上位机与STM32之间的串口通信,并以波形图表的形式实时显示电机编码器的反馈信息。根据反馈 信息,利用上位机进行实时PID 参数整定,得到最佳PID 参数。实验结果表明:该闭环系统具有良好的稳定
性和调速性能。
关键词 LabVIEW  STM32 PID  直流电机 串口通信
中图分类号 TH865 文献标识码 A
文章编号 1000-3932(2020)05-0375-05
LabVIEW 以简单易用的图形开发环境、强大 的底层硬件驱动和较好的图形显示能力在工业 控制、数据采集、图像处理及机器视觉等领域应
用颇为广泛口2。随着电磁技术的不断发展,交流 电机因结构简单、运行可靠及维护方便等优势得
到了广泛的应用。然而在一些大功率冶金行业、
新能源汽车行业和大型家电行业里,直流电机以
其良好的启停性能和无极调速性能仍具有无可
替代的作用,并且从闭环反馈控制角度分析,直 流电机控制是交流电机控制的基础,因此直流电
机仍有一定的理论意义和广阔的应用前景⑶。笔
者基于STM32和LabVIEW 搭建了直流电机闭环控
制实验测试平台,依据脉宽调制(PWM )调速原理
和PID 控制理论,对直流电机进行闭环控制实验%
1系统设计方案
笔者设计的闭环控制系统可分为硬件部分
和软件部分%硬件部分包括STM32控制器、直流电
机、驱动器和编码器%软件部分包括LabVIEW 上
位机软件和基于HAL 库编写的STM32控制程序% STM32控制器采用STM32F407IG6驱动芯片,该芯
片采用Cortex -CM4内核处理器%直流电机采用 25GA370大功率碳金刷直流减速电机,减速比为
1 "30,内置11线光电编码器%电机驱动器采用
L298N 驱动芯片,内置双H 桥驱动电路%上位机软
件通过串口与STM32进行通信,传递指令码给 STM32控制器,控制器根据通信协议对指令码进
行解析后输出相应占空比的PWM 脉冲信号给驱 动器,驱动器根据脉冲信号控制H 桥桥臂的开断 状态,进而控制直流电机的转速与方向%STM32控
制器通过编码器接口获取电机转速,并通过波形
图表显示模块对电机转速进行实时显示%该控制 系统的结构如图1所示%
图1 控制系统结构
2硬件环境设计
2.1电机驱动电路
驱动器是控制器与电机之间的桥梁,本系统
采用STM32控制器的GPIO  口的输出电压是3.3V ,
而25GA370直流电机的额定电压是12V ,不能用
基金项目:国家自然科学基金项目(51675345);上海市自然科学基金项目(16ZR1435800) %作者简介:刘旭辉(1978-),教授,从事智能材料及振动控制的研究%
通讯作者:简震(1993-),硕士研究生,从事机械设计及理论的研究,*****************
%
控制器直接驱动电机,因此选用L298N 芯片驱动
电机丄298N 芯片内含双H 桥全桥式电机驱动电
路,每个H 桥由4个大功率三极管构成,为确保H
桥电路不会同侧导通,在原H 桥电路基础上增加4
个与门和2个非门逻辑电路,可确保H 桥单侧只有
一个三极管导通,起到保护芯片的作用。通过 STM32控制器高级定时器输出互补PWM 脉冲,控 制桥臂交替导通和截止,实现电机正反转控制, 通过调整PWM 脉冲的占空比控制驱动器输出电 压实现电机调速⑷。此外,利用4个光耦隔离器将
STM32控制器与驱动电路进行隔离,确保电路安
全可靠。电机驱动电路如图2所示。
LED1
IN1-IN4
1
乡LE
+肌
1
2
TLP521-3
L298N
PWMB  +5V
IS  ENA GND  ISENB IN4 OUT1
OUT2ENA  OUT3ENB  OUT4100|jiF]104
0.1 ixF
I
TLP521#
n
图2
电机驱动电路
2.2电机转速采集电路
为实现对电机的闭环控制,系统需要对电机
的转速进行采集。25GA370直流电机上集成了一
个编码器测速装置,由2个霍尔传感器和铁氧体 磁环组成,2个霍尔传感器成90。安装,即编码器A
相和3相。电机转子转动时带动铁氧体磁环旋转, 当磁环的一个磁极靠近霍尔传感器时输出低电
平信号,磁环的另一个磁极靠近即上个磁极远离 时输出高电平信号⑸。通过定时器输入捕获功能
计算捕获的高电平或低电平的次数,从而得到电
机的旋转圈数。笔者采用的编码器分辨率为11
线,即电机转子旋转一圈编码器可产生11个脉冲
信号,考虑到电机减速比为1:30,实际输出轴旋转 一圈编码器可产生330个脉冲信号。通常编码器
测速有两种方法%%T 法和M 法,T 法即计算一定 脉冲数量所用的时间,+法即计算一定时间内的
脉冲数量⑹,笔者采用M 法测速。YS -F4Pro 控制板 上集成了专用的编码器接口 ,最多可同时双相采
集两路编码器脉冲信号,其电路如图3所示。
3软件设计3.1 PID 算法
笔者采用离散型增量式PID 算法实现对直流
ENCODER/ENCODER^ENCODER2-ENCODER^
汽车测速器
图3 编码器接口电路
电机的闭环控制,表达式如下:
5
+$+〒)'"-i +$p 亍e k-2
式中e k ——第"次采样偏差;
"----采样序号;
—微分系数;—
积分系数;*
=——比例系数;
%—采样周期;
—第k 次采样输出控制量的增量
o
系统的PID算法通过Keil软件采用C语言编程实现。STM32通过对编码器脉冲信号进行计数得到电机的实际转速,然后将当前电机转速传给PID控制函数,得到控制量增量用以调节占空比输出相应的PWM脉冲信号给驱动器,从而实现对直流电机转速的PID控制,控制流程如图4所示。
图4增量式PID控制算法流程
!(")---------目标转速;#(")-----------电机实际转速
3.2上位机软件的编写
为实现上位机与下位机之间的通信,笔者基于LabVIEW编写了上位机软件,主要包括串口通信模块、数据发送模块和图形显示模块。
3.2.1串口通信模块
VISA函数是LabVIEW中常用的串口通信模块,VISA函数编程简单,但生成安装文件时,需额外安装约250MB的函数驱动程序,导致程序运行较慢,数据传输时可能造成丢失。笔者采用动态链接库库函数PCOMM.dll来实现串口通信功能o通过PCOMM.dll库函数可直接调用PC机底层的WINAPI开发接口,与VISA相比运行速度提高近两倍⑺o图5为PCOMM.dll库函数串口通信程序。
图5PCOMM.dll库函数串口通信程序
3.2.2数据发送模块发送和电机启停。采用字符串形式通过串口向下
数据发送模块包括PID参数整定、目标位置位机发送相关指令数据,指令码格式见表1。
表1LabVIEW串口通信指令码格式
帧头功能码参数1…参数12校验码结束符
0xAA0x01〜0xFF0x01〜0xFF前13个字节的校验和0x2F
以PID参数整定为例对该模块进行说明。常见PID参数整定法有理论计算法、试凑法、临界比例法及衰减曲线法等,这些方法均需多次调整才能得到合适的PID参数,较为耗时⑻。为此设计PID 参数整定模块。PID参数设置的指令码为+AA07 P(XX XX XX XX)I(XX XX XX XX)D(XX XX XX XX)CS2F”,其中AA为帧头,07为功能码,P# I、D为32位整型(以4个D位整型XX表示),CS
为校
验码,2F为结束符(“/”),共16字节,均以十六进制“07”则截取PID参数字符串来修改STM32程序的表示&STM32收到数据后对功能码进行判断,若为PID参数,达到参数整定的目的&程序如图6所示&
图6PID参数发送程序
3.2.3图形显示模块
为实现对电机运转状态的实时监测,设计了图形显示模块(图7)。为简化运算,控制器SysTick 定时器中断回调函数每隔0.1s通过串口向上位机以指令码形式发送一次电机转速信息&上位机接收到指令码,先对指令码帧头、帧尾、校验和进行验证,然后以条件结构判断功能码,最后通过索引字符串功能截取转速信息并以波形图表显示。
图7图形显示模块程序
4实验测试
完成上述硬件设计和软件编写之后,搭建了
直流电机闭环控制实验测试平台(图8),主要包
括YS-F4Pro控制板、驱动器、直流电机、编码器和
LabVIEW上位机软件。
经过多次PID参数的实时整定,得出!二5.5、/二1.5、#二0时,系统具有良好的动态性能,在此基础
直流电机(内置编码器)图8
直流电机闭环控制实验测试平台
上进行直流电机的闭环控制实验!验证该闭环系 统的稳定性和响应速度。如图9所示,设定目标转
速为150r/s ,在28.5s 时启动电机,实际转速约在
30s 处与目标曲线重合,整个调整时间约为1.5s ,没
有出现较大超调量。为了验证该闭环系统的稳定
性,在65s 处给电机输出轴施加反向负载,电机在
149〜152r/s 范围内出现抖动现象,与目标转速差
值在2r/s 之内,属于允许误差范围。为进一步
验证系统的响应速度,在112s 处,将目标转速调整 为50r/s,实际转速约在113s 处与目标转速曲线重
合,调整时间约为1s ,电机响应十分迅速。由此可
见PID 参数是合理的,该闭环系统具有良好的稳
定性和调速性能。
图9目标转速与实际转速关系曲线
5结束语
介绍了基于STM32和LabVIEW 的直流电机闭 环控制系统的设计过程,并基于PID 理论搭建了
直流电机闭环控制实验测试平台。实验表明,在
该系统下直流电机具有良好的稳定性和调速性
能。此外,通过上位机软件波形图表显示功能进 行PID 参数实时整定,与传统参数整定方法相比
更加直观和快捷,这种全新的参数整定模式,在 工程上具有一定的应用价值和借鉴意义。
参考文献
#1$何俊,邓成军-基于LabVIEW 的直流伺服电机控制系
统开发[J  $•实验科学与技术,2020,18(1):39〜46.
#2$刘智瑞,徐建国•基于LabVIEW 的电机控制系统设计
[J $•变频器世界,2019,(6): 107-110.
#3$王海星•基于LabVIEW 和STM32的直流电机闭环调速
系统设计#J $.化工自动化及仪表,2019,46 (4):310〜 312,315.
#4$王玉香,张喜红.基于LabVIEW 和Proteus 的直流电机
控制实验仿真系统设计#J $.喀什大学学报,2019,40 (6):38-41.
#5$张应和.基于LabVIEW 直流电机转速测控系统的设
计#J  $•电子设计工程,2019,27(12):66〜70.
#6$李明轩•基于LabVIEW 的电机转速控制系统的研究
#J $•电脑编程技巧与维护,2017,(11):31〜32.
#7$田云.在LabVIEW 中利用动态链接库实现串口通信
#J  $•日用电器,2015,(8):139〜141.
#8$王苏•直流电机PWM 调速研究及单片机控制实现
#J  $•机电工程技术,2008,(11):82〜84,95,110.
(收稿日期:2020-04-14,修回日期:2020-08-13)
Design  of  Closed-loop  Control  System  for  DC  Motors
LIU  Xu -hui ,JIAN  Zhen ,ZHANG  Yuan -fang ,DING  Zhi -juan
(College  of  Mechanical  Engine  e  r ing , Shanghai  Institute  of  Technology )
Abstract  Based  on  the  principle  of  PID  control  and  through  making  use  of  STM32's  timer  output  compar ­
ison  function , the  closed -loop  control  experiment  on  the  DC  motor  was  carried  out , including  writing  Lab ­
VIEW  host  computer  software  and  realizing  the  serial  port  communication  between  host  computer  and
STM32 by  calling  the  dynamic  link  library  function  PCOMM.dll  in  LabVIEW  as  well  as  displaying  the  feed ­
back  information  of  the  DC  motor  encoder  at  real  time  in  the  form  of  waveform  chart. According  to  the  feed ­back  information  ,the  upper  computer  can  be  used  to  adjust  and  obtain  the  best  PID  parameters. The  exper ­
imental  results  showed  that , the  closed -loop  system  designed  has  good  stability  and  speed  regulation  perfor ­
mance.
Key  words  LabVIEW , STM32, PID , DC  motor , serial  port
communication