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.

[参考译文] TMDSHVMTRINSPIN:HVMTR 高压套件(黄 PCB),使用 Lab02c 的极低电感高速(120,000)电机的参数标识,错误的参数

Guru**** 2455560 points
Other Parts Discussed in Thread: TMDSHVMTRINSPIN, DRV8312

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1083263/tmdshvmtrinspin-hvmtr-high-voltage-kit-yellowpcb-parameter-identification-of-very-low-inductance-high-speed-120-000-motor-using-lab02c-wrong-parameters

部件号:TMDSHVMTRINSPIN
“线程: DRV8312”中讨论的其它部件

您好,

我正在使用 HVMTR 高压套件(TMDSHVMTRINSPIN,黄色 PCB)对 SMPMSM 进行无传感器控制。 该电动机的电感非常低,为28uH,适用于极速应用,120,000 RPM,30kW。

我的直流链路为60V,以开始。 当我刚尝试使用 InstaSPIN_FOC_F28069M GUI 和自动 ID 时,电源电流将达到12A (限值,不确定我是否必须增加参数估算步骤的电流限值),我认为这高于我的预期, 电动机发出尖锐的噪音。 我刚刚在本应用手册“QSG_GUI_instaspin_FOC”中读到,低电感马达 Lab02c 应该用于参数估算和 FOC 控制。

我修改了 user.h 以使用 Lab02c。

//! 简要介绍电流和电压
//
//! \brief 定义 IQ 变量 Hz 的全标度频率
//! 简而言之,所有频率都将根据与该值的比率转换为(PU)
//! \brief 此值必须大于您期望从马达获得的最大速度
#define user_IQ_Full-scale FREQ.Hz (800.0)// 800示例,带缓冲器,用于8极6 Krpm 马达在磁场减弱的情况下运行至10 Krpm;Hz =(RRPM * Poles)/120

//! \brief 定义系统内 IQ30电压变量的全标度值
//! 简而言之,所有电压都将根据与该值的比值转换为(PU)
//! \brief 警告:此值必须满足以下条件:user_IQ_Full-scale _voltion_V > 0.5 * user_motor_MAX_current * user_motor_LS_d * user_voltion_filter_pole _rps,
//! \brief 警告:否则该值可能饱和并翻滚,从而导致值不准确
//! \brief 警告:此值通常大于测得的最大 ADC 值,特别是当高 Bemf 电机以高于额定速度运行时
//! 简要警告:如果您知道 Bemf 常数的值,并且知道由于磁场减弱而以多速运行,请确保将该值设置为高于预期的 Bemf 电压
//! 简而言之,如果 Bemf 计算可能超过这些限值,建议从比 USER_ADC_FUL_STREAL_Voltage _V 大~3倍的值开始,并增加到4-5x
//! \brief 此值也用于计算最小通量值:user_IQ_Full-scale _voltion_V/user_EST_FREQ_Hz/0.7
#define user_IQ_full;scale;voltage_voltage_V (450.0)// 24.0典型用法 drv8312_red 和 Anaheim 马达的示例

//! \brief 定义 AD 转换器输入端的最大电压
//! 简要说明将由最大 ADC 输入电压(3.3V)和转换电压(0FFFh)表示的值
//! 简而言之,取决于硬件,这应基于电压感应和 ADC 输入的缩放
#define user_adc_full;scale_voltion_V (409.9)// 66.32 drv8312_revd 电压标度

//! \brief 定义了系统的电压标度系数
//! 简要编译整个系统中使用的比例因子(比率)的时间计算
#define user_voltion_SF ((float_t)((user_adc_full _scale_voltion_voltage _V)/(user_IQ_full _scale_voltion_V)))

//! \brief 定义 IQ 变量的全标电流,A
//! 简而言之,所有电流都将根据与该值的比率转换为(PU)
//! \brief 警告:该值必须大于您期望从电机获得的最大电流读数,否则读数将会滚动到0,从而导致控制问题
#define user_IQ_full;scale _current_a (10.0)// 10.0典型使用 drv8312_revd 的示例

//! \brief 定义 AD 转换器的最大电流
//! 简要说明将由最大 ADC 输入电压(3.3V)和转换电压(0FFFh)表示的值
//! 简而言之,取决于硬件,这应基于电流感应和 ADC 输入的缩放
#define user_adc_full;scale_current_a (19.89)// 17.30 drv8312_red 电流缩放

//! \brief 定义系统的当前比例因子
//! 简要编译整个系统中使用的比例因子(比率)的时间计算
#define user_current_SF ((float_t)((user_adc_full _scale_current_a)/(user_IQ_full _scale_current_a)))

//! \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.8679359555)
#define I_B_offset (-0.8716403842)
#define I_C_offset (-0.8716837168)

//! 简要介绍 A,B 和 C 相的 ADC 电压偏移
//! 简要说明一次性硬件相关信息,但校准也可以在运行时完成
//! \brief 在初始主板校准后,这些值应针对您的特定硬件进行更新,以便在编译为要加载到控制器的二进制文件后可以使用这些值
#define V_a_offset (0.4939805269)
#define V_B_offset (0.4948113561)
#define V_C_OFFSET (0.4919748902)


//! 简要介绍时钟和计时器
//
//! \brief 定义了系统时钟频率 MHz
#define user_system_FREQ_MHz (90.0)

//! \brief 定义了脉宽调制(PWM)频率 kHz
//! 简要说明 PWM 频率可直接在此处安全设置为30 KHz (在某些情况下最大为60 KHz)
//! \brief 对于更高的 PWM 频率(低电感,高电流波纹电机通常为60 KHz +),建议使用 ePWM 硬件
//! \简短 且可调的 ADC SOC,用于将 ADC 转换完成中断小数到控制系统,或使用软件 QUE 示例。
//! \brief 否则,您将面临中断丢失和中断控制状态机计时的风险
#define user_PWM_FREQ_kHz (60.0)//30.0示例:典型8.0 - 30.0 KHz;极低电感,高速电动机可能需要45-80 KHz

//! \短极
//
//! \brief 定义模拟电压滤波器极位置,Hz
//! \brief 必须与 VPH 的硬件过滤器匹配
#define user_voltion_filter_pole _Hz (714.14)// 714.14,drv8312_revd 硬件的值

//! \brief 定义模拟电压滤波器极位置,弧度/秒
//! 简要编译从 Hz 到 rad/s 的时间计算
#define user_voltion_filter_pole (2.0 * Math_PI * user_volted_filter_pole _Hz)

//! \brief 定义了电压和电流偏移估计的软件极位置,辐射/秒
//! 不应将\brief 更改为默认值(20.0)
#define user_offset_pole _rps (20.0)//默认值20.0,不更改

//! \brief 定义了助熔剂估计的软件磁极位置,即半径/秒
//! 不应将\brief 更改为默认值(100.0)
#define user_flues_pole _rps (100.0)//默认值100.0,请勿更改

//! \brief 定义方向过滤器的软件磁极位置,即半径
#define user_direction _pole _rps (6.0)//默认值为6.0,不更改

//! \brief 定义了速度控制过滤器的软件磁极位置,辐射/秒
#define user_speed_pole _rps (100.0)//默认值100.0,请勿更改

//! \brief 定义了直流总线过滤器的软件极位置,辐射/秒
#define user_DCBus_pole _rps (100.0)// 100.0默认值,不要更改

//! \brief 定义了估算器的收敛系数
//! \brief 不要更改 FAST 的默认值
#define user_EST_KAPPAQ (1.5)//默认值为1.5,请勿更改

//! \brief 用唯一的名称和 ID 号定义每个电机
// BLDC 和 SMPM 电机
#define Estun_EMJ_04APB22 101.
#define my_motor 102.

//! \brief 对编译时应包括的马达进行注释
//! 简述这些电机 ID 设置和电机参数随后可供控制系统使用
//! \brief 一旦确定了您的理想设置和参数,请在此处更新电机部分,以便在二进制代码中提供
//#定义 user_motor Estun_EMJ_04APB22
#define user_motor my_motor

#Elif (user_motor == my_motor)
#define user_motor_type motor_Type_pm
#define user_motor_NUM_POL_Pairs (1)
#define user_motor_RR (空)
#define user_motor_rs (0.0075)
#define user_motor_LS_d (0.000042)
#define user_motor_LS_q (0.000042)
#define user_motor_rated _dinflux (0)
#define user_motor_magneting_current (空)
#define user_motor_RES_EST_current (2.0)
#define user_motor_IND_EST_current (-2.0)
#define user_motor_MAX_current (10.0)
#define user_motor_dinflus_EST_FREQ_Hz (80.0)

#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_vol_min (3.0)//伏特-建议设置为额定电动机电压的15%
#define user_motor_volt_MAX (18.0)//伏-建议设置为电动机额定电压的100%

建议采取什么增量步骤将这些增量增加到参数?

#define user_motor_RES_EST_current (2.0)
#define user_motor_IND_EST_current (-2.0)

因此,当我运行 debug Lab02c 时,在将“Flag_enableSys”和“Flag_Run_Identify”设置为1后,马达不旋转,结果离现实和我的预期太远。 此外,直流总线电压错误。 我是否应该更改用于修改直流总线读数的硬件或软件? 结果附后:

有人能帮我解决这个问题吗? 感谢您的帮助,

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

    此外,我不确定我是否不会通过增加电流和电源电流限制来损坏电动机隔离,因为在 InstaSPIN GUI 中增加 RES Est 电流和 Ind Est 电流时,可以听到非常大的噪音。

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

    我刚刚意识到,我在 HVMTR 高压套件中使用了错误的 DRV8312项目,而不是 Lab02c 项目,因为我以前使用过 DRV8312板,这些示例是不同的。 因此,现在我可以正确读取 DC 链路电压,但在为  Lab02c 激活标志“Flag_enableSys”和“Flag_Run_Identify”后,突然出现以下错误,所有表达式都无法读取:

    C28xx:错误:(错误-150 @ 0x0)配置过程中使用的 FTDI 驱动程序功能之一返回无效状态或错误。 (仿真包9.3.0.00032)
    C28xx:20次尝试后无法确定目标状态
    C28xx:在断开连接之前未能从目标中删除调试状态。 程序存储器中仍可能嵌入了断点操作代码。 建议您在连接和重新加载程序之前重置仿真器,然后再继续调试。

    我只是重置系统并重新上传程序,但仍有相同的错误:
    我对这里发生的事情附加了一个看法:

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

    我实际上通过为 JTAG 电缆制作铝屏蔽来解决了这个问题,现在,我再也没有这个错误了。
    但是,为  Lab02c 启用“Flag_Run_Identify”后  ,当禁用 “Flag_Run_Identify”时,我似乎看不到 DC 链路电压的变化,但我可以 再次启用“Flag_Run_Identify”。

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

    我实际上可以使用随附的 user.h 文件来解决此问题。 使用这些参数,电动机会来回移动一些,程序可以识别电动机和参数,但它不会沿单个方向移动,参数不符合我的预期,也不会从制造商处收到。

    e2e.ti.com/.../1273.user.h

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

    Mahshid,请查看 Instaspin 用户指南第6.9.2.9.1节。

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

    纳瓦内斯,我想你的意思是6.91。  
    InstaSPIN-FOC 和 InstaSPIN-MOTION 用户指南(修订版 (一)
    非常有帮助,谢谢!

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

    Mahshid,我指的是“电机识别故障排除”。 刚刚意识到 TI.com 上的文档版本是最新的,标题编号也有更新。