ARTICLE DETAIL

资讯详情

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

STEVAL-CTM015V1开关磁阻电机驱动板配置指南:传感器接线与换相控制

STEVAL-CTM015V1开关磁阻电机驱动板配置指南:传感器接线与换相控制 做电机控制的工程师恐怕都有过被开关磁阻电机SRM折腾的经历。STEVAL-CTM015V1 是意法半导体推出的三相 SRM 驱动评估板专门用来研究带速度/位置传感器的开关磁阻电机驱动方案。官方给它定位就一句话SRM motor driver evaluation board但真正把这板子点亮并跑起来要做的事情远不止插个电、刷个固件那么简单。本文记录的就是一次完整的 STEVAL-CTM015V1 配置过程——从传感器选型和硬件接线到定时器初始化、换相表计算再到开环验证和常见故障排查。适合刚拿到板子、正在做 SRM 预研或者想从无感换到带传感器方案的工程师参考。1. 为什么 SRM 控制必须依赖速度/位置传感器1.1 SRM 的转矩产生原理没有位置就没有“自同步”很多刚从 BLDC/PMSM 转过来的人第一次看到 SRM 的定转子结构都会愣一下转子上既没有绕组也没有磁钢就一堆硅钢片叠出来的凸极齿定子上也只有简单的集中绕组。整个电机看起来就像一个“铁块坨子”然而它偏偏能转动靠的是磁阻最小原理——定子某一相通电后会产生磁通转子齿会被磁拉力拽向让磁阻最小的位置也就是与定子齿对齐的方向。这个原理听起来简单但控制上有个很大的问题转子齿一旦和定子齿对齐磁拉力就会归零如果这时候还不换相转子就会被“定”在那里继续通电只会变成发热电阻不会产生任何有效转矩。所以 SRM 永远需要“提前知道转子在哪里”才能在正确的角度范围内给正确的相绕组通电。这个“提前知道”的动作就是换相逻辑的基础。换相时机不对后果比普通电机严重得多。BLDC 换相错了顶多效率变低、电流波形难看而 SRM 如果在电感下降区继续导通会产生负转矩电机不仅抖动、尖叫电流还会瞬间飙升功率管很容易直接烧穿。这也是为什么 SRM 的控制方案里位置信号的地位几乎等同于“生命线”。有人会问能不能像 BLDC 那样做无感控制当然能学术界和工业界都有 SRM 无感方案比如磁链观测、电流斜率差值法、脉冲注入法但问题在于 SRM 的磁链和转子位置关系高度非线性还严重受母线电压、相电流和温度影响要做到宽速度范围、负载突变还能稳定运行难度比 PMSM 的无感 FOC 高一个量级。尤其是零速启动和低速重载没有可靠的初始位置整个闭环根本建立不起来。所以工程上做 SRM绝大多数都会先上传感器把“位置”这个最不可控的变量变成已知量再去调电流环和速度环。1.2 带传感器方案与无感方案的现实对比带传感器之后好处是立竿见影的。首当其冲的就是启动。SRM 没有任何辅助启动绕组也没有反电动势可用从零速开始就得知道转子绝对位置才能把第一步励磁落在正确相上。霍尔传感器或者绝对式编码器可以直接给出位置状态MCU 上电瞬间就能查表决定“现在该通哪一相”根本不需要试探性脉冲。第二个好处是角度可以精确控制。有了位置信号控制器可以实现提前导通、提前关断把电流控制在电感上升段这样可以显著降低转矩脉动和母线电流尖峰。对 SRM 这种“天生转矩脉动大”的电机来说角度优化是改善噪声和振动最有效的手段之一而这些都建立在连续、可靠的位置信息之上。从调试效率来看传感器方案也比无感方案省心很多。无感启动阶段要去调高频注入幅值、磁链收敛速度、观测器增益中间任何一个参数不对现象都是“电机轻微颤抖”或者“突然反转”排查起来非常折磨人。传感器方案的启动逻辑直观只要换相表没错电机在极低占空比下就能平稳转起来后续再慢慢加电流环、速度环每一步都可以用示波器确认调试路径清晰。实际选型的时候霍尔和编码器怎么选也是个问题。霍尔传感器结构简单、成本低适合电动工具、小家电这类对启动平顺性要求不高的场景但它的位置分辨率低一个电气周期通常只有几个状态点换相只能跳变转矩脉动大而且安装位置误差对换相精度影响明显。增量编码器价格高一些但分辨率够高A/B 正交信号可以做 4 倍细分换相角可以连续调整适合低速平稳性要求高的场合。还有一类是绝对式编码器成本进一步上升一般只在高价值伺服或者特殊工况下使用。STEVAL-CTM015V1 的板载接口通常对这两类传感器都做了兼容下面我们详细拆一下硬件侧怎么接。2. STEVAL-CTM015V1 板卡解析与传感器硬件接线2.1 先看懂板卡的结构控制侧、功率侧、信号接口拿到 STEVAL-CTM015V1第一步不是急着接电机而是把板卡的 User Manual 和原理图 PDF 从官网拉下来对照实物过一遍。这块板子整体分成几个区域控制电源部分负责把外部直流输入转成板内低压供电功率部分包括三相桥臂和预驱电路信号部分则是电流采样、母线电压采样、温度采样和外部传感器接口。先说安全。SRM 评估板的母线电压通常不低STEVAL-CTM015V1 的设计目标覆盖中高压三相驱动场景所以板上一旦接了高压输入整个功率侧都要当“老虎”来对待。我自己的习惯是先用低压直流源做控制逻辑调试确认传感器信号、PWM 输出都正常后再逐步升高母线电压。每次改接线前必须确认母线电容放电完毕最稳的办法是用万用表电压档盯着母线电容两端等归零别凭感觉。定位传感器接口时需要翻一下板卡的丝印和原理图。STEVAL-CTM015V1 上通常有一个专门的多针插座丝印一般是 HALL 或者 ENCODER 之类所有位置信号进来都会先经过 RC 滤波、电平嵌位再进入主控 MCU 的定时器捕获引脚。板上有没有给传感器供电的引脚、供电电压是 3.3V 还是 5V也要从原理图上确认清楚。我之前用这块板子时踩过一个坑传感器插座上有一个引脚是 VCC但默认是 3.3V 输出而我手里的编码器需要 5V直接插上去编码器灯亮但输出波形很弱。后来在原理图里找到供电跳线调整到 5V 才正常。所以上电前一定要先确认传感器工作电压和板卡供电选项一致否则很容易出现“信号看起来有但边沿触发不了”的诡异现象。2.2 霍尔传感器与增量编码器的接线、供电与抗干扰细节霍尔传感器在 SRM 上通常是三只开关型霍尔间隔一定的机械角度安装输出三路高低电平状态。接线时除了 VCC 和 GND三个信号输出分别接到板卡的 HALL1/HALL2/HALL3每个信号对应 MCU 一个定时器输入通道。霍尔传感器带集电极开路输出时需要外部上拉电阻大多数评估板默认已经在信号线上放了 4.7kΩ 到 10kΩ 的上拉所以只要你的霍尔是标准 OC 输出直接插上基本就能用。增量编码器接线稍微讲究一些。A 相、B 相、Z 相三路信号A/B 相差 90 度电角度MCU 通过定时器的编码器模式对两路边沿同时计数可以实现 4 倍频细分Z 相每转一圈一个脉冲通常接到一个单独的外部中断引脚用来做绝对零点校准。编码器输出有推挽和差分两类SRM 这种功率级的开关噪声很大我强烈建议用带 RS422 差分输出的编码器抗共模干扰能力强很多信号经过板载差分接收芯片后进入 MCU误触发概率明显降低。传感器供电也值得单独说。SRM 功率级开关瞬间会产生很大的 dI/dt母线电压和地平面的噪声都很高如果传感器和 MCU 共用一路电源位置信号很容易被污染。最好给传感器单独供电或者在供电入口加磁珠和去耦电容。信号线要采用屏蔽双绞线屏蔽层单端接地接在控制板的地上不要两头接地形成地环流。还有一个小细节传感器信号线上通常已经有滤波电容但如果现场电磁环境特别恶劣可以在板卡输入端再并联一个几十皮法的小电容用来吸收纳秒级毛刺。注意电容不能太大否则会把信号边沿磨圆导致编码器计数丢步。这个“滤波手感”需要实际调试时用示波器观察边沿幅度来决定。3. 软件配置从 CubeMX 到 SRM 换相控制的完整链路3.1 CubeMX 初始化定时器、ADC、调试串口一个都不能少传感器硬件接好了接下来就是软件。STEVAL-CTM015V1 的工程可以用 STM32CubeMX 生成底层初始化再结合固件库手写 SRM 控制逻辑。打开 CubeMX首先要配置的是时钟树让主控 CPU 跑到标称最高主频否则后面 PWM 频率、ADC 采样频率、速度环计算周期都会受限。三相 PWM 输出通常是核心。SRM 驱动不一定需要像 BLDC 那样互补 PWM但 STEVAL-CTM015V1 的功率级依然支持多种开关方式我建议用高级定时器的三个互补通道输出六路 PWM同时使能刹车输入方便过流保护直接把 PWM 拉低。PWM 频率的选择上SRM 的相电感小、电流纹波大开关频率太低会导致电流峰值很大太高又会增加开关损耗一般在 10kHz 到 40kHz 之间折中我调试时先用 20kHz。传感器信号对应的定时器配置也在这里做。如果用增量编码器把某个通用定时器比如 TIM2的两个通道分别接 A、B 相在 CubeMX 中把这个定时器的 Combined Channels 设置为 EncoderMode这样硬件会自动做正交解码不用写中断处理计数器的值直接代表转子位置。Z 相脉冲则接到另一个引脚并配置为外部中断每转一圈清零一次计数便于累计角度。霍尔传感器的配置方式不一样。三个霍尔信号可以接到定时器的三个输入通道也可以接普通 GPIO 并配置 EXTI 外部中断每次任一霍尔状态跳变时中断里读取三路电平状态查表得到转子位置。用定时器异或输入模式也是一种办法但中断查表最直观我在调试阶段会先这么写稳定之后再考虑优化。电流采样 ADC 也不能忽略。SRM 控制需要知道相电流的大小来做电流环闭环板载电流采样运放的输出接入 MCU 的 ADC 引脚。关键点是设置 ADC 采样触发源用 PWM 定时器的 TRGO 事件来触发 ADC 注入组采样保证每次采样都落在 PWM 周期的固定点避免在 MOSFET 开关沿附近抓到巨大的尖峰。母线电压采样同样接到另一个 ADC 通道随时监控是否过压欠压。UART 调试口建议留一路初期几乎全靠它。打印内容至少包括当前转子角度、传感器累计位置、三相电流、母线电压、速度给定、速度反馈、故障标志。波特率设置高了容易丢数据我一般先用 115200等逻辑稳定后再考虑提高。3.2 换相表、转子位置映射与角度计算SRM 控制里最核心的软件逻辑就是把传感器读到的转子位置映射成“哪些相该导通”。这一步很多入门者会懵因为不同极数的 SRM 换相顺序完全不同错一步电机就不转。以三相 6/4 极 SRM 为例定子 6 个极转子 4 个极。转子每转过一个转子极距也就是 90 度机械角三相就完成一轮“导通-关断”循环对应一个电气周期。所以电机每转一圈经历 4 个电气周期。如果采用单相导通方式一个电气周期内三相轮流导通每一相导通 1/3 个电气周期也就是 120 度电气角相当于 30 度机械角。在这个基础上我们还需要给导通区间加“提前开通角”和“提前关断角”。因为相绕组有电感电流建立需要时间如果在电感刚进入上升区时才开通电流还没上来转子已经跑远了转矩输出会不足。所以高速时要提前几个电角度开通在电感下降区到来之前也要提前关断避免负转矩。这个提前角不是常数需要根据转速做前馈补偿调试阶段可以先给固定小角度比如 5 到 10 度电角度观察电流波形再调整。编码器分辨率对角度精度的影响也很大。假设编码器每圈 1000 个脉冲4 倍频后每圈有 4000 个计数单位平均每个机械角度约 11 个计数每个电气周期90 度机械角对应 1000 个计数理论上足够做 1 度级别的换相控制。如果编码器只有 250 线4 倍频后每圈 1000 计数每个机械角度不到 3 个计数高速时换相精度明显不够就会出现电流波形畸变、转速不稳。霍尔传感器加细分观测器可以部分弥补低分辨率问题——在相邻霍尔状态之间用速度估算角度但实现复杂度高。我的建议是如果不是成本极其敏感直接上高线数编码器省下的调试时间远大于编码器差价。3.3 电流环与速度环参数初值怎么给位置信号搞定后下一步就是电流环和速度环的 PI 参数。这里我不会直接给一组“包治百病”的系数因为参数跟相电感、母线电压、采样电阻、PWM 频率都有关系但初值逻辑是通用的。电流环带宽通常取开关频率的 1/10 到 1/20。20kHz 的 PWM电流环带宽按 1~2kHz 来设计对应的比例增益 Kp 和积分时间 Ti 需要结合电机的相电感 L 和相电阻 R。SRM 的相电感很小尤其是在转子齿对齐位置附近电感会降到很低Kp 太大会导致电流振荡太小又跟不上换相变化。建议刚开始把电流环带宽放低到 500Hz 左右跑起来后再逐步推高。速度环带宽比电流环低一个量级一般 10Hz 到 50Hz 已经足够。速度环的采样周期可以用编码器更新事件触发也可以固定时间基准比如每 1ms 计算一次。初值给一组很保守的比例增益和很小的积分增益观察速度阶跃响应继续往大的调直到出现轻微超调后再回退 20%算是一个比较保守的整定方法。还有一组必须确认的参数是电流和电压标定。从原理图找到电流采样电阻阻值和运放放大倍数把 ADC 原始值换算成实际电流母线电压的分压系数也要确认。很多调试问题不是算法错了而是反馈数值偏了一倍导致速度环认为已经到目标、其实电机的实际转速差着十万八千里。4. 实测调试与故障排查实录4.1 上电前的检查和开环小占空比验证板子通电之前我有一套固定流程。先用万用表量一遍母线电容两端电阻确认没有短路再把示波器探头夹到传感器信号线上手动旋转电机轴观察霍尔或编码器信号是否随角度变化边沿是否干净。这一步一定要做能过滤掉一半以上的低级问题。传感器信号正常后不要直接进闭环先做开环验证。让 MCU 输出一组固定的换相状态比如只让 A 相上桥臂和下桥臂以 10% 占空比导通观察相电流波形是否和预期一致。如果电流建立正常说明功率级、电流采样通道都工作。然后给一个很慢的换相周期比如每 50ms 切换一相手动旋转电机感受是否有明显的磁阻力确认换相顺序和传感器位置是否匹配。安全上要特别强调一点开环调试时母线电压先给到额定值的 10% 到 20%比如目标母线 300V就先用 30V 到 60V 验证逻辑。这样即使换相表错了电流和损坏风险也小很多。4.2 电机反转、抖动、失步时的相序判断方法调试中遇到最多的问题就是“电机反转”和“启动抖动”。反转通常有两种原因一是三相相序接反了换个相序就能解决二是传感器信号的极性映射反了也就是霍尔状态表与实际转子位置不匹配。用示波器同时看霍尔信号和 PWM 输出手动慢速旋转电机记录每个霍尔状态对应的转子位置再和程序里的换相表逐条核对问题很快就能定位。启动抖动则复杂一些。可能是换相表有一到两个状态错位也可能只是占空比太小转矩不足以克服静摩擦。先加大占空比试试如果大占空比下依然抖基本就是换相逻辑问题。还有一种情况是编码器的 A/B 相接反了导致位置计数方向与电机实际旋转方向相反位置反馈每走一步都在反向修正整个系统震荡起来就是这个表现交换 A、B 两相即可。高速失步通常发生在传感器方案已经能跑低速、但转速一上去就丢步的阶段。常见原因是换相提前角没有随速度补偿电流建立时间不变但转子在这个时间内转过的角度变大了导致实际导通区间落入电感下降区转矩突然消失。另外编码器分辨率不足也会导致高速下换相滞后检查一下位置采样周期和速度环计算周期是否足够快。4.3 常见问题速查表我把这段时间调试 STEVAL-CTM015V1 遇到的高频问题整理成一张表方便后来人直接对照。故障现象可能原因处理方法上电后电机完全不动传感器供电缺失或接线错误用示波器检查霍尔/编码器供电与波形启动抖动、咯咯响换相表与传感器位置映射错误慢速手动旋转电机逐状态核对换相表电机反转相序接反或传感器 A/B 接反交换任意两相输出或交换编码器 A/B低速正常、高速失步换相提前角未补偿或编码器分辨率不足增加随转速变化的角度前馈更换高线数编码器母线过流报警导通角过大或关断角太晚减小提前关断角检查电流环限幅相电流波形严重不对称某一路采样通道偏置或增益异常用标准电压源校准电流采样通道传感器信号毛刺多屏蔽接地不良或滤波电容不足改用差分编码器屏蔽层单端接地还有一个容易忽略的点SRM 的电流峰值很大母线电容上的瞬间压降会导致传感器供电电压跌落这类问题用示波器看传感器电源波形才能发现。如果发现供电在开关瞬间有几十毫伏的跌落可以在传感器供电端并联一个较大的电解电容效果立竿见影。最后再分享一个我自己的习惯即使评测板已经帮你排好了传感器接口也建议在正式调试前花半小时用示波器把所有位置信号和电流采样点都抄一遍特别是了解信号的正常电平范围。我在第一次点亮这块板时就因为提前把传感器信号和 PWM 触发时序对齐好省下了大量排查相序的时间。传感器方案看似简单但真正要把 SRM 调得稳定、安静、高效每一步都需要回头用波形和数据说话。
返回列表