• 正文
  • 相关推荐
申请入驻 产业图谱

C2000双轴伺服电流环:采样到 PWM 更新 5 段时序、带宽与延迟分析

1小时前
61
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一台双轴伺服驱动器:一块 TMS320F280049C LaunchPad 带两块三相 GaN 逆变器板,一颗 MCU 同时驱动两台电机。24V 输入,每相 7Arms,PWM 载波 10kHz,电流环带宽做到 5kHz。

两轴各跑一套电流环,三个 ADC 要覆盖两台电机的相电流与母线电压。设计里把 FOC 与电流调节算法拆到 CPU、CLA、TMU 上并行处理,两轴的运算挤在同一个载波周期里;带宽与相位裕度由 SFRA 在线测控制环频率响应验出来。

一次电流环里两轴各跑四段,保护链全程并行

这套设计给出的延迟值是 2.02μs——从相电流采样到 PWM 更新,F28004x 上每个电机跑完这一段的时间。传统控制方案里,这段延迟通常是一个完整采样周期,控制动作要等到下一个周期才生效;快速电流环要求在同一个载波周期内把它跑完,目标压到 2μs 以内。

采样到 PWM 更新的延迟落在哪一拍

延迟变长,逆变器能加到电机上的最大电压会下降,电机电流的变化率受限,控制器性能跟着下降。10kHz 载波下把这段延迟压到 2μs 量级,电流环带宽可以做到 5kHz、相位裕度 45°,扭矩响应和电机的转速范围都跟着上去。

这个 2.02μs 属于这块板子在这套配置下的整条电流链,主频只影响其中一段。

一、这 2.02μs 由五段拼起来

一颗 F280049C 上的双轴快速电流环信号链

按一次电流环的时间顺序拆:

① 采样触发。 载波周期里由 ePWM 事件启动 ADC 转换。三相电流经逆变器板上 5mΩ 的串联取样电阻进来,0.1% 精度的相电流采样;F280049C 上三个 12 位 ADC 接相电流与母线电压。采样时刻与载波的相对位置,决定后面所有计算拿到的是哪一时刻的电流值。

② 转换完成与交接。 转换结束,结果进结果寄存器,控制律运算要被唤醒。这套设计把 FOC 与电流调节拆到 CLA 和 TMU 上与主 CPU 并行,CLA 响应外设触发、与主 CPU 同时执行,不占主 CPU 的中断入口。从转换结束到运算真正开始,中间还有结果搬运、触发响应这两段。

③ 运算。 电流调节器在 CLA 上跑,关键代码放 Flash 还是零等待 RAM、中断怎么嵌套、DMA 和总线谁在占用,都会改变这一段的时间。五段里只有这一段在“算”,主频影响的是这里。

④ 比较值装载。 算出来的比较值与周期值写进影子寄存器,在下一个装载点统一生效,跟载波对齐。写进去不等于立刻输出,装载时点决定这一拍的控制量落在哪个周期。

⑤ 硬件保护。 窗口比较器持续监视相电流,越限直接把 PWM 引脚封住,不经过 CPU。这一条与运算并行存在,功率级过流时起作用的是硬件路径,软件判断不在这条链上。

一次电流环的五段:四个工位沿导轨依次动作,硬件保护全程并行

五段里,四段是硬件链的时序,一段是指令执行。这条链跑顺了才有那 2.02μs,也才有 5kHz 的带宽。换掉 C2000,参数表可以一项项对齐,甚至每项数值更高,但这五段每一段都由这颗芯片的外设链决定,换一颗料就得重新确认一遍。

二、换料之后,失效的是这条结论

换一颗料,2.02μs 这个数字就不能再沿用,要在台架上重新测一遍。

它属于那块板子:

① 触发事件在载波的哪个位置发出;

② ADC 转换多久;

③ CLA 什么时候被唤醒;

④ 比较值在哪个装载点生效;

⑤ 比较器输出走哪条路径封锁 PWM——每一段都绑在 F280049C 的硬件链上。

换料之后,即使电流环代码一行不改地编译通过,这些时刻也全部变了。

延迟变长的后果会顺着一条链传下去:延迟变长 → 可用电压下降 → 电流变化率受限 → 带宽与相位裕度跟着下降。台架上要交的,是这条链逐环重新跑过一遍的记录,不是一张新的参数对照表。

三、五环重测清单

电流环重测按环推进,拆出的五段就是这五环。第二列是换料后要先确认的机制,第三列是确认完仍要上板记录的量。

实测项只写动作与要记录的量。数值门限、采样次数、分位数由项目自己的验收规范给定;哪一环的机制查不到,就把这一环整段排进台架,不用相邻环节替代。

环 换料后先确认什么 台架上要记录什么
采样触发 触发事件由谁发起、能否与载波对齐、触发到采样保持的通路 ① 触发事件到采样完成的时序
② 触发源与采样通道的对应关系
③ 通信或另一轴中断并发时这条时序的变化
转换完成与交接 结果寄存器映射、转换结束到运算被唤醒的路径、结果搬运方式 ① 转换结束到结果可读取的时延
② 结果寄存器更新时点
③ 搬运完成与运算启动的相对时点
运算 关键代码可放在哪类存储器、中断与触发的响应方式、总线主有哪些 ① 关键代码放进指定存储器后的最坏执行时间
② 中断进入与退出开销
③ 其他总线主占用时执行时间的变化
比较值装载 缓冲与双缓冲寄存器是否存在、装载由哪个事件使能、生效点怎么定 ① 比较值写入后的实际生效时点
② 生效时点与载波的对齐
③ 连续两个周期内输出波形的变化
硬件保护 比较器输出接到哪里、封锁 PWM 引脚的路径是否依赖软件 ① 保护事件到 PWM 引脚封锁的链路时间
② 比较器检测、寄存器访问、输出禁止各段的实际耗时
③ 封锁后引脚电平保持状态

四、两种换法,改动层数不同,五环一个不少

走迁移路线,保住板子与大部分代码(从 F28004x 器件族迁到 G32R501)。

项目 迁到 G32R501 后 对五环清单的影响
寄存器位域 改名 逐模块都有明确对应,前几环沿用原来的对应关系
库函数传参 调整 同上
工程文件与工具链 跟着换 同上
板子与大部分代码 不动,沿用 五环仍要逐环上板复测
IQmath 数学库跑分 只说明运算性能 清单里每一行的实测项都不减

走重搭路线,指令集、SDK、工具链一起换。

瑞萨 RA8T2(R7KA8T2JFLCAB#BC1)这边是事件直连、GPT32 缓冲与双缓冲寄存器、POEG 输出禁止、高速比较器,给到的是机制与给定条件下的分段值:

给到的量 条件里不含什么 对应清单里哪一环
POEG 输出禁止时间 比较器检测时间 硬件保护
寄存器设置一项 寄存器访问时间 硬件保护
访问周期表 DMA 等总线主并发的情形 运算
GPT32 缓冲与双缓冲寄存器 装载后与载波对齐的实际时点 比较值装载

这几处不含的部分,就是必须上板测的部分。缓冲寄存器配好了,装载后与载波对齐的实际时点仍要在板上记。

同一厂商跨代换料也一样。从 F2837x/2807x 换到 F28P65x,PCB、GPIO 与模拟复用、应用代码、EABI 格式都要逐项改。管脚对得上,链路时序仍要重新核。

两条路线的差别在改动层数:迁移路线改寄存器命名、库函数与工程文件,先跑采样触发与硬件保护两环;重搭路线连工具链一起换,先跑比较值装载与运算两环。五环的清单本身不变,也不因为哪条路线少几行改动就少几行实测。

本篇基准取 F280049CPZS。TI 更新一代的 F28P65x、极海另发的 G32R502 属另外两条产品线,不进这张清单。

五、清单怎么排进项目

按环推进:先把第二列的机制逐环确认下来,第三列剩下的项按台架工时排进去。三种常见场景可以先跑不同的两环——

场景 先跑哪两环 原因
存量板保供 采样触发、硬件保护 板子与功率级不动,触发链和保护路径的时序变化直接影响原来的验收结论
新项目重做 比较值装载、运算 缓冲机制与代码放置要重新配置,这两环决定电流环能不能跑进目标带宽
换 SDK 与工具链 运算、转换完成与交接 SDK 自带的中断与 DMA 配置会改变搬运与执行时间,这两环的记录值先变

具体数值以板上的记录为准。

收尾

C2000 换料交付时,交的是五环逐环的上板记录;参数表单独归档。五环的时序值不随代码一起迁移,要逐环重新测。

相关推荐