BLDC (无刷直流电机) 六步式控制方法

1本文目的

最近在参与BLDC电机控制的项目,在网上也查看了无刷电机相关控制原理和方式。
但最终此项目使用的是六步式控制方式控制轮毂电机,所以此篇简述六步式的控制方法,以备之后查阅。(六步式的控制方式相较于FOC和SVPMW是比较简单的,这两个内容在CSDN上有非常经典的文章)

轮毂电机线束

轮毂电机有U、V、W三个控制线和A、B、C三根霍尔位置信号线,2根霍尔传感器电源线,(可能还有其它线束,因未使用,不描述)
至于控制线的定义被叫做UVW还是ABC,这个与无刷电机的控制原理有关,此篇中不再描述。

2控制器的主要电路

控制框图
在这里插入图片描述

3控制方法说明

对应控制框图中的MOS的序号,表3和表4中相电流的控制就是六步式要描述的内容。
表3表4中的霍尔传感器输入ABC的值,不同的电机会有不同的值,这个值的对应关系是需要标定的。
序号1-6对应的相电流,比如A关闭,B是DC-,C是DC+, 描述的是电机C端为高电势、B端为低电势,A端断开。电流方向如下图所示
在这里插入图片描述
其实序号1-6对应的步骤,也就是对MOS的通断控制,哪一个步骤作为第一步都是可以的,然后按着顺序完整这六步就可以。

4实际项目调试

1说明

项目为自研项目、轮毂电机控制器也是临时找了个控制器。当前阶段只实现前进、后退、停止、变速控制即可。
6路PWM控制依据六步的顺序分别控制Q0-Q5的通断,使用高边MOS常开, 控制低边MOS的PWM占空比的方式实现电机转速的调整。这里提到的控制都是开环控制。
通过IO中断或IOC中断捕获ABC的上升沿和下降沿事件,并且读取ABC的电平状态,与控制步骤结合形成新的控制表,如表3表4所描述。

#2调试方式
(1)调试MCU程序、具备6路PWM控制、霍尔位置信号的捕捉;示波器监控ABC三路波形变化
(2)先按固定顺序、固定时间,分别按控制步骤1、2、3…6的顺序控制电机;
例如每个1s,控制步骤加1,观察ABC位置信号波形变。
找到控制步骤与ABC位置信号的值的关系。形成新的表。 如下表,就是新标定出来的表
在这里插入图片描述
(3)程序控制
通过IO的上升沿或者下降沿采集位置信号ABC的变化,所以在变换步骤前,需要轮毂电机有个初始的位移,可以通过读取当前ABC的值,确定驱动的初始步骤是哪个。然后在ABC位置信号的IO上升沿下降沿中断中按表顺序执行控制步骤。
控制步骤= ABC对应的步骤+1;
#2实际程序节选

中断中的处理-供参考
以下代码段实现了根据ABC的电平状态,得到控制步骤的功能。

const unsigned char HOLL_TABLE_P[holl_table_num] = {0x55, 2, 3, 1, 5, 4, 6};	//0x55用于站位,为无效值
const unsigned char HOLL_TABLE_N[holl_table_num] = {0x55, 5, 1, 3, 2, 6, 4};	//0x55用于站位,为无效值

`unsigned char PositionDetectABC(TYPE_POSITION_ABC holl)
{
	unsigned char holl_table_index = 0;			//holl值在holl表中对应的序号
	unsigned char step_run = 0;
	unsigned char i=0;

	if(holl.ha == 1)								/*A位置信号高电平*/
	{
		holl_val |= 0x04;
	}
	else											/*A位置信号低电平*/
	{
		holl_val &= 0xFB;
	}

	if(holl.hb == 1)
	{
		holl_val |= 0x02;
	}
	else
	{
		holl_val &= 0xFD;
	}

	if(holl.hc == 1)
	{
		holl_val |= 0x01;
	}
	else
	{
		holl_val &= 0xFE;
	}
	holl_val &= 0x07;


	if(holl.dir == M_ABC_P)
	{
		for(i=0; i<holl_table_num; i++)
		{
			if(HOLL_TABLE_P[i] == holl_val)
			{
				holl_table_index = i;
			}
		}
		
		step_run = holl_table_index + 1;
		if(step_run == 7)
		{
			step_run = 1;
		}

		if(holl_table_index == 0)
		{
			step_run = 0;
		}
	}
	else if(holl.dir == M_ABC_N)
	{
		for(i=0; i<holl_table_num; i++)
		{
			if(HOLL_TABLE_N[i] == holl_val)
			{
				holl_table_index = i;
			}
		}
		
		step_run = holl_table_index + 1;
		if(step_run == 7)
		{
			step_run = 1;
		}

		if(holl_table_index == 0)
		{
			step_run = 0;
		}	
	}
	else
	{
		step_run = 0;
	}

	return(step_run);
}


  • 22
    点赞
  • 331
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: BLDC无刷直流电机双闭环调速系统仿真是通过计算机软件模拟实现对无刷直流电机的调速过程的一种方法。这种仿真系统可以模拟电机的运行状态,通过调节控制器的参数,实现对电机转速的精确控制。 在仿真过程中,首先需要建立模型。模型主要包括电机本身的特性,如电感、电阻、磁场等参数,以及电机与控制器之间的输入输出关系。通过建立数学模型,可以将电机的运动状态转化为计算机可处理的形。 接下来,需要设计控制器。双闭环调速系统一般由速度环和电流环组成。速度环根据设定的转速与实际转速之间的差异,通过调节电流环的输出信号,来控制电机的转速。电流环则根据速度环输出的信号,通过对电机的电流进行调节,来实现转速控制。 在仿真系统中,可以通过调节控制器的参数,如增益、响应时间等,来模拟不同的控制策略。可以通过增益裕度、超调量等指标来评估系统的性能,进而优化控制器的设计。 最后,通过仿真系统可以观察到电机在不同控制策略下的转速响应特性,如启动时间、稳态误差等,从而可以对实际的控制系统进行预测与优化。 总之,BLDC无刷直流电机双闭环调速系统仿真是一种基于计算机软件的电机性能分析与优化方法,可以在电机设计和控制器参数调节过程中发挥重要作用。 ### 回答2: BLDC无刷直流电机是一种常见的电机类型,其具有高效率、低噪音、可靠性高等优点。为了实现对BLDC电机的精确控制和调速,可以采用双闭环调速系统。 双闭环调速系统的主要组成部分包括内环速度控制环和外环电流控制环。内环速度控制环通过对电机转速进行检测和测量,根据设定值与实际值的差异通过PID控制算法来调节电机驱动器的输出电压,实现对电机转速的闭环控制。外环电流控制环则通过对电机相电流进行检测和测量,利用PID控制算法来调节电机驱动器的输出电流,实现对电机电流的闭环控制。 为了验证双闭环调速系统的性能,可以进行仿真实验。在仿真软件中,可以建立BLDC电机的数学模型,并针对内环速度控制和外环电流控制设计合适的调节器参数。通过设定电机转速和电流的设定值,并模拟电机负载改变或工作条件变化的情况,可以观察到系统的响应和稳态性能。 在进行仿真实验时,可以设置各个环节的控制参数,并分析所得到的电机转速和电流响应曲线。如果控制系统的性能不理想,可以调整控制参数,重新仿真,直到得到满意的控制效果。 通过BLDC无刷直流电机双闭环调速系统的仿真,可以评估该系统在不同工况下的性能,并优化控制算法和参数,提高电机的动态响应和稳态性能。同时,仿真结果也可以为现实中的系统参数调整和控制策略设计提供参考,提高电机控制的准确性和稳定性,满足实际应用的需求。 ### 回答3: BLDC无刷直流电机是一种具有高效率、高功率密度和长寿命的电机。在双闭环调速系统中,通常包括速度环和电流环两个闭环控制。仿真是指通过计算机建立数学模型,并运用仿真软件进行模拟实验,以评估系统的性能和稳定性。 在BLDC无刷直流电机双闭环调速系统的仿真中,首先要建立电机的数学模型,包括电动势方程、转矩方程、电流方程等。根据这些方程,可以计算出电机在任意时刻的速度、位置和电流等参数。 其次,需要建立速度环和电流环的控制算法。速度环用来控制电机的转速,通常使用PID控制器来根据目标速度和实际速度之间的误差来调整电机的输出电压或电流。电流环用来控制电机的输出电流,主要是为了限制电机的电流和转矩,以防止电机运行过载。 通过对这两个控制环节进行整定和调试,可以使电机在运行过程中达到稳定的速度和电流输出。 最后,通过仿真软件,比如MATLAB/Simulink,可以将电机的数学模型和控制算法输入,并进行仿真测试。仿真结果可以显示出电机的运行状态、速度响应、电流响应等指标,可以通过对仿真结果的分析来评估调速系统的性能和稳定性,进而优化电机的参数和控制策略。 总的来说,BLDC无刷直流电机双闭环调速系统的仿真是通过建立电机的数学模型、设计控制算法,并通过仿真软件进行模拟实验来评估电机的性能和稳定性的过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值