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.

[参考译文] TMS320F280049C:EST.h 中 C2000Ware MotorControl SDK 的 RsOnline 调优函数

Guru**** 2526700 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1224733/tms320f280049c-rsonline-tuning-functions-in-est-h-for-c2000ware-motorcontrol-sdk

器件型号:TMS320F280049C
主题中讨论的其他器件:C2000WARE

大家好、我正在尝试在 FAST 观测器中调整 RsOnline 参数。 对于 C2000ware 电机控制 SDK、Instaspin FOC 参考文档稍微过时。

我正在寻找 EST_setRsOnLineAngleDelta_pu () 停止。

我找到了 EST_setRsOnLineAngleDelta_rad ()

我是否应该使用我之前的代码并将结果乘以 MATH_TWO_PI 来获得同样的慢速旋转频率?

示例:

// This new define represents the desired RsOnLine rotating angle frequency
#define RSONLINE_ANGLE_FREQ_Hz (0.2)

// The scale factor (sf) calculation is done by the pre-compiler
float32_t delta_hz_to_pu_sf = 1.0/USER_EST_FREQ_Hz;
float32_t RsOnLine_Angle_Freq_Hz = RSONLINE_ANGLE_FREQ_Hz;
float32_t RsOnLine_Angle_Delta_pu = RsOnLine_Angle_Freq_Hz * delta_hz_to_pu_sf;
float32_t RsOnLine_Angle_Delta_rad = RsOnLine_Angle_Delta_pu * MATH_TWO_PI;

EST_setRsOnLineAngleDelta_rad(estHandle, RsOnLine_Angle_Delta_rad);

有一件事我感到困惑、那就是 EST_getRsOnLineAngleDelta_rad (estHandle) 返回一个值0.00001、这是标幺值表示的默认值。 我不确定我是否应该转换为弧度。

如果存在这些函数、我也会尝试找到它们:

EST_setRsOnLine_delta_dec_pu () EST_setRsOnLine_delta_dec_rad ()
EST_setRsOnLine_delta_inc_pu () EST_setRsOnLine_delta_inc_rad ()

谢谢!

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

    如上所述、您可以使用"拉德"单位为这些函数设置参数。 所有单元都使用 SI 格式、并且 F28004x 的浮点 FAST 库中没有带 PU 格式的函数。

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

    可以、由于 F28004x 的浮点快速库使用弧度作为其标准单位、这是否意味着角度增量的默认值0.00001是错误的、实际上应为~0.0000628?  (0.00001 x MATH_TWO_PI)。 我将在示波器上测试该慢速旋转频率以进行确认。

    您还能向我展示如何设置增量和减量值吗? 我提到过的函数不在 est.h 文件中

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

    我可以确认慢速转角的单位是弧度、并且上述代码片段可用于设置所需频率。

    实际上、我强烈建议任何尝试实施 RsOnline 的人在我的原始文章中添加该代码。 对于一个20kHz 的 PWM 频率和3/1 PWM/ISR 节拍控制环路、缺省 RsOnline 频率为0.01Hz、 这个周期为100秒。 TI 建议在 Instaspin 手册中使用10秒。

    目前、我将使用自定义 increment/递减函数来限制 RsOnline 中的变化。

    // Set per-unit increments/ decrements
    float32_t RsOnLine_delta_dec_pu = 0.00002;
    float32_t RsOnLine_delta_inc_pu = 0.00002;
    
    // Conversion to radians
    float32_t RsOnLine_delta_dec_rad = RsOnLine_delta_dec_pu * MATH_TWO_PI;
    float32_t RsOnLine_delta_inc_rad = RsOnLine_delta_inc_pu * MATH_TWO_PI;
    
    float32_t RsError_Ohm = motorVars.RsOnLine_Ohm - motorVars.Rs_Ohm;
    EST_setRsOnLine_Ohm(estHandle, motorVars.RsOnLine_Ohm + MATH_sat(RsError_Ohm, RsOnLine_delta_inc_rad, -RsOnLine_delta_dec_rad));
    
    EST_setFlag_updateRs(estHandle, true);

    预期值等类似情况。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否还可以向我演示如何设置增量和减量值? 我提到的函数不在 est.h 文件中[/引号中]

    用户指南中的建议值仅供通用电机参考。 如上所述、您可以根据要实现的电机和性能更改值。  

    感谢您的建议。 如果可能、我们会更新用户指南和相应的示例代码。