桑 勇,李锋涛,代月帮,段富海,王亚杰(大连理工大学机械工程学院,辽宁大连 116024)
面向伺服电机的STM32单片机控制系统设计**国家自然科学基金项目(编号:51275068);航空科学基金项目(编号:20130863);中央高校基本科研业务费(编号:DUT15LK21)
桑勇,李锋涛,代月帮,段富海,王亚杰
(大连理工大学机械工程学院,辽宁大连116024)
摘要:介绍了一种基于STM32F103ZET6单片机的交流伺服电机位置、速度和转矩控制方案,完成了控制系统软硬件设计、电机调试参数设置和伺服电机控制结构图等方面的工作。人机接口(HMI)采用LabVIEW图形化编程语言设计,交互性强,界面友好。与传统的单片机控制方案相比,该控制系统具有经济性好,处理速度快,实时性好,集成度高和抗干扰性强等优点,能较好地实现交流伺服电机的精确位置定位及匀速运转控制。
关键词:STM32;交流伺服电机;位置控制;速度控制;转矩控制
伺服电机是一种在伺服系统中控制机械设备运转的控制电机,用来实现位置、速度、加速度和转矩等的精确控制。伺服电机可分为直流伺服电机和交流伺服电机两大类,而由于交流伺服电机具有体积小,惯量低,速度高,响应快,转矩大,无电刷和换向器,散热好等优点,已经广泛应用于自动控制系统和自动检测系统中[1]。德国柏林工业大学电子研究所的Dietrich H.Naunin和Hans-Christian Reuss教授[2]提出的数字伺服驱动控制系统促进了伺服驱动器技术向高速动态响应和高集成度的方向发展。微电子、集成电路技术、大功率高性能半导体器件和控制理论与技术的飞速发展,又使得PLC和单片机等微控制器技术在数字伺服系统中得以广泛运用。单片机因其经济性好,可靠性高,处理能力强,低压低功耗,系统结构简单,易于实现模块化,使用方便等优点,从而广泛用于对伺服电机控制器的控制,伺服驱动器接收单片机发出的脉冲指令和模拟信号等指令,进而控制伺服电机的运转状态以满足不同场合的需要[3]。伺服电机用作执行元件,可把所收到的电信号转换成电动机轴上的角位移或角速度输出[4],因此可较方便的运用具有逻辑控制能力的单片机或PLC等实现对伺服电机的控制。目前用单片机控制伺服电机的方案有很多,如华中科技大学蔡志祥,沈阳航空工业学院孙克梅等人提出的基于AT89C51单片机的伺服电机控制方案[5-6],南京邮电大学黄之然以及长春理工大学李红伟等人的基于STC12C5A60S2单片机的伺服控制方案[7-8],还有燕山大学张立丽等人提出的PIC18F452单片机的控制方案[9]。以上普通单片机虽能实现相关控制要求,但其内部集成模块少,外围扩展电路复杂,控制成本高,处理速度慢,抗干扰能力弱,而PLC成本又相对较高。针对上述问题,提出采用意法半导体公司推出的ARM Cortex-M3为内核的32位微控制器STM32F103ZET6及其内置高速高性能外设实现对交流伺服电机的控制。STM32系列单片机实际上是一种高级单片机,集成度高,经济性好,处理速度快,功耗低,使用方便,抗干扰能力强等特点,可实现伺服电机的准确平稳控制。
本系统选用台湾士林交流伺服电机,采用意法半导体公司推出的STM32F103ZET6为主控芯片,实现对伺服电机控制器的连接控制。伺服电机内部结构由定子、转子、编码器和外壳等组成。定子上的U/V/W三相电在伺服驱动器的控制下产生旋转的电磁场,转子是一个永磁体,在旋转磁场作用下,转子和磁场同步旋转。同时电机尾部的编码器反馈信号给伺服驱动器,驱动器对目标值和反馈值进行比较,产生偏差信号进而快速调控电机的运转。本文提出的基于STM32的伺服电机控制体系结构框图如图1所示。
通过STM32F103ZET6单片机控制伺服驱动器实现对伺服电机的控制,由独立键盘解码可实现对伺服电机的启动和停止。伺服电机的控制方式从外到内分别为位置控制,速度控制和转矩控制。位置控制方面,由STM32F103ZET6单片机输出两路脉冲信号,然后送入伺服驱动器控制电机,由伺服电机里的编码器产生的反馈信号送入伺服驱动器,根据反馈值和目标值的比较,调整伺服电机转动的角度,实现伺服驱动器对伺服电机的闭环控制。位置控制精度取决于光电编码器每转产生的脉冲数控制,即伺服电机的精度是由编码器的线数决定。速度控制方面,士林伺服电机有两种速度输入命令模式:一种是类比输入,另一种是暂存器输入,本系统采用类比输入模式,外部单片机发出速度指令信号,经DA转换后形成模拟量电压信号实现对伺服电机的转速的控制,10 V时电机速度最大,0 V时候最小,由速度环编码器的反馈实现闭环控制。转矩控制方面,经单片机发出转矩控制指令经DA转换后送入伺服驱动器CN1接线端,伺服驱动器依靠内部电流环实现闭环控制。编码器分为绝对式光电编码器和增量式光电编码器,本系统采用的是2 500 ppr (10 000解析度)的增量式光电编码器。一般来说,增量式光电编码器输出A、B两相互差90°的脉冲信号(即所谓的两组正交输出信号),从而可方便地判断出旋转方向。同时还有用作参考零位的Z相标志(指示)脉冲信号,码盘每旋转一周,只发出一个标志信号。具有原理简单,寿命长,分辨率高,抗干扰性强,可靠性高等优点。
图1 控制系统体系结构框图
伺服系统一般采用电流环,速度环和位置环的三环控制结构,因为这样可以获得较好的动态跟踪性能和抗负载干扰能力,其中电流环是矢量控制的核心,用来抑制电流扰动,保证系统的稳定性;速度环和位置环用来抑制速度波动,实现系统准确定位。伺服电机矢量控制系统结构[10]如图2所示。
电流环是伺服系统的最内环,决定着系统响应速度和环内抗干扰能力。电流环的组成包括伺服电机电机绕组、逆变器、矢量控制器、电流控制器及电流检测等环节,其目标在于使得伺服电机绕组中的电流信号准确迅速地跟随电流指令。对电流环的控制过程分析,电流环控制结构如图3所示。
图2 伺服电机矢量控制系统结构图
图3 电流环的控制结构图
其中Ki和Ti分别为电流环的比例增益和电流环积分时间常数,Kpwmd和Tpwmd分别为逆变器放大系数和逆变器时间常数,Lα和Rα分别是电机绕组电感和电阻,Kii为电流检测反馈增益。
速度环建立在电流环之上,三环控制结构中的次内环,其作用是保证电机实际转速和速度设定一致,尽可能消除负载对电机转速的干扰。速度环由电机转子、电流闭环、速度控制器和速度反馈模块等环节组成,是实现动态跟踪的重要环节,速度环控制结构如图4所示。
其中Ks和Ts分别是速度控制器比例增益和速度控制器积分时间常数,Js和Bs分别为电机转子及负载折合到电机轴上的总转动惯量和负载折合摩擦系数,Kλ=KpwmdKiRαTi,Kt为转矩常数,Kss为速度检测反馈增益。
图4 速度环的控制结构图
位置环是三环控制中的最外环,是整个伺服系统稳定、高精度运行的重要环节。通过设定的目标位置与来自编码器反馈的实际位置相比较,产生偏差后通过位置调节器产生速度指令。在位置伺服中一般避免出现超调和振荡,位置环通常避免采用积分控制器。另外为改善伺服系统位置环的动态响应,可以增加复合前馈比例调节器作为位置控制器,这样位置环校正成为典型的I型系统[11]。位置环控制结构如图5所示。
图5中Gff(s)是前馈环节的传递函数,Kp是位置环比例增益,Kλ和Tλ分别是速度环闭环等效比例增益和速度环闭环等效惯性时间常数,Kpp是位置检测反馈增益。
位置环作为伺服控制系统的最外环,相比内部的电流环和速度环来说有相对长的控制周期,因此位置控制器除了可以于伺服驱动单元中构建,还可以通过上位控制器来实现,用具有更强数据处理能力的上位控制器如STM32、DSP等实现更加先进复杂优等的控制算法和路径规划。由上述分别建立起了三环串级控制结构图,进而可分析其数学模型,为顺利完成伺服控制系统参数自整定奠定了基础。
图5 位置环的控制结构图
3.1单片机引脚电平转换电路设计
控制系统的核心部件选用STM32系列的STM32F103ZET6微控制器,主频可达72 MHz,片上集成64 kB的SRAM,512 kB的FLASH,2个基本定时器,4个通用定时器,2个高级定时器,3个SPI,2个I2C,5个串口,1个USB,1个CAN,3个12位的ADC,1个12位的DAC,1个SDIO接口,1个FSMC接口以及112个通用I/O口引脚。此芯片引脚电平为3.3 V而伺服电机信号电平为5 V,所以控制过程中需要加上信号电平转换电路。图6为所设计的双向电平转换电路图,该电路设计思路简单,实用方便,仅需3个电阻外加一个MOS管可以实现3.3 V和5 V之间的双向电平转换。
图6 3.3 V和5 V电平转换电路
S1端接STM32F103ZET6芯片的GPIO管脚(3.3 V电平信号),另一端S2接5 V电平信号,通过S2端接口实现对伺服电机驱动器的连接控制。STM32F103ZET6单片机的PD0和PD15引脚输出两路脉冲序列控制电机转速和转向。通过独立键盘启动键P1(PC0)和停止键P2(PC1)实现对伺服电机的启动和停止。
3.2JATG接口电路设计
JATG接口主要实现向STM32芯片烧写程序,并可在线仿真调试,进而可以更加方便快捷的完成电机控制算法的调试。其接口电路如图7所示。
3.3串口通信电路设计
通信接口是现代设备系统的重要外部接口,同时也是软件开发重要的调试手段,实现微控制器STM32与PC机之间的数据传输和信息处理。本系统采用RS232串口模块实现与上位机PC之间的串口通信。电脑的COM口是标准RS-232接口,它的高电平定义为-12 V,而低电平定义为+12 V,故单片机的串口必须经过电平转换才可以和标准RS-232通信,微控制器引脚电平是3.3 V的,3.3 V的转换芯片一般是MAX3232或SP3232,而MAX3232价格相对较高,故选用SP3232电平转换芯片。RS232串口电路如图8所示。
图7 JTAG接口电路
图8 RS232串口电路
3.4伺服驱动器硬件连接
伺服电机选用的是台湾士林的SMA-L040R30A型交流伺服电机,额定输出功率为400 W,内置10 000解析度的增量式光电编码器。伺服驱动器选用的是与伺服电机配套的SDB系列的交流伺服驱动器SDB-040A2。位置控制模式下,伺服驱动器接收单片机发出的位置信号指令,输入的脉冲串经过电子齿轮分倍频后,在偏压计数器中与光电编码器反馈回来的脉冲数比较进而形成偏差信号。位置偏差信号经位置反馈控制器调解后形成速度指令信号。速度指令信号与速度反馈信号比较后,形成偏差指令信号,经速度环比例积分器调解后,产生电流指令信号,在电流环中经矢量变换,从SPWM中输出转矩电流,控制电机运转[7]。至此完成了从最外环的位置控制到最内环的转矩控制整个过程。
图9 位置控制模式下电路连接图
如图9所示,位置控制模式下,驱动器指令输入方式选择以差动脉冲指令输入,驱动器I/O连接器CN1上的引脚CN1-31/16作为外部位置控制信号的输入端,可以接收单片机微控制器经差动驱动器发送过来的脉冲控制指令。7/8COM+数位电源都接外部直流电源的24 V正极;9/24/SG为数位电源地,3DI1数位输入1,21/DI7为数位输入7,22/DI8为数位输入8,23/EMG为外部紧急停止,32/PP及17/NP都接24 V的负极;单片机输出的两路脉冲信号分别接31/PG和16/NG输入脉冲波列。这样就部分完成位置控制模式下的基本连线。
如图9所示,速度控制方面,士林伺服电机速度命令输入有两种方式,本系统选择外界类比速度指令输入,即经由外界电压来操控电机的转速。伺服电机转速的大小和所输入的模拟量信号有关,所输入的模拟量信号是-10 V~+10 V之间,10 V即为电机转速的100%,0 V为电机转速的0%,电机的内部速度选择可由SP1和SP2的高低电平信号组合决定,正反转可由正转启动ST1和逆转启动ST2的高低电平信号组合及模拟电压的正负共同决定。速度处理的平滑处理方面可由速度的加/减速时间常数STA/STB和S型加减速时间常数STC来改善。
转矩控制模式与速度控制模式类似,也属外部类比信号输入。转矩控制常用在需要扭力控制的场合,比如绕线机、印刷机和射出成型机等。转矩模式是由外部类比电压±10 V作为转矩命令,经AD转换后,以参数下达类比命令转矩最大输出和转矩限制漂移量等命令,即可实现预期的转矩和速度。若参数PC13设定为100则电压输入为10 V时,其转矩为最大转矩的100%;输入电压为5 V时,则转矩为最大转矩的50%。至于转矩命令漂移量和滤波常数分别由PC27和PC19来设定。
3.5伺服驱动器相关参数的设置
士林的驱动器根据安全性和使用频度的考虑下,SDB-040A2伺服驱动器的参数可区分为基本参数、增益、滤波参数、扩展参数和输入输出设定参数,在出厂状态下用户可以修改基本参数,不能修改扩展参数。如有必要调整参数读写权限时,可以修改参数PA42的设定值,以便更改扩展参数的值。本伺服系统以位置控制方式为例,通过对参数的设置和调整,用户既可改变伺服系统的功能和性质,同时又可观察伺服电机的运行状态。为保证系统按既定方式运行,需设置参数如下:
PA01:设为“0000”,即控制模式选择位置控制模式,指令由外部信号控制;
PA02:设为“0002h”,即设置自动调谐模式1;
PA03:设为“0005h”,即自动调谐应答性响应设置为中应答性;
PA06:设为“1”,即设置电子齿轮比分子为1;当需要其他齿轮比分子时可通过参数PC32,PC33,PC34来设置;
PA07:设为“1”,即设置电子齿轮比分母为1;
PA13:设为“0020”,即设置正反转脉冲串,正逻辑,AB相脉冲波列,最高脉冲频率为200 kpps;
PB04:设为“3”,即设置位置命令滤波时间常数,可使得电机遇到较大的位置命令时运转的更加平顺。
其他参数暂时为缺省设置。
3.6系统软件设计
针对STM32的这类高级单片机,ST公司推出了官方固件库,固件库把MCU中的寄存器的底层操作都封装起来,提供了一整套接口(API)供开发者调用,这样大大缩短了开发周期。本系统基于RVMDK开发平台,充分利用标准外设固件库,较方便的进行了软件的设计,其中包括ADC初始化,系统时钟初始化,串口初始化等环节。主程序流程图如图10所示。
图10 主程序流程图
本控制系统上位机(PC端)主要完成管理、显示等工作,下位机(单片机)主要完成控制等功能,他们之间的通信由RS232串口实现,以下附上串口通讯部分程序代码如下:
void uart_init(u32 bound)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockC⁃md(RCC_APB2Periph_USART1
|RCC_APB2Periph_GPIOA,ENABLE);
USART_DeInit(USART1);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // PA.9
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_AF_PP;
......
USART_InitStructure.USART_Mode= USART_Mode_Rx
|USART_Mode_Tx;//收发模式
USART_Init(USART1,&USART_InitStruc⁃ture); //初
始化串口
USART_ITConfig(USART1,USART_IT_RXNE,
ENABLE); //开启中断
USART_Cmd(USART1,ENABLE); //使能串口}
LabVIEW是一种编程简单,调试容易,库函数丰富的图形化编程语言,也称G语言。采用LabVIEW软件开发平台可方便的进行电机控制上位机人机交互界面的设计,交互性强,界面良好,开发周期短,可实现交流伺服电机的启动和停止,电机位置和速度的控制,数据的显示、存储和恢复等功能。图11所示为设计的LabVIEW人机交互界面。
在进行实验之前需对电机进行前期点动(JOG)运转调试,由参数PC04设定JOG速度命令,PC01设定速度加速时间常数,PC02设定速度减速时间,回转速度初期设定值为300 r/min,加减速时间常数设定为200。测试定位运转时,通过士林通讯软件选择定位运转测试选项,其初始值设定范围见表1所示。
图11 LabVIEW人机交互界面
表1 测试定位运转初始值设定及其范围
手动模式调整增益方面,在位置与速度模式下,频宽的选择与机台的刚性及环境有极大的影响,对于需求高精度的机台就必需设定高频率的系统响应,但设定的响应越高,机台易引起共振。因此,需要高响应需求的场合就必需使用高刚性的机台来避免机台的共振。相关位置与速度控制场合设定参数如下:由PB03设定共振抑制低通滤波NLP为0,由PB05设定位置前馈增益值FFC为0,由PB07设定位置回路增益值PG1为35 rad/s,由PB08设定速度回路增益VG1为817 rad/s,由PB09设定速度积分增益值VIC设置为48 ms,由PB10设定速度前馈增益值为0。
位置控制模式实验起初所用输入信号模式为开集极脉冲指令输入,但实验调试过程中发现此种输入模式存在所受外界干扰大,输出脉冲数不均匀,稳定性差等问题,故最终选择现在所用的差动脉冲指令输入模式。从单片机输出两路脉冲序列信号,经RVMDK软件仿真得到相位差为90度的A、B相两路脉冲串序列,可由方波脉冲的输入频率改变转速的大小,脉冲串序列图如图12所示。
图12 位置控制脉冲序列图
速度控制方面,当外部类比速度命令输入为0时电机可能存在offset,导致电机仍缓慢转动,所以需进入电机诊断模式后选择类比输入自动off⁃set功能,自动调整电压偏移量。手动模式下正确设定惯量比参数是充分发挥机械及伺服系统最佳效能的前提,在高速高精度伺服系统上表现尤为突出。传动惯量对伺服系统的精度、稳定性和动态响应都有较大影响,故有必要进行电机惯量估测分析的运转调试。调试过程如下:通过士林通讯软件选择“惯量估测分析”选项卡,按下“自动侦测惯量比”选项,若无报警再按“启动伺服按钮”此时电机已激磁,然后设定加减速常数为200,JOG速度为300后,按下“设定”按钮,再按“启动”按钮,至此开始进行惯量估测分析运转。驱动器自动估算目前的负载惯量比与频宽,当相关参数计算完毕之后,需关掉“自动侦测惯量比”,方可写入参数。
图13 速度控制模拟量三角波信号图
由单片机输出速度指令信号经DA转换之后送入伺服驱动器。根据速度模拟量信号实现伺服电机转速的闭环控制。速度模拟量信号接CN1端子的VC端,10 V时候速度为额定速度的100%,0 V时候是额定速度的0%即速度为0。如图13为输入的三角波模拟量信号。
本文基于STM32F103ZET6微控制器及其内部集成的ADC,DAC和RS232串口通信等模块,利用自身所带的标准固件库函数,大大缩短开发周期,与传统的单片机和PLC控制方案相比,本系统的外围硬件电路设计简单,成本低,实时性强,处理速度快,运行可靠,实现了良好的静态精度和动态性能,满足伺服电机控制系统的控制要求,具有一定的实用价值。
参考文献:
[1]许建国.电机与控制[M].武汉:武汉测绘科技大学出版社,1998.
[2]Dietrich H.Naunin & Hans-Christian Reuss(1990). Synchronous Servo-Drive:A Compact Solution of Con⁃trol problems by Means of a Single-Chip Microcomputer. IEEE TRANSACTIONS ON INDUSTRY APPLICATION. VOL.26.NO.3,MAY/JUNE 1990,408-414.
[3]卢建刚,陈小飙. MinasA4系列交流伺服电机的PLC控制[J].微计算机息,2008(25):91-92.
[4]赵磊,王哈力,何绪锋,等.基于单片机的交流伺服电机转速控制系统研究[J].现代电子技术,2009(16):196-198.
[5]蔡志祥,刘冬生,曾晓雁.基于单片机的交流伺服电机控制系统[J].机械与电子,2005(05):28-30.
[6]孙克梅,滕金玉,张晓新,等.交流伺服电机的单片机控制及其应用[J].沈阳航空工业学院学报,2003(02):50-52.
[7]黄之然,刘爽,张强.基于单片机的伺服电机控制系统的研究[J].无线互联科技,2012(12):104-105.
[8]李红伟,胡涛,徐熙平,等.基于单片机的伺服电机控制系统的研究[J].长春理工大学学报:自然科学版,2012(01):116-118.
[9]张立丽,李亮,史小华.基于PIC芯片嵌入式电机控制器的研究[J].现代电子技术,2009(09):164-167.
[10]丁信忠.基于工业以太网的总线型交流伺服系统关键技术研究[D].济南:山东大学,2012.
[11]刘辉.交流伺服系统及参数辨识算法研究[D].南京:南京航空航天大学,2005.
(编辑:向飞)
PTC LiveWorx中国2015年度大会:智能互联助推物联网转型,实现数字与实体世界的融合
2015年11月3日,美国PTC公司(纳斯达克:PTC)在北京成功举办了PTC LiveWorx中国2015大会。本次大会立足于产品开发、设计、服务与物联网领域,分享并讨论了PTC最新的公司战略以及如何帮助客户实现数字与实体世界的融合,进而推进业务转型等议题。此外,PTC与合作伙伴展示了诸多成功案例让与会者深入了解最新物联网技术与PTC核心产品相结合所产生的巨大潜力,为国内制造业转型及物联网技术的深入应用和发展带来极具意义的参考价值。本次大会吸引了1100多位观众参加,其中包括来自各个行业的产品开发人员、服务领域专家,以及物联网专业人士等。
面对物联网发展的新浪潮,PTC技术平台市场营销执行副总裁Charlie Ungashick在主题演讲中表示,全球制造业如今正经历着巨大变革。以前制造型企业一直处于把数字世界和实体世界分离的局面,现在制造业厂商正逐步通过物联网将两个世界进行融合。PTC所专注的就是搭建这样一个桥梁,通过PTC的解决方案帮助制造商重新改进业务流程,布局智能互联产品的开发和创新,抓住物联网发展机遇,在物联网时代赢得竞争优势。
在活动现场,PTC展示了其增强现实技术的新应用,通过一辆智能自行车诠释了PTC数字化映射(Digi⁃tal Twin)技术。该技术是将CAD设计软件和ThingWorx物联网平台相结合的革新性突破,真正实现了数字世界与实体世界的融合。数字化映射(Digital Twin)通过将收集到的实体的几何结构、特性、参数等信息,向用户展示包括实体的数字模型、材料清单、服务数据、使用手册,以及实体在不同情境中的行为反应等一系列物理性能。在此过程中,实体可以自动接收和发送数据,并可自发地进行数据分析。由此,用户便可以真正有效管理产品的生命周期。
(来源:PTC公司)
The STM32 SCM Control System Design on Servo Motor Oriented
SANG Yong,LI Feng-tao,DAI Yue-bang,DUAN Fu-hai,WANG Ya-jie
(Mechanical Engineering School,Dalian University of Technology,Dalian 116024,China)
Abstract:The paper introduces a position,speed and torque control scheme of the ac servo motor based on the STM32F103ZET6 micro-controller. Software and hardware design of the control system,settings of debug parameters and control charts of the servo motor are completed. Human-machine interface (HMI) is designed by the LabVIEW graphical programming language. It has a friendly interface and strong interactions. Compared with the control schemes of traditional single chip microcomputer,the control system has advantages of good economy,fast processing speed,good real-timing,high integration and strong anti-interference performance etc. It can realize the accurate location and speed control of the ac servo motor well.
Key words:STM32;AC servo motor;position control;speed control;torque control
作者简介:第一桑勇,男,1979年生,山东泰安人,博士后,副教授。研究领域:机电液一体化。已发表论文20篇。
收稿日期:2015-05-26
DOI:10. 3969 / j. issn. 1009-9492. 2015. 11. 019
中图分类号:TP368.1
文献标识码:A
文章编号:1009-9492 ( 2015 ) 11-0065-08