基于STM32F7的电机驱动系统设计

2018-02-03 09:45何龙
科技创新与应用 2018年5期

何龙

摘 要:文章采用基于Cortex-M7内核的STM32F7,设计了一套电机驱动系统,其具有串口通讯、以太网通讯、永磁同步电机驱动等功能。在软件设计上,通过移植Rt-Thread实时操作系统,实现了多线程处理,同时合理地分配了中断资源,保证电机驱动算法能够得到及时运行。实现了id=0电机控制算法,并通过实验验证了其具有良好的控制精度。

关键词:电机驱动;STM32;Rt-Thread

中图分类号:TP273 文献标志码:A 文章编号:2095-2945(2018)05-0095-02

Abstract: Based on STM32F7 with a Cortex-M7 kernel, a motor drive system is designed, which has the functions of serial communication, Ethernet communication, permanent magnet synchronous motor drive and so on. In software design, multi-thread processing is realized by transplanting Rt-Thread real-time operating system, and interrupt resources are allocated reasonably to ensure that the motor drive algorithm can be run in time. The id=0 motor control algorithm is realized, and its good control accuracy is verified by experiments.

Keywords: motor drive; STM32; Rt-Thread

引言

传统上,承载着关键电机控制算法的核心处理器主要为DSP。DSP芯片内部集成了模数转换、电机控制PWM接口等,因此使得电机控制系统硬件设计灵活、简易、集成度高,而且DSP尤其擅长高速运算,所以它们在电机控制系统中得到了广泛应用。

尽管DSP在电机控制市场表现出巨大的优势,但值得注意的是,ARM的最新一代内核Cortex-M7以其突出的性价比,越来越广泛地进入电机控制领域。STM32F7工作频率高达200MHz,采用6级超标量流水线和浮点单元,测试分数高达1000CoreMarks。本文采用基于Cortex-M7内核的STM32F7,设计了电机驱动系统。

1 系统结构

电机驱动系统由控制电路、传感器采样电路、DC/DC电压转换电路、逆变电路组成[1]。如图1所示,380V三相电通过AC/DC电压转换电路,转换成直流电源,为逆变电路供电,逆变电路在控制电路输出的PWM信号控制下驱动电机转动,同时传感器采样电路采集电压、电流、速度信息,并反馈到控制电路,从而实现电机驱动系统的闭环控制。电机驱动系统在驱动电机转动的同时,将系统状态通过以太网传输到计算机;同时Uart接口传输控制台信息,控制系统运行。

2 系统硬件设计

系统功率电路采用三相桥式整流电路,将三相交流电转换为直流电,直流电通过三相全桥逆变电路驱动电机转动。传感器采样电路采用霍尔电流传感器精确采样三相电流信号;通过运算放大器构建差分采样电路获取电压信号;通过旋转变压器以及旋转变压器解码芯片AD2S1205获取转子位置和速度信息;控制电路采用STM32F746NG为核心控制单元,并且扩展以太网芯片RTL8208。

3 系统软件设计

本系统的软件基于RT-Thread实时操作系统。RT-Thread 是一款由中国开源社区主导开发的开源嵌入式实时操作系统,它包含实时嵌入式系统相关的各个组件:实时操作系统内核,TCP/IP协议栈、文件系统、libc接口、图形引擎等[2]。

软件划分为电机控制线程、以太网接收线程,以太网发送线程、Http服务线程、tshell线程、phy监控线程,其软件结构见图2。各个线程具体工作及其优先级描述如下:

系统调度:RT-Thread的实时调度内核,实现各个线程的调度。

电机控制线程:解析接收到的控制命令,切换电机的工作状态;根据电机运行状态切换电机工作状态;其优先级为9。

以太网接收线程:检测以太网连接状态,并将以太网接收到的数据传给上层协议;其优先级为10。

以太网发送线程:接收上层协议传来的数据,并发送;其优先级为10。

Http服务线程:将采集到的电流、电压、电机转速等信息传给上位机,并且接收上位机对电机的控制命令,其优先级为11。

Phy监控线程:监控网络连接状态,包括网络速度、工作模式等,根据网络的实际连接状态,调整phy的配置,大约每两秒运行一次,其优先级为29。

tshell线程:输出系统调试信息,以及接收调试命令等;其優先级为11。

此外,还有一个系统提供的空闲线程,它主要用于删除线程,清理线程,统计系统运行状态等,其优先级为31。

4 电机控制算法

id=0控制也称作恒转矩角控制。在这种控制策略下,转矩角一直维持在90°。该控制策略实现最为简单,不管是凸极式还是隐极式永磁同步电动机,输出的电磁转矩与q轴电流成正比,电枢反应为零,其模型和直流电机模型类似,低速控制性能可以和直流电机相媲美[3]。

id=0控制程序运行于ADC检测中断中,程序运行周期为80us,电流环执行周期为80us,速度环执行周期为800us,程序运行时间为16us,可见STM32F7完全满足算法运行的需要,并且有足够的能力运行电机控制以外的串口通讯,以太网通讯等功能。

5 实验分析

本是系统的实验平台包含了以下几个部分:

两台带有2500线编码器的PMSM电机,组成对拖电机系统,电机参数见表1。

驱动系统电路板,包括:电机驱动板、信号处理板、STM32F746核心板。

运行于计算机的电机参数监控软件,通过以太网接口将计算机和电机驱动系统连接后,即可通过该软件检测、控制电机运行。

JN-338转矩转速测量仪,通过测量的数据,分析系统的控制精度。

实验过程中,通过电机参数监控软件,向电机驱动系统发送给定转速,同时JN-338转矩转速测量仪测量得到实际转速,将两者的误差分析后,得到实验结果,见图3。可见电机驱动系统的转速误差小于0.018%。

6 结束语

本文采用STM32F7设计了一个电机驱动系统,该系统采用id=0电机控制算法,通过实验证明其具有良好的控制精度。此外,该电机驱动系统移植了Rt-Thread实时操作系统,具有以太网通讯功能、串口通讯功能。

参考文献:

[1]牛盼情,康翔宇,何顶新.基于zynq的pmsm驱动控制系统设计[J].单片机与嵌入式系统,2015.(5):65-68.

[2]汪虎强,陈建政.三相电机电流检测系统的设计及实现[J].无线互联科技,2016,2(3):63-65.

[3]刘红伟.永磁同步电机控制策略及算法融合研究[C].中国科学院光电技术研究所,2014.

[4]勾占锋.一种微型步进电机的驱动设计[J].科技创新与应用,2012(24):8-9.

[5]王智杰,蔡燕,姜文涛.三相12/8极开关磁阻电机驱动系统建模与仿真[J].科技创新与应用,2017(05):11.

[6]王丽平,陈光伟.基于S7-200PLC的伺服电机位置控制系统[J].科技创新与应用,2016(07):65.endprint