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.

[参考译文] MOTORWARE:Motorware

Guru**** 2538930 points
Other Parts Discussed in Thread: MOTORWARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/991549/motorware-motorware

器件型号:MOTORWARE

您好 TI

由于 USER_VOLTAGE_FILTER_POLE_Hz 和 USER_IQ_FULL_SCALE_FREQ_Hz 较高且 USER_IQ_FULL_SCALE_FREQ_Hz 较高、因此 USER_NUM Code_iq_FULL_SCALE_FREQ_Hz  导致 USER_POLE_FREQ_Hz 一词>=(128 *(float_t) USER_POLE_60.0 *错误/POLE_MOTOR_RINT_FREQ_RINS 对数)、因此我们在 FERT_ERROR 上使用 MotorWare 驱动器件时出现错误。 解决此问题的唯一方法是将128更改为256、因为我们已在 IQmathlib 中更改为 IQ23。 但是、当我们这么做时、ADC 读数不正确。 例如、它以实际值的一半读取直流链路电压。  

如果有任何意见、我将不胜感激

谢谢

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

        您正在使用什么 USER_VOLTAGE_FILTER_POLE_Hz 和 USER_IQ_FULL_SCALE_FREQ_Hz?  请发布您使用的 user.h。  

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

    #define USER_IQ_FULL_SCALE_FREQ_Hz        (3000.0)   
    
    #define USER_IQ_FULL_SCALE_VOLTAGE_V      (120)     
    
    #define USER_ADC_FULL_SCALE_VOLTAGE_V       (120)   
    
    #define USER_IQ_FULL_SCALE_CURRENT_A         (250.0)     
    
    #define USER_ADC_FULL_SCALE_CURRENT_A        (250.0)    
    
    
    #define USER_PWM_FREQ_kHz                (90.0) 
    
    #define USER_MAX_VS_MAG_PU        (0.5)   
    
    
    #define USER_NUM_PWM_TICKS_PER_ISR_TICK        (3)
    
    #define USER_NUM_ISR_TICKS_PER_CTRL_TICK       (1)     
    
    #define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK   (1)     
    
    #define USER_NUM_CTRL_TICKS_PER_EST_TICK       (1)    
    
    #define USER_NUM_CTRL_TICKS_PER_SPEED_TICK  (90) 
    
    #define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK   (90) 
    
    
    #define USER_MAX_NEGATIVE_ID_REF_CURRENT_A     (-0.5 * USER_MOTOR_MAX_CURRENT)  
    
    #define USER_R_OVER_L_EST_FREQ_Hz (300)              
    
    #define USER_ZEROSPEEDLIMIT   (0.5 / USER_IQ_FULL_SCALE_FREQ_Hz)   
    
    #define USER_FORCE_ANGLE_FREQ_Hz   (2.0 * USER_ZEROSPEEDLIMIT * USER_IQ_FULL_SCALE_FREQ_Hz)     
    
    
    #define USER_VOLTAGE_FILTER_POLE_Hz  (2647.0)   
    
    
    
    #define USER_MOTOR a
    
    #elif (USER_MOTOR == a)
    #define USER_MOTOR_TYPE                 MOTOR_Type_Pm
    #define USER_MOTOR_NUM_POLE_PAIRS       (1)
    #define USER_MOTOR_Rr                   (NULL)
    #define USER_MOTOR_Rs                   (0.14)
    #define USER_MOTOR_Ls_d                 (0.00029)
    #define USER_MOTOR_Ls_q                 (0.00029)
    #define USER_MOTOR_RATED_FLUX           (0.06)
    #define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)
    #define USER_MOTOR_RES_EST_CURRENT      (1.0)
    #define USER_MOTOR_IND_EST_CURRENT      (-0.5)
    #define USER_MOTOR_MAX_CURRENT          (20)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz     (20.0)
    
    
    

    您好、Yanming
    如下所示。  

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

    您不能更改全局 IQ、对于 instaspin"、必须为 IQ24。   即使电机的最大频率为3000Hz、也可以将 USER_IQ_FULL_SCALE_FREQ_Hz 更改为像2000这样的小值。

    BTW、 即 USER_VOLTGE_FILTER_POLE_Hz、电压滤波器极点对于 instaspin 补偿而言过高、应为300~1000Hz。

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

    这是否意味着它是 Motorware 中的一个严重内在限制、或者可以通过某种方式解决?

    您认为 motorcontrol_SKD 具有相同的限制吗?

    谢谢

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

    否、这不是 MotorWare 中的限制。 检查代码仅用于帮助用户为 instaSPIN 设置正确的参数。

    如上所述、您仍然可以将  USER_IQ_FULL_SCALE_FREQ_Hz 设置为2000、但也可以将目标速度设置为3000、甚至4000。

    MotorControl 使用带有浮点的 SI 格式、没有此类检查代码、但您仍需要根据您的硬件和系统设置正确的换算值。

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

    这就是你说的

    BTW、 即 USER_VOLTGE_FILTER_POLE_Hz、电压滤波器极点对于 instaspin 补偿而言过高、应为300~1000Hz。

    现在您说没有限制。  

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

    我们的意思 是您可以将电机运行到所需的目标频率、该频率不限于 USER_IQ_FULL_SCALE_FREQ_Hz。

    这是一个基于电压采样电路的硬件参数、它有一个建议值。 不能使用太高/太低的滤波器频率进行 FAST 算法所需的电压检测。  

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

    感谢您的回复

    在 这里、STH 毫无意义。

    对于额定速度、基波电压和电流频率为2.8kHz。 因此、我们在硬件中将 USER_VOLTGE_FILTER_POLE_Hz 设置为大约2.7kHz。

    在硬件中、极点为2.7kHz、如何在软件中将其设置为<1000Hz?

    您是否意味着、即使硬件是 sth、软件也可能是 sthen? 在本例中、硬件为2.7kHz、软件为1000Hz。

    或者、您是要将 硬件中的 USER_VOLTGE_FILTER_POLE_Hz 也降低到1000Hz 以下吗?

    如果我们将 硬件中的 USER_VOLTGE_FILTER_POLE_Hz 设置为1000Hz、那么额定速度信号如何?

    尽管硬件中采用了低通滤波   器、但软件能否在额定速度和基频下正常运行、这将影响读取信号?

    希望我没有提出任何不方便的问题

     

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

    您需要更改电压感应电路并使滤波器极点小于1000Hz、这对于将电机运行至3000Hz 是可以的。 如 instaspin 用户指南中所述、只需满足以下条件、因此您可以使用750Hz~1000Hz 极点滤波器进行电压检测。

    •USER_VOLTGE_FILTER_POLE_Hz 的典型值介于300Hz < POLE < 400Hz 之间。
    •USER_VOLTGE_FILTER_POLE_Hz≥200Hz。
    •×将 IQ_FULLSCALE_FREQUENCY 设置为小于4.0 μ V USER_VOLTAGE_FILTER_POLE_Hz 的值、以避免数字饱和。

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

    非常感谢 Yanming 的帮助和时间

    请保持安全并谨致问候