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.

[参考译文] CCS/TMS320F28069M:CCS 调试窗口显示负电机转速

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/592469/ccs-tms320f28069m-ccs-debugging-window-shows-negative-motor-speed

器件型号:TMS320F28069M
主题中讨论的其他器件:DRV8301MOTORWARE

工具/软件:Code Composer Studio

你(们)好  

我们正在尝试使用 TI instaspin 解决方案运行20kW PMSM 电机。我们开发了自己的逆变器、最大可承载150A 电流、我们提供48V 电池作为电源。该电路包含3个霍尔效应传感器(L31S050S05FS)、用于测量相电流。

我们使用 TI Boostxldrv-8301RevB 识别了电机参数。 当我们尝试使用自己的逆变器板运行电机时,电机正在尝试旋转,但调试窗口中的参考速度显示负值。在运行电机时,转矩不好。问题出在哪里??

提前感谢您。

这是我的 user_j1.h 文件

 

#ifndef _USER_J1_H_
#define _USER_J1_H_
/*--版权所有-- BSD
*版权所有(c) 2012、德州仪器(TI)公司
*保留所有权利。
*
*
只要
符合以下条件*、允许以源代码和二进制形式重新分发和使用:
*
*源代码的重新分发必须保留上述版权
声明*、此条件列表和以下免责声明。
*
***二进制形式的再发行必须在

*随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
*
***未经

事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
*
*本软件由版权所有者和贡献者"按原样"提供
*、

不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
*贡献者都不对任何直接、间接、偶然、特殊、
*模范、 或相应的损害(包括但不限于
*采购替代产品或服务;丧失使用、数据或利润;
*或业务中断)、但出于任何责任理论
、*无论是在合同中、严格责任还是由于
使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
、*即使已获悉可能会发生此类损坏。
*--/copyrights-*//!

\file solutions/instaspin_foc/boards/boostxldrv8301_revB/F28x/f2806xF/src/user_j1.h
//! \brief 包含用于 CTRL、HAL 和 EST 模块的用户初始化数据的公共接口
//!
//! (C)版权所有2012、Texas Instruments、Inc.


秘书长的报告
//包括

//!
//!
//! defgroup 用户//
!
//@{


#ifdef __cplusplus
extern "C"{
#endif

//*********
//定义

//! 简要介绍电流和电压
//
//! \brief 定义 IQ 变量的满量程频率、Hz
//! \brief 根据与该值的比率//
将所有频率转换为(pu)! \brief 此值必须大于您期望电机

#define USER_IQ_FULL_SCALE_FREQ_Hz 的最大速度 (800)//带有缓冲器的800示例、用于8极6 krpm 电机在磁场减弱时运行到10 krpm;Hz =(RPM *极)/ 120

//! \brief 定义系统内部 IQ30电压变量的满量程值
//! \brief 根据与该值的比率//
将所有电压转换为(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 值、尤其是在运行速度高于额定速度
的高反电动势电机中//! \brief 警告:如果您知道反电动势常数的值、并且您知道由于磁场减弱而以多种速度运行、请确保将此值设置为高于预期反电动势电压
//! 简要建议从比 USER_ADC_FULL_SCALE_VOLTGE_V 大~3倍的值开始、如果 Bemf 计算可能超过这些限制、则增加到4-5倍
//! \brief 此值也用于计算最小磁通值:USER_IQ_FULL_SCALE_VOLTAGE_V/USER_EST_FREQ_Hz/0.7
#define USER_IQ_FULL_SCALE_VOLTAGE_V (113)//针对 boostxldrv8301_RevB 典型用法和 Anaheim 电机的24.0示例
//#define USER_IQ_FULL_SCALE_VOLTAGE_V (24)
//! \brief 定义 AD 转换器输入端的最大电压
//! 将由最大 ADC 输入(3.3V)和转换(0FFFh)表示的值简述
//! 简要说明硬件相关、这应基于 ADC 输入的电压检测和调节
//#define USER_ADC_FULL_SCALE_VOLTGE_V (26.314) // 26.314 boostxldrv8301_RevB 电压调节
#define USER_ADC_FULL_SCALE_VOLT_V (113)/!
\brief 定义 IQ 变量的满量程电流、a
//! \brief 根据与该值的比率//
将所有电流转换为(pu)! \brief 警告:此值必须大于预期的电机最大电流读数、否则读数将回滚至0、从而产生控制问题
//#define USER_IQ_FULL_SCALE_CURRENT_A (20)// boostxldrv8301_revB 典型用法
#define USER_IQ_FULL_SCALE_CURRENT_A 的20.0示例 (150)//
! \brief 定义 AD 转换器的最大电流
//! 将由最大 ADC 输入(3.3V)和转换(0FFFh)表示的值简述
//! 简要说明硬件相关、这应基于 ADC 输入的电流感应和缩放
//#define USER_ADC_FULL_SCALE_CURRENT_A (33)// 33.0 boostxldrv8301_RevB 电流调节
#define USER_ADC_FULL_SCALE_CURRENT_A (300)
//! \brief 定义使用的电流传感器数量
//! \brief 由硬件功能确定//
! \brief 可以是(2)或(3)
#define USER_NUM_CURRENT_SENSORS (3)//为在全速范围内实现最佳性能而首选的3种设置,允许100%占空比

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

//! \简述 A、B 和 C 相的 ADC 电流偏移
//! 简要说明与硬件相关的一次性、但也可以在运行时进行校准
//! \brief 在电路板初始校准后、应针对您的特定硬件更新这些值、以便在编译为二进制文件后将其加载到控制器
#define I_A_offset (0.8331743479)
#define I_B_offset (0.8355930448)
#define I_C_offset (0.8392037153)

//! \简述 A、B 和 C 相的 ADC 电压偏移
//! 简要说明与硬件相关的一次性、但也可以在运行时进行校准
//! \brief 在电路板初始校准后、应针对您的特定硬件更新这些值、以便在编译为二进制文件后将其加载到控制器
#define V_A_offset (0.5271264911)
#define V_B_offset (0.5257175565)
#define V_C_offset (0.5249399543)


//! 简要时钟和计时器
//*********
//! \brief 定义脉宽调制(PWM)频率、kHz
//! 简单的 PWM 频率可以直接在这里安全地设置为30KHz (在某些情况下最大值为60KHz)
//! 简要对于更高的 PWM 频率(对于低电感、高电流纹波电机、典型值为60 KHz 以上)、建议使用 ePWM 硬件
//! 简要介绍可调节的 ADC SOC、以抽取控制系统的 ADC 转换完成中断、或使用软件请求示例。
//! \brief 否则您可能会丢失中断并中断控制状态机#define
USER_PWM_FREQ_kHz 的时序 (45.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 定义每个 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运行;例如30KHz PWM、15KHz 控制

//! \brief 定义每个电流控制器时钟节拍
的控制器时钟节拍数//! 控制器时钟速率与电流控制器(FOC)速率
的简要关系#define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK (1) // 1典型的正向 FOC 电流控制器(IQ/ID/IPark/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 仅用于磁场减弱、这是一个安全设置(例如防止退磁)
//! \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
//! \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,boostxldrv8301_RevB 硬件
#define USER_VOLTGE_FILTER_POLE_Hz (811.69)

//! 简要介绍用户电机和 ID 设置
//

//! \brief 使用唯一的名称和 ID 号//
BLDC & SMPM 电机
#define Estun_EMJ_04APB22定义每个电机 101
#define Anaheim_BLY172S 102
#define Tamagawa A0100103
#define Teknic_M2310PLN04K 104
#define Drone _A2212_1000KV105
#define Drone _A2313_960KV106

// IPM 电机
//如果用户提供单独的 Ls-d、Ls-q
//否则用用户或识别的平均 Ls
#define Belte_Drive_Pilker_IPM 处理 201
#define Anaheim_F凸 极 202

// ACIM 电机
#define Marathing_5K33GN2A 301

//! \brief 取消注释编译
//时应包含的电机! \brief 然后、这些电机 ID 设置和电机参数可供控制系统使用
//! \brief 确定理想设置和参数后、请更新此处的电机部分、以便在二进制代码
//#define USER_MOTOR_Estun_EMJ_04APB22
#define USER_MOTOR_MY_MOTOR//#define
USER_MOTOR_Tamagawa A0100
//#define USER_MOTOR_Drone_A2313_IPM KV
// define USER_MOTOR_INALE_AMENT_MOTOR_INA0232_MOTOR_MOTOR_INA#define AMENT_UN_MOTOR_MER #define AMENT_UN_MOTOR_INAINET_LE_INAINALE_EMJ/#define

AMENT_MOTOR_LE_MOTOR_INAINAINA023220_MOTOR_



//名称必须与电机#define
#USER_MOTOR_TYPE 相匹配 Motor_Type_Pm // Motor_Type_Pm (全部同步:BLDC、PMSM、SMPM、IPM)或 Motor_Type_Induction (异步 ACI)
#define USER_MOTOR_NUM_POLE_PAIRS (4) //对、而不是总极数。 仅用于根据转子 Hz 计算用户 RPM
#define USER_MOTOR_RR (空) //仅感应电机,否则为 NULL
#define USER_MOTOR_Rs (2.303403) // Y 等效电路中识别的相位到中性点电阻(欧姆、浮点)
#define USER_MOTOR_LS_d (0.008464367)//对于 PM、确定的平均定子电感(亨利、浮点数)
#define USER_MOTOR_LS_q (0.008464367)//对于 PM、识别出的平均定子电感(亨利、浮点数)
#define USER_MOTOR_RATGED_FLUX (0.38) //确定转子和定子之间的总磁链(V/Hz)
#define USER_MOTOR_磁 化电流(NULL) //仅感应电机、否则为 NULL
#define USER_MOTOR_RES_EST_CURRENT (1.0) //在电机识别期间、用于 Rs 估算的最大电流(安培、浮点数)、10-20%额定电流
#define USER_MOTOR_IND_EST_CURRENT (-1.0) //在电机识别期间、用于 LS 估算的最大电流(负安培、浮点数)、只需足够的时间即可启用旋转
#define USER_MOTOR_MAX_CURRENT (3.82) //严重:在 ID 和运行时使用、设置所提供速度 PI 控制器到 IQ 控制器
#define USER_MOTOR_FLUX_EST_FREQ_Hz 的最大电流命令输出的限制 (20.0) //在电机识别期间、最大命令速度(Hz、浮点)、~10%额定

#elif (USER_MOTOR== Anaheim _BLY172S)
#define USER_MOTOR_TYPE Motor_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (4)
#define USER_MOTOR_RR (空)
#define USER_MOTOR_Rs (0.4110007)
#define USER_MOTOR_LS_d (0.0007092811)
#define USER_MOTOR_LS_q (0.0007092811)
#define USER_MOTOR_RATed_FLUX (0.03279636)
#define USER_MOTOR_磁 化电流(NULL)
#define USER_MOTOR_RES_EST_CURRENT (1.0)
#define USER_MOTOR_IND_EST_CURRENT (-1.0)
#define USER_MOTOR_MAX_CURRENT (5.0)
#define USER_MOTOR_FLUX_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_粗略_pu (0.13) //粗 IPD 激励幅度、PU
#define IPD_HFI_EXC_MAG_FEL_PU (0.12) //精细 IPD 激励幅度、PU
#define IPD_HFI_EXC_TIME_粗略_S (0.5) //粗等待时间、秒最大值0.64
#define IPD_HFI_EXC_TIME_FEL_S (0.5) //精细等待时间、秒最大值0.4
#define AFSEL_FREQ_HIGH_PU (_IQ (15.0/USER_IQ_FULL_SCALE_FREQ_Hz)
)#define AFSEL_FREQ_LOW_PU (_IQ (10.0 / USER_IQ_FULL_SCALE_FREQ_Hz)
)#define AFSEL_IQ_SLOW_EST (_IQ (((float)(1.0/0.1/USER_ISR_FREQ_Hz))
)#define AFSEL_IQ_SLOW_HFI (_IQ (((float)(1.0/10.0/USER_ISR_FREQ_Hz))
)#define AFSEL_IQ_SLOW_THROTTLE_DWN (_IQ (((float)(1.0/0.05/USER_ISR_FREQ_Hz))
)#define AFSEL_MAX_IQ_REP_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%#USER_MOTOR_FREQ_MIN(3.0V)// Hz)VOLT -建议设置为额定电机电压
#define USER_MOTOR_VOLT_MAX(18.0)//伏特-建议设置为额定电机电压

#Elif (USER_MOTOR== Tamagawa A0100)
#define USER_MOTOR_TYPE 的100% Motor_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (4)
#define USER_MOTOR_RR (空)
#define USER_MOTOR_Rs (0.262230158)
#define USER_MOTOR_LS_d (0.000459346687)
#define USER_MOTOR_LS_q (0.000459346687)
#define USER_MOTOR_RAVEND_FLUX (0.0484918393)
#define USER_MOTOR_磁 化电流(NULL)
#define USER_MOTOR_RES_EST_CURRENT (1.0)
#define USER_MOTOR_IND_EST_CURRENT (-1.0)
#define USER_MOTOR_MAX_CURRENT (5.0)
#define USER_MOTOR_FLUX_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_粗略_pu (0.13) //粗 IPD 激励幅度、PU
#define IPD_HFI_EXC_MAG_FEL_PU (0.12) //精细 IPD 激励幅度、PU
#define IPD_HFI_EXC_TIME_粗略_S (0.5) //粗等待时间、秒最大值0.64
#define IPD_HFI_EXC_TIME_FEL_S (0.5) //精细等待时间、秒最大值0.4
#define AFSEL_FREQ_HIGH_PU (_IQ (15.0/USER_IQ_FULL_SCALE_FREQ_Hz)
)#define AFSEL_FREQ_LOW_PU (_IQ (10.0 / USER_IQ_FULL_SCALE_FREQ_Hz)
)#define AFSEL_IQ_SLOW_EST (_IQ (((float)(1.0/0.1/USER_ISR_FREQ_Hz))
)#define AFSEL_IQ_SLOW_HFI (_IQ (((float)(1.0/10.0/USER_ISR_FREQ_Hz))
)#define AFSEL_IQ_SLOW_THROTTLE_DWN (_IQ (((float)(1.0/0.05/USER_ISR_FREQ_Hz))
)#define AFSEL_MAX_IQ_REP_EST (_IQ (0.6)
)#define AFSEL_MAX_IQ_REF_HFI (_IQ (0.6)

)#Elif (USER_MOTOR==无人机_A2212_1000KV)
#define USER_MOTOR_TYPE Motor_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (4)
#define USER_MOTOR_RR (空)
#define USER_MOTOR_Rs (0.4110007)
#define USER_MOTOR_LS_d (0.0007092811)
#define USER_MOTOR_LS_q (0.0007092811)
#define USER_MOTOR_RATed_FLUX (0.03279636)
#define USER_MOTOR_磁 化电流(NULL)
#define USER_MOTOR_RES_EST_CURRENT (1.0)
#define USER_MOTOR_IND_EST_CURRENT (-1.0)
#define USER_MOTOR_MAX_CURRENT (5.0)
#define USER_MOTOR_FLUX_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_粗略_pu (0.13) //粗 IPD 激励幅度、PU
#define IPD_HFI_EXC_MAG_FEL_PU (0.12) //精细 IPD 激励幅度、PU
#define IPD_HFI_EXC_TIME_粗略_S (0.5) //粗等待时间、秒最大值0.64
#define IPD_HFI_EXC_TIME_FEL_S (0.5) //精细等待时间、秒最大值0.4
#define AFSEL_FREQ_HIGH_PU (_IQ (15.0/USER_IQ_FULL_SCALE_FREQ_Hz)
)#define AFSEL_FREQ_LOW_PU (_IQ (10.0 / USER_IQ_FULL_SCALE_FREQ_Hz)
)#define AFSEL_IQ_SLOW_EST (_IQ (((float)(1.0/0.1/USER_ISR_FREQ_Hz))
)#define AFSEL_IQ_SLOW_HFI (_IQ (((float)(1.0/10.0/USER_ISR_FREQ_Hz))
)#define AFSEL_IQ_SLOW_THROTTLE_DWN (_IQ (((float)(1.0/0.05/USER_ISR_FREQ_Hz))
)#define AFSEL_MAX_IQ_REP_EST (_IQ (0.6)
)#define AFSEL_MAX_IQ_REF_HFI (_IQ (0.6)

)#Elif (USER_MOTOR==无人机_A2313_960KV)
#define USER_MOTOR_TYPE Motor_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (4)
#define USER_MOTOR_RR (空)
#define USER_MOTOR_Rs (0.4110007)
#define USER_MOTOR_LS_d (0.0007092811)
#define USER_MOTOR_LS_q (0.0007092811)
#define USER_MOTOR_RATed_FLUX (0.03279636)
#define USER_MOTOR_磁 化电流(NULL)
#define USER_MOTOR_RES_EST_CURRENT (1.0)
#define USER_MOTOR_IND_EST_CURRENT (-1.0)
#define USER_MOTOR_MAX_CURRENT (5.0)
#define USER_MOTOR_FLUX_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_粗略_pu (0.13) //粗 IPD 激励幅度、PU
#define IPD_HFI_EXC_MAG_FEL_PU (0.12) //精细 IPD 激励幅度、PU
#define IPD_HFI_EXC_TIME_粗略_S (0.5) //粗等待时间、秒最大值0.64
#define IPD_HFI_EXC_TIME_FEL_S (0.5) //精细等待时间、秒最大值0.4
#define AFSEL_FREQ_HIGH_PU (_IQ (15.0/USER_IQ_FULL_SCALE_FREQ_Hz)
)#define AFSEL_FREQ_LOW_PU (_IQ (10.0 / USER_IQ_FULL_SCALE_FREQ_Hz)
)#define AFSEL_IQ_SLOW_EST (_IQ (((float)(1.0/0.1/USER_ISR_FREQ_Hz))
)#define AFSEL_IQ_SLOW_HFI (_IQ (((float)(1.0/10.0/USER_ISR_FREQ_Hz))
)#define AFSEL_IQ_SLOW_THROTTLE_DWN (_IQ (((float)(1.0/0.05/USER_ISR_FREQ_Hz))
)#define AFSEL_MAX_IQ_REP_EST (_IQ (0.6)
)#define AFSEL_MAX_IQ_REF_HFI (_IQ (0.6)

)#Elif (USER_MOTOR== Anaheim 凸极) //使用 IPD_HFI 时、将抽取设置为1、将 PWM 设置为15.0KHz
#define USER_MOTOR_TYPE Motor_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (4)
#define USER_MOTOR_RR (空)
#define USER_MOTOR_Rs (0.1215855)
#define USER_MOTOR_LS_d (0.0002298828)
#define USER_MOTOR_LS_q (0.0002298828)
#define USER_MOTOR_RATed_FLUX (0.04821308)
#define USER_MOTOR_磁 化电流(NULL)
#define USER_MOTOR_RES_EST_CURRENT (2.0) //输入安培(浮点)
#define USER_MOTOR_IND_EST_CURRENT (-0.5) //输入负安培(浮点)
#define USER_MOTOR_MAX_CURRENT (10.0)
#define USER_MOTOR_FLUX_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_粗略_pu (0.13) //粗 IPD 激励幅度、PU
#define IPD_HFI_EXC_MAG_FEL_PU (0.12) //精细 IPD 激励幅度、PU
#define IPD_HFI_EXC_TIME_粗略_S (0.5) //粗等待时间、秒最大值0.64
#define IPD_HFI_EXC_TIME_FEL_S (0.5) //精细等待时间、秒最大值0.4
#define AFSEL_FREQ_HIGH_PU (_IQ (15.0/USER_IQ_FULL_SCALE_FREQ_Hz)
)#define AFSEL_FREQ_LOW_PU (_IQ (10.0 / USER_IQ_FULL_SCALE_FREQ_Hz)
)#define AFSEL_IQ_SLOW_EST (_IQ (((float)(1.0/0.1/USER_ISR_FREQ_Hz))
)#define AFSEL_IQ_SLOW_HFI (_IQ (((float)(1.0/10.0/USER_ISR_FREQ_Hz))
)#define AFSEL_IQ_SLOW_THROTTLE_DWN (_IQ (((float)(1.0/0.05/USER_ISR_FREQ_Hz))
)#define AFSEL_MAX_IQ_REP_EST (_IQ (0.6)
)#define AFSEL_MAX_IQ_REF_HFI (_IQ (0.6)

)#Elif (USER_MOTOR== Teknic_M2310PLN04K)
#define USER_MOTOR_TYPE Motor_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (4)
#define USER_MOTOR_RR (空)
#define USER_MOTOR_Rs (0.3918252)
#define USER_MOTOR_LS_d (0.00023495)
#define USER_MOTOR_LS_q (0.00023495)
#define USER_MOTOR_RATed_FLUX (0.03955824)
#define USER_MOTOR_磁 化电流(NULL)
#define USER_MOTOR_RES_EST_CURRENT (1.0)
#define USER_MOTOR_IND_EST_CURRENT (-0.5)
#define USER_MOTOR_MAX_CURRENT (7.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz (20.0)

#Elif (USER_MOTOR==皮带驱动螺垫圈_IPM)
#define USER_MOTOR_TYPE Motor_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (4)
#define USER_MOTOR_RR (空)
#define USER_MOTOR_Rs (2.832002)
#define USER_MOTOR_LS_d (0.0115)
#define USER_MOTOR_LS_q (0.0135)
#define USER_MOTOR_RAVEND_FLUX (0.5022156)
#define USER_MOTOR_磁 化电流(NULL)
#define USER_MOTOR_RES_EST_CURRENT (1.0)
#define USER_MOTOR_IND_EST_CURRENT (-1.0)
#define USER_MOTOR_MAX_CURRENT (4.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz (20.0)

#Elif (USER_MOTOR== Marathing_5K33GN2A) //名称必须与电机#define
USER_MOTOR_TYPE MOTOR_Type_Induction
#define USER_MOTOR_NUM_POLE_PAIRS (2)
#define USER_MOTOR_RR (02064561)
#define USER_MOTOR_Rs (9.171844)
#define USER_MOTOR_LS_D (#define EST_MOTOR_CURRENT
)
#define (#define #define #define EST_FR_TR_TR_TR_MER)#define 0_MOTOR_MER




(#define #.0_MOTOR_CURRENT)#define #define #define #.0_MOTOR_TR_TR_IN_IN_MER

(#.0155_MOTOR_MER)#define #define #define #.0_MOTOR_CURRENT (#define #define #define #.IN_MOTOR_MOTOR_MOTOR_MOTOR_MER)#.













要定义#USER_MOTOR_TYPE MOTOR_Type_PM #define USER_MOTOR_NUM_POLE_PAIRS (5)#define USER_MOTOR_RR (NULL)#define USER_MOTOR_Rs (.215310246)#define USER_MOTOR_LS_D (2.5940768e-05)#define USER_MOTOR_RATE FREQ (#define)#define USER_MOTOR_MOTOR_RAMENT_REGENT (#FR40.0_MOTOR_CURRENT)#define)#define (#define #define 0_MOTOR_INT_FR_TR_INT_FR40.0%(#define)#FR_MOTOR_CURRENT (#define)#define 0_MOTOR_MOTOR_FR_FR_INT_FR_INT_FR_MOTOR_FR_TR_TR_INT_FR_MOTOR_TRIGN)#define #define #define (#define # 频率
#define USER_MOTOR_FREQ_HIGH(100.0)// Hz -建议设置为额定电机频率的100%
#define USER_MOTOR_FREQ_MAX(120.0)// Hz -建议设置为额定电机频率
的120%#define USER_MOTOR_VOLT_MIN(20)//伏特-建议设置为额定电机电压的15%
(#define USER_MOTOR_VOLT_MAX)/USER_VOLT_VOLTAIN (20)// VOLT) VOLT -建议设置为额定电机电压



的100%#else
#error 未指定电机类型
#endif

#ifdef _cplusplus
}
#endif // extern "C"

//@}// ingroup
#endif //_user_J1_H_定义的末尾

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否已针对您的定制板尝试过实验1b 和1c? 这些实验是专为测试您的硬件完整性而设计的标量控制实验、但它们也可以帮助我们调试可能存在问题的地方、可能在您的反馈网络中。 您是否为命令的 IqRef 具有正确的极性?

    肖恩
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    使用 lab02c 首先识别电机参数、并检查电流/电压采样电路。 如果识别的电机参数正确、电流/电压采样工作正常。 如果没有、您将无法执行下一步、电机将无法正常运行。
    您正在从事什么实验项目? 基准速度(gMotorVars.SpeedRef_KRPM)由您自己设置、它是电机的目标速度。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复 Sean Bigley、
    如何确保命令的 IqRef 值正确?
    我们尝试了 lab1b、电机未运行。当我们更改调试窗口中的斜率值时、它运行顺畅、
    然后、我们尝试运行 lab1c、电机未正常运行。它在调试窗口中显示了正确的直流总线值。但速度不会根据命令的基准速度变化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复 Yanming、
    我们使用 TI boostxldrv8301逆变器确定了电机参数,实际上我们没有正确的电机铭牌,
    使用 boostxl 逆变器、我们能够以闭环方式运行电机。
    当我们使用自己的逆变器进行参数识别时、我们将获得不同的电机参数。根据识别的参数、电机无法运行。
    硬件工作正常、它具有三相电压感应和三相电流感应。
    我们在0A 时具有1.63v 的 ADC 读数、分压器可以感应最大112V 的电压。
    分压器由66.5K、2K 和.1uf 组成。我计算了滤波器极点、它为811。
    我们尝试使用48V、120A 电池运行电机。
    我们正在处理 lab2c.speed、通过调试窗口命令速度。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您无法使用 lab2c 正确识别电机、反馈电路似乎无法向 MCU 提供正确的电压和电流。 您是否曾查阅过有关硬件设计和滤波器极点设置的《InstaSPIN 用户指南》第5.2节?

    www.ti.com/.../spruhj1g.pdf

    肖恩
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们已根据本用户指南设计了硬件。我们是否有滤波器极点值811会成为问题?
    如何从调试窗口中检查反馈三相电压和电流值是否正确?
    我们将在调试窗口中获得正确的直流总线值。
    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用"Registers"窗口读取 ADCRESULT 寄存器以查看 IA、b、c 和 VA、b、c 的值

    肖恩
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在识别电机参数时、我们将获得正确的 Rs 值、但电感值是错误的。 问题出在哪呢?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    电机在 LS 和磁通识别状态期间是否平稳运行? 如果没有、请在 user.h 中调整 USER_MOTOR_RES_EST_CURRENT、USER_MOTOR_IND_EST_CURRENT 和 USER_MOTOR_FLUX_EST_FREQ_Hz 如果电机在多次调整这3个值后无法正常运行、则必须反向检查电流/电压反馈电路以确保信号清晰、并且 USER_VOLTGE_FILTER_POLE_Hz 对于您的电路来说是正确的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 LS 识别期间、电机停止运转、在所有其他过程中、电机平稳运行。

    我们根据从 boostxl drv8301获取的参数、尝试使用自己的硬件运行电机。
    低速时、电机来回振荡(小于0.3 krpm)、高速时运转平稳(高于0.3 krpm)。如何低速运转电机?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在极低速时、由于反馈非常弱、因此很难获得可靠的反电动势信号。 您将需要确保向 MCU 呈现清晰的反馈、并且尽可能避免噪声、以便 InstaSPIN 可以根据电压和电流推断角度。

    肖恩
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么、通过将正弦余弦编码器与 launchpad 集成来解决这个问题吗?我们的 PMSM 电机中有正弦余弦编码器、如何将正弦余弦编码器集成到 Motorware 中的当前运动项目中?我们找不到任何库来在 motorware 中集成正弦余弦编码器。