新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于μC/OS―III和ARM的空心杯电机控制器设计

基于μC/OS―III和ARM的空心杯电机控制器设计

作者:时间:2016-09-12来源:网络收藏

引言

本文引用地址:http://www.eepw.com.cn/article/201609/303697.htm

在结构上采用了无铁芯转子,克服了有铁芯电动机不可逾越的技术障碍,使其具备了更加突出的节能特性、灵敏方便的控制特性和稳定的运行特性。随着工业技术的飞速发展,电动机的伺服特性要求不断提高,以其高效率的能力转换特性在很多应用场合取得广泛应用。控制器需要对转速进行快速精确的闭环控制,其必须具备与上位机实现串口通信、转速实时采集、前馈PI控制及液晶屏显示等多个功能。

目前,ARM内核微控制器发展迅速,其性能高、耗电少、成本低,具备16/32位双指令集。本文选用TI公司的基于Cortex—M4内核的TM4C 123GH6PM芯片,该芯片最高具备80 MHz主频,适用于高性能、低功耗的嵌入式控制领域。它具备多个高精度定时器,可以输出多达16路互补且带有死区时间控制的PWM波形,满足空心杯电机的控制需求。

μC/OS—III是一个可扩展的、可固化的、抢占式第3代实时多任务操作系统内核。其对任务的个数无限制,提供了现代实时内核所期望的所有功能,包括资源管理、同步、内部任务交流等。考虑到系统任务的复杂性,传统的单任务循环式的程序控制模式难以满足需求,本文采用了开放源码的嵌入式操作系统μC/OS—III实现空心杯电机控制器,简化了系统设计。

1 控制器硬件设计

1.1 控制器硬件总体结构

空心杯电机闭环控制器硬件结构包括PWM驱动电路、转速检测电路、液晶显示电路及USB转串口电路等部分,系统框图如图1所示。控制器通过串口与上位机进行通信,接收上位机给出的期望转速指令与控制参数。实际转速经过转速检测电路由TM4C123GH6PM的定时器捕获得到,在与期望转速对比后得到转速差,基于前馈PI控制输出相应PWM信号,经驱动电路后供给空心杯电机。同时,液晶显示器通过SPI接口与TM4C123GH6PM进行通信,从而实时显示实际转速值。

基于μC/OS—III和ARM的空心杯电机控制器设计

1.2 驱动电路设计

驱动电路采用一款双通道桥式电机驱动器DRV8833,该器件具有两个H桥驱动器,能够驱动两个直流电机。每个H桥的输出驱动器模块由N沟道功率组成,这些场效应管被配置成一个H桥,以驱动电机绕组。通过调节PWM的占空比,调整输入电机端电压的大小,进而控制空心杯电机的转速。驱动电路如图2所示,由于本文只需驱动一个直流电机,因此将双通道输出并联处理,以达到增大驱动电流的效果。

基于μC/OS—III和ARM的空心杯电机控制器设计

1.3 转速检测电路设计

空心杯电机转速检测电路如图3所示。在电机转轴上固定了一个轮齿,上面均匀分布了4个错开的齿。轮齿布置在一个对射光耦上,当电机转动一周时产生4个高低脉冲,该脉冲频率表征转速大小。

基于μC/OS—III和ARM的空心杯电机控制器设计

2 μC/OS-Ⅲ操作系统移植

在官网上下载已移植到TM4C129XL的μC/OS—III,基于此工程模板进行修改,可以免除完全移植操作系统的繁琐工作。由于该工程模板是针对TM4C129XL系列的,该系列的芯片主频与TM4C123XL系列有所差别,因此需要在板级支持包(BSP)系统初始化文件中进行修改,文件名为“BSP_SysInit”。将原系统时钟设置部分注释掉,添加对应于TM4C123GXL的配置代码:

cpu_clk_freq=BSp_SysClkFreqGet();//确定systick参考频率

SysCtlClockSet(SYSCTL_SYSDIV_16 | SYSCTL_USE_PLL |

SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);//系统时钟设置

此处设置在原文件中需要多条语句才能完成,利用TI公司的设备驱动库函数可以高效便捷地完成设置。

3 软件设计

3.1 μC/OS-Ⅲ的任务分配

本控制器软件需要实现的功能如下:

①上位机通过串口给定期望电机转速和控制参数;

②要求空心杯电机转速连续可调并且具有良好的动、静态性能,通过定时器捕获实际转速,并采用算法调节;

③液晶显示屏实时显示转速。

基于μC/OS—III的程序设计是将一个大的应用程序分成多个相对独立的任务来完成。定义好每个任务的优先级后,μC/OS-III内核对这些任务进行调度和管理。本程序设置OS时钟节拍为50 Hz,共分为3个任务(AppTaskStart、MyTask1、MyTask2),优先级分别为2、12、13,具体的工作流程如图4所示。其中,AppTaskStart为电机控制任务,主要负责进行前馈PI控制,其延时1个节拍进入就绪状态,即相当于20 ms执行一次;MyTask1为上位机给定任务,负责串口接收,其延时2个节拍进入就绪态,即相当于40 ms执行一次;MyTask2为液晶显示任务,负责LCD显示,其延时3个节拍进入就绪态,即相当于60 ms执行一次。

基于μC/OS—III和ARM的空心杯电机控制器设计

3.2 电机控制任务

电机控制任务AppTaskStart达到就绪态后,读取空心杯电机当前转速。在实际测试中,发现该电机的非线性特性较强,因此采用带前馈量的PI控制,使电机转速能在全范围内都能快速准确地进行调节。其中,PWM前馈量由实际转速插值取得,插值表在开环情况下标定获得。电机控制任务工作流程如图5所示。

基于μC/OS—III和ARM的空心杯电机控制器设计

3.3 上位机给定任务

上位机给定任务MyTask1中,控制器通过串口接收上位机指令,接收内容包括期望转速及控制参数Kp与Ki。由于控制参数往往需要根据经验反复整定,而且起初并不能确定其量级大小,为了快速方便地进行控制参数整定,此处串口数据采取浮点数格式传输,相对于用整型数传输没有精度损失。数据类型转换具体代码如下:


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭