This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MCF8316A:无法获得 Kp &ki 用于 CURRENT_LOOP 和 SPEED_LOOP、MPET 后

Guru**** 1135610 points
Other Parts Discussed in Thread: MCF8316A, MCF8316C-Q1
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1342841/mcf8316a-can-not-get-the-kp-ki-for-current_loop-and-speed_loop-after-mpet

器件型号:MCF8316A
主题中讨论的其他器件: MCF8316C-Q1

您好!

在 MEPT 之后、我得到 R、L 和 BEMF、寄存器 E0和 E2都为0x00。

F0H 和 F2H 的前几位始终为0、但保留位始终在变化、这很奇怪。 最后、我无法获取 CURR_LOOP 和 SPEED_LOOP 的 ki 和 KP。

发生什么事了?

您能帮我解决这个问题吗?

非常感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eddie:

    我将研究您的问题并尝试重新创建它、并将在下周早些时候为您提供更新。

    此致、
    埃里克·C·

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢!

    上次我尝试将 测量值写入 EEPROM 时、结果如下、希望这可以帮助您了解更多有关这个问题的信息并帮助我修复它。

    E6、F0和 F2的测量是:

    E6:9F454E00

    F0: 0004F2A7

    F2:000CE62F

    EEPROM (我在写入后读取)的值 为:

    8A:1AAD9F4E

    8C:22800004

    8e:2FCE4E88

    为了更好地查看、我将数据从寄存器中切出:

    RAM 寄存器的测量如下:

    电流_循环_KP
    F0h(位~)31 μ s
    0000000000
    电流_循环_KI
    F0h(bit12~)μ s
    0001001111
    速度_循环_KP
    (~位22)31 μ s
    0000000000
    速度_循环_KI
    (~位12)21 μ s
    0011001110

    EEPROM 的值为:

    电流_循环_KP
    (通道~位13)22 μ A
    0000000000
    电流_循环_KI
    (通道~位3)12 μ A
    0000000000
    速度_循环_KP
    (通道~bit0)2 μ A 高电平
    (Ω~位24)30k Ω-低电平
    1000101111
    速度_循环_KI
    (μ H~位14)23 μ A
    1100111001

    我查看了规格、下面有一些说明

    31-22 电流_循环_KP R 0h 电流环路 KP 的10位值;与 CURR_LOOP_KP 的缩放比例相同

    因此我认为 EEPROM 的值应该与 RAM 的测量值相同。 但它们为什么不同呢?  

    请帮我解决这个问题,谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eddie:

    首先、为了澄清、MPET 结果包括电机相电阻、相电感、反电动势常数、速度环路 KP 和速度环路 KI。 要使器件进入正常电机运行、需要将所有5个参数设置为非零值。

    速度环路 KP/KI 有2组寄存器、一组用于用户配置、另一组用于只读用途:

    • 用户可配置的速度环路 KP
      • Closed_LOOP3:::SPD_LOOP_KP [2](3 msb)
      • Closed_LOOP4:::SPD_LOOP_KP [30:24](7LSB)
      • 合并形成10位值
    • 用户可配置速度环路 KI
      • Closed_LOOP4:::SPD_LOOP_KI [23:14](10位)
    • 只读速度环路 KP
      • SPEED_PI:::SPEED_LOOP_KP
    • 只读速度环路 Ki
      • SPEED_PI:::SPEED_LOOP_KI

    与速度环路 KP/KI 类似、电流环路 KP/KI 也有2组寄存器。 但与速度环路 KP/Ki 不同、可在用户可配置的寄存器中将电流环路 Kp 和 Ki 指定为0、并且算法将在电机运行期间自动确定合适的值。

    • 用户可配置电流环路 KP
      • Closed_LOOP3:::CURR_LOOP_KP [22:13](10位)
    • 用户可配置电流环路 Ki
      • Closed_LOOP4:::CURR_LOOP_KI [12:3](10位)
    • 只读 电流环路 KP
      • CURRENT_PI:::CURRENT_LOOP_KP
    • 只读电流环路 KI
      • Current_PI:::current_loop_Ki

    我认为只读 SPEED_PI 和 CURRENT_PI 寄存器中的反常值是 MCF8316A 寄存器定义中的错误所致。 经过一些测试、我认为下面是正确的位域定义:

    • SPEED_PI::SPEED_LOOP_KP [9:0]
    • SPEED_PI::SPEED_LOOP_KI [19:10]
    • SPEED_PI::保留[31:20]

    同样、在 CURRENT_PI 寄存器中、这些应该是正确的位字段定义:

    • CURRENT_PI::CURRENT_LOOP_KP [9:0]
    • CURRENT_PI::CURRENT_LOOP_KI [19:10]
    • CURRENT_PI::保留[31:20]

    很抱歉让人感到困惑。 我认为位域定义中的此错误已在较新的固件版本 MCF8316C 中得到修复。

    此致、
    埃里克·C·

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好埃里克,谢谢你的友好回答,但我仍然很困惑。

    第一个:  我在 MCF8316A 或 MCF8316C-Q1中找到的速度环路 KI 寄存器为 14~23 ,它是不同的,你告诉我(见下文),你能帮助确认它.

    • 用户可配置速度环路 KI
      • Closed_LOOP4:::SPD_LOOP_KI [22:13](10位)

    秒:  我在 MCF8316C-Q1中检查的 RAM 中的寄存器也有所不同、正如您所说的那样

    也请帮助确认。

    第三个:Motor_Stop 触发条件是什么?

    希望您能帮助我尽快修复、并为我提供正确 PDF 的链接?

    此致、

    埃德迪

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    第四个:
    与速度环路 KP/KI 类似、电流环路 KP/KI 也有2组寄存器。 但与速度环路 KP/Ki 不同、可在用户可配置的寄存器中将电流环路 Kp 和 Ki 指定为0、并且算法将在电机运行期间自动确定合适的值。

    RAM 中的 CURR_KP 和 ki 不是0、但 在 EEPROM 中它们是0、这是正确的吗? MCF8316A 的数据表中未显示该点。

    2.如果我在 EEPROM 的 CURR_KI 和 KP 中设置的值不是0,会发生什么情况? 电机是否会在我写入的设置下运行?

    3.如果我在 EEPROM 的 CURR_KI 和 KP 中设置非0的值、这些值是否会自动更改?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eddie:

    第一:  抱歉、这是我这边的拼写错误。 我更正了上面回答中的几个拼写错误(绿色颜色)、包括与重复 Ki 相关的拼写错误

    第二:  [SPEED_PI]和[CURRENT_PI] RAM 寄存器的位字段定义为 仅 MCF8316A 数据表中有错误 。 不过、 MCF8316C-Q1数据表中的定义是不同且正确的。

    MCF8316中的[SPEED_PI] RAM 寄存器不正确 A  产品说明书:

    • SPEED_PI::SPEED_LOOP_KP [31:22]
    • SPEED_PI::SPEED_LOOP_KI [21:12]
    • SPEED_PI::保留[11:0]

    MCF8316的[SPEED_PI] RAM 寄存器正确 A

    • SPEED_PI::SPEED_LOOP_KP [9:0]
    • SPEED_PI::SPEED_LOOP_KI [19:10]
    • SPEED_PI::保留[31:20]

    MCF8316中的[CURRENT_PI] RAM 寄存器不正确 A  产品说明书:

    • CURRENT_PI::CURRENT_LOOP_KP [31:22]
    • CURRENT_PI::CURRENT_LOOP_KI [21:12]
    • CURRENT_PI::保留[11:0]

    MCF8316的[CURRENT_PI] RAM 寄存器正确 A

    • CURRENT_PI::CURRENT_LOOP_KP [9:0]
    • CURRENT_PI::CURRENT_LOOP_KI [19:10]
    • CURRENT_PI::保留[31:20]

    第三: 当 提供0%输入占空比/速度命令时、发出电机停止命令。 这取决于使用的 SPEED_MODE:

    • 模拟速度 控制
      • 电机停止命令=当0 < VSPEED < VEN_SB 时
    • PWM 速度控制
      • 电机停止命令=  VSPEED < VDIG_IL 的时间超过 TEN_SB_PWM 时
    • I2C 速度控制
      • 电机停止命令=当 DIGITAL_SPEED_CTRL = 0时

    第四:

    • 用于速度环路 Kp 和 Ki
      • [SPEED_PI] RAM 寄存器  仅用于存储 MPET 测量的结果 。 如果手动更改 EEPROM SPD_LOOP_KP/KI 寄存器值、RAM 寄存器不会更改。
      • 如果 EEPROM 影子寄存器速度 KP/KI 值为0、器件将运行 MPET、然后自动将结果从 RAM 寄存器复制到 EEPROM 影子寄存器中。
      • EEPROM 影子寄存器值是算法实际使用的值。
    • 用于电流环路 Kp 和 Ki
      • 如果 EEPROM 影子寄存器值为0、算法将在电机运行时自动确定合适的值并将它在 RAM 寄存器中使用的值存储到
      • 如果手动 设置  EEPROM CURR_LOOP_KP/KI 寄存器值、算法将使用您写入的值、RAM 寄存器也将更新为与电机运行时在 EEPROM 影子寄存器中写入的值相同的值。
      • RAM 寄存器值是算法实际使用的值。

    希望这能澄清问题。

    此致、
    埃里克·C·

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Eric、

    感谢您的答复、 这次非常非常清楚。

    由于我们的沟通不够及时、我会一次性向您提出许多问题。 请帮助我澄清:

    第一个问题:
    从开环控制转换到闭环控制后、第一级是闭环的慢速加速阶段。 此阶段的退出条件是什么? 我们如何确定闭环的慢速加速阶段结束的时刻?

    第二个问题:
    在闭环慢速加速阶段、它仅由 CL_SLOW_ACC 和 THETA_ERROR_RAMP_RATE 控制吗? SPEED_KP/KI 也相关吗?

    第三个问题:
    闭环加速阶段是否仅受 SPEED_KP/KI 的影响? 如果不是、还有哪些其他参数会影响它?
    第四个问题:
    我们运行了一些测试、并对两个图像有一些问题:
    在第一个图像中:
    进入闭环控制后、电机不旋转;通道2的相电流中没有波形、但通道1上的 FG 波形(配置为闭环输出)完成。 可能的原因是什么? 可以调整哪些参数来解析该问题?
    闭环参数设置:SPEED_KP=1.2、Speed_KI=15、CL_SLOW_ACC=20Hz/S、THETA_ERROR_RAMP_RATE = 0.5deg/ms、电流 KP/KI 由系统自动计算、PWM=20%
    第二个图像:
    进入闭环后不久、相电流降至零、持续约200ms、然后增加至 ILIMIT。 FG 波形始终正常、但电机不转动。 可能的原因是什么? 哪些参数需要调整?
    闭环参数设置:SPEED_KP=1.2、Speed_KI=15、CL_SLOW_ACC=20Hz/S、THETA_ERROR_RAMP_RATE = 0.5deg/ms、电流 KP/KI 由系统自动计算、PWM=100%
    第五个问题:
    根据规格表、Speed_KP、Speed_KI、CL_SLOW_ACC 和 THETA_ERROR_RAMP_RATE 等闭环参数是影响整体闭环控制的重要因素。 是否有调优指南可帮助我们调整这些参数、尤其是应如何配置 CL_SLOW_ACC 和 THETA_ERROR_RAMP_RATE?
    此外、还有哪些其他参数会影响闭环控制?
    第六个问题:
    当前 KP/KI 变化的频率如何? 例如、在 PWM 为20%且持续一分钟时、当前 KP/KI 是在该分钟内只有一个值、还是在不断地对其进行调整?
    如何使用电阻器、电感器和其他参数计算 Kp 和 Ki、公式是什么?
    我希望这能够澄清您的问题、谢谢。

    此致、
    Eddie。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eddie:

    1. 当 θ 误差 (Ɵgen -Ɵest)降为0时、闭环慢速加速阶段退出。 主要是当器件的换向输出矢量与估算器的转子角度完全一致时。

      您可以监控 Algorithm_State 位字段。
      当器件处于区域 III 闭环慢加速时、Algorithm_State = 8h MOTOR_CLOSED_LOOP_UNaligned
      当器件处于 IV 闭环加速区域时、Algorithm_State = 9h  MOTOR_CLOSED_LOOP_aligned

      遗憾的是、 由于 MCF8316A 的 I2C 勘误表、持续监控 Algorithm_State 仅适用于 MCF8316C
    2. 是的、我的理解是 CL_SLOW_ACC 直接控制区域 III 中的加速情况。让我向我们的固件设计团队确认 Speed KP/KI 在此阶段是否发挥了作用。
    3. 在区域 IV 闭环加速阶段、CL_ACC 和 CL_DEC (如果 CL_DEC_CONFIG = 0)配置速度基准的线性变化率 、即使 输入速度命令有阶跃变化也是如此。  请注意、在减速期间、如果启用了 AVS、器件将自动减慢 SPEED_REF 中的减速率、以防止 CL_DEC 过快时 VM 上出现电压浪涌。

      由于 SPEED_REF 根据 CL_ACC/CL_DEC 线性变化、因此速度 PI 环路使用其 KP/KI 根据 SPEED_MEAS 和 SPEED_REF 之间的误差确定新的换向输出。
    4. 图1
      您会在电机不旋转时看到 FG 输出、因为电机已失速(驱动器正在换向、但电机失去同步)。 如果驱动器在电机失速时继续加速、在某个时刻、将触发 ABN_BEMF 故障。

      许多因素都可能导致电机失去同步。  电机是否 在开环期间完全旋转? 否则、意味着静止启动和开环配置不正确。
      确保静止启动(看起来您正在使用 IPD?) 已经针对您的电机进行了很好的调整。 开环是指电机的盲换向、因此 需要优化 OL_ILIMIT 和 OL_ACC_A1/A2、以确保您的电机在进入闭环之前可靠地跟上盲换向。 通常、确保足够的 OL 电流可以克服电机的初始惯性/摩擦、且 OL 加速率不会太快(较快的 OL 加速需要较高的 OL 电流)。

      图2
      我不确定是什么导致相电流短暂降至零。 再强调一次、如果电机甚至未在开环中运动、它就无法成功地在闭环中旋转电机。 您也可以尝试使用 OL->CL 切换设置。 增大 AUTO_Handoff_MIN_BEMF 可以使器件保持开环更长、直到电机达到更高的速度/BEMF、以便更可靠地转换到 CL。
    5. 请参阅 MCF8316A 调优指南 和 MCF8316A 设计挑战和解决方案 有关调优说明
    6. 让我来向我们的固件设计团队解释一下、我会回来与您联系。

    此致、
    埃里克·C·