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 (FOC)

Guru**** 2746725 points

Other Parts Discussed in Thread: BOOSTXL-DRV8320RS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/898952/launchxl-f280049c-forced-angle-sdk-foc

器件型号:LAUNCHXL-F280049C
主题中讨论的其他器件:BOOSTXL-DRV8320RS

对于(速度方向)变化的含义、实验5的解释似乎不正确。 它看起来是快速强制角启用的、所有状态都是电机 ID。 然而、与实验5中的其他测试一样、额定磁通在技术上被视为突然转速反转(减速)。 文本 SPRUHJ1H 状态 FAST 在转子移动并且低速观测器发现磁极后无需强制角使能。 可以在额定磁通启动和其他速度转换期间突然观察到电机电流尖峰、从而导致 ePWM 直流区域操作的 OC 跳闸条件。  

1.为什么在电流斜升之前未禁用强制角、因为慢速观测器转换为高速 FAST 估算器?

2.设置了什么慢速观测器标志来指示它不再被启用并且快速进入高速观测器模式?  

为了在改变速度方向时实现平滑转换、请在启用控制器之前关闭强制角以下代码示例启用强制角。

//启用强制角
EST_setFlag_enableForceAngle (obj->estHandle、true); 

不同的快速配置可实现最佳启动性能:启用强制角。 但接下来该怎么办?

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

     1.电机识别过程与 强制角使能标志无关,它将根据识别状态启用/禁用估算器中的强制角。 强制角标志仅在正常运行状态(EST_State_OnLine)下使用。

    没有标志表明这一点。 如果估算速度大于 USER_FORCE_ANGAL_FREQ_Hz、角度将使用估算器中的值。  

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

    [引用用户="Yanming Luo ]1.  电机识别过程与 强制角启用标志无关、它将根据识别状态在估算器中启用/禁用强制角。

    强制状态不会改变、标志在每个测试状态中始终保持强制启用(0x01)。  根据 SPRUHJ1H–2013年1月–2019年6月修订版、此强制状态为无效的快速观测器模式。 有人不阅读此修订版技术简介、不谨慎地编写 SDK 代码以遵守规则、或编写有关低速观测器的胡说文字、这是可疑的。

    [引用用户="Yanming Lua"]力角标志仅在正常运行状态(EST_State_OnLine)下使用。

    同样、由于 lab.h 已将强制初始状态设置为 true (检测 Nth 极点)、并且它仅在前几个慢速观测器周期内有效、因此这种情况并非如此。 FAST 估算器角度在整个 ID 过程中强制为 true、此时标志应在前几个周期后更改为 false。 这似乎也会影响状态 LC (motorVars.LS_d_H、 motorVars.LS_q_H)、大多数情况下会在 LC 状态时间结束之前更新错误的伪值(9.9999999997e-07)实时观察窗口。 这一条似乎是非常错误的、就像许多此代码看起来非常匆忙、不执行 SPRUHJ1H 所说的操作。

    #define MOTOR_VARS_INIT{ \
    false,/* flagEnableSys */ \
    false,/* flagEnableRunAndIdentify */ \
    false,/* flagRunIdentAndOnLine */ \
    false,/*标志 MotorIdentified */ \
    false,/* SetupflagController */ \
    True、/* flagEnableForceAngle * 

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

    此 FAST 估算器强制角标志不是约束、而是指令。 SpinTAC 设置以下 snip 所示的强制角标志。 因此 USER_FORCE_ANGE_FREQ_Hz 约束(值)由低速观测器测试、但我们必须为转子速度大于1Hz 设置标志 false。

    谁知道如果使慢速观测器标志保持启用状态>1Hz 转子速度、FAST 估算器 ROM 代码将会执行什么操作。 是否快速忽略标记>1Hz,以及为什么/如何 在 LAB5代码中不能看到与在线模式有任何不同的离线。  Perhpas LC LD/LQ 问题是 ADC 饱和、低用户电压滤波器极点值(298.603)导致的? 或者、即使使用10nF 电压滤波器、SOC 窗口(280ns)也会很宽、而与典型的100nF 电压相比、BoostXL-drv8320rs 也会出现同样的问题、通常会发布不正确的磁通值。   

    //启用 SpinTAC Move
    STVELMOVE_setEnable (stVelMoveHandle、true);
    //如果从零速启动、则启用 ForceAngle、否则禁用 ForceAngle
    if (_IQabs (STVELMOVE_getVelocityStart (stVelMoveHandle)))<_IQ24 (ST_MIN_ID_SPEED_SPEED_PU)
    
    EST_setFlag_enableForceAngle (ctrlObj->estHandle、true);
    gMotorVars.Flag_enableForceAngle = true;
    }
    否则
    {
    EST_setFlag_enableForceAngle (ctrlObj->estHandle、false);
    gMotorVars.Flag_enableForceAngle = false;
    } 

     

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

    代码 snip 检查转子速度> 1Hz 的快速低速观测器,需要测试特定状态变化。 问题是 R/L 状态频率>1Hz 可轻松禁用标志。 因此、它必须在电流斜升之前生效、以禁用强制角>1Hz 转子速度。 如何检查[EST_State_RAMPUP]似乎是真实的?

    /*检查转子速度>1Hz,禁用 ForceAngle */
    if ((motorVars.speed_Hz > user_force_angle_FREQ_Hz)&&
    (motorVars.flagEnableForceAngle = true)
    {
    EST_setFlag_enableForceAngle (estHandle、false);
    
    motorVars.flagEnableForceAngle = false;
    } 

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

    但是、有用于检查强制角标志的估算器对象。 当状态变为斜升时、角度标志可被启用。 保持角度标志启用>1Hz 可能会产生奇数电流衍生物(振动)? 状态 LC 期间的 PWM 波形看起来很糟糕、会发生非常失真的 SNR。   

    extern bool EST_getFlag_enableForceAngle (EST_Handle handle);

    获取估算器的使能强制角标志值。

    EST_getFlag_enableForceAngle (estHandle); 

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

    这是估算器定义、似乎与低速观测器要求相反、或者它根本没有提到它。

    EST_setFlag_enableForceAngle ()
    void EST_setFlag_enableForceAngle (EST_Handle handle、const bool_t state)
    设置估算器中的使能强制角标志启用或禁用电机启动时的 Rs 直流测量
    Handle:估算器(EST)句柄
    状态:所需的标志状态、打开(1)或关闭(0)
    •true:启用强制角。 如果磁通频率低于以下定义的阈值、则将绕过估算角度:
    #define USER_ZEROSPEEDLIMIT (0.001)

    在 user.h 中 此频率的典型值为定义的满量程频率的0.001
    在中: #define USER_IQ_FULL_SCALE_FREQ_Hz (500.0)

    强制角算法、当激活时、即转子磁通电频率
    低于阈值、将强制以设置的频率旋转角度
    以下定义: #define USER_FORCE_ANGE_FREQ_Hz (1.0)

    •false:禁用强制角。 估算器绝不会被任何强制绕过
    角度算法。

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

    似乎缺少代码段(零速度限制)、因此估算器控制力角。

    //! \brief 定义强制角频率、Hz
    //!
    #define USER_FORCE_ANGE_FREQ_Hz ((float32_t)(1.0))
    
    //! 简要说明如果磁通
    //! 频率降至零速阈值以下、1Hz
    #define USER_ZEROSPEEDLIMIT ((float32_t)(0.001 * USER_maximum_SCALE_FREQ_Hz) 

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

    无需如您所述添加代码、 USER_ZEROSPEEDLIMIT 在 FAST 估算器中设置为默认值(等于0)、并且用于磁通积分器、因此磁通、速度和角度估算器始终在 FAST 中启用。 活动角度将取决于强制角标志和 USER_FORCE_ANGAL_FREQ_Hz。 如果强制角标志被禁用 、活动角度将始终来自 FAST 估算器、如果启用了强制角标志并且估计速度低于 USER_FORCE_ANGER_FREQ_Hz、活动角度将来自强制角。