各位大神,您们好,我现在跑的是TI 28035的Sensorless FOC of ACI例程。关于电压基准我有个问题。U、V、W端电压是通过124.2倍衰减后通过12位板载ADC采集得到,ADC结果为12位,左移3位就是15位,用Q15格式表示的话就直接是范围(0,1),即Q15结果为1代表的是410V。。程序中就直接用ADC采样的结果认为就是标幺值,按代码理解电压标幺值的额定电压应该是410V才对。但是程序中额定电压设置不是该值。请问这是为什么呢?谢谢!
#define BASE_VOLTAGE 184.752 // Base peak phase voltage (volt)
volt1.DcBusVolt = _IQ15toIQ((AdcResult.ADCRESULT3<<3)); // DC Bus voltage meas.
volt1.MfuncV1 = svgen_dq1.Ta;
volt1.MfuncV2 = svgen_dq1.Tb;
volt1.MfuncV3 = svgen_dq1.Tc;
VOLT_MACRO(volt1)
Eric Ma:
首先,要理解这个BASE VOLTAGE的含义,以及使用在哪里。
定义是:Base peak phase voltage (volt), maximum measurable DC Bus(410V)/sqrt(3)
所以在我的HVACI_sensorless的工程中,头文件是这么定义的
#define BASE_VOLTAGE 236.140 // Base peak phase voltage (volt)
这个值也只是用在fe1_const这个里面。
所以我认为,不用把它当做针对任意电压的标幺值,像DCBusVolt, 1还是代表410V。
ERIC
各位大神,您们好,我现在跑的是TI 28035的Sensorless FOC of ACI例程。关于电压基准我有个问题。U、V、W端电压是通过124.2倍衰减后通过12位板载ADC采集得到,ADC结果为12位,左移3位就是15位,用Q15格式表示的话就直接是范围(0,1),即Q15结果为1代表的是410V。。程序中就直接用ADC采样的结果认为就是标幺值,按代码理解电压标幺值的额定电压应该是410V才对。但是程序中额定电压设置不是该值。请问这是为什么呢?谢谢!
#define BASE_VOLTAGE 184.752 // Base peak phase voltage (volt)
volt1.DcBusVolt = _IQ15toIQ((AdcResult.ADCRESULT3<<3)); // DC Bus voltage meas.
volt1.MfuncV1 = svgen_dq1.Ta;
volt1.MfuncV2 = svgen_dq1.Tb;
volt1.MfuncV3 = svgen_dq1.Tc;
VOLT_MACRO(volt1)
zhang1:
回复 Eric Ma:
很高兴能收到回复。但是还是有所疑惑,在fe1_const里面,设置什么电压为额定值都没有太大关系,只是为了计算方便,因为标幺值=实际值 / 额定值。但是代码中是将Volt_macro得到的电压直接输入给fe1_const使用,即这两个函数模块用的电压基准都是一样。而DCBusVolt是ADC采样的值直接就是标幺值,故可认为1代表410V,但是fe1_const中1代表236.140V。问题来了,难道Volt_macro中的标幺值0.2(假设)输入给fe1_const还是保持为0.2吗?