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 FOC固件设计了一些自定义硬件。 由于某种原因,在运行实验2a时,代码似乎没有正确限制电流-直到我的耗材限制电流之前,电流一直过高。 我已经检查了我的电流反馈电压,它们的振幅正确。 我认为我的映射是正确的,如下所示。 您能否快速查看一下以确保? 如果还有其他可能导致电流不能正常限制的情况,请告诉我,因为我有点卡滞。
***连接***
H1 - EPWM2A
L1 - WPWM2B
H2 - EPWM1A
L2 - EPWM1B
H3 - EPWM3A
L3 - EPWM3B
I1_FB - A4
I2_FB - A6
i3_FB - A2
V1_FB - A1
V2_FB - A0
V3_FB - B0
VBUS - A5
***反馈映射***
//转换从EPWM2上的第一阶段开始
// EXT IA-FB
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_0,ADC_SockChanNumber_A4);
ADC_setSockTrigSrc(obj->adcHandle,ADC_SockNumber_0,ADC_SockTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay(obj->adcHandle,ADC_SocNumber_0,ADC_SocSampleDelay_9_Cycles);
// EXT IA-FB
//由于ADC初始转换错误导致转换重复(SPRZ342)
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_1,ADC_SockChanNumber_A4);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_1,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_1,ADC_SocSampleDelay_9_Cycles);
// EXT IB-FB
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_2,ADC_SockChanNumber_A6);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_2,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_2,ADC_SocSampleDelay_9_Cycles);
//外部IC-FB
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_3,ADC_SockChanNumber_A2);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_3,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_3,ADC_SocSampleDelay_9_Cycles);
// V_MOT1 -> ADCINA1
// V_MOT2 -> ADCINA0
// V_MOT3 -> ADCINB0
// V_BAT -> ADCINA5
// ADC-Vhb1
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_4,ADC_SockChanNumber_A1);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_4,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_4,ADC_SocSampleDelay_9_Cycles);
// ADC-Vhb2
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_5,ADC_SockChanNumber_A0);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_5,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_5,ADC_SocSampleDelay_9_Cycles);
// ADC-Vhb3
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_6,ADC_SockChanNumber_B0);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_6,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_6,ADC_SocSampleDelay_9_Cycles);
// VDCBUS
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_7,ADC_SockChanNumber_A5);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_7,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_7,ADC_SocSampleDelay_9_Cycles);
**** PWM映射*******
//初始化PWM手柄
obj->pwmHandle[0]= PWM_INIT((void *)PWM_ePWM2_base_ADDR,sizeof(PWM_Obj));//阶段1
obj->pwmHandle[1]= pwm_init((void *)pwm_ePWM1_base_ADDR,sizeof(PWM_Obj));//阶段2
obj->pwmHandle[2]= PWM_INIT((void *)PWM_ePWM3_base_ADDR,sizeof(PWM_Obj));//阶段3
我使用Motorware包装中提供的高压板源代码(因为它不使用SPI DRV芯片,也不使用I,因为我的电压过高)。 我简单地使用了那里的东西。
是否有任何建议,说明可能存在什么问题,或者我应该从哪里开始查找,以便跟踪此问题?
附件中包含 我的user.h文件。 我还在 proj_labXX.c中注释了HAL_setupFaults(halHandle)行 ,因为我还没有设置我的故障,并且它们与默认设置不同,因此默认配置不允许电机运行。
此外,我 对hal.c做了以下更改,因此它将与我的PWMe2e.ti.com/.../3.6181万.user.h 配置一致
//初始化PWM手柄
obj->pwmHandle[0]= PWM_INIT((void *)PWM_ePWM2_base_ADDR,sizeof(PWM_Obj));//阶段1
obj->pwmHandle[1]= pwm_init((void *)pwm_ePWM1_base_ADDR,sizeof(PWM_Obj));//阶段2
obj->pwmHandle[2]= PWM_INIT((void *)PWM_ePWM3_base_ADDR,sizeof(PWM_Obj));//阶段3
Sean,
当系统 启用时,我检查了ADC寄存器,一切看起来都正确。 我的电流输入电压约为1.65V ( 0x0FFF值的~一半) ,我的电压电平也会检查。 在电压测量电路中,我的最大电压 跨度(ADC时为3.3V)为69.4V。 因此 ,3个电机相位ADC处的电压为9.4V (使用仪表确认为正确),ADC测量的总线电压为23.5V,再次使用仪表进行测量确认。 因此,ADC值似乎确实正确。 我仔细检查了我的阶段,一切看起来都正确。 如果电流和电压的相位与各自的ePWM不一致,是否会发生这种情况? 未通电的电动机相位在 接地电压下停顿是否正常? HV代码是否与ePWM信号有任何奇怪的地方,这可能会让我感到混乱? 您建议如何继续调试过程?
感谢你的帮助。