硬汉嵌入式论坛

 找回密码
 立即注册
查看: 814|回复: 0
收起左侧

[客户分享] AN0167 AT32F413 单电流采集有感方波驱动例程

[复制链接]

22

主题

16

回帖

82

积分

初级会员

积分
82
发表于 2023-3-15 19:40:27 | 显示全部楼层 |阅读模式
AN0167 AT32F413 BLDC Hall 1-Shunt Demo
前言
这篇应用笔记描述了怎么使用 AT32F413RCT7 搭配 AT-MOTOR-EVB 电机开发板,使用霍尔传感器 六步方波控制算法搭配 1-Shunt 电阻检测电路驱动三相永磁同步电动机(直流无刷电动机)。这篇文 档也描述了如何操作以及透过上位机 ArteryMotorMonitor.exe 实现电机控制与参数调试。


支持型号 AT32F413xx


1.电机库算法概述
这篇应用笔记使用电机库相关算法主要内容如下
目标电机:三相永磁同步电动机(直流无刷电动机)
控制模式:
    120°方波控制

三相 PWM 调制模式:
    120°导通 PWM 控制


相电流检测模式:
    单电阻电流检测和重构方式


转子位置检测模式:
    霍尔效应位置传感器


有传感器 120方波控制模式:
    120°方波电压控制
    转矩控制 (120°方波电流控制)
    转速控制
    弱磁控制
    回生刹车


2.环境准备
2.1 硬件环境准备
需要准备硬件项目主要包括 PMSM(BLDC)电机、AT-Link 或第三方调试下载器以及一块电机开发控制
板 AT-MOTOR-EVB,相关硬件配置可参考 UM0011 低压电机控制开发板使用手册。
    PMSM(BLDC)电机: JK42BLS01-X056ED
1.PNG
调试下载器
    电机控制开发板: AT-MOTOR-EVB (含 AT32F413RCT7 转板)
2.PNG
软件环境准备
1) 开启 bldc_1shunt_hall_sensor 范例工程
2) 电机应用 PC 软件 ArteryMotorMonitor.exe(本软件不需安装,只需直接运行可执行程序)。
3) 根据各个 AT32 MCU 的闪存存储大小设置 ROM,详细参照表 2,例:AT32F413RCT7 的闪存存储大小为 256 K 字节,则其 IROM1 的起始位置为 0x8000000,大小为 0x3F800,其 IROM2的起始位置为 0x803F800,大小为 0x800,并确认 linker 中的 Use Memory Layout from Target Dialog 选项有打勾,如图 3。
注[1]:使用 keil v5.33 版本,因 AT32 BSP 源码不支持 V6.15 编译器,请使用 keil complier version 5 版本进行编
译。
3.PNG
4.PNG

3 BLDC 电机库文档说明
图 4.为电机库文档结构说明图,说明电机库文档中各文件之间的关系,其中 mc_lib.h、mc_motor_param.h、mc_drive_param.h、mc_ctrl_param.h 等 4 个头文件提供用户自行输入电机控制型式、电机参数、控制板参数、控制器参数等,以及 mc_hwio.h 头文件可根据 MCU 外设与控制板连结的接脚对应关系,设定 MCU 外设规划参数。相关的设定参数于 mc_bldc_globals.h 整合后,于mc_bldc_globals.c 中的函数设定变量初值,提供电机库函数使用。而在 MCU 外设规划部分,则由mc_hwio.c 文件执行相关外设初使化设定。
5.PNG
开启 bldc_1shunt_hall_sensor 范例工程,文挡工程结构如图 5 所示。user 文件夹为自撰程序包含主程序、外设规划程序、参数存入 flash 程序以及参数定义头文件。firmware 文件夹为 BSP 程序文件,电机库程序放置在 mclib 文件夹, 包含延时函数、通讯函数、全局变量设定与电机库函数。详细电机库函数说明可参考 AN0064 电机库使用指南。
6.PNG
表 3 即为电机库文档说明总表,以下对于不同文档分别进行说明。
7.PNG


1) mc_lib.h 文档
 表 4 为模式宏定义,基于用户的硬件与电机配置,可定义适当的模式。此工程范例配置为六步
方波控制模式、单电阻电流采样、霍尔传感器。
8.PNG
2) mc_ctrl_param.h 文档
 相关电机的控制参数定义在此文档,表 5 为控制参数宏定义的说明。根据不同的硬件、电机需求与控制特性,可定义相对应的参数。亦可进行调试,如:Is 电流 PI 控制器、速度 PI 控制器等,在此仅列出此工程范例相关参数定义。
9.PNG


3) mc_drive_param.h 文档
 此文文件主要关于驱动器的相关参数定义,如死区时间、电流检测电阻、电流放大增益…等等。在此仅列出此工程范例相关参数定义如表 6 所示,若使用不同电机驱动板,则需修改相对应的参数。
10.PNG
注[2]:电压与温度关系之近似曲线方程式 V[V]=V0+dV/dT[V/Celsius]*(T-T0)[Celsius]
4) mc_motor_param.h 文档
 此文档主要为相关电机参数的宏定义,如极对数、编码器参数、霍尔传感器参数等。在此仅列出此工程范例相关参数,如表 7 所示。
11.PNG
图 6 为 BLDC 反电势、霍尔状态与 MOS 导通状态的关系图。以此图为例,A 相反电势最大且 B 相反电势最小所对应到的电机状态为 4,因此于 OUTPUT_AH_BL_HALL_STATE 参数定义为 4,同理,A 相反电势最大且 C 相反电势最小所对应到的电机状态为 6,因此于
OUTPUT_AH_BL_HALL_STATE 参数定义为 6,以此类推将对应的 6 个霍尔状态填入定义后即可配合不同电机输出正确的 PWM 波形。
此图例的 PWM 输出状态为一般下臂无反向输出的闸极驱动器(Gate driver)且上臂 PWM 切换时下臂不开互补的示意图,可以透过修改 mc_lib.h 文档内的定义修改成用户想要输出的模式,六步方波控制的三个范例工程内所采用的为下臂有反向输出且开启互补的模式。
12.PNG
5) mc_hwio.h 文档
 此文档主要根据用户的硬件 IO 接口、周边进行宏定义配置。同时也包含 mc_hwio.c 文件的函数声明。此工程范例相关外设配置包含外设 ADC、TMR、USART、EXINT 等配置与中断函数以及 DMA 通道的对应关系如表 8 所示。
13.PNG
6) mc_hwio.c 文档
 此文档主要依据用户的硬件周边进行配置。如 TMR、ADC、DMA、GPIO…等等,可根据不同的硬件来进行配置。同时也包含按钮、LED 灯、PWM 开启/关闭等函数。在此仅列出此工程范例相关函数定义如表 9 所示。
14.PNG
7) mc_isr.c 文档
 此文档主要为中断函数,包含 ADC、TMR、SYSTICK 等中断。此仅列出此工程范例相关中断函数如表 10 所示。
15.PNG
4 电机控制状态机
4.1 状态机描述
此电机工程范例的状态流程如图 7 中所示的状态机流程图,各个状态机的初始设置由主程序(Main)不断的循环检查,当状态改变时则设置新状态的初始设定。此外,状态机的运行在 Systick Handler 中断函数里,每一微秒运行一次以确保实时检查状态机。在每个状态进行故障检测,一旦发生故障状态机则进入 Error 状态停止驱动以免发生电机或电机驱动板损毁,直到故障被清除电机才能再次运行。
16.PNG
它由以下状态组成:Idle、Safety ready、Running、Free run、I_tune 以及 Error。各个状态的描述如下:
Idle
此为状态机的初始状态,此状态下马达为静止状态,遇警示状况解除后或马达停止也会回到此状态。
Safety ready
于初始状态(Idle)时确认所有参数已被设置、已取得电流 offset 的值,确认电机可以安全被启动的状态。
Running
运转模式,在此模式下马达为运转状态。用户可于 UI 界面实时调整参数(如目标速度、目标电流等)、或下命令停止马达。
Free run
相当于停止模式,在此模式下驱动器将停止输出,马达将由原速度慢慢降为 0,在马达完全停止前将会在这个状态,马达完全停止时则会回到初始模式(Idle)。


I_tune
此为调整电流 PID 控制器参数的模式,在此模式下可通过 UI 界面调整目标电流、电流环之 KP、KI值,将会产生一步阶电流,可经由观察电流响应于此状态调整至适合参数。
Error
当有错误发生时将会跳至这个状态。此电机工程范例各状态的起始状态、结束状态以及切换条件的详细说明如表 11 所示。
17.PNG
5 工程使用说明
5.1 建立连接
在确保完成硬件准备和软件环境准备后,我们可以进行以下操作建立 UI 与控制版的连接。详细电机UI 使用说明请参照 AN0063 文挡。
STEP-1
正确将电机、AT_Link/Jlink、开发板电源接到电机开发板上,将 USART 接口同 USB 线接入 PC。
STEP-2
使用 MDK 编译 demo 工程代码,使用 Jlink 或 AT_Link 下载到开发板的芯片中。
STEP-3
执行程序 ArteryMotorMonitor_V2.0.2.exe(V2.0.2 为软件版本号),在 File -> Open Porject 选项中选择 ArteryMotorMonitor_V2.0.2.atmcx->开启。
STEP-4
点选 Serial Port 更新图标(1.)并选取对应的串口号(2.),选完点选 Open(3.)即可开启串口实时通信。
STEP-5
按下播放键(4.)即可周期性更新 UI 接口的数据以及与目标板通过串口实时通信, 操作步骤如图 8。
18.PNG
Q 轴电流调试
此模式下会产生一个步阶的电流,如图 9,可以调整步阶电流的相关参数,产生步阶电流的目的是为了查看调整 Q 轴电流的 PID 电流环参数后的电流响应。
19.PNG
绘图时Y轴的电流值为转换后的数位值,转换公式如下:
实际电流值(A)=(数位电流值/32767) ∗ 最大电流值(𝐴)
详细操作步骤如下:
STEP-1. 将控制模式下拉菜单选为 IQ tune
20.PNG
STEP-2. 设置 PID 参数以及步阶电流参数,如图 11
21.PNG
STEP-3. 按下启动电机(Start Motor)按纽
STEP-4. 调整绘图区的参数监控为 Torque reference(Iq)以及 Torque measured(Iq)并按下 Save 键
22.PNG


STEP-5. 将绘图模式改为 detailed 并点选绘图纽即可呼叫出波形窗口
23.PNG
STEP-6. 查看电流响应是否如预期,如图 14,若不如预期则按下停止电机,并重复 STEP-2~STEP6
24.PNG
5.3 外部/软件命令控制
本范例工程支持两种控制来源,包含外部电压控制以及软件控制,外部电压控制为透过外部的电压调整速度或转矩的大小,在本低压电机控制开发板为调整 图 15 处的电位器来控制命令值的大小,软件控制则为直接输入速度或转矩命令值来控制,本范例工程初始设定默认为软件控制模式。
25.PNG
控制来源可以直接修改程序定义或是透过电机应用 PC 软件来做修改,程序定义值于mc_ctrl_param.h 文档内的 CTRL_SOURCE,如图 16。透过 PC 软件修改的修改方式详见图 17、图18、图 19,且根据用户选择不同的控制模式会对应不同的控制参数,若为速度控制模式时则会显示目标速度的控制栏位,如图 17,若选择转矩控制则会有目标转矩电流的控制栏位,如图 18。
26.PNG
1) 外部电压控制来源
在来源选择的下拉菜单中若选择 external voltage control 则可以切换到外部来源控制,可通过外部的电压调整速度或转矩的大小,目标速度或目标转矩的栏位将会显示目前控制电压下所换算的控制速度或转矩大小。
27.PNG


2)软件控制来源
默认为软件控制模式,来源选择的下拉菜单中选择 Software control 也可切换至软件控制模式,如图19,在此模式下通过修改 UI 接口的目标速度/转矩来调整电机控制的速度/转矩大小,双击此栏位即可修改数值,设定完成可看到下面栏位显示设置成功的信息。
28.PNG
5.4 速度环控制
此模式下可调控的参数有速度环的 PID 参数以及加速度、减速度,调整完成后亦可由波形绘制查看响应,详细操作步骤如下:
STEP-1. 将控制模式下拉菜单选为 Speed Control
STEP-2. 设置速度 PID 参数以及加速度、减速度
29.PNG
STEP-3. 设置 Control source 为 software control 及目标速度参考值(Speed reference)
30.PNG
STEP-4. 按下启动电机(Start Motor)按纽
STEP-5. 调整绘图区的参数监控为 Speed reference 以及 Speed measured
31.PNG
STEP-6. 将绘图模式改为 brief 并点选绘图纽即可呼叫出波形窗口
32.PNG
STEP-7. 查看速度响应是否如预期,如图 24,若不如预期则按下停止电机,并重复 STEP-2~STEP7
33.PNG
5.5 低速电压控制调适
由于低转速时的电流非常小,使用电流控制时较难控制,因此本范例工程提供低速电压的控制方法,在低转速时使用电压控制,直到电流较大时切换回电流控制闭回路控制,可以透过 mc.lib 档案中的定义值选择是否开启此功能,如不开启则注释掉即可,如图 25。
34.PNG
若有开启此功能则可以透过 mc_ctrl_param.h 档案中的参数调整电压控制与电流控制的切换转速,MAX_V_CONTROL_SPD 为电压控制的最高转速,超过该定义值则改为电流控制,MIN_I_CONTROL_SPD 为电流控制的最低转速,低于该定义值则改为电压控制,如图 26。
35.PNG


















回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 08:10 , Processed in 0.255682 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表