主题中讨论的其他器件:SFRA、 controlSUITE、 TMS320F28379D
工具/软件:
尊敬的 C2000团队:
我根据 controlSUITE 中的 FCL_SFRA_XL 示例在 TMS320F28379D 上运行、正在开发一个双电机控制工程。 我修改了代码、使用17位 BiSS-C 绝对编码器来代替默认增量(QEP)编码器。
系统配置:
-
MCU:TMS320F28379D
-
基本工程:FCL_SFRA_XL (controlSUITE)
-
构建级别:FCL_LEVEL3 (电流环路控制)、FCL_LEVEL 4 (位置环路)
-
电机:PMSM
-
测试的编码器:
-
EnDat (13位绝对值)–电机达到最大速度并按预期运行
-
BiSS-C (绝对17位)–电机在1700 rpm 的转速下卡滞、之后不会增加电机转速。
-
-
问题1:电机在具有 BiSS-C 的 FCL_LEVEL3中失速
使用 FCL 级别3的 BiSS-C 编码器:
-
电机正常启动并以中低速运行。
-
它无法加速超过某个点。
-
未触发任何故障、但电机会失速或卡在恒定转速下。
-
相同的电机和参数可与 EnDat 编码器完美配合使用并达到全速运行。
问题2:位置循环中意外的反向旋转
在通过位置控制的较高构建级别(FCL_LEVEL4)中:
-
电机有时正常工作并正确跟踪位置。
-
然而、电机间歇性地在高速突然反向旋转。
-
这通常在目标位置转换期间或转换后立即发生。
-
未设置故障标志、但控制器似乎暂时施加完全反向扭矩。
。
-
实现详细信息:
-
BISS-C 反馈是使用自定义 bissc_angle_read ()函数读取的。
-
MechTheta 的计算公式如下:
bissc.RawTheta = 1.0 -((float) bissc_data_struct.position / 131072.0);// 17位bissc.MechTheta = bissc.RawTheta - bissc.InitTheta; -
电角推导如下:
bissc.elecTheta =_IQfrac (PolePairs * bissc.MechTheta);电机->elecTheta = bissc.elecTheta; -
各编码器类型的 FCL 和 ISR 时序保持不变。
-
FCL 之前在 A 任务内更新角度读取值。
观察结果:
-
在低速运行期间、所有编码器值都显示为稳定状态。
-
Electeta 正确包装在0.0和1.0之间。
如有任何建议或最佳做法可以解决这一问题、将不胜感激。 如果您需要日志、代码片段或其他测试数据、请告诉我。
谢谢您、
Divyesh Patel。