Part Number:TMS320F28027Other Parts Discussed in Thread: POWERSUITE, TIDM-HV-1PH-DCAC, SFRA
问题如下:
1.voltageSourceInverterLCFltr_F28004x工程中有段关于AD采样的代码
#if SENSING_OPTION ==ADC_BASED_SENSING
calibrateOffset(&invIiOffset, k1, k2);
#endif
其中函数invIiOffset的第一个变量为什么会选择invIiOffset?
我记得TMS320F28027的calibrateOffset是选择的GND
选择的不同的参考值进行calibrateOffset时对AD采样的结果有什么影响?
此外这个函数中有关于对CMPB设置值语句的依据是什么?个人理解CMPB设置值应该等于TBPRD才对为什么是下面的设置语句?
//
// set duty 0% initially
//
EPWM_setCounterCompareValue(INV_ISR_TRIG_PWM_BASE,EPWM_COUNTER_COMPARE_B,
EPWM_getTimeBasePeriod(INV_ISR_TRIG_PWM_BASE)-(50/2));
其中50/2设置依据是什么?
谢谢!
Cherry Zhou:
您好,您的两个问题我们都已收到并升级到英文论坛,如有答复将尽快回复您。谢谢!
,
jun liu:
嗯嗯 谢谢
,
Cherry Zhou:
jun liu 说:
1.voltageSourceInverterLCFltr_F28004x工程中有段关于AD采样的代码
#if SENSING_OPTION ==ADC_BASED_SENSING calibrateOffset(&invIiOffset, k1, k2);#endif
其中函数invIiOffset的第一个变量为什么会选择invIiOffset?
我记得TMS320F28027的calibrateOffset是选择的GND
选择的不同的参考值进行calibrateOffset时对AD采样的结果有什么影响?
本可以使用全局变量,可能是一些legacy代码。
jun liu 说:
此外这个函数中有关于对CMPB设置值语句的依据是什么?个人理解CMPB设置值应该等于TBPRD才对为什么是下面的设置语句?
// // set duty 0% initially // EPWM_setCounterCompareValue(INV_ISR_TRIG_PWM_BASE,EPWM_COUNTER_COMPARE_B, EPWM_getTimeBasePeriod(INV_ISR_TRIG_PWM_BASE)-(50/2));
其中50/2设置依据是什么?
您好我们在SDK中没看到,您能具体说下是哪一行吗?
确实有 ACQPS 窗口half,是为了使 S/H ADC 的采样在脉冲中间居中。
ePWM_getTimeBasePeriod (INV_ISR_TRIG_PWM_BASE) – (50/2)) ;
,
jun liu:
不是SDK中是在powerSUITE的powerSUITE Solution Adapter下DC-AC模块下中的Single Phase Inverter: Voltage Source TIDM-HV-1PH-DCAC的工程文件的代码
CCS中powerSUITE Single Phase Inverter: Voltage Source — TIDM-HV-1PH-DCAC
,
jun liu:
采样在脉冲中间居中?half在规格书什么地方可以看到?此外我的意思是PWMA触发多路AD采样,PWM却以PWMB为中断发生的地方,触发采样的时候到发生中断这段时间应该满足多路AD转换的总时间才能保证采集到的值是本周期的值,而不是上一周期的值,但我觉得ePWM_getTimeBasePeriod (INV_ISR_TRIG_PWM_BASE) – (50/2)) ;这条语句设置无法满足,但程序中却这样 到底是为什么?谢谢!
,
Cherry Zhou:
您好,是正弦注入,Output_with injection = output_set_point + sfra_injection_amplitude*sin(injection frequency * t)
为了精确地在mid point采样电流。 执行trigger 4 转换,通过调整 SOC 脉冲,我们可以对其进行调整,使两个转换在mid point之前发生,两个转换在之后发生。因此当求平均值时,可以得到精确的中间值。
,
jun liu:
您好!谢谢您的详细解答 这样我就明白了