先楫电机库使用入门
先楫电机库使用入门(一)
HPM_MCL是先楫半导体开发的支持基于传感器的电机控制应用和无传感器的电机控制应用的电机控制库。
对于如何使用先楫电机库,各位可能会有一些疑问,所以开此专栏,介绍先楫电机库的使用方法。
开篇
整个专题我们主要以使用为主,过程中穿插讲述一下基本的概念,方便新入门的同学阅读,对基础知识比较了解的同学可以跳过这一部分。我们会按照有感foc,无感foc,硬件电流环这样的顺序来进行。过程中大家对哪个部分有兴趣可以留言,我们可以详细展开聊聊。文章中如有疏漏部分,欢迎大家及时指正。
先楫电机库支持特性
- FOC
- 6-step
- 电流环路
- 速度环路
- 位置环路
- 硬件电流环路
- DQ轴解耦
- 死区补偿
- 角度补偿
- 无传感器滑模
- 无传感器过零
- 无传感器高频注入
- 步进电机矢量控制
FOC(Field Oriented Control,场定向控制)
FOC技术的优点:
- FOC能够优化电机的运行,降低能耗,提高效率
- 通过精确控制电流,可以实现平滑且快速的扭矩响应
- 低噪音和振动
主要由如下几个部分组成:
-
坐标变换
三相电流abc到dq变换:电机的三相定子电流(a、b、c)在静止坐标系下,通过Clark变换(从三相静止坐标系到两相静止坐标系αβ)和Park变换(从两相静止坐标系到两相旋转坐标系dq),被转换为两相旋转坐标系下的电流分量(d、q)。其中d轴电流对应于励磁电流,q轴电流对应于转矩电流
-
dq坐标系的目的
在dq坐标系中,通过独立控制d轴和q轴电流,可以实现对电机磁通和转矩的独立调节。通常,d轴电流被设定为零或维持在一个恒定值,以减少铜损,而q轴电流则根据所需的转矩进行调整
-
位置
为了准确地控制电机,需要知道转子的位置。可以通过编码器、霍尔效应传感器或其他传感器提供,或者在无传感器FOC中,通过估算算法来实现
-
SVPWM
SVPWM是功率开关元件组成的特定开关模式产生的脉宽调制波,能够使输出电流波形尽可能接近于理想的正弦波形。他的电压波形是马鞍波的形式
- 根据FOC算法计算出的参考电压矢量,并判断所在扇区
- 计算矢量作用时间
- 计算桥臂导通时间
先楫电机库的FOC部分整体框架如下图simulink模型所示:
使用的公式如下:
- Clark变换
i_{\alpha}=\frac{2}{3}i_a - \frac{1}{3}\cdot(i_b+i_c)\\
i_\beta=\frac{\sqrt{3}}{3}\cdot(i_b-i_c)
- Park变换
i_d=i_\alpha cos\theta_e + i_\beta sin\theta_e\\
i_q=-i_\alpha sin\theta_e + i_\beta cos\theta_e
- invPark变换
i_\alpha=i_d cos\theta_e - i_q sin\theta_e\\ i_\beta=-i_d sin\theta_e + i_q cos\theta_e
我们在这一章节中只是抛出最终结果来使用,SVPWM部分后边会有专门的章节展开来讲。
使用官方提供的DEMO
作为先楫电机库使用入门的第一个章节,我们主要介绍如何快速使用官方提供的demo驱动一个永磁同步电机。这一节主要进行有感控制,使用bldc_foc
例程来进行说明。该例程支持了上文提到的如下特性:
- FOC
- 电流环路
- 速度环路
- 位置环路
- 硬件电流环路
- 死区补偿
- 角度补偿
- DQ轴解耦
准备
要运行一个电机demo需要准备一些外围设备,下面会列出具体的设备和要求,方便用户自行购买相关设备。同时建议本次入门内容最好使用官方推荐的设备。
开发板
大部分的先楫开发板都支持电机接口,下面列出具体型号
- HPM6750evk
- HPM6750evk2
- HPM6750evkmini
注意:此开发板应当搭配一个转接板才能使用,型号为HPM6750EVKMINI-TO-Motor Rev.A
- HPM6300evk
- HPM6200evk
- HPM5300evk
- HPM6e00evk
电机驱动板
先楫半导体提供了电机驱动板型号为DRV-LV50A_MP1907
,用户也可以根据引脚定义设计自己的驱动板,只要符合如下的引脚定义即可。
如果使用官方提供的驱动板,需要关心如下几个插针的连接情况
J10
需要使用跳冒连接J6、J7、J12
用来选择给到电机接口2、4、6
引脚的信号是电压值还是hall传感器的值,我们进行有传感器操作时,需要把J6、J7、J12
连接到HU、HV、HW
。我们本次使用的demo不使用hall传感器,所以无论如何连接均可。
电机
先楫半导体使用的电机型号为雷赛智能 BLM57050-1000
,其他型号电机需要满足如下特性,如果不满足这些特性可能需要修改代码,但是如果电机缺少一些特性则可能导致某些依赖这些特性的demo无法使用。
- 永磁同步电机
- 极对数为2
- 输入电压24V
- 带有ABZ编码器,差分信号输出,1000线
- 带有HALL传感器,60度角度差
电机和电机驱动板之间使用DP-15接口,不是此接口的电机需要飞线连接,接口定义如下:
电源
一个24V的稳压电源,提供的电流根据电机决定,先楫官方使用的电机需要可以提供3A电流的电源。
操作
以官方使用的开发板、驱动板和电机进行说明
- 连接开发板到电机驱动板,连接电机到电机驱动板,连接电源到电机驱动板,不要给24V上电。下图是6750evkmini连接后的样子:
注意一些特殊的开发板,在开发板和电机demo的readme也会描述这种情况
- hpm6750evk需要通过拨码开关选择pwm为输出模式
- 如果开发板的参考电压是通过跳冒选择的,需要确认有一个参考电压被选择
对于和6E00EVK这种类似的引脚较多的开发板,应该确认好丝印和电机驱动板一致后插入:
- 按下图所示编译foc程序
-
使用segger ide编译程序并烧录到MCU,注意Boot Pin的配置,此时程序会停在main函数入口
-
上电24V电源,电源电流不会超过
100ma
,如果超过这个电流,请检查线路是否短路 -
此时运行程序,电机会先抖动一下,进行传感器的对中操作,因为采用拖动的方式进行,所以此时不要给电机施加过大负载,大约1s后完成操作,电机以20r/s的速度运行。
-
此时串口会有如下输出
Location mode
是位置模式,也就是会使能位置环路
Speed mode
是速度模式,仅使能速度环路
- 如果选择速度模式,可以在
40r/s
--40r/s
之间调整速度大小,支持小数输入 - 如果选择位置模式, 输入为整数,最大支持32bit的数据,4000代表电机正转1圈,8000 为正转两圈,-4000 为电机反转1圈,-8000为反转2圈。
结语
本文我们首先了解了一下foc控制的基本原理,然后介绍了如何使用先楫官方demo控制一个永磁同步电机。
下一篇文章我们会介绍
- 一个特性和官方电机不同的永磁同步电机在修改了哪些代码和配置信息后可以把这个电机运行起来
- 展开阐述SVPWM是如何实现的,以及它和SPWM的区别