- 2025-02-21
-
回复了主题帖:
>>征集 | 晒电机控制痛点与难题,一起寻求最优解!
在电机控制系统的设计中,工程师常面临以下痛点和难点,涵盖硬件、算法、系统集成等多个方面:
一、硬件设计难点
1. 功率器件选型与损耗
- 高频开关(如MOSFET/IGBR)的开关损耗、导通损耗和热管理问题,需平衡效率与散热成本。
- 高压/大电流场景下器件可靠性和寿命的挑战。
- 散热不良,导致电机控制系统长时间运行时面临挑战;在选型时也需要考虑电机产品的散热条件。
2. 高精度电流采样
- 电流检测易受电磁干扰(EMI)影响,低信噪比导致控制精度下降(如FOC中的相电流测量)。
- 传感器(如霍尔元件、分流电阻)的非线性误差和温漂问题。
3. PCB布局与EMC问题
- 高频开关噪声耦合到信号回路,导致控制信号失真。
- 功率地(Power Ground)与信号地(Signal Ground)分离不当引发共模干扰。
- 硬件的布局导致驱动电路的信号干扰,比如米勒平台的震荡,寄生电感导致的门极信号受干扰;严重可能会导致功率器件的上下桥直通
二、软件算法挑战
1. 复杂控制算法实现
- 矢量控制(FOC):需精确解耦d-q轴电流,对电机参数(如电感、电阻)敏感,参数漂移易导致性能下降。
- 无传感器控制:低速/零速时反电动势微弱,观测器(如滑模观测器、龙伯格观测器)设计复杂,易受噪声干扰。
- 弱磁控制:高速运行时需动态调节磁场,易引发稳定性问题。
2. 实时性与计算资源限制
- 高速电机(如10万转以上的电主轴)要求控制周期极短(微秒级),对MCU/DSP的算力(如FPU、硬件加速模块)提出高要求。
- 多任务调度(如PWM生成、故障保护、通信)的实时性冲突。
3. 参数辨识与自适应控制
- 电机参数(如转子电阻、磁链)随温度、老化变化,需在线辨识(如模型参考自适应系统,MRAS)。
- 负载惯量变化(如机械臂负载突变)时的自适应调整难度。
4.多种参数的调试
- 不同电机需要调整多种参数,才能是电机运行到正常状态;无传感器控制,不同的观测器需要调整观察器的参数也不同及繁琐;
- 调试程序的可视化,现在目前常用的是通过串口来检测软件的参数进行调试,有些可能还不可时只能看电机的实际运行状态。
三、系统集成问题
1. 多物理场耦合
- 电磁场、热场、机械振动的相互影响,如电机发热导致永磁体退磁。
- 高速电机轴承润滑与机械谐振点的抑制。
2. 动态响应与稳定性矛盾
- 高动态响应需求(如伺服系统)需提高控制带宽,但可能引发系统振荡(如PID参数整定困难)。
- 非线性负载(如摩擦、死区)导致传统线性控制方法失效。
3. 多电机协同控制
- 机器人关节、电动汽车轮毂电机等场景下的同步控制,需解决通信延迟和分布式控制策略。
四、特殊应用场景挑战
1. 极端环境适应性
- 高温(如工业炉附近)、低温(如电动汽车冬季)、粉尘或腐蚀性环境下的可靠性设计。
- 航空航天领域对重量、体积和抗辐射能力的严苛要求。
2. 安全性与故障保护
- 过流、过温、堵转等故障的快速检测与保护(如硬件比较器响应速度)。
- 功能安全(如ISO 26262)要求下的冗余设计与故障注入测试。
3. 成本与性能平衡
- 工业领域对低成本方案的需求(如方波驱动替代FOC)与性能妥协。
- 高精度编码器(如光电编码器)的成本与无传感器方案的性能矛盾。
五、新兴技术带来的挑战
1. AI与电机控制的结合
- 基于深度学习的参数辨识或故障预测对实时性和数据量的需求。
- 强化学习在自适应控制中的应用面临算法复杂度和硬件部署难题。
2. 宽禁带器件(SiC/GaN)的驱动
- 高频开关(MHz级)带来的栅极驱动设计挑战(如寄生参数抑制)。
- 高速开关导致的EMI问题加剧。
看了下TMC9660是一款高度集成的单片栅极驱动器和电机控制器IC;集成了驱动和降压电源;比较吸引我的点是它能支持多种类型的电机;可以用来开发步进伺服、直流伺服BLDC/PMSM。还是很期待可以看看实际演示效果的。
- 2025-02-05
-
回复了主题帖:
[极海APM32M3514电机]+无感电机运行
lugl4313820 发表于 2025-1-26 22:35
可以呀,这波形挺好的呀,这是什么仪器来着?
是电流探头测试的波形;示波器的电流钳
-
回复了主题帖:
[极海APM32M3514电机]+PWM使用及电机运行
lugl4313820 发表于 2025-2-4 21:40
启动非常平稳呀,波形中间为什么有下降得这么快,是特别的算法吗?
是上桥PWM-下桥ON方波控制的,下桥是有常开所以有下降得这么快
- 2025-01-16
-
发表了主题帖:
[极海APM32M3514电机]+无感电机运行
本帖最后由 kjsm 于 2025-1-15 09:51 编辑
极海APM32M3514无感FOC测试;
继上次运行完有感驱动BLDC
这次尝试官方的无感DEMO程序;官方的程序已经把DEMO的硬件都配置完成;主要根据自己不同的电机调试parameter.h里的参数基本就可以将电机运行起来。
分享下调试过程注意的几点:
1、观察下系统是否报错;若运行过程中程序报错,则可以通过观测“M1FaultID_Record”故障标识确认报错代码,进而定位到问题所在,进行分析及排查。Fault.h文件中参数如下图所示。
2、观察状态机的值;系统运行到哪一种状态,可以通过eM1_RunSubState来观察;
3、分步调试;BLDC无感的三段式启动
无刷电机的三段式启动是一种特殊的启动技术,主要应用于无刷直流电机(BLDC)在静止或低速时反电动势很小或为零,无法直接通过反电动势信号确定转子磁极位置的情况。这种启动技术确保了电机能够从静止状态平稳过渡到运行状态,并保证了启动的可靠性。以下是对无刷电机三段式启动的详细解释:
定义与原理
三段式启动技术是指将无刷直流电机的启动过程划分为三个阶段:转子预定位、外同步加速和运行状态切换。这三个阶段共同协作,使电机能够顺利启动并稳定运行。
转子预定位:
目的:确定转子在静止时的位置,为电机启动做好准备。
方法:一般采用磁制动转子定位方式。系统启动时,任意给定一组触发脉冲,在气隙中形成一个幅值恒定、方向不变的磁通。只要保证其幅值足够大,这一磁通就能在一定时间内将电机转子强行定位在这个方向上。
外同步加速(强拖):
目的:在转子预定位后,由于此时定子绕组中的反电动势仍为零,必须人为地改变电机的外施电压和换相信号,使电机由静止逐步加速运动。
方法:
恒频升压法:换相信号频率不变,逐步增大外施电压使电机加速。
恒压升频法:保持外施电压不变,逐渐增高换相信号的频率,使电机逐步加速。
升频升压法:同时逐步增大外施电压和增高换相的频率。
运行状态切换:
目的:当电机通过外同步加速到一定的转速,反电势信号可以准确检测时,由外同步向自同步切换。
方法:可以通过试验观察反电势信号能够被准确检测的转速,当达到这一转速时即可进行切换。另一种方法是通过试验检测出达到预定切换转速的时间,通过软件定时器设置切换时间。
三段式启动电流示意;
4、电机启动时分三段启动:我们在调试时,也可以一步一步状态调试;我的做法时;
在状态机先注释下个状态;如我先调试开环启动,就注释下闭环的状态。每步调试,查看电机实际的运行状态。
最后我的电机实际运行的视频
[localvideo]ae1eeaeb01f5bd6b1ed392bfdd5228f6[/localvideo]
-
回复了主题帖:
[极海APM32M3514电机]+PWM使用及电机运行
常见泽1 发表于 2025-1-15 11:18
楼主 你的电机和驱动用的是啥型号
驱动板是极海APM32M3514电机通用评估板;驱动芯片和单片机合封在一起的。电机是以前淘宝二手买的找不到型号了;
- 2025-01-13
-
发表了主题帖:
[极海APM32M3514电机]+PWM使用及电机运行
本帖最后由 kjsm 于 2025-1-13 09:04 编辑
接上一篇文章,https://bbs.eeworld.com.cn/thread-1302655-1-1.html
读到了hall信号,这里初步使用PWM的控制实现电机控制。
硬件介绍:APM32M3514集成了驱动,MCU的PWM引脚与驱动的连接如下:
使用的是TMR1高级定时器
配置PA8/PA9/PA10复用功能
配置PWM的计数模式,和打开PWM的更新中断
通过上篇文章的基础,通过读取HALL信号,使用上桥PWM下桥打开的控制方式;H_PWM-L_ON的方式驱动电机
在PWM中断里处理换向程序;通过读取的hall信号进行6步换向驱动电机。
驱动输出的电压波形
电机运行视频:
[localvideo]70af5464e78975debaebebf0568c344d[/localvideo]
- 2025-01-03
-
发表了主题帖:
[极海APM32M3514电机]+读取霍尔信号
本帖最后由 kjsm 于 2025-1-3 09:37 编辑
这次试下使用APM32M3514对三相霍尔信号读取;
霍尔传感器
电机中的霍尔传感器为单极性霍尔传感器,即在靠近N磁极时表现为高电平,在靠近S磁极表现为低电平。
直流无刷电机的霍尔传感器布置方式为120°和60°两种,对应着两种控制序列。
参考网上这个的文章https://blog.csdn.net/Seigyoravel/article/details/138876974
120°霍尔的分布
霍尔信号的波形如下图:
开发板上的霍尔信号连接的是PA3/PA1/PA0引脚;
我打算通过GPIO的外部中断来对霍尔信号进行读取,通过外部中断的上升/下降沿触发中断
GPIO的中断信号:
配置GPIO为输入引脚及配置GPIO使用外部中断功能
配置外部触发中断的模式,上升沿和下降沿均触发,使能中断
触发中断后,写入同一个中断处理函数
如图蓝色为U相的霍尔信号输入,黄色线是每次进入外部中断进行一次IO口翻转。三路霍尔信号120°的霍尔上升和下降均触发;所以一个蓝色霍尔信号,有六次翻转。
将三相的霍尔信号进行整合按HC-HB-HA记录;定义一个数组Hall_Three.HallUVW[3];
HC为1时;Hall_Three.HallUVW[2]就置1否则为0依次类推;
三相霍尔信号组合,通过串口打印出霍尔的状态;
- 2024-12-24
-
发表了主题帖:
[极海APM32M3514电机]+ADC和内部运放使用
今天测试下APM32M3514里的ADC和内置运放的应用;
硬件上我打算用滑动变阻器可以用来观察ADC的采样值的变化
ADC的采样使用了PA7
初始化配置GPIO和ADC的采样设置
在AD中断程序中,读取AD的值并串口打印出来
串口打印出来的AD采集数据
APM32M3514里面还内置4个运算放大器,运放的压摆率在10V/us; 这个参数代表运放响应迅速;可以在电机应用中放大采样相电流的信号;
内部运放的电路示意图
APM32M3514内部运放可以配置两种情况;内部增益和外部增益;
OPA软件的配置如下:
通过AD读取运放的OPA输出引脚的电压
- 2024-12-17
-
发表了主题帖:
[极海APM32M3514电机]+串口调试使用
本帖最后由 kjsm 于 2024-12-17 09:16 编辑
今天测试下APM32M3514;板上预留的串口是连接到PF0/PF1上的;
要想使用PF0和PF1串口通信,板上需要先要把R37/R38的0电阻移动到R44和R45上
因为是复用了连接外部晶振的IO口,需要使用内部时钟HSI
可以直接使用HIS内部时钟是8MHZ,要想得到更高频率需要设置PLL;
可以参考在system_apm32m35xx.c修改,通过查看规格书
HSICLK只能2分频后作为PLL时钟源;查看PLL倍频系数
SystemCoreClock最高能设置在(8/2)*16 = 64MHZ
相关的软件配置如下
PF0/PF1将配置复用串口是AF1;
配置串口模式,使能串口中断
在USART1中断里写下接收的数据的处理程序
实际的效果如下:
- 2024-12-11
-
发表了主题帖:
[极海APM32M3514电机]+初步开箱和GPIO口使用
开箱后板子十分小巧精致;因为APM32M3514集成了运放、LDO和栅极驱动
看介绍板的接口如下:
APM32M3514是M0+ 72MHz的MCU;内部集成了运放和M0CP协处理器;这个协处理器可以方便计算电机多种运算;而且APM32M3514集成了LDO和栅极驱动;集成度是很高的一款芯片
可以去官方的芯片资料下载地址;下载对应的工具包
https://www.geehy.com/product/fifth/APM32M3514#info
打开SDK下的GPIO工程
一开始用J-link没有找到芯片,
板上的LED灯是连接PA12引脚;把对应的引脚初始化下:
用示波器观察GPIO的翻转情况如下;
这就是我的APM32M3514初步入门,后面会继续测评板子其他功能;
- 2024-11-27
-
回复了主题帖:
测评入围名单:极海APM32M3514电机通用评估板
个人信息无误,确认可以完成测评分享计划。
- 2024-08-08
-
回复了主题帖:
>>征集 | 使用 MCU,哪些问题最令你头大?
在使用(MCU)进行项目开发时,以下是一些我总结令人头疼的问题:
1/硬件兼容性和稳定性问题:
不同批次的MCU之间可能存在微小的差异,这可能导致在某些硬件上工作正常的代码在另一批次的MCU上无法正常工作。
MCU的稳定性问题;MCU产品的成熟性;样品没问题到量产时出现偏差过大,能否量产问题
2/电源管理:
低功耗设计是许多嵌入式应用的关键,但正确管理MCU的电源状态(如睡眠、唤醒、低功耗模式等)往往很复杂,并且容易出错。
供电电压的波动和噪声也可能对MCU的稳定性和性能产生负面影响。
抗干扰能力不够担心MCU突然失效,程序跑飞。
3/调试困难:
由于MCU的运行环境和PC机截然不同,调试过程可能相当复杂,特别是在没有适当的调试工具或调试接口的情况下。
实时系统的问题可能难以复现,增加了调试的难度。
能有好的调试工具就能快速找到软件问题
4/电磁兼容性(EMC)和电磁干扰(EMI):
在嵌入式系统中,EMC和EMI问题可能导致设备性能下降或完全失效。这些问题可能由多种因素引起,包括电路设计、PCB布局、电源质量等
5/资料例程是否完善
在嵌入式系统中,快速的上手也是MCU考虑的一方面;资料和例程的齐全,说明文档的存在,能够让工程师快速的熟悉一款新的MCU;加速产品的开发进度。
例程的注解能够更方便的了解例程的功能和外设的使用