ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

国产MCU自主核心算法BLDC电机设计平台:无感FOC与图形化工具实战解析

国产MCU自主核心算法BLDC电机设计平台:无感FOC与图形化工具实战解析 1. 从一颗MCU到一套电机算法这次发布的真正看点如果你这两年一直在做电机控制相关的项目应该能明显感觉到一个变化以前选型的时候大家先看主频、看Flash、看封装现在越来越多的人先问一句——这颗片子有没有配套的电机控制算法库这个转变背后其实是很现实的问题BLDC电机的控制算法门槛不低尤其是无感FOC磁场定向控制这一块从滑模观测器到龙伯格观测器从参数辨识到弱磁控制每一块都能让一个新手团队卡上几个月。这次国内MCU公司发布自主核心算法的BLDC电机设计平台本质上就是在回应这个痛点。它不是一个单纯的芯片发布而是把MCU硬件 核心控制算法 图形化设计工具打包成一套完整的电机开发方案。关键词里的“Thor”大概率是这套平台或者算法内核的代号而“自主核心算法”这几个字才是重点——意味着观测器、环路控制、参数自整定这些关键环节不再依赖第三方授权而是自己从头写的。这套东西适合谁我梳理了一下大概三类人最应该关注第一类是正在做BLDC电机产品比如风机、水泵、电动工具、两轮车控制器的嵌入式工程师你们可以直接拿它来缩短开发周期第二类是做MCU选型和方案评估的技术负责人需要判断这套平台能不能替代现有的进口方案第三类是对电机控制感兴趣、想入门无感FOC的开发者这套图形化平台能帮你跳过最痛苦的理论推导阶段先把电机转起来再回头补原理。接下来的内容我会从这套平台的技术架构、核心算法的实现思路、图形化设计工具的实际用法、以及实测中容易踩的坑这几个角度展开尽量把“自主核心算法”这几个字拆开揉碎讲清楚。2. 自主核心算法到底自主在哪BLDC控制链路拆解2.1 无感FOC的三大算法模块与国产化的难点要理解“自主核心算法”的分量得先知道一套完整的无感BLDC FOC控制里到底有哪些算法模块是绕不开的。我把它拆成三层来看第一层是转子位置与速度估计。无感方案没有霍尔传感器转子的位置只能从相电流和相电压里“猜”出来。主流做法有两种低速段用高频注入法HFI利用电机的凸极效应提取位置信息中高速段用反电动势观测器比如滑模观测器SMO或者龙伯格观测器。这一层的难点在于低速时的信噪比极低高频注入的幅值和频率选不好要么听得到啸叫要么位置估计抖得没法用。第二层是电流环与速度环控制。电流环是FOC的内环通常跑在PWM频率下比如16kHz要求在一个PWM周期内完成Clarke变换、Park变换、两个PI调节、反Park变换、SVPWM占空比计算。速度环是外环跑在1kHz左右。这一层的难点在于PI参数的整定尤其是电流环参数不对会导致电流波形畸变、转矩脉动大甚至直接振荡。第三层是参数辨识与自整定。电机的定子电阻Rs、电感Ld/Lq、反电动势常数Ke这些参数如果靠手动测量再填进去误差大不说批量生产时每台电机的离散性也很头疼。所以现在好的方案都会做在线参数辨识上电后自动测一遍Rs和Ld/Lq运行中再根据工况微调。这三层里第一层和第二层的算法是各家方案的核心竞争力。以前很多国产MCU厂商的做法是买第三方的算法库或者直接抄一份开源方案改改导致的问题是算法和硬件匹配度差、出问题查不到根因、想改也改不动。这次强调“自主核心算法”意味着这三层都是自己写的好处是算法和自家MCU的外设ADC、运放、比较器、PWM定时器能深度耦合比如利用MCU内部的运放做电流采样信号调理利用比较器做硬件过流保护这些都需要算法层面配合。2.2 Thor内核的观测器设计为什么不用滑模而选龙伯格关键词里出现了“Thor”我推测这是这套平台算法内核的代号。从目前公开的信息来看Thor内核在转子位置估计上选择的是龙伯格观测器Luenberger Observer而不是更常见的滑模观测器。这个选择值得说一下。滑模观测器的优点是鲁棒性强对参数误差不敏感实现也简单一个sign函数加一个低通滤波就能跑。但它的缺点同样明显抖振chattering。sign函数在零点附近的切换会导致估计的反电动势里叠加高频噪声虽然可以用低通滤波压下去但滤波又会引入相位延迟导致位置估计滞后高速时尤其明显。龙伯格观测器则是基于电机的状态空间模型通过配置观测器增益矩阵来让估计误差收敛。它的好处是估计结果平滑、相位延迟可控配合锁相环PLL提取位置和速度高速时的动态性能明显更好。代价是需要知道电机的参数Rs、Ld、Lq参数不准时估计精度会下降。所以Thor内核大概率是龙伯格观测器 在线参数辨识的组合用参数辨识来补观测器对参数的敏感性。我实际用过类似架构的方案在风机类负载上龙伯格PLL的方案在3000rpm以上时位置估计误差能控制在5电角度以内比滑模方案好了不止一个档次。但低速段100rpm还是得靠高频注入来撑这部分Thor内核应该也有对应的HFI模块。2.3 电流采样与硬件外设的耦合设计算法再好采样不准也是白搭。BLDC的电流采样通常有三种方案单电阻、双电阻、三电阻。单电阻成本最低但需要在一个PWM周期内通过不同的开关组合采样两次对ADC的采样时机和算法配合要求极高三电阻精度最高但需要三个运放和三个ADC通道成本上去了。这套平台既然强调“自主核心算法”我推测它在电流采样上和自家MCU的外设做了深度绑定。比如利用MCU内部的高速运放做电流信号放大利用比较器做逐周期过流保护利用高级定时器的刹车功能做硬件封波。这些外设如果和算法配合得好单电阻方案也能做到不错的性能。实际选型时你得看清楚这套平台默认支持哪种采样方案以及对应的Demo板是怎么设计的。3. 图形化设计平台实操从建工程到电机转起来3.1 工程创建与电机参数录入的坑这套平台的核心卖点之一是图形化设计工具我拿到的信息里没有具体的界面截图但根据同类工具比如ST的MC Workbench、Infineon的MCE Wizard的惯例流程大概是这样的新建工程 → 选择MCU型号 → 配置引脚和外设 → 录入电机参数 → 配置控制参数 → 生成代码 → 编译下载。听起来很简单但电机参数录入这一步是第一个大坑。你需要填的参数通常包括极对数、定子电阻、定子电感Ld/Lq、反电动势常数、额定电流、额定转速、编码器/霍尔配置如果有。这里面最容易出错的是极对数和反电动势常数。极对数填错的后果是转速显示直接差一个倍数比如4极对填成2极对实际3000rpm会显示成1500rpm。反电动势常数填错的后果是弱磁点判断错误高速时可能提前进入弱磁导致电流失控。我的建议是极对数直接数转子上的磁钢个数再除以2反电动势常数用示波器测反电动势波形取线电压峰值除以转速再换算。不要信电机铭牌上的参数铭牌上的反电动势常数经常是线电压有效值和算法里用的相电压峰值差着√2和√3的关系。3.2 控制参数配置电流环带宽与速度环带宽的匹配参数录入完之后是控制参数配置。这部分图形化工具通常会给你几个预设档位比如“低动态响应”“平衡”“高动态响应”但如果你想调出好性能还是得手动改。核心是电流环带宽和速度环带宽的匹配。电流环带宽一般设PWM频率的1/10到1/20比如16kHz的PWM电流环带宽设800Hz到1.6kHz。速度环带宽设电流环带宽的1/5到1/10也就是80Hz到300Hz。这个比例关系背后的逻辑是内环必须比外环快足够多否则外环调节时内环跟不上系统会振荡。图形化工具里通常用PI参数的形式呈现你需要根据带宽反推Kp和Ki。以电流环为例如果电机电感是1mH电阻是0.5Ω想要800Hz带宽Kp大约等于2π×800×0.001≈5Ki等于Kp×R/L≈5×500≈2500。这些计算工具一般会帮你做但你要知道背后的逻辑不然调的时候心里没数。提示图形化工具生成的PI参数是基于你录入的电机参数算出来的如果电机参数不准算出来的PI参数也会偏。所以参数辨识那一步一定要做不要跳过。3.3 代码生成与在线调试的衔接配置完之后点“生成代码”工具会输出一套完整的工程通常包括外设初始化代码、算法库文件.a或.o、应用层框架代码。你需要做的就是在应用层里填自己的业务逻辑比如启动条件、调速指令来源、故障处理策略。这里有个细节要注意生成的代码里算法库通常是以二进制形式提供的你看不到源码只能通过API调用。这意味着如果算法出了问题你只能反馈给原厂自己改不了。这是“自主核心算法”的一个双刃剑——对原厂来说是自主对用户来说是黑盒。选型时要问清楚算法库有没有源码授权选项出问题时原厂的支持响应速度怎么样在线调试方面这套平台大概率支持实时变量观测比如通过串口或者调试接口把转速、电流、位置估计值传到上位机画波形。这个功能对调参非常重要没有它你就是在盲调。我建议在正式跑电机之前先用上位机看一下电流采样的波形和位置估计的波形确认采样正常、估计收敛之后再上电跑闭环。4. 实测中容易翻车的几个环节与排查思路4.1 上电就过流保护从硬件到算法的排查链路第一次上电就跑保护这是新手最常遇到的问题。排查的时候不要慌按下面的链路一步步来第一步确认电流采样零漂。电机不转、PWM不输出的时候读一下三相电流的ADC值理论上应该是Vref/2附近。如果偏差超过±50mV换算成电流可能超过0.5A说明运放的零漂太大或者采样电阻的共模电压不对。零漂大的话算法算出来的电流就是错的一上电就可能触发过流。第二步确认PWM死区时间。死区时间设得太小会导致上下桥臂直通瞬间大电流设得太大又会导致输出电压畸变。一般IGBT的死区设1-2μsMOSFET设0.5-1μs。用示波器看上下桥臂的驱动波形确认死区期间两个管子都关断。第三步确认转子初始位置估计。无感方案上电时不知道转子在哪如果直接开环强拖而转子位置和强拖方向差太多就会产生大电流。正确的做法是先做转子预定位给一个固定的电压矢量把转子拉到已知位置然后再开始闭环。Thor内核应该包含预定位逻辑但你要确认预定位的电压幅值和持续时间设对了。第四步确认电流环PI参数。如果前面三步都没问题那可能是电流环PI参数太激进。把Kp和Ki都减半再试如果过流消失说明是参数问题再慢慢往上加。4.2 低速抖动与高速失步观测器切换点的选择无感FOC的一个经典难题是低速段和高速段的观测器切换。低速时反电动势太小龙伯格观测器估不准需要用高频注入高速时高频注入的幅值跟不上需要切到反电动势观测器。切换点选不好就会出现低速抖动或者高速失步。我的经验是切换点选在额定转速的5%到10%之间。比如额定3000rpm的电机切换点设在150rpm到300rpm。切换的时候不要硬切要做加权平滑过渡让两个观测器的输出按转速逐渐混合。Thor内核如果做了这个平滑过渡那低速到高速的过渡会平顺很多如果没做你就得自己在应用层做处理。高速失步的另一个原因是弱磁控制没做好。当转速超过基速反电动势超过母线电压电流环就饱和了必须靠弱磁电流负的d轴电流来削弱磁场。弱磁点判断错了要么提前弱磁导致效率下降要么滞后弱磁导致失步。这个点需要根据母线电压和反电动势常数实时计算图形化工具里应该有对应的配置项。4.3 参数辨识失败电机参数离散性与辨识算法的鲁棒性批量生产时每台电机的Rs和Ld/Lq都有离散性通常±10%到±20%。如果参数辨识算法不够鲁棒就会出现有的板子辨识成功、有的板子辨识失败的情况。辨识失败的常见原因有三个一是辨识时的电流太小信噪比不够测出来的Rs误差大二是辨识时的转子位置不对如果转子停在d轴和q轴之间测出来的电感是Ld和Lq的混合值三是逆变器的非线性死区时间和管压降会导致实际输出电压和指令电压有偏差影响辨识精度。针对这三点我的建议是辨识电流设额定电流的30%到50%不要太小辨识前先做转子预定位确保转子在d轴如果辨识精度要求高做死区补偿把死区导致的电压误差补回来。Thor内核如果内置了死区补偿和辨识鲁棒性处理那批量生产时的直通率会好很多。5. 这套平台适合什么样的项目选型建议与横向对比5.1 和进口方案比优势在集成度差距在生态把这套平台和ST的MC Workbench、Infineon的MCE Wizard放在一起比差异很明显。优势方面国产平台的最大优势是集成度高、响应快。进口方案通常是“MCU 算法库 工具”分开的你要自己去匹配版本、自己搭硬件。国产平台往往是打包好的Demo板、算法库、工具、甚至电机都给你配齐上手速度快。而且原厂的技术支持响应通常比进口方案快出了问题能直接找到人。差距方面主要是生态和文档。ST的MC Workbench有大量的应用笔记、社区问答、第三方教程你遇到问题大概率能搜到答案。国产平台的文档通常比较薄社区也小遇到冷门问题可能只能靠原厂支持。另外进口方案的算法库经过多年迭代鲁棒性和边界场景的处理通常更成熟。所以选型的时候如果你的项目周期紧、团队电机控制经验不足、对成本敏感国产平台是很好的选择。如果你的项目对可靠性要求极高、需要过功能安全认证、或者需要深度定制算法那可能还是得考虑进口方案或者自己从头写。5.2 适合的应用场景与不适合的场景这套平台最适合的场景是风机、水泵、电动工具、两轮车这类对成本敏感、对控制精度要求中等的应用。这些场景的特点是负载相对稳定、转速范围不宽、对转矩脉动要求不高。用这套平台可以快速做出产品把精力放在系统集成和可靠性上。不太适合的场景是伺服驱动、数控机床、机器人关节这类对控制精度、动态响应、转矩脉动要求极高的应用。这些场景通常需要高分辨率编码器 高性能电流环 复杂的机械谐振抑制国产平台的算法库可能还达不到这个水平。当然如果你的团队有能力在平台基础上做深度二次开发那另说。5.3 选型时要问清楚的几个关键问题如果你在评估这套平台我建议向原厂问清楚这几个问题问题为什么重要算法库是否提供源码决定你能不能自己改算法还是只能当黑盒用支持哪些电流采样方案单电阻/双电阻/三电阻的成本和性能差异很大有没有死区补偿和参数辨识影响批量生产的直通率和低速性能最高支持多少转速弱磁控制的深度决定了最高转速有没有功能安全认证如果做车规或工业安全产品这是硬门槛Demo板的原理图是否开放决定你能不能参考设计自己的硬件6. 从这套平台看国产MCU的电机控制路线6.1 从“卖芯片”到“卖方案”的转变这几年国产MCU厂商的一个明显趋势是不再只卖芯片而是卖整套解决方案。原因很简单芯片的差异化越来越小同质化严重价格战打到最后大家都没利润。而电机控制这个市场客户要的不是一颗便宜的MCU而是一个能快速做出产品的方案。所以谁能提供“芯片算法工具支持”的完整方案谁就能拿到订单。这套BLDC电机设计平台就是这个逻辑的产物。它把MCU、算法、工具打包在一起客户拿过去就能用开发周期从几个月缩短到几周。对原厂来说算法库是护城河客户用了你的算法库换芯片的成本就高了。对客户来说开发效率提升了但也被绑定在了这个生态里。6.2 自主算法对下游开发者的实际影响“自主核心算法”对下游开发者来说影响是两面的。好的一面是算法和硬件的匹配度更高性能调优的空间更大。原厂可以根据自家MCU的外设特点来优化算法比如利用硬件加速器做Park变换、利用DMA做ADC数据搬运这些是第三方算法库做不到的。而且原厂支持更直接遇到问题能快速定位。不好的一面是算法成了黑盒你想深度定制就很难。比如你想改观测器的结构、想加自己的前馈补偿、想换一种弱磁策略如果原厂不开放源码你就只能等原厂更新。所以选型的时候算法库的开放程度是一个非常重要的考量因素。6.3 给正在选型的团队几条实在建议最后给正在选型的团队几条实在建议第一先跑Demo再决定。不要只看PPT和参数表拿一块Demo板用你自己的电机跑一遍看启动、调速、制动、故障保护这些环节的实际表现。Demo跑不通后面都是空谈。第二问清楚算法库的授权模式。是按项目授权还是按出货量收版税源码授权要多少钱这些商务条款直接影响你的BOM成本和长期规划。第三评估原厂的支持能力。问原厂要几个已经量产的客户案例了解一下他们的支持响应速度和问题解决能力。电机控制的问题往往很细碎支持跟不上会很痛苦。第四留好退路。如果你的产品对电机控制依赖很重不要把所有鸡蛋放在一个篮子里。要么要求原厂提供源码授权要么自己养一个懂电机控制的团队保持二次开发的能力。我在实际项目里踩过的最大的坑就是早期太依赖某家原厂的算法库结果原厂算法库升级后接口变了我的应用层代码全得重写。后来学乖了不管用谁的算法库都在应用层和算法层之间加一层抽象把算法库的API封装起来这样换方案的时候改动量小很多。这个经验分享给你希望能帮你少走点弯路。
返回列表