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.

[参考译文] LAUNCHXL-F280049C:SDK RsOnline 失败、MTPA/FW

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1004453/launchxl-f280049c-sdk-rsonline-fails-mtpa-fw

器件型号:LAUNCHXL-F280049C

SDK V2.01 LAB13:

未记录函数代码 runRsOnline()重校准 SPRUHJ1H–2013年1月–2019年6月修订版。

通过 motorVars.RsOnLine_Ohm ping pongs 值和禁用本地 runRsOnline()调用,对 user.h motorVars.Rs_ohm 进行预生成内联运行时间更新。   SPRUHJ1H 没有提到为了 使更改生效必须通过 EST_setFlag_updateR()更新用户值。 我看到我的内联代码(如下所示)起作用、但仅在第一次电机运行时才起作用、并且它并不总是通过大于5Hz 转子速度的标志正确更新 Rs_ohm。 电阻更新应是有效的电机运行时间分析。  

因此,runRsOnline()未能正确校准电阻,电流在电机启动前变为微平,转子急动360°。 但是、在电机运行时更新期间、估算器 ROM 算法并不总是返回正确的电阻或更新 Rs_ohms 校准结果。 如果 RsOnline 算法无提示地更新  user.h  motorVars.Rs_ohm ,为什么 runRsOnline()具有电阻测试,如文档所述? 似乎 ROM 算法无提示更新不会回调写入  user.h motorVars.Rs_ohm。  因此、当用户设置标志以更新  user.h motorVars.Rs_ohm 时、ping pongs 2变量值都是错误的。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//
// setup the space vector generator (SVGEN) module
//
SVGEN_setup(svgenHandle, estOutputData.oneOverDcBus_invV);
/* Check rotor speed <1Hz, enable/disable Force Angle */
if((motorVars.speed_Hz < USER_FORCE_ANGLE_FREQ_Hz) &&
(motorVars.flagRunIdentAndOnLine == true)) //(motorVars.flagEnableForceAngle == false) &&
{
/* Enable Force Angle when rotor speed <1Hz */
EST_setFlag_enableForceAngle(estHandle, true);
motorVars.flagEnableForceAngle = true;
/* get the user.h Rs coil ohms*/
//motorVars.Rs_Ohm = USER_MOTOR_Rs_Ohm;
/* set the Estimator OnlineRs update flag */
//EST_setFlag_updateRs(estHandle, true);
/* Enable Online Rs Recalibration flag */
motorVars.flagEnableRsOnLine = true;
/* Enable slow speed estimator Maximum cold starting torque */
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

关于 FW、MTPA:流程图显示了过调制电流重构、但文本从未解释为什么3个电流传感器需要这种重构? 当采样窗口(140ns)奈奎斯特时间比50µs μ s PWM 周期快时、为什么100%占空比需要电流重构?

FW (fwc.h)不会显示任何公式来根据 user.h (USER_MOTOR_LS_d/q_H)确定 FW 模块的 ld/LQ 范围、因此 FW 通过默认表值减慢电机速度。 我假设一些工程师可以使用 FEA 定子电感 CSV 值、但 购买 任何 SPM 电机时不会给出 ld/LQ 表范围。  也许 LAB13 文本应该详细说明如何确定 ld/LQ 表范围、而不是假设读者在同一页上。

我必须是对的、电机200Hz (80Vdc)具有 B 相、C 相的良好正弦波、但 A 相是三角形。 电流重构会严重振荡210Hz、类似于燃烧发动机预点火。  

BTW:难以找到 ld/LQ 值的 fwc.h 表。 昨天我找到了它,但今天没有这样的运气。

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

    我发现乒乓问题的原因在于文档给出了每个人都知道的假设(估算器模型)是指实时 motorVars.Rs_ohms。  

    这两个标志在估算器内部执行不同的任务。 enableRsOnLine 标志允许运行整个 Rs 在线特性、更新保持最新电阻值的内部变量、并将电流注入 ID。 第二个标志 updateRs 允许电机模型使用电阻值。 如果从不设置 updateRs 标志但设置了 enableRsOnLine 标志、则电阻仍可用于监测电阻变化情况、但内部电机模型不会使用该变化的电阻。 如果电机温度大幅升高、并且电机模型中的电阻未更新(通过将 updateRs 标志设置为 true)、则 InstaSPIN 的性能将受到影响、并且不会达到所需的低速性能。 此外、电机可能无法在满负载下启动。

    enableRsupdate 标志会加载 motorVars.Rs_ohms、但需要在电机启动> 1Hz 运行时进行此更新、而不是静止不动。 更重要的是、enableRsOnline 标志必须在某些低速 Hz 时禁用、而不是保持运行背景。  SPRUHJ1H 第534页和 Lab10页讨论了需要静态加载值的附加参数。 以下是低速轨迹期间的内联调用,并禁用 RsOnline >10Hz 速度。   

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /* Check rotor speed <1Hz, enable/disable Force Angle */
    if((motorVars.speed_Hz < USER_FORCE_ANGLE_FREQ_Hz) &&
    (motorVars.flagRunIdentAndOnLine == true))
    /* Enable Force Angle when rotor speed <1Hz */
    EST_setFlag_enableForceAngle(estHandle, true);
    motorVars.flagEnableForceAngle = true;
    /* Enable Online Rs Recalibration flag */
    motorVars.flagEnableRsOnLine = true;
    /* Enable slow speed estimator Maximum cold starting torque */
    EST_setFlag_enableRsOnLine(estHandle, motorVars.flagEnableRsOnLine);
    /* clear the RsOnline coil ohms */
    //EST_setRsOnLine_Ohm(estHandle, motorVars.RsOnLine_Ohm = 0.0);
    /* sets the level of current tobe generated in Id reference */
    EST_setRsOnLineId_mag_A(estHandle, motorVars.RsOnLineCurrent_A);
    }
    //
    // run the space vector generator (SVGEN) module
    //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     

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

    是的、你是对的。 我们建议在低速运行电机时使 Rs 在线调光。 如上所述、您可以添加一些代码来执行此操作。

    [引用 userid="48581" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1004453/launchxl-f280049c-sdk-rsonline-fails-mtpa-fw 关于固件、MTPA:流程图显示了过调制电流重构、但文本从未解释为什么3个电流传感器需要此功能? 当采样窗口(140ns)奈奎斯特时间比50µs μ s PWM 周期快时、为什么100%占空比需要电流重构?[/引述]

    您可以查看有关 is08_overmodate_coff 的实验指南、其中详细介绍 了使用过调制时的电流重构。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1004453/launchxl-f280049c-sdk-rsonline-fails-mtpa-fw/3711725 #3711725"]我们建议在低速运行电机时在线调整 Rs。[/quot]

    Lab13在启动电机之前调用 runRsOnline(),该函数不起作用,并且与 SvGen_run()内联时的行为同样糟糕。 但是、代码与上面的内联调用类似、但看起来效果更好。

    如果 SvGen_run ()在启用 RsOnline 的情况下有效、是否仍然需要调用 EST_setRsOnLineId_mag_a (estHandle、motorVars.RsOnLineCurrent_A)? 请注意、它位于上面的代码 snip 和 Lab10 RsOnline 指令表21中。

    问题似乎是在调用 EST_setFlag_updateRs (estHandle、true)时调用 EST_getRsOnLine_Ohm ping pongs、它与下一次调用  motorVars.RsOnLine_Ohm = EST_getRsOnLine_Ohm (estHandle)冲突。 但是、更新会更改在线值 CCS 调试、而无需调用估算器来获取新的在线 Rs 值。

    因此、两个调用之间会出现乒乓值。 仅通过主使能 while 循环的 updateGlobalVariables()(labs.h)部分加载到 motorVars.RsOnline 值。  当 EST_getRsOnLine_Ohm (estHandle) 用户代码在每个周期存在 mainISR()之后未调用调试 RsOnline 值时,如何更改?

    也许应该将 updateGloobalVariables()调用放置在其它位置,以便它不会与 runRsOnline()代码冲突?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1004453/launchxl-f280049c-sdk-rsonline-fails-mtpa-fw/3711725 #3711725"]您可以查看有关 is08_overmodate_coff 的实验指南,该指南详细介绍 了使用过调制时的电流重构。

    过调制点 Lab8不是 Lab13 (FW/MTPA)的一部分、但电流重建被置为有效。 Lab13中的任何地方都没有提到这一点、这似乎是 FW 使用默认 ld/LQ 表值失败的原因之一。  

    我仍然无法再次找到 fwc.h (ld/LQ)表、它的位置是什么?

    按100% PWM 占空比并不完全是实现 FW 的目的、如下面的文本所述。  SPM 电机负 id 电流注入 AG 以形成 Bfw 下环路(块)。 再次重申、电流重构似乎没有必要或不明智地将 具有3个电流传感器的 FW 环路置于有效状态、即 ADC 140ns 采样窗口。 如果不可能、则可能应使用 PPB 来处理负电流窗口。

    也许对于 MTPA Bmta 来说、可能需要100%占空比、即使是3个电流传感器、为什么需要重建?   对于2个传感器模式、似乎需要重建、因为始终通过但不是3个传感器。 看起来重建效果会影响 FW 模式,甚至在80Vdc 的时间内获得>电机转速。   

    逐字记录 Lab13:

    在所有情况下、通过作用于直轴电流、可以削弱磁通量以扩展可实现的速度范围。  但是、由于 d 轴电枢反应、气隙磁通可能会因消磁效应而减弱、方法是添加负 id...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="48581" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1004453/launchxl-f280049c-sdk-rsonline-fails-mtpa-fw/3712597 #3712597 "] Lab13在启动电机之前调用 runRsOnline,这不起作用,与 SvGen_run()内联时的行为同样糟糕。[/quot]

    因为 RsOnline 电流设置为8.2A (user.h),并且在调用 runRsOnline()之前未进行缩放。 下面的补丁将 SF 设置为低于估算电机电流 Lab13 10%。

    /*将 RsOnline 电流设置为10% motorVars.RsOnLineCurrent_A =(USER_MOTOR_RES_EST_CURRENT_A * 0.1);

    [引用 userid="48581" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1004453/launchxl-f280049c-sdk-rsonline-fails-mtpa-fw/3712597 #3712597"]如果 SvGen_run()使用 RsOnlineId_mag_A (estHandle、motorVars.RsOnLineCurrent_A)断言并使用 RsOnline、则 EST_setRsOnLineId_A (estHandle、motorVars.RsOnLineCurrent_A)仍需要调用

    当 RsOnline 标志设置 false >2Hz 电机速度时、估算器似乎会对 Rs_ohms / RsOnline_ohms 进行平衡更新。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="48581" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1004453/launchxl-f280049c-sdk-rsonline-fails-mtpa-fw/3712656 #3712656"]我仍然无法再次找到 fwc.h (ld/LQ)表,它位于何处?

    FWC 不使用 (ld/LQ)表、只有 MTPA 需要电感(L)/电流(I)表。

    是的、您是对的、场强减弱控制是通过在 d 轴上添加负电流来降低 磁通量来提高最大运行速度。

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

    我很困惑、因为 CCS 调试 JScript (SDK v2.01)忽略了设置 FWC 值所需的3个变量。  Lab13文本还会模糊 MTPA/FW 之间的行、暗示 FW 正常工作所需的值。 似乎意味着电机 ld/LQ 值需要适当的 MTPA 表才能使 FW 正常工作。

    Mia debug JScript-Lab13:motorVars.Kp_fwc、 motorVars.Ki_fwc、 motorVars.angleMax_fwc_rad

    [引用 userid="35051" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1004453/launchxl-f280049c-sdk-rsonline-fails-mtpa-fw/3713061 #3713061"]只有 MTPA 需要电感(L)/电流(I)表。

    您能找到该表吗?