主题中讨论的其他器件:BOOSTXL-DRV8301
您好!
我再次遇到一些问题。 随附的我将提供一些系统信息和我的 user.h
1.我无法达到电机的最大速度。 当我使用 RC 控制器时、电机将车辆加速至24km/h (700RPM)。 我的应用使用 BOOSTXL-DRV8301、仅达到18km/h (~550RPM)。 我认为电机有足够的功率来实现24公里/小时的速度、但我的软件中可能有错误的设置?
2.目前的问题。 我调节了 BOOSTXL-DRV8301。 我将分流电阻器更改为5m Ω、以检测更高的电流。 我们正在冷却 MOSFET 以防止过热。 我更改了 user_j1.h 中的以下值
#define USER_ADC_FULL_SCALE_CURRENT_A (66.0) (33A 正电流至33A 负电流可以被检测到吗?)
#define USER_IQ_FULL_SCALE_CURRENT_A (50.0) (在这里,我不确定这是-25A 到25A 还是-50A 到50A? )
当我在低速上施加高电流时、电机不会加速。 它似乎是移动、向后和制动车辆。 我似乎有电流检测问题或任何过流锁定?
3.我想使用主动制动。 这意味着、我希望通过使用电源而不是生成电源来制动电机。 我该怎么做? 当我使用这些值播放某个位时、我使用负 IQ_ref 和负 Id_ref 实现了这一目标。 这是一种安全的方式吗? 是否有更好的方法来使用电源来断开电机。 但是、当 Kinetik Energy 必须移动到任何地方时、这是否会导致大量热量?
很抱歉,有这么多问题:D
提前感谢
此致
Sebastian
电机:30极、730RPM 最大值、15A 最大值、12NM 最大 直流总线电压为24V
应用:我使用速度控制器、在这里、用户更改 Speed-PID 的输出限制。 Speed-PID 是一直被设定为一个最大速度的方法。 实际上、它是速度受限扭矩控制。 此外、我使用的是最小 Speeed 为50rpm 的反激式转换器。 当用户既不要求扭矩也不要求负扭矩时,IQ_ref 为0.0。
user.h:
#define USER_IQ_FULL_SCALE_FREQ_Hz (500) //720RPM*30极/120=180
#define USER_IQ_FULL_SCALE_VOLTAGE_V (24.0) // 21V 至25、2V possible...problem?
#define USER_ADC_FULL_SCALE_VOLTGE_V (26.314) // 26.314 boostxldrv8301_RevB 电压调节
#define USER_IQ_FULL_SCALE_CURRENT_A (50.0)//转换电流分流器
#define USER_ADC_FULL_SCALE_CURRENT_A (66.0) //将电流***更改为5m Ω
#define USER_NUM_CURRENT_SENSORS (3) // 3首选设置、以在整个速度范围内实现最佳性能、允许100%占空比
需要#define USER_NUM_VOLTGE_SENSORS (3)// 3
#define I_A_offset (0.8336265683)
#define I_B_OFFSET (0.8330016136)
#define I_C_OFFSET (0.8242590427)
#define V_A_offset (0.4892043471)
#define V_B_OFFSET (0.4888140559)
#define V_C_OFFSET (0.4878702164)
#define USER_PWM_FREQ_kHz (60.0)//30.0示例、典型值为8.0 - 30.0 KHz;极低电感、高速电机可能需要45-80 KHz
#define USER_MAX_VS_MAG_PU (0.5) //如果不使用电流重构技术,则设置为0.5。 有关更多信息、请查看 lab10a-x 中的模块 svgen_current。
#define USER_NUM_PWM_TICKS_PER_ISR_TICK (3)
#define USER_NUM_ISR_TICKS_PER_CTRL_TICK (1) // 2示例、控制器时钟速率(CTRL)以 PWM/2运行;例如30 KHz PWM、15 KHz 控制
#define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK (1) // 1典型值、正向 FOC 电流控制器(IQ/ID/IPART/SVPWM)以与 CTRL 相同的速率运行。
#define USER_NUM_CTRL_TICKS_PER_EST_TICK (1) // 1典型值,FAST 估算器以与 CTRL 相同的速率运行;
#define USER_NUM_CTRL_TICKS_PER_SPEED_TICK (15) // 15 (典型值)以匹配 PWM、例如15kHz PWM、控制器和电流环路、1KHz 速度环路
#define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK (15) // 15 (典型值)以匹配 PWM、例如:10kHz 控制器和电流环路、1KHz 速度环路、1KHz 轨迹
#define USER_MAX_NEW_ID_REF_CURRENT_A (-0.5 * USER_MOTOR_MAX_CURRENT) //-0.5 * USER_MOTOR_MAX_CURRENT 示例,进行调整以满足电机的安全需求
#define USER_R_OVER L_EST_FREQ_Hz (100) //默认为300
#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
#define USER_FORCE_ANGE_FREQ_Hz (2.0 * USER_ZEROSPEEDLIMIT * USER_IQ_FULL_SCALE_FREQ_Hz) // 1.0典型强制角启动速度
#define USER_VOLTGE_FILTER_POLE_Hz (364.682) // 364.682,bootxldrv8301_RevB 硬件的值