APM32F035 FOC零基础电机入门调试(三) - 有感HALL角度自检
## 一、了解什么是霍尔相序HALL相序通常是指在使用霍尔传感器(Hall Sensor)的电机控制系统中,霍尔传感器所检测到的电机相序信息,它对于电机的正确运行和控制至关重要,以下从原理、作用等方面为你详细介绍:
### 1、定义及原理
* 定义:HALL 相序本质上反映了电机中不同相绕组的磁场变化顺序与霍尔传感器输出信号之间的对应关系。在电机运行时,其内部的磁场会按照一定的顺序和规律进行变化,霍尔传感器就是用于检测这些磁场变化,并将其转换为电信号,这些电信号的先后顺序就构成了 HALL 相序。
* 原理:霍尔传感器是基于霍尔效应工作的,当有磁场作用于霍尔元件时,会在元件的两端产生霍尔电压,通过对霍尔电压的检测和处理,就可以得到与磁场相关的信息。在电机中,不同位置的霍尔传感器会在电机磁场的作用下,按照特定的顺序输出高低电平信号,这些信号组合起来就代表了电机的 HALL 相序。
### 2、作用
* 电机换向控制:在无刷直流电机等电机控制系统中,HALL 相序信息是实现电机正确换向的关键。电机的正常运行需要根据转子的位置来适时地切换定子绕组中的电流方向,以产生持续的电磁转矩。霍尔传感器通过检测转子磁场的位置,提供 HALL 相序信号,控制器根据这些信号来准确地控制功率开关管的导通和关断,从而实现电机的换向,确保电机能够按照预期的方向稳定运转。
* 速度检测与控制:HALL 相序信号的变化频率与电机的转速成正比。通过对 HALL 相序信号的频率进行测量,就可以获取电机的实时转速信息。在电机调速系统中,这一转速信息可以作为反馈信号,用于实现对电机速度的精确控制。控制器可以根据 HALL 相序信号所反映的电机转速,调整输出给电机的电压或电流,以达到稳定调速的目的。
* 故障诊断与保护:HALL 相序还可以用于电机的故障诊断与保护。正常情况下,HALL 相序信号应该按照一定的规律和顺序变化,如果检测到 HALL 相序信号出现异常,如信号丢失、信号紊乱或相位错误等,就可能意味着电机或霍尔传感器存在故障。此时,控制系统可以根据这些异常信号触发相应的保护机制,如停止电机运行,以避免电机或其他设备因故障而损坏,提高系统的可靠性和安全性。
## 二、035有感FOC相序调试
### 1、了解035电机控制板霍尔接口连接使用
!(data/attachment/forum/202502/23/131117vo996rnspsxrxns3.jpg "1.jpg")
APM32F035电机控制板兼容3V3和5V霍尔,只需要把原来的R37和R50电阻去掉,将R38和R52焊上。一般有霍尔电机规格书,会标明线序和霍尔供电电压;根据一一对应连接即可,例如下面U对应A,V对应B,W对应C。
!(data/attachment/forum/202502/23/131245kistwszwd2svuowv.jpg "2.jpg")
### 2、确认软件相序对应
打开工程中"user\_function.c"文件可以看到如下数组:
!(data/attachment/forum/202502/23/131414orc93uh22uu3thmt.jpg "3.jpg")
在"parameter.h"文件中,我们可以看到电机默认时以正转方式
!(data/attachment/forum/202502/23/131446bn2hqw2m2pwmhprh.jpg "4.jpg")
可以通过手动让电机其正转动一圈监测程序中Motor\_Type.stc\_HallPara.u8\_HallValue值,将得的值填入u8CW\_Hall\_Value数组中
!(data/attachment/forum/202502/23/131457usllc26mpm2772nl.jpg "5.jpg")
同理将电机手动反转一圈,将得到的值填入u8CCW\_Hall\_Value数组中,
!(data/attachment/forum/202502/23/131516ye6togttzgegi676.jpg "6.jpg")
u8CW\_Hall\_Value[ 6]:表示实际的霍尔序列,CCW\_hall\_table:表示角度序列,霍尔序列与角度序列的对应关系如下:
计算 CW\_hall\_table 的步骤:
1. CW\_hall\_table:通常初始化为 0,表示初始状态或者起始标记。
2. CW\_hall\_table:数组下标为1,按照顺时针(正转)顺序,结合正转的u8CW\_Hall\_Value[ 6]数组,前一个状态应该是 5,所以 CW\_hall\_table 为 5。
3. CW\_hall\_table:数组下标为2,前一个状态应该是 3,因此 CW\_hall\_table 为 3。
4. CW\_hall\_table:数组下标为3,前一个状态应该是 1,所以 CW\_hall\_table 为 1。
5. CW\_hall\_table:数组下标为4,前一个状态应该是 6,因此 CW\_hall\_table 为 6。
6. CW\_hall\_table:数组下标为5,前一个状态应该是 4,所以 CW\_hall\_table 为 4。
7. CW\_hall\_table:数组下标为6,前一个状态应该是 2,因此 CW\_hall\_table 为 2。
8. CW\_hall\_table:可以将其设置为 0,表示结束状态或者循环标记。
最终得到的 CW\_hall\_table 数组:CW\_hall\_table 为{0,5,3,1,6,4,2,0},同理计算反转CCW\_hall\_table 的值,填写无误后进行下一步操作。
### 3、计算机器角度偏差角
实际HALL 传感器的安装位置与电机对应的机器角度间是会有安装角度偏差的,即机器角度偏差角,此时H ALL 相序的自检功能就是为了计算出该偏差角,并把HALL 值对应的实际角度一一匹配上。
首先同样需要开启“H ALL\_PHASE\_TEST TEST”宏参后进入调试模式,在debug模式下观察“stc\_align\_hall”该结构体的相关成员变量的值。
!(data/attachment/forum/202502/23/131713bklyxjktwx0dqk2q.jpg "7.jpg")
首先以默认数值程序下载进入开发板看状态,观察u8AlignHallValue和u8Dir的值,如下图所示:
!(data/attachment/forum/202502/23/131750gc0kccq4o47hbhob.jpg "8.jpg")
1. 先看u8HallThetaSwitchState的值,在进行Hall角度定位时,其可以输出六个角度点,同时可以观察到电机实际运行时,也会转动6次。
2. 当u8HallThetaSwitchState = 6时,即可观察u8AlignHallValue的值是不是为6个不重复的相如:1-3-2-6-4-5。如果是则可以继续进行仿真(大概率可以得到正确结果),反之则可以结束,按情况修改定位Iq 电流、以及偏移角度的设定(若检测角度异常可适当调节该值,常用推荐0 “0°”或者5461 “30°”的偏移角度)。
3. 当u8AlignHallValue 为6个不重复相数据后(如下图所示),等待u8HallThetaSwitchState = 17,“u8Dir”的值为“1”、“0”,则说明当前校准出的结果是正确的;如果得到的值为“0”、“1”,则说明校准出来的值是反向的,此时我们需要重新去确认“u8CW\_Hall\_Value”和“u8CCW\_Hall\_Value”相序是否填反;如果得到的值为“0”、“0”,则说明校准错误,此时需要重新调整定位Iq 电流或者偏移角度这两个值。
下图是正确的到结果:
!(data/attachment/forum/202502/23/131851p8xhny9h1q0kynqb.jpg "9.jpg")
仿真结束后,获取到的“s16CW\_arr\_HallPhase\_Cal ”与 “s16CCW\_arr\_HallPhase\_Cal ”是最终生成计算获取H ALL 相序角度表,需依次对应将其填入user \_function.c 中的“s16CW\_arr\_HallPhase HallPhase”与“s16CCW\_arr\_HallPhase HallPhase”数组列表中。
!(data/attachment/forum/202502/23/131916ttcfqavdqcxda8al.jpg "10.jpg")
至此HALL的角度校准成功,当已将HALL 相序角度表获取并填入后,需在“parameter. h”参数配置文件中,先关闭下“HALL\_PHASE\_TEST”宏参,关闭HALL 自检模式,到了这一步,就准备尝试让电机开始运转测试啦!下载代码进入评估板,调节硬件板上的转速旋钮,正常情况下电机是可以运行起来。
页:
[1]