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.

[参考译文] INSTASPIN-BLDC:n´t launchxl-f28069m + boostxl-drv8301 + instaSpin-MOTION、无法达到80000rpm

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/608273/instaspin-bldc-can-t-reach-80000-rpm-with-launchxl-f28069m-boostxl-drv8301-instaspin-motion

器件型号:INSTASPIN-BLDC
主题中讨论的其他器件:MOTORWARELAUNCHXL-F28069MBOOSTXL-DRV8301DRV8301

大家好、我`m 使用 launchxl-f28069m + boostxl-drv8301来驱动高达80000rpm 的电机、但在实验 project_lab6a 中、instaSpin-MOTION 仅达到60000rpm。 下面是用于配置的 motorware_selecting_user_variables.xlsx 和 user_j1.h 文件。

有什么建议或想法?

谢谢

1.为 user.H、电机和逆变器 HW 填入这些值 3.建议在满足真检查后使用这些值
USER_SYSTEM_FREQ_MHz 90 MHz 子计算
最大总线电压 24 电机的理想 USER_IQ_FULL_SCALE_FREQ_Hz 1466,7. 目标 Hz、具有10%缓冲器
最大目标 RPM 80000 转速 133 3333 Hz 硬件允许的最大 USER_IQ_FULL_SCALE_FREQ_Hz 1386,0 4 * USER_VOLTGE_FILTER_POLE_Hz [具有5%缓冲器]
USER_MOTOR_NUM_POLE_PAIRS 1 成对 2. 极点 USER_IQ_FULL_SCALE_FREQ_Hz 1386,0 理想值和最大值的较低值
USER_PWM_FREQ_kHz 75 kHz 支持的最大 RPM 164657 转子 Hz 可以是1.98 * USER_IQ_FULL_SCALE_FREQ_Hz;EST 速度将在边界之外翻转!!!
USER_NUM_PWM_TICKS_PER_ISR_TICK 3. 滴答 25 kHz USER_MOTOR_FLUX_EST_FREQ_Hz 133、0 5-150Hz;最大目标频率的~10%、但在 Ls 和磁通可一致识别的情况下尽可能低
USER_NUM_ISR_TICKS_PER_CTRL_TICK 1 滴答 25 kHz USER_MAX_ACCEL_EST_Hzps   18、0 如果 USER_MOTOR_FLUX_EST_FREQ_Hz > 50Hz、则必须在 ID 期间增加加速度以避免超时
USER_NUM_CTRL_TICKS_PER_CURRENT_TICK 1 滴答 25 kHz 电流 Hz > MAX_Hz * 7. verdadero 如果为 false、则增大电流 kHz 或减小 MAX_Hz;控制系统的标准良好做法
USER_NUM_CTRL_TICKS_PER_EST_TICK 1 滴答 25 kHz EST <= CTRL verdadero 如果错误、则校正;如果结果未在控制循环中更新、则无需运行估算器
USER_ZEROSPEEDLIMIT 0.002 EST > 10 * USER_VOLTGE_FILTER_POLE_Hz (+10%裕度) verdadero 如果为 false、则增大 EST 速率
2.以下内容由硬件设计设置、使用 TI EVM 或您自己的硬件的默认值 EST > 8 * TARGET_Hz verdadero 如果为 false、则使用节拍增加有效 EST 频率
USER_VOLTGE_FILTER_POLE_Hz 365 Hz 调谐至 HW 极点 Flux_EST_FREQ > ZEROSPEEDLIMIT * FULL_SCALE_FREQ verdadero 如果为 false、则较低的 ZEROSPEEDLIMIT
USER_ADC_FULL_SCALE_CURRENT_A 33、00 A USER_IQ_FULL_SCALE_CURRENT_A   18、0 略大于= 0.5 * ADC_FULL_SCALE_CURRENT_A
USER_ADC_FULL_SCALE_VOLTGE_V 26、3147 启动 USER_IQ_FULL_SCALE_VOLTAGE_V 24、0 最初设置为总线电压、直到识别磁通
4.尝试电机 ID 后、尽可能更新这些参数并检查 IQ_V 调节 4.在 USER_MOTOR_RATed_VLUX 有效识别后进行检查
USER_MOTOR_Rated 磁通 4、3 V/Hz 0、3604 V/Hz =可使用新的 USER_IQ_FULL_SCALE_VOLTAGE_V (电池 I20)测量的最小磁通
USER_MOTOR_LS_d 7、5081605 h 最小磁通测量值< 0.9 * rated 磁通 verdadero 如果为 false、则将新的 USER_IQ_FULL_SCALE_VOLTAGE 降低至低于总线电压/ 2 + 10%缓冲器
5.*构建 WWN 硬件时的理想极点设计 IQ_VOLTAGE < RATGE_VLUX * EST Hz verdadero 如果为 false、减小新的 USER_IQ_FULL_SCALE_VOLTAGE 或增大 EST_Hz
最小极点 200 Hz 最小值 新的 USER_IQ_FULL_SCALE_VOLTAGE_V 6307、0 使用 a)或 b)中较大的值。 如果需要使 I18和 I19为真、则最小总线电压/ 2 + 10%缓冲器
Ideal * Pole >= 366、66667 Hz a)总线电压 24、0 典型值为最小值、但可降低至低于总线电压/2 + 10%缓冲器
半极**极点>= 183,3333333 Hz b) Bemf 生成@ Target Hz + 10% buffer 6306,7.
*使用理想极点保持目标 Hz < USER_IQ_FULL_SCALE_FREQ_Hz、但请注意、随着极点 Hz 的增加、您更容易受到漂移/误差的影响、应使用更高精度的 VPH 滤波电容器
**您可以使用对电容器误差/偏移/漂移不太敏感的较低极点(低至理想值的一半)。 设置 USER_IQ_FULL_SCALE_FREQ_Hz <= 4 *低极点* 0.95缓冲器。 目标 Hz 可达到+/- 1.98 * USER_IQ_FULL_SCALE_FREQ_Hz
不过、两者之间的性能差异通常很小。 请勿使用小于最小极点的滤波器极!!!


//! 简要介绍电流和电压
秘书长的报告
//! \brief 定义 IQ 变量的满量程频率、Hz
//! \brief 根据与该值的比率将所有频率转换为(pu)
//! \brief 此值必须大于预期的电机最大速度
ifndef QEP
#define USER_IQ_FULL_SCALE_FREQ_Hz       (1450.0)  // 800示例、具有缓冲器、用于8极6 krpm 电机在磁场减弱时运行至10 krpm;Hz =(RPM *极)/ 120
其他
#define USER_IQ_FULL_SCALE_FREQ_Hz       (USER_MOTOR_NUM_POLE_PAIRS /0.008)  //(4/0.008)= 500个示例、其中包含将8极6 kRPM 电机运行到6 kRPM 的缓冲器;Hz =(RPM *极)/ 120
#endif

//! \brief 定义系统内 IQ30电压变量的满量程值
//! 简要说明根据与该值的比率、所有电压均转换为(pu)
//! \brief 警告:此值必须满足以下条件:USER_IQ_FULL_SCALE_VOLTAGE_V > 0.5 * USER_MOTOR_MAX_CURRENT * USER_MOTOR_LS_d * USER_VOLTAGE_FILTER_POLE_Rps、
//! \brief 警告:否则,该值可能会饱和并翻转,从而导致值不准确
//! \brief 警告:此值通常大于测得的最大 ADC 值、尤其是在高反电动势电机的运行速度高于额定速度时
//! 简要警告:如果您知道反电动势常数的值、并且知道由于磁场减弱而以多种速度运行、请确保将此值设置为高于预期反电动势电压
//! 简要建议从比 USER_ADC_FULL_SCALE_VOLTGE_V 大~3倍的值开始、如果 Bemf 计算可能超过这些限制、则增加到4-5倍
//! \brief 此值也用于计算最小磁通值:USER_IQ_FULL_SCALE_VOLTAGE_V/USER_EST_FREQ_Hz/0.7
针对       boostxldrv8301_RevB 典型用法和 Anaheim 电机的#define USER_IQ_FULL_SCALE_VOLTAGE_V (30.0)// 24.0示例

//! \brief 定义 AD 转换器输入端的最大电压
//! 简要介绍将由最大 ADC 输入(3.3V)和转换(0FFFh)表示的值
//! 简要说明硬件相关、这应基于 ADC 输入的电压感应和缩放
#define USER_ADC_FULL_SCALE_VOLTGE_V      (26.314)     // 26.314 boostxldrv8301_RevB 电压调节

//! \brief 定义 IQ 变量 A 的满量程电流
//! \brief 根据与该值的比率将所有电流转换为(pu)
//! \brief 警告:此值必须大于预期的电机最大电流读数、否则读数将回滚至0、从而导致控制问题
#define USER_IQ_FULL_SCALE_CURRENT_A        (20.0)//针对 boostxldrv8301_RevB 典型用法的20.0示例

//! \brief 定义 AD 转换器上的最大电流
//! 简要介绍将由最大 ADC 输入(3.3V)和转换(0FFFh)表示的值
//! 简要说明硬件相关、这应基于 ADC 输入的电流感应和缩放
#define USER_ADC_FULL_SCALE_CURRENT_A       (33.0) // 33.0 boostxldrv8301_RevB 电流调节

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

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

//! 简要介绍 A、B 和 C 相的 ADC 电流偏移
//! 简要说明与硬件相关的一次性、但校准也可以在运行时完成
//! \brief 在初始电路板校准后,这些值应针对您的特定硬件进行更新,以便在编译二进制文件后可以加载到控制器中
#define  I_A_offset   (0.827802360)
#define  I_B_OFFSET   (0.828094780)
#define  I_C_OFFSET   (0.803567231)

//! 简要介绍 A、B 和 C 相的 ADC 电压偏移
//! 简要说明与硬件相关的一次性、但校准也可以在运行时完成
//! \brief 在初始电路板校准后,这些值应针对您的特定硬件进行更新,以便在编译二进制文件后可以加载到控制器中
#define  V_A_offset   (0.397775924)
#define  V_B_OFFSET   (0.399682021)
#define  V_C_OFFSET   (0.397315598)


//! 简要介绍时钟和计时器
秘书长的报告
//! \brief 定义脉宽调制(PWM)频率、kHz
//! 简单的 PWM 频率可直接在此处安全地设置为高达30KHz (在某些情况下最大值为60KHz)
//! 简要对于更高的 PWM 频率(对于低电感、高电流纹波电机、典型值为60 KHz 以上)、建议使用 ePWM 硬件
//! 简要介绍可调节的 ADC SOC、以抽取控制系统的 ADC 转换完成中断、或使用软件请求示例。
//! \brief 否则,您可能会丢失中断并中断控制状态机的计时
#define USER_PWM_FREQ_kHz               (75.0)//30.0示例、典型值为8.0 - 30.0 KHz;极低电感、高速电机可能需要45-80 KHz

//! \brief 定义允许的最大电压矢量(Vs)幅度。  该值设置的输出的最大幅度
//! 简要介绍 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 对于 SQRT (3)/2 = 86.6%占空比时峰值为正弦波、将 USER_MAX_VS_MAG 设置为0.5。  这种情况不需要电流重构。
//! 简要设置 USER_MAX_VS_MAG = 1/SQRT (3)= 0.5774、用于峰值为100%占空比的纯正弦波。  这种情况下(Lab10a-x)需要电流重构。
//! \brief 设置 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 抽取
秘书长的报告
//! \brief 定义每个 ISR 时钟节拍的 PWM 时钟节拍数
//!        注意:有效值仅为1、2或3
#define USER_NUM_PWM_TICKS_PER_ISR_TICK       (3)

//! \brief 定义每个控制器时钟节拍(软件)的 ISR 节拍数(硬件)
//! \brief 控制器时钟节拍(CTRL)是用于软件中所有时序的主时钟
//! \brief 通常情况下、PWM 频率触发器(可由 ePWM 硬件抽取以减少开销) ADC SOC
//! \brief ADC SOC 触发 ADC 转换完成
//! \brief ADC 转换完成会触发 ISR
//! \brief 这将硬件 ISR 速率与软件控制器速率相关联
//! \brief 典型地想考虑16KHz ISR 上的某种形式的抽取(ePWM 硬件、电流或 EST)、以确保中断完成并为后台任务留出时间
#define USER_NUM_ISR_TICKS_PER_CTRL_TICK      (1)     // 2示例、控制器时钟速率(CTRL)以 PWM/2运行;例如30 KHz PWM、15 KHz 控制

//! \brief 定义每个电流控制器时钟节拍的控制器时钟节拍数
//! \简要 说明控制器时钟速率与电流控制器(FOC)速率之间的关系
#define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK  (1)     // 1典型值、正向 FOC 电流控制器(IQ/ID/IPART/SVPWM)以与 CTRL 相同的速率运行。

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

//! \brief 定义每个速度控制器时钟节拍的控制器时钟节拍数
//! 控制器时钟速率与速度环路速率之间的简要关系
#define USER_NUM_CTRL_TICKS_PER_SPEED_TICK (15)  // 15 (典型值)以匹配 PWM、例如15kHz PWM、控制器和电流环路、1KHz 速度环路

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


//! 简要限制
秘书长的报告
//! \brief 定义要在 Id 参考中应用的最大负电流
//! \brief 仅用于磁场减弱、这是一个安全设置(例如防止退磁)
//! 简要用户还必须注意、总电流幅度[sqrt (ID^2 + IQ^2)]应保持在任何机器设计规格以下
#define USER_MAX_NEW_ID_REF_CURRENT_A    (-0.5 * USER_MOTOR_MAX_CURRENT)  //-0.5 * USER_MOTOR_MAX_CURRENT 示例,进行调整以满足电机的安全需求

//! \brief 定义 R/L 估算频率、Hz
//! 简要介绍低电感电机的值较高、电感较高时的值较低
//! 简要介绍电机。  这些值的范围为100Hz 至300Hz。
#define USER_R_OVER L_EST_FREQ_Hz (300)              //默认为300

//! \brief 定义磁通积分器的低速限值、pu
//! \brief 这是 ForceAngle 对象处于活动状态的速度范围(CW/CCW),但仅当启用时
//! \brief 超出此速度-或者如果已禁用- ForcAngle 将永远不会被激活,并且角度仅由 FAST 提供
#define USER_ZEROSPEEDLIMIT  (0.5 / USER_IQ_FULL_SCALE_FREQ_Hz)    // 0.002pu、1-5 Hz 典型值;Hz = USER_ZEROSPEEDLIMIT * USER_IQ_FULL_SCALE_FREQ_Hz

//! \brief 定义力角频率、Hz
//! \brief ForceAngle 对象使用的定子矢量旋转频率
//! \brief 可以是正的或负的
#define USER_FORCE_ANGE_FREQ_Hz  (2.0 * USER_ZEROSPEEDLIMIT * USER_IQ_FULL_SCALE_FREQ_Hz)     // 1.0典型强制角启动速度


//! 简要说明极点
秘书长的报告
//! \brief 定义模拟电压滤波器极点位置、Hz
//! \brief 必须与 VPH 的硬件过滤器相匹配
#define USER_VOLTGE_FILTER_POLE_Hz (364.682)  // 364.682,bootxldrv8301_RevB 硬件的值


//! 简要介绍用户电机和 ID 设置
秘书长的报告

//! \brief 定义 SpinTAC Control 的默认带宽
//! \brief 此值应通过调整过程来确定 SpinTAC Control
//! \brief 如果之前已确定带宽度值
//! \brief 将其乘以20转换为带宽
#define USER_SYSTEM_BANTANG带宽     (20.0)

//! \brief 用唯一的名称和 ID 号定义每个电机
// BLDC 和 SMPM 电机

#define AIRFAN_MFA0500         401

//! \brief 取消注释编译时应包含的电机
//! \brief 然后、这些电机 ID 设置和电机参数可供控制系统使用
//! \brief 确定您的理想设置和参数后、请更新此处的电机部分、使其在二进制代码中可用
#define USER_MOTOR_AIRFAN_MFA0500  

#if (USER_MOTOR== AIRFAN_MFA0500)                              //名称必须与电机#define 相匹配
#define USER_MOTOR_TYPE                MOTOR_Type_PM  // Motor_Type_PM (全部同步:BLDC、PMSM、SMPM、IPM)或 Motor_Type_Induction (ACI 异步)
#define USER_MOTOR_NUM_POLE_PAIRS      (1)//对、而不是总极数。 仅用于根据转子 Hz 计算用户 RPM
#define USER_MOTOR_RR                  (NULL)//在 Y 等效电路中确定的相位到中性点(欧姆、浮点)
#define USER_MOTOR_Rs                  (0.134118915)//在 Y 等效电路中确定的相位到中性点(欧姆、浮点)
#define USER_MOTOR_LS_d                (0.0000173241478)//对于感应、确定的平均定子电感 (亨利、浮点数)
#define USER_MOTOR_LS_q                (0.0000173241478)//对于感应、确定的平均定子电感 (亨利、浮点数)
#define USER_MOTOR_Rated 磁通(          0.0118218949)// sqrt (2/3)*额定电压(线路)/额定频率(Hz)
#define USER_MOTOR_磁 化电流 (NULL)//为感应电机识别的磁化电流、否则为 NULL
#define USER_MOTOR_RES_EST_CURRENT     (0.5)//在电机识别期间、用于 Rs 估算的最大电流(安培、浮点数)、10-20%额定电流
#define USER_MOTOR_IND_EST_CURRENT     (-0.5)//不用于感应
#define USER_MOTOR_MAX_CURRENT         (8.0)//关键:在 ID 和运行时使用、设置所提供速度 PI 控制器向 IQ 控制器输出的最大电流命令的限制
#define USER_MOTOR_FLUX_EST_FREQ_Hz    (133.0)//在电机识别期间、最大命令速度(Hz、浮点)。 应始终使用5Hz 进行感应。
#define USER_MOTOR_ENCODER_LINs       (1.0)//电机正交编码器上的线数
#define USER_MOTOR_MAX_SPEED_KRPM      (80.0)         //电机的最大速度
#define USER_SYSTEM_惯性            (0.02218168974)        //电机和系统的惯性、应通过 SpinTAC 速度识别进行估算
#define USER_SYSTEM_FRICTION           (0.003876209259)        //电机和系统的摩擦应通过 SpinTAC 速度识别进行估算
#define USER_SYSTEM_BANGE_SCALE    (1.0)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.检查电机惯性是否正确、使用 lab05c 识别电机惯性。
    2.检查 USER_MOTOR_MAX_CURRENT 是否足够。 gMotorVars.IqRef_A 是否等于 USER_MOTOR_MAX_CURRENT?
    3.检查直流总线电压是否足以达到最大速度。 将直流总线电压从24V 增加到26V、以检查电机速度随直流总线电压的增加情况。 如果是、这意味着高速运行需要磁场减弱控制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Yanming:

    1.检查电机惯性是否正确、使用 lab05c 识别电机惯性。

    我´m 测试、但 gMotorVars.SpinTAC.VelIdRun 从未返回到0、因此我不确定识别是否正确值为:

    #define USER_SYSTEM_惯性            (0.02327018976)        //电机和系统的惯性、应通过 SpinTAC 速度识别进行估算
    #define USER_SYSTEM_FRICTION           (0.01045584679)        //电机和系统的摩擦应通过 SpinTAC 速度识别进行估算

     我有制造商提供的转子惯性信息= 3.3*10^-7 kg*m^2


    2.检查 USER_MOTOR_MAX_CURRENT 是否足够。 gMotorVars.IqRef_A 是否等于 USER_MOTOR_MAX_CURRENT?

    是的、这´s 足够、电机始终运行60K rpm。 例如、如果 USER_MOTOR_MAX_CURRENT  10、则在60.5K rpm gMotorVars.IqRef_A 7.5A 和61K rpm gMotorVars.IqRef_A 9.999A 时、电机永远不会达到此速度


    3.检查直流总线电压是否足以达到最大速度。 将直流总线电压从24V 增加到26V、以检查电机速度随直流总线电压的增加情况。 如果是、这意味着高速运行需要磁场减弱控制。

    我们还有另外两个来自其他公司的驱动器、这些公司在24V 电压下运行80K 电流、并具有磁场减弱控制功能。 这对我们来说不是一个选择。

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

    USER_MAX_VS_MAG_PU       (0.5)

    您是否采用了您的最大调制指数? BoostXL DRV8301使用三种低侧分流测量、因此您需要某种形式的电流重构才能超过0.5:

    //! 简要设置 USER_MAX_VS_MAG = 1/SQRT (3)= 0.5774、用于峰值为100%占空比的纯正弦波。  这种情况下(Lab10a-x)需要电流重构。

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

    不用客气、感谢您的更新!