基于ARM的交流伺服电机控制器的硬件设计与实现
- 格式:pdf
- 大小:1.67 MB
- 文档页数:2
DOI:10.19392/ki.1671-7341.201816059
基于ARM 的交流伺服电机控制器的硬件设计与实现
刘㊀源㊀
孙东亚
航空工业计算所㊀陕西西安㊀710119
摘㊀要:随着交流电机在机电伺服领域的广泛应用,介绍了一种基于ARM 的交流伺服电机控制器的硬件设计与实现,利用所选ARM 处理器内部的高级定时器㊁SPI 和QEP 接口等实现了PWM 信号的产生及控制㊁转子位置检测和速度控制等;并对该控制器的主要硬件实现方案进行了阐述㊂该系统结构简单㊁集成度较高㊁实时性强,具有较好的实用价值㊂
关键词:交流伺服电机;ARM ;MSK 驱动㊀㊀伴随着电力电子技术㊁数字信号处理技术㊁计算机控制技术㊁传感器技术㊁电机控制理论等的快速发展,交流伺服系统有了长足的进步,并已逐步成为伺服系统的主流㊂现代交流伺服系统已经具备了快速动态响应㊁高精度㊁宽调速范围㊁高可靠性等良好的技术优势,并克服了直流电机电刷和换向器的机械磨损㊁换向火花和电磁干扰的缺点,因此已得到广泛应用㊂本文采用目前较为流行的ARM 处理器实现交流伺服电机的控制,与传统的DSP 相比,ARM 不但在处理速度及控制精度上能达到要求,满足复杂的控制算法需求,还具有比单片机更丰富的外设接口和电机专用集成芯片的控制电路,能方便地进行实时控制[1]㊂
1工作原理及硬件架构
伺服控制器通过RS422总线接收上位机发送的伺服系统位置指令,与当前位置反馈值进行比较,得到误差信号,由控制算法处理得到控制量,再经功率放大产生伺服电机的驱动电流,使得伺服电机按控制量的大小和极性转动,并通过减速器使伺服系统输出相应的转矩和转速,到达指令位置,从而改变流量调节器开度,实现发动机的工况控制㊂
根据伺服控制系统需求,伺服控制器硬件实现如图1所示,主要由信号处理模块㊁接口驱动模块㊁电源模块构成,信号处理模块主要用于完成PWM 驱动信号输出㊁对3路相电流㊁母线电压㊁母线电流的模拟量采集调理,2路旋变变压器激励输出及回采调理,电限位信号㊁时统信号的离散量采集调理,RS422总线通信等功能;接口驱动模块接收信号处理模块输出的PWM 信号,通过驱动芯片及调理电路输出三相电机的驱动信号;电源模块作用为接收28V 控制电源及40V 驱动电源供电,并将控制供电转换成控制器内部电路工作所需的二次电源,将驱动电源经过防护电路后给接口驱动模块调理电路供电
㊂
图1伺服控制器硬件实现框图
2硬件设计
2.1二次电源变换电路
伺服控制器输入的28V 控制电源,通过EMI 滤波电路及隔离的DC /DC 模块转换为ʃ15V 给模拟量采集调理电路㊁离散量采集调理电路供电,转换为5V 给旋变解算芯片㊁电平转换电路及电压调整器供电,电压调整器选用TI 公司的TPS70351,其转
换输出可到1.8V(对应最大输出电流2A)和3.3V(对应最大输出电流1A)的电压,用于给MCU 供电,并提供上电复位和电源监控复位两种复位方式[2]㊂
伺服控制器输入驱动电源电压为40V,经过浪涌电流抑制电路㊁反电势抑制电路后输出给电机驱动芯片高边供电㊂
2.2MCU 电路
MCU 选用意法半导体公司的ARM Cortex-M4处理器STM32F407IGT7,内置1Mb 的FLASH,192Kb 的SRAM (包括64Kb 的CCM data RAM),具备内存保护单元,安全性高;运算速度快,可到168MHz,运算精度高;具备6路UART㊁24通道12位2.4MSPS 3ADCs㊁3路可到42Mbits /s 的SPI 接口;具备12路16位和2路32位定时器,可配置成3相PWM 输出通道和正交编码单元㊂
2.3模拟量信号采集电路
模拟量采集电路主要完成三相电机相电流㊁母线电压㊁母线电流信号的采集调理,交流伺服电机在额定工作状态时,母线电流约为15A,相电流传感器量程应为额定电流的3~4倍,同时由于绕组中电流可以双向流动,因此选用ACS758LCB-100B 型霍尔电流传感器,该传感器的量程最大为ʃ100A,其典型工作温度范围为-40ħ~150ħ,带宽可以达到120kHz(环境温度T A =25ħ),电流检测误差在高温时(25ħ~150ħ)为-1.3%,低温时(-40ħ~25ħ)为2.4%,满足使用要求,电路采用典型接法㊂
2.4离散量信号采集电路
离散量采集电路主要完成对电限位信号㊁时统信号的采集调理,选用光耦HCPL-063L 进行处理,HCPL-063L 为高速LVTTL 兼容3.3V 光电耦合器,速率可到15MbS,电路采用典型接法,MCU 通过读取GPIO 状态判断轮载信号㊂
2.5旋变激励及采集调理电路
旋变调理电路采用AD 公司的单芯片旋变数字转换器,用于输出电机前后旋变工作所需的初级10KHz 激励信号,并将调理后的次级信号进行回采,通过内部解算得到电机转子角位置㊁角速度信息㊂该R /D 转换器集成的激励和解算芯片,避免了外加激励电路;解算精度为10㊁12㊁14㊁16位可选,对于12位设置而言,其跟踪转换速度最高可达60000r /min,速度精度ʃ2LSB,满足本设计的最高转速精度要求;可编程激励频率范围从2kHz 至20kHz,幅值范围是3.2V ~4.0V(Vpp),无须AGC 稳幅㊁PLL 稳频设计,只需外加滤波和缓冲驱动电路即可实现激励输出;3倍格式位置数据,数字速度输出,数字量速度带符号[3]㊂外围电路采用典型接法,通过SPI 及QEP 接口完成与MCU 的通讯及处理功能㊂
2.6电机驱动电路
电机驱动电路驱动芯片选用MSK 公司全隔离智能功率三相电机驱动芯片MSK4351,内部结构如图2所示㊂该芯片采用典型接法,其额定电压500V,额定电流50A,开关频率可达到20kHz㊂模块内部集成了可编程死区电路,通过配置OSC OUT 引脚和R /C 引脚之间的电阻和电容值设置MCU 输出的PWM 信号的死区时间,避免了同一相上㊁下两桥(下转第80页)
7
7㊀科技风2018年6月
电子信息
{-1},\
{StackInit},\{StackPush},\{StackPop},\}//初始化宏
C 语言通过结构体定义一个新类型Stack,这种既带有数据又有方法的抽象数据类型已具有面向对象的特征㊂C 语言实现对象方式的编写,也必须要遵循一定的要求,具体如下:
C 语言定义Stack,虽然可以定义为Stack s,但不能像C ++一样调用,即使编译器不会报错,但也无法执行,错误体现为C 语言方法需要传递对象指针,而Stack 的函数指针没有被初始化,所以不能执行,因此要在声明对象时,将Stack 函数指针初始化,设定为默认值㊂
C 语言代码编制期间,在对默认值的设定进行具体划分时,也应当遵循相应的原则,在利用Stack 函数指针的基础上,确保相关数值能够处于初始化的状态,以此来保证默认值设定的科学性和合理性㊂C 语言应用Stack 数据类型,就要声明对象实例,并进行初始化操作,不同于C ++,如Stack s =StackDe-fault,声明对象实例,并且指针恢复初始㊂
四㊁总结
本文所述的模块化代码编写的方法及要点,能够满足C 语言的模块化设计需求,极大的降低了模块化程序编写的难度,建议在软件编程领域进行推广㊂
参考文献:
[1]文武,任鹏,王灵军,等.模块化嵌入式软件开发平台研究[J ].家电科技,2016(6):83-85.
﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏
(上接第77页)臂功率管同时导通而造成的短路现象;其控制侧供电与驱动侧供电在内部已实现完全的电气隔离,提高了抗干扰能力,大大简化了外围调理电路的设计;逆变桥内部包含6个IGBT 功率晶体管,并分别并联快速恢复二极管,在直流母线上的串接采样电阻用于电流监控[4];通过外围配置温度监测电路监测该芯片温度感应引脚输出的(0~5)V 信号可实现对该驱动电路的过温保护
㊂
图2MSK4351内部结构图
2.7通讯电路
伺服控制器共有2路RS422通讯电路,主要完成软件在线加载㊁上位机通讯及参数记录等功能,选用的芯片为MAXIM 公
司的全双工的高速低功耗收发器芯片MAX490,电路采用典型解法,通过外接匹配电阻,可抑制由过长线路造成的内部干扰信号,增加通信的可靠距离与速度,满足现场试车台工况要求,经过MAX490调理后的电平信号可直接接入MCU 处理器的UART 接口,无需外接协议芯片或逻辑控制单元㊂
3总结
本文提出了一种基于ARM 的交流伺服电机控制器的硬件设计与实现,首先介绍了控制系统的工作原理,然后详细介绍了控制器的具体硬件实现方案㊂经实际使用与联试,伺服控制器设计合理,功能性能良好,满足机电伺服系统的使用与控制需求,同时具有高实时性㊁高可靠性的优点,对ARM 芯片在机电伺服系统上的使用与推广有较好的参考作用㊂
参考文献:
[1]桂欣.基于ARM 的无刷直流电机控制系统设计[J ].信息系统工程,2012(03):33-34.
[2]苏涛.高性能DSP 与高速实时信号处理[M ].2版.西安电子科技大学出版社,2002.
[3]ANALOG DEVICES.AD2S1210Datasheet.2008.
[4]李小璐.基于MSK4351的无刷直流电机驱动系统设计[J ].信息化研究,2010.36(8):40-41.
作者简介:刘源(1987-),男,山东日照人,硕士,工程师,计算机应用㊂
8电子信息
科技风2018年6月。