找回密码
 立即注册
查看: 37|回复: 6

BLDC程序数组

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:26
  • 最近打卡:2025-10-10 08:31:27
已绑定手机

14

主题

43

回帖

268

积分

中级会员

积分
268
发表于 昨天 10:54 | 显示全部楼层 |阅读模式
参考了一下三相无感的BLDC程序案例 8H那个

对应程序的数组是固定的吗?
还是说是有生成器生成的
在工具中只找到正弦数据表生成器

回复

使用道具 举报 送花

3

主题

1916

回帖

680

积分

等待验证会员

积分
680
发表于 昨天 10:58 | 显示全部楼层
您好,感谢您的提问。

在无刷直流电机(BLDC)控制程序中,所使用的数组(如换相表、PWM占空比表、霍尔信号对应表等)通常并不是随机生成的,而是根据具体的控制策略、电机结构以及驱动方式设计的。以下从几个方面进行详细说明:

一、数组的用途与类型

在BLDC控制中,常见的数组包括:

1. 换相表(Commutation Table):
用于无感(Sensorless)或有感(Hall Sensor)控制中,根据霍尔信号或反电势过零点来决定当前应导通哪两个功率管。
一般为6个有效状态(对应三相桥式驱动的6种导通组合)。

2. PWM调制表:
用于确定不同转子位置下各相的PWM输出占空比,实现调速或矢量控制。
在FOC(磁场定向控制)中,可能结合正弦波数据进行调制。

3. 正弦波形表(Sine Table):
常用于正弦波驱动或FOC控制中,作为调制波形使用。
可通过正弦数据表生成器生成,如您提到的工具中已有的功能。

二、数组是否固定?

1. 换相表通常是固定的:
对于6步方波控制(Trapezoidal Control),换相表是基于电机极对数和霍尔安装角度(通常为60°或120°电角度)预先设定的。
表中每一项对应霍尔信号输入值,输出为对应的功率管导通组合(如:U+、V- 等)。
此类数组一旦确定电机结构和驱动方式后,是固定的,不会随运行状态变化。

2. PWM调制表可能是动态或静态的:
在开环控制中,调制表可以是静态的正弦波形数据,预先计算好并存储在数组中。
在闭环控制(如FOC)中,调制信号是实时计算的,此时可能不需要静态数组,而是通过软件实时生成。

3. 正弦数据表可以由工具生成:
如您所述,正弦数据表可通过正弦波生成器生成,支持不同精度(如256点、512点等)。
这些数据表用于实现更平滑的电机驱动,尤其适用于正弦波或SVPWM调制方式。

三、是否可以通过工具生成?

目前市面上的一些电机控制开发工具(如ST的STM32 Motor Control Workbench、TI的MotorWare、Microchip的MCLV等)确实提供了:
正弦波数据表生成器
换相表辅助生成工具(需用户提供霍尔安装角度等参数)
PWM调制波形配置界面

但在实际应用中,尤其是使用无感控制(Back-EMF检测)时,换相逻辑仍需结合具体算法实现,不能完全依赖“一键生成”。

四、建议的实践方式

1. 对于标准6步换相控制:
换相表可参考标准案例(如8H模式)进行直接使用或修改。
请确认霍尔信号与电机旋转方向、导通顺序的一致性。

2. 对于正弦波或FOC控制:
使用正弦波数据表生成器生成波形数据,并结合PWM模块进行调制。
可使用查表法提高实时性。

3. 建议开发流程:
先使用固定数组进行验证;
再根据实际运行情况优化或替换为动态生成方式;
如有高级控制需求,建议引入实时计算机制(如使用Cordic算法或DSP库)。

五、结语

综上所述,在BLDC控制程序中,数组是否固定取决于其用途和控制策略。换相表通常是固定的,而PWM调制表或正弦波表则可根据需求选择静态或动态生成。工具中提供的正弦数据表生成器是一个很好的起点,但在实际项目中还需结合电机参数和控制算法进行定制化设计。

如您有具体使用的芯片型号或开发平台,可提供更详细的建议。

祝开发顺利!

国芯人工智能  
2024年7月

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:26
  • 最近打卡:2025-10-10 08:31:27
已绑定手机

14

主题

43

回帖

268

积分

中级会员

积分
268
发表于 昨天 10:59 | 显示全部楼层
案例中有两个数组
都是用正弦数据表生成器生成的吗?
还是说这两个数组可以通用在别的电机上面

点评

数组都是通用的,可以用在别的电机上,我是用EXCEL生成的。  详情 回复 发表于 昨天 16:28
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:195
  • 最近打卡:2025-10-10 10:24:38

76

主题

6759

回帖

1万

积分

超级版主

积分
14309
发表于 昨天 16:28 | 显示全部楼层
HyunYon*** 发表于 2025-10-9 10:59
案例中有两个数组
都是用正弦数据表生成器生成的吗?
还是说这两个数组可以通用在别的电机上面

数组都是通用的,可以用在别的电机上,我是用EXCEL生成的。
正弦波表-通用.xls (760 KB, 下载次数: 5)

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:26
  • 最近打卡:2025-10-10 08:31:27
已绑定手机

14

主题

43

回帖

268

积分

中级会员

积分
268
发表于 昨天 17:32 | 显示全部楼层
梁*** 发表于 2025-10-9 16:28
数组都是通用的,可以用在别的电机上,我是用EXCEL生成的。

收到梁工
看了BLDC 8H无HALL那个程序
其他都看懂了,看到程序中的四个电机共用一个数组,我就怀疑是不是通用的

点评

四个电机? 我的程序只驱动一个电机,但是不同电机有不同的参数,用宏定义。  详情 回复 发表于 昨天 23:07
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:195
  • 最近打卡:2025-10-10 10:24:38

76

主题

6759

回帖

1万

积分

超级版主

积分
14309
发表于 昨天 23:07 | 显示全部楼层
HyunYon*** 发表于 2025-10-9 17:32
收到梁工
看了BLDC 8H无HALL那个程序
其他都看懂了,看到程序中的四个电机共用一个数组,我就怀疑是不是通 ...

四个电机? 我的程序只驱动一个电机,但是不同电机有不同的参数,用宏定义。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:26
  • 最近打卡:2025-10-10 08:31:27
已绑定手机

14

主题

43

回帖

268

积分

中级会员

积分
268
发表于 4 小时前 | 显示全部楼层
梁*** 发表于 2025-10-9 23:07
四个电机? 我的程序只驱动一个电机,但是不同电机有不同的参数,用宏定义。 ...

是的就是那个意思
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-10 12:59 , Processed in 0.116725 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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