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.

[参考译文] BOOSTXL-DRV8301:电动机拉线电流高于预期

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/596929/boostxl-drv8301-motor-drawing-way-more-current-than-expected

部件号:BOOSTXL-DRV8301
主题中讨论的其他部件: DRV8301MOTORWARE

您好,  

我目前正在使用带有BOOSTXL-DRV8301 REV B的LaunchpadXL TMS320F 2.8069万M来驱动以下电机:FAULHABER MINIMOTOR SA 2444 S 024 B

我已附上了这款2Ohm,170uH电机的规格表,还将附上我的相关用户电机设置。

我的问题是,我能够在速度控制中指令电机,但我无法达到规格表上接近空载速度的任何位置。 它的额定转速为2.2万转/分,但我无法达到超过7500转/分的转速,并且会很紧张,因为系统想要消耗的电流超过其连续额定热电流限制(1.58A),所以我目前正在限制电源上的电流。 在转速高于数千转/分时(电流随着速度的变化而迅速增加),我不希望电机在无负载的情况下如此热地运行。

我希望设置非常高的PWM (100k+),但尝试了各种设置,但没有结果,我意识到DRV8301未被宣传为高PWM电机。

根据我的用户参数判断,系统是否有任何方面我还需要尝试调整,或者有什么大的东西我漏掉了? 请注意,我尝试了许多用户参数的各种值。 Rs,LS和Flux电机的手动标识不是很好,因此我使用了规格表和基本指南。

  

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

    您好,

    您运行DRV8301 EVM的电压轨是什么?  

    您是否正在使用我们的InstaSPIN库?  如果是,您正在使用哪个实验室?

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

    -我已将电源设备设置为24V (电动机额定电压)

    -我正在使用InstaSPIN库。 我使用过许多实验,但其中一些实验的问题与不同的问题有关,我将在单独的文章中论述这些问题。

    当我使用时:

    FOC Lab01b开环控制,用于硬件完整性验证

    我可以在启用gMotorVars系统和标识后成功测试电机。这对我来说很好的实验室是。 我想使用其他实验室,如FOC Lab05b速度模式和调谐速度PI,但电机在启用和识别后不会旋转,大概是因为实验室的代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外,以下是相关参数:

    #define user_motor_type motor_Type_pm
    #define user_motor_NUM_pole_pairs (1)
    #define user_motor_rr (空)
    #define user_motor_Rs (2.0万)
    #define user_motor_ls_d (0.0.017万)
    #define user_motor_ls_q (0.0.017万)
    #define user_motor_rated流量 (0.0)
    #define user_motor_magniting_current (空)
    #define user_motor_RES_EST_current (0.25)
    #define user_motor_IND_EST_current (- 0.25)
    #define user_motor_MAX_current (1.5)
    #define user_motor_fluate_EST_FREQ_Hz (20.0)
    #define IPD_HFI_EXC_FREQ_Hz (750.0) //激励频率,Hz
    #define IPD_HFI_LP_SPD_FILT_HZ (35.0) //低通滤波器切断频率,Hz
    #define IPD_HFI_HP_IQ) FILT_HZ (100.0) //高通滤波器切断频率,Hz
    #define IPD_HFI_KSPD (15.0) //速度增益值
    #define IPD_HFI_EXC_MAG_PROGE_PU (0.13) //粗糙IPD激励幅度,PU
    #define IPD_HFI_EXC_MAG_FINE_PU (0.12) //精密IPD激励幅度,PU
    #define IPD_HFI_EXC_TIME _ORGE_S (0.5) //粗略等待时间,秒最大0.64
    #define IPD_HFI_EXC_TIME _FIN_S (0.5) //精细等待时间,秒最大0.4
    #define AFSEL_FREQ_HIGH _PU (_IQ (15.0 / USER_IQ_FULL,Scale_FREQ_Hz))
    #define AFSEL_FREQ_LLOW (_IQ (10.0 / USER_IQ_FULL,Scale_FREQ_Hz))
    #define AFSEL_IQ_SLOT_EST (_IQ ((浮点)(1.0 ISR/ISR/USER_ISR_FREQ_Hz 0.1)))
    #define AFSEL_IQ_SLOP_HFI (_IQ ((浮点)(1.0 ISR/ISR/USER_ISR_FREQ_Hz 10.0)))
    #define AFSLE_IQ_SLOT_THROTTLE_DWN (_IQ ((浮点)(1.0 ISR/ISR/USER_ISR_FREQ_Hz 0.05)))
    #define AFSEL_MAX_IQ_REF_EST (_IQ (0.6))
    #define AFSEL_MAX_IQ_REF_HFI (_IQ (0.6))

    #define user_motor_FREQ_low (10.0) // Hz -建议设置为额定电动机频率的10 %
    #define user_motor_FREQ_high (100.0) // Hz -建议设置为额定电动机频率的100 %
    #define user_motor_FREQ_MAX (120.0) // Hz -建议设置为额定电动机频率的120 %
    #define user_motor_volv_min (3.6) //电压-建议设置为额定电机电压的15 %
    #define user_motor_vol_MAX (24.0) //电压-建议设置为额定电机电压的100 %


    ----------------

    //! \短电流和电压
    *******************
    //! \brief定义IQ变量Hz的满刻度频率
    //! \brief所有频率均根据与该值的比率转换为(PU)
    //! \brief此值必须大于您所期望的马达最大速度
    #define user_IQ_full _scale FREQ_Hz (200)// 800示例,带缓冲器,用于8极6 Krpm电动机,在磁场弱化情况下运行至10 Krpm;Hz =(RPM *极)/120

    //! \brief定义系统内IQ30电压变量的满刻度值
    //! 简明所有电压均根据与该值的比率转换为(PU)
    //! \brief警告:此值必须满足以下条件:USER_IQ/FULL比例电压_V > 0.5 * USER_MOTOR_MAX_CURRENT * USER_MOTOR_LS_d * USER_VOLT_FILTER_POL_Rps,
    //! \brief警告:否则该值可能饱和并滚动,从而导致值不准确
    //! \brief警告:此值通常大于最大测量的ADC值,特别是当高Bemf电机以高于额定速度运行时
    //! \brief警告:如果您知道Bemf常数的值,并且由于磁场减弱,您正以多种速度运行,请确保将该值设置为高于预期Bemf电压
    //! \brief建议从大于USER_ADC_FULL比例电压V的值~3倍开始,如果Bemf计算可能超过这些限制,则该值将增加到4-5倍
    //! \brief此值还用于计算最小通量值:0.7 USER_IQ_FULL_STREG_VOLTAL_V/USER_EST_FREQ_Hz/VZ
    #define user_IQ) FULL磅秤_voltage_V (24.0)// bootxldrv8301_RevB典型用法和Anaheim电机的24.0 示例

    //! \brief定义AD转换器输入端的最大电压
    //! 简略将由最大ADC输入(3.3V)和转换(0FFFh)表示的值
    //! 简略取决于硬件,这应基于电压感应和ADC输入的缩放
    #define user_ADC_FULL比例电压_V (24) // 26.314 bootxldrv8301_RevB电压缩放

    //! \brief定义IQ变量的满刻度电流,a
    //! 简明所有电流均根据与该值的比率转换为(PU)
    //! \brief警告:此值必须大于您预期的来自电机的最大电流读数,否则读数将滚动到0,从而导致控制问题
    #define user_IQ) FULL磅秤_CURRENT_A (2.0)// bootxldrv8301_RevB典型用法的20.0 示例

    //! \brief定义AD转换器上的最大电流
    //! 简略将由最大ADC输入(3.3V)和转换(0FFFh)表示的值
    //! 简明硬件相关,这应基于电流感应和ADC输入的缩放
    #define user_ADC_FULL比例电流A (2.0)// 33.0 bootxldrv8301_RevB电流缩放

    //! \brief定义所使用的电流传感器数量
    //! \brief由存在的硬件功能定义
    //! \brief可能是(2)或(3)
    #define user_NUM_CURRENT_SENSORS (3)// 3在全速范围内实现最佳性能的首选设置,允许100 % 占空比

    //! \brief定义电压(相位)传感器的数量
    //! 简明必须为(3)
    #define user_NUM_VOLTAL_SENSORS (3)// 3必需

    //! \A,B和C相位的ADC电流偏移简介
    //! \简要取决于一次性硬件,但校准也可以在运行时完成
    //! \brief在初始板校准后,应针对您的特定硬件更新这些值,以便在以二进制文件格式编译后可用于加载到控制器中
    #define I_A_offset (0.00)//
    #define I_B_offset (0.00)//注意:已设置为默认值,没有任何明显改进,偏移调整实验对我不起作用
    #define I_C_OFFSET (0.00)//

    //! \A,B和C相位的简短ADC电压偏移
    //! \简要取决于一次性硬件,但校准也可以在运行时完成
    //! \brief在初始板校准后,应针对您的特定硬件更新这些值,以便在以二进制文件格式编译后可用于加载到控制器中
    #define V_a_offset (0.00)//
    #define V_B_offset (0.00)//注意:已设置为默认值,但没有任何明显的改进,偏移调整实验对我不起作用
    #define V_C_OFFSET (0.00)//


    //! 短时钟和计时器
    *******************
    //! \brief定义脉宽调制(PWM)频率(kHz)
    //! 在此可以直接安全地设置高达30 KHz的简短PWM频率(在某些情况下最大为60 KHz)
    //! \brief对于较高的PWM频率(对于低电感,高电流脉动电动机,通常为60 KHz以上),建议使用ePWM硬件
    //! 简明和可调节的ADC SOC,用于对控制系统中已完成的ADC转换中断进行小数选择,或使用软件Que示例。
    //! \brief否则,您可能会丢失中断并中断控制状态机的计时
    #define user_PWM_FREQ_kHz (200.0)//当然,我想以这种速度驾驶,但尝试了更低的速度(60-80),但没有明显的改进。 不确定此主板是否可以这么快地进行PWM。


    //! \brief定义允许的最大电压矢量(vs)量。 该值设置输出的最大量级
    //! \brief ID和IQ PI当前控制器。 ID和IQ电流控制器输出为Vd和VQ。
    //! 简略Vs,Vd和VQ之间的关系是:Vs = sqrt (Vd^2 + VQ^2)。 在此FOC控制器中,
    //! 将\brief Vd值设置为等于USER_MAX_VS_MAG* USER_VD_MAG_Factor。 VQ = sqrt (USER_MAX_VS_MAG^2 - Vd^2)。
    //! \brief set user_MAX_VS_MAG = 0.5 ,表示纯正弦波,其峰值为SQRT (3)/2 = 86.6 % 占空比。 此方案不需要当前重建。
    //! \brief set user_MAX_VS_MAG = 1/SQRT (3)= 0.5774 ,表示正弦波在100 % 占空比下为峰值。 此方案需要当前重建(Lab10a-x)。
    //! \brief set user_MAX_VS_MAG =2/3 = 0.6666 ,创建梯形电压波形。 此方案需要当前重建(Lab10a-x)。
    //! \brief有关空间矢量过度调制的信息,请参阅实验10,了解有关允许SVM生成器一直到梯形的系统要求的详细信息。
    #define user_MAX_VS_MAG_PU (0.5)//如果未使用当前重建技术,则设置为0.5。 有关更多信息,请查看lab10a-x中的模块svgen_current。


    //! \简短小数
    *******************
    //! \brief定义每个ISR时钟周期的PWM时钟周期数
    //! 注意:有效值仅为1,2或3
    #define user_NUM_PWM_TICK_Per_ISR_TICK (3)

    //! \brief定义每个控制器时钟周期(软件)的ISR周期数(硬件)
    //! 简明控制器时钟周期(CTRL)是软件中用于所有计时的主时钟
    //! \brief通常,PWM频率触发(可以被ePWM硬件抽取以减少开销) ADC SOC
    //! 简明ADC SOC触发ADC转换完成
    //! 简明ADC转换完成会触发ISR
    //! \brief这将硬件ISR速率与软件控制器速率相关联
    //! \brief通常希望考虑在16KHz ISR上进行某种形式的小数位(ePWM硬件,当前或EST),以确保中断完成并留出时间用于后台任务
    #define user_NUM_ISR_TICS_PRL_TICK (1) // 2示例,控制器时钟频率(CTRL)以PWM / 2运行;例如30 KHz PWM,15 KHz控制

    //! \brief定义每个当前控制器时钟周期的控制器时钟周期数
    //! 控制器时钟频率与当前控制器(FOC)频率之间的简短关系
    #define user_NUM_CTRL_TICS_PRIVATS_PRIVATE_TICK (1) // 1个典型的正向FOC电流控制器(IQ/ID/IPark/SVPWM)以与CTRL相同的速率运行。

    //! \brief定义每个估计时钟周期的控制器时钟周期数
    //! 控制器时钟频率与估算器(快速)频率之间的简短关系
    //! 简明取决于所需的动态性能,FAST可提供低至1 KHz的良好结果,而更多动态或高速应用可能需要高达15 KHz的频率
    #define user_NUM_CTRL_TICS_PRIVATS_PRE_ET_TICK (1) // 1个典型的快速估算器以与CTRL相同的速率运行;

    //! \brief定义每个速度控制器时钟周期数的控制器时钟周期数
    //! 控制器时钟频率与速度环路速率之间的简短关系
    #define user_NUM_CTRL_TICS_Per_speed_tick (15)// 15典型匹配PWM,例如:15kHz PWM,控制器和电流回路,1KHz速度回路

    //! \brief定义每个轨迹时钟周期数的控制器时钟周期数
    //! \控制器时钟频率与轨迹环路速率之间的简短关系
    //! \brief通常与速度速率相同
    #define user_NUM_CTRL_TICS_PER_TRAJ_TICK (15)// 15典型匹配PWM,例如:10kHz控制器和电流回路,1KHz速度回路,1 KHz轨迹


    //! \brief限制
    *******************
    //! \brief定义要在ID参考中应用的最大负电流
    //! 简明仅用于场弱化,这是一个安全设置(例如,防止消磁)
    //! 简明用户还必须注意整体电流大小[sqrt(ID^2 + IQ^2)]应保持在低于任何机器设计规格的水平
    #define user_MAX_NOLICS_ID_REF_CURRENT_A (0.5 * USER_MOTOR_MAX_CURRENT)//-MOTOR_MAX_CURRENT示例:0.5 * USER_MOTOR_MAX_CURRENT,调整以满足马达的安全需求

    //! \brief定义R/L估计频率(赫兹)
    //! 简明用户低电感电动机的值较高,电感较高的值较低
    //! \brief电机。 这些值的范围为100至300 Hz。
    #define user_R_over,L_EST,FREQ_Hz (200) //默认为300

    //! \brief定义了流量积分器PU的低速限值
    //! \brief这是处于活动状态的ForceAngle对象的速度范围(CW/CCW),但仅当启用时才会激活
    //! 在此速度之外的短\n或如果禁用,则ForcAngle将永远不会激活,且仅由FAST提供角度
    #define USER_ZEROSPEEDLIMIT (0.5 / USER_IQ_FULL _Scale_FREQ_Hz) // 0.002 PU,1-5 Hz (典型);Hz = USER_ZEROSPEEDLIMIT * USER_IQ_FULL,Scale_FREQ_Hz

    //! \brief定义力角度频率(Hz)
    //! \\n力角对象使用的定子矢量旋转的简短频率
    //! 简明可以是正数或负数
    #define user_force_angle_FREQ_Hz (2.0 * USER_ZEROSPEEDLIMIT * USER_IQ_FULL _Scale_FREQ_Hz) // 1.0 典型力角启动速度


    //! \短杆
    *******************
    //! \brief定义模拟电压滤波器极位置(Hz)
    //! \brief必须与VPH的硬件过滤器匹配
    #define user_voltage_filter_pole_Hz (364.682)// 364.682 ,bootxldrv8301_RevB硬件的值
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您已更改了user.h文件中不应更改的许多参数。 请使用user.h重新安装MotorWare,不做任何更改。不要更改user_ADC或user_IQ设置.....不要将PWM设置为高于45。

    设置
    #define user_motor_MAX_current (4.0)//这不是额定电流,这是达到机器额定扭矩所需的峰值电流

    使用proj_lab02c来标识电机的参数

    然后运行proj_lab05a以查找正弦波控制下的最大无负载速度。
    您可以使用proj_lab10a来查找过度调制(空间矢量和梯形)下的最大速度,但您需要确保速度控制环路得到合理调整。 proj_lab05b+会向您显示如何在遇到困难时调整控制器。