TI中文支持网
TI专业的中文技术问题搜集分享网站

Motorware新版本中USER_MAX_VS_MAG_PU设置问题,原本的错误校验是否无效了

在Motorware较老的版本(1_01_00_13)中USER.H中USER_MAX_VS_MAG_PU的设置是这样的

//! \brief Defines the maximum Voltage vector (Vs) magnitude allowed. This value sets the maximum magnitude for the output of the
//! \brief Id and Iq PI current controllers. The Id and Iq current controller outputs are Vd and Vq.
//! \brief The relationship between Vs, Vd, and Vq is: Vs = sqrt(Vd^2 + Vq^2). In this FOC controller, the
//! \brief Vd value is set equal to USER_MAX_VS_MAG*USER_VD_MAG_FACTOR. Vq = sqrt(USER_MAX_VS_MAG^2 – Vd^2).
//! \brief Set USER_MAX_VS_MAG = 1.0 for a pure sinewave with a peak at SQRT(3)/2 = 86.6% duty cycle. No current reconstruction is needed for this scenario.
//! \brief Set USER_MAX_VS_MAG = 2/SQRT(3) = 1.1547 for a pure sinewave with a peak at 100% duty cycle. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief Set USER_MAX_VS_MAG = 4/3 = 1.3333 to create a trapezoidal voltage waveform. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief For space vector over-modulation, see lab 10 for details on system requirements that will allow the SVM generator to go all the way to trapezoidal.
#define USER_MAX_VS_MAG_PU (1.1547) // Set to 1.0 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

在最新的InstaSPIN-foc用户手册(Literature Number: SPRUHJ1G

January 2013–Revised February 2017 )中,也是这样的

而在新版本Motorware(1_01_00_18)中

//! \brief Defines the maximum Voltage vector (Vs) magnitude allowed. This value sets the maximum magnitude for the output of the
//! \brief Id and Iq PI current controllers. The Id and Iq current controller outputs are Vd and Vq.
//! \brief The relationship between Vs, Vd, and Vq is: Vs = sqrt(Vd^2 + Vq^2). In this FOC controller, the
//! \brief Vd value is set equal to USER_MAX_VS_MAG*USER_VD_MAG_FACTOR. Vq = sqrt(USER_MAX_VS_MAG^2 – Vd^2).
//! \brief Set USER_MAX_VS_MAG = 0.5 for a pure sinewave with a peak at SQRT(3)/2 = 86.6% duty cycle. No current reconstruction is needed for this scenario.
//! \brief Set USER_MAX_VS_MAG = 1/SQRT(3) = 0.5774 for a pure sinewave with a peak at 100% duty cycle. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief Set USER_MAX_VS_MAG = 2/3 = 0.6666 to create a trapezoidal voltage waveform. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief For space vector over-modulation, see lab 10 for details on system requirements that will allow the SVM generator to go all the way to trapezoidal.
#define USER_MAX_VS_MAG_PU (0.5) // Set to 0.5 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

在新版本Motorware(1_01_00_18)LAB的手册中也说明了

Changed SVM range, instead of 0 to 4/3, now it is from 0 to
2/3, which matches the way SVM outputs are translated into
duty cycles, updated in pwm.c/h of MotorWare drivers.

就是除以2了,但是我在PWM.C/H里面没有看到相关改动呀,文件对比也没发现啥不同,不知道这个系数2的改变到底发生在哪

其次在新版的Motorware(1_01_00_18)中的UESR.C中并没有做相应的调整,其错误判断代码依然未变

if(USER_MAX_VS_MAG_PU > (4.0 / 3.0))
{
USER_setErrorCode(pUserParams, USER_ErrorCode_maxVsMag_pu_High);
}

if(USER_MAX_VS_MAG_PU <= 0.0)
{
USER_setErrorCode(pUserParams, USER_ErrorCode_maxVsMag_pu_Low);
}

所以这段错误代码是否失去了意义?如果在新版的Motorware(1_01_00_18)中,仍然使用1.0-1.3333的设置是不会报错的,那么会带来什么样的后果?

Seven Han:

您好,

已看到您描述的问题,我这边核实后给您回复!

在Motorware较老的版本(1_01_00_13)中USER.H中USER_MAX_VS_MAG_PU的设置是这样的

//! \brief Defines the maximum Voltage vector (Vs) magnitude allowed. This value sets the maximum magnitude for the output of the
//! \brief Id and Iq PI current controllers. The Id and Iq current controller outputs are Vd and Vq.
//! \brief The relationship between Vs, Vd, and Vq is: Vs = sqrt(Vd^2 + Vq^2). In this FOC controller, the
//! \brief Vd value is set equal to USER_MAX_VS_MAG*USER_VD_MAG_FACTOR. Vq = sqrt(USER_MAX_VS_MAG^2 – Vd^2).
//! \brief Set USER_MAX_VS_MAG = 1.0 for a pure sinewave with a peak at SQRT(3)/2 = 86.6% duty cycle. No current reconstruction is needed for this scenario.
//! \brief Set USER_MAX_VS_MAG = 2/SQRT(3) = 1.1547 for a pure sinewave with a peak at 100% duty cycle. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief Set USER_MAX_VS_MAG = 4/3 = 1.3333 to create a trapezoidal voltage waveform. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief For space vector over-modulation, see lab 10 for details on system requirements that will allow the SVM generator to go all the way to trapezoidal.
#define USER_MAX_VS_MAG_PU (1.1547) // Set to 1.0 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

在最新的InstaSPIN-foc用户手册(Literature Number: SPRUHJ1G

January 2013–Revised February 2017 )中,也是这样的

而在新版本Motorware(1_01_00_18)中

//! \brief Defines the maximum Voltage vector (Vs) magnitude allowed. This value sets the maximum magnitude for the output of the
//! \brief Id and Iq PI current controllers. The Id and Iq current controller outputs are Vd and Vq.
//! \brief The relationship between Vs, Vd, and Vq is: Vs = sqrt(Vd^2 + Vq^2). In this FOC controller, the
//! \brief Vd value is set equal to USER_MAX_VS_MAG*USER_VD_MAG_FACTOR. Vq = sqrt(USER_MAX_VS_MAG^2 – Vd^2).
//! \brief Set USER_MAX_VS_MAG = 0.5 for a pure sinewave with a peak at SQRT(3)/2 = 86.6% duty cycle. No current reconstruction is needed for this scenario.
//! \brief Set USER_MAX_VS_MAG = 1/SQRT(3) = 0.5774 for a pure sinewave with a peak at 100% duty cycle. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief Set USER_MAX_VS_MAG = 2/3 = 0.6666 to create a trapezoidal voltage waveform. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief For space vector over-modulation, see lab 10 for details on system requirements that will allow the SVM generator to go all the way to trapezoidal.
#define USER_MAX_VS_MAG_PU (0.5) // Set to 0.5 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

在新版本Motorware(1_01_00_18)LAB的手册中也说明了

Changed SVM range, instead of 0 to 4/3, now it is from 0 to
2/3, which matches the way SVM outputs are translated into
duty cycles, updated in pwm.c/h of MotorWare drivers.

就是除以2了,但是我在PWM.C/H里面没有看到相关改动呀,文件对比也没发现啥不同,不知道这个系数2的改变到底发生在哪

其次在新版的Motorware(1_01_00_18)中的UESR.C中并没有做相应的调整,其错误判断代码依然未变

if(USER_MAX_VS_MAG_PU > (4.0 / 3.0))
{
USER_setErrorCode(pUserParams, USER_ErrorCode_maxVsMag_pu_High);
}

if(USER_MAX_VS_MAG_PU <= 0.0)
{
USER_setErrorCode(pUserParams, USER_ErrorCode_maxVsMag_pu_Low);
}

所以这段错误代码是否失去了意义?如果在新版的Motorware(1_01_00_18)中,仍然使用1.0-1.3333的设置是不会报错的,那么会带来什么样的后果?

Zhizhou Wei:

回复 Eric Ma:

那如果在新版的Motorware(1_01_00_18)中,仍然使用1.0-1.3333的设置,会发生什么情况?是否程序会按照最大限幅,即相当于设置为了0.6666?

在Motorware较老的版本(1_01_00_13)中USER.H中USER_MAX_VS_MAG_PU的设置是这样的

//! \brief Defines the maximum Voltage vector (Vs) magnitude allowed. This value sets the maximum magnitude for the output of the
//! \brief Id and Iq PI current controllers. The Id and Iq current controller outputs are Vd and Vq.
//! \brief The relationship between Vs, Vd, and Vq is: Vs = sqrt(Vd^2 + Vq^2). In this FOC controller, the
//! \brief Vd value is set equal to USER_MAX_VS_MAG*USER_VD_MAG_FACTOR. Vq = sqrt(USER_MAX_VS_MAG^2 – Vd^2).
//! \brief Set USER_MAX_VS_MAG = 1.0 for a pure sinewave with a peak at SQRT(3)/2 = 86.6% duty cycle. No current reconstruction is needed for this scenario.
//! \brief Set USER_MAX_VS_MAG = 2/SQRT(3) = 1.1547 for a pure sinewave with a peak at 100% duty cycle. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief Set USER_MAX_VS_MAG = 4/3 = 1.3333 to create a trapezoidal voltage waveform. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief For space vector over-modulation, see lab 10 for details on system requirements that will allow the SVM generator to go all the way to trapezoidal.
#define USER_MAX_VS_MAG_PU (1.1547) // Set to 1.0 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

在最新的InstaSPIN-foc用户手册(Literature Number: SPRUHJ1G

January 2013–Revised February 2017 )中,也是这样的

而在新版本Motorware(1_01_00_18)中

//! \brief Defines the maximum Voltage vector (Vs) magnitude allowed. This value sets the maximum magnitude for the output of the
//! \brief Id and Iq PI current controllers. The Id and Iq current controller outputs are Vd and Vq.
//! \brief The relationship between Vs, Vd, and Vq is: Vs = sqrt(Vd^2 + Vq^2). In this FOC controller, the
//! \brief Vd value is set equal to USER_MAX_VS_MAG*USER_VD_MAG_FACTOR. Vq = sqrt(USER_MAX_VS_MAG^2 – Vd^2).
//! \brief Set USER_MAX_VS_MAG = 0.5 for a pure sinewave with a peak at SQRT(3)/2 = 86.6% duty cycle. No current reconstruction is needed for this scenario.
//! \brief Set USER_MAX_VS_MAG = 1/SQRT(3) = 0.5774 for a pure sinewave with a peak at 100% duty cycle. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief Set USER_MAX_VS_MAG = 2/3 = 0.6666 to create a trapezoidal voltage waveform. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief For space vector over-modulation, see lab 10 for details on system requirements that will allow the SVM generator to go all the way to trapezoidal.
#define USER_MAX_VS_MAG_PU (0.5) // Set to 0.5 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

在新版本Motorware(1_01_00_18)LAB的手册中也说明了

Changed SVM range, instead of 0 to 4/3, now it is from 0 to
2/3, which matches the way SVM outputs are translated into
duty cycles, updated in pwm.c/h of MotorWare drivers.

就是除以2了,但是我在PWM.C/H里面没有看到相关改动呀,文件对比也没发现啥不同,不知道这个系数2的改变到底发生在哪

其次在新版的Motorware(1_01_00_18)中的UESR.C中并没有做相应的调整,其错误判断代码依然未变

if(USER_MAX_VS_MAG_PU > (4.0 / 3.0))
{
USER_setErrorCode(pUserParams, USER_ErrorCode_maxVsMag_pu_High);
}

if(USER_MAX_VS_MAG_PU <= 0.0)
{
USER_setErrorCode(pUserParams, USER_ErrorCode_maxVsMag_pu_Low);
}

所以这段错误代码是否失去了意义?如果在新版的Motorware(1_01_00_18)中,仍然使用1.0-1.3333的设置是不会报错的,那么会带来什么样的后果?

Puxing Wu:

回复 Eric Ma:

您好!Eric Ma 我想请教一下您,两片c5517组成的菊花链,在ccs5.5上的target configuration 里面怎么配置.ccxml文件?谢谢! 

在Motorware较老的版本(1_01_00_13)中USER.H中USER_MAX_VS_MAG_PU的设置是这样的

//! \brief Defines the maximum Voltage vector (Vs) magnitude allowed. This value sets the maximum magnitude for the output of the
//! \brief Id and Iq PI current controllers. The Id and Iq current controller outputs are Vd and Vq.
//! \brief The relationship between Vs, Vd, and Vq is: Vs = sqrt(Vd^2 + Vq^2). In this FOC controller, the
//! \brief Vd value is set equal to USER_MAX_VS_MAG*USER_VD_MAG_FACTOR. Vq = sqrt(USER_MAX_VS_MAG^2 – Vd^2).
//! \brief Set USER_MAX_VS_MAG = 1.0 for a pure sinewave with a peak at SQRT(3)/2 = 86.6% duty cycle. No current reconstruction is needed for this scenario.
//! \brief Set USER_MAX_VS_MAG = 2/SQRT(3) = 1.1547 for a pure sinewave with a peak at 100% duty cycle. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief Set USER_MAX_VS_MAG = 4/3 = 1.3333 to create a trapezoidal voltage waveform. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief For space vector over-modulation, see lab 10 for details on system requirements that will allow the SVM generator to go all the way to trapezoidal.
#define USER_MAX_VS_MAG_PU (1.1547) // Set to 1.0 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

在最新的InstaSPIN-foc用户手册(Literature Number: SPRUHJ1G

January 2013–Revised February 2017 )中,也是这样的

而在新版本Motorware(1_01_00_18)中

//! \brief Defines the maximum Voltage vector (Vs) magnitude allowed. This value sets the maximum magnitude for the output of the
//! \brief Id and Iq PI current controllers. The Id and Iq current controller outputs are Vd and Vq.
//! \brief The relationship between Vs, Vd, and Vq is: Vs = sqrt(Vd^2 + Vq^2). In this FOC controller, the
//! \brief Vd value is set equal to USER_MAX_VS_MAG*USER_VD_MAG_FACTOR. Vq = sqrt(USER_MAX_VS_MAG^2 – Vd^2).
//! \brief Set USER_MAX_VS_MAG = 0.5 for a pure sinewave with a peak at SQRT(3)/2 = 86.6% duty cycle. No current reconstruction is needed for this scenario.
//! \brief Set USER_MAX_VS_MAG = 1/SQRT(3) = 0.5774 for a pure sinewave with a peak at 100% duty cycle. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief Set USER_MAX_VS_MAG = 2/3 = 0.6666 to create a trapezoidal voltage waveform. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief For space vector over-modulation, see lab 10 for details on system requirements that will allow the SVM generator to go all the way to trapezoidal.
#define USER_MAX_VS_MAG_PU (0.5) // Set to 0.5 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

在新版本Motorware(1_01_00_18)LAB的手册中也说明了

Changed SVM range, instead of 0 to 4/3, now it is from 0 to
2/3, which matches the way SVM outputs are translated into
duty cycles, updated in pwm.c/h of MotorWare drivers.

就是除以2了,但是我在PWM.C/H里面没有看到相关改动呀,文件对比也没发现啥不同,不知道这个系数2的改变到底发生在哪

其次在新版的Motorware(1_01_00_18)中的UESR.C中并没有做相应的调整,其错误判断代码依然未变

if(USER_MAX_VS_MAG_PU > (4.0 / 3.0))
{
USER_setErrorCode(pUserParams, USER_ErrorCode_maxVsMag_pu_High);
}

if(USER_MAX_VS_MAG_PU <= 0.0)
{
USER_setErrorCode(pUserParams, USER_ErrorCode_maxVsMag_pu_Low);
}

所以这段错误代码是否失去了意义?如果在新版的Motorware(1_01_00_18)中,仍然使用1.0-1.3333的设置是不会报错的,那么会带来什么样的后果?

Eric Ma:

回复 Puxing Wu:

您好!Eric Ma 我想请教一下您,两片c5517组成的菊花链,在ccs5.5上的target configuration 里面怎么配置.ccxml文件?谢谢! 

Eric:

之前有过类似的配置,但是用C2000的,你可以参考一下,在addvance里面去修改。

在Motorware较老的版本(1_01_00_13)中USER.H中USER_MAX_VS_MAG_PU的设置是这样的

//! \brief Defines the maximum Voltage vector (Vs) magnitude allowed. This value sets the maximum magnitude for the output of the
//! \brief Id and Iq PI current controllers. The Id and Iq current controller outputs are Vd and Vq.
//! \brief The relationship between Vs, Vd, and Vq is: Vs = sqrt(Vd^2 + Vq^2). In this FOC controller, the
//! \brief Vd value is set equal to USER_MAX_VS_MAG*USER_VD_MAG_FACTOR. Vq = sqrt(USER_MAX_VS_MAG^2 – Vd^2).
//! \brief Set USER_MAX_VS_MAG = 1.0 for a pure sinewave with a peak at SQRT(3)/2 = 86.6% duty cycle. No current reconstruction is needed for this scenario.
//! \brief Set USER_MAX_VS_MAG = 2/SQRT(3) = 1.1547 for a pure sinewave with a peak at 100% duty cycle. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief Set USER_MAX_VS_MAG = 4/3 = 1.3333 to create a trapezoidal voltage waveform. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief For space vector over-modulation, see lab 10 for details on system requirements that will allow the SVM generator to go all the way to trapezoidal.
#define USER_MAX_VS_MAG_PU (1.1547) // Set to 1.0 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

在最新的InstaSPIN-foc用户手册(Literature Number: SPRUHJ1G

January 2013–Revised February 2017 )中,也是这样的

而在新版本Motorware(1_01_00_18)中

//! \brief Defines the maximum Voltage vector (Vs) magnitude allowed. This value sets the maximum magnitude for the output of the
//! \brief Id and Iq PI current controllers. The Id and Iq current controller outputs are Vd and Vq.
//! \brief The relationship between Vs, Vd, and Vq is: Vs = sqrt(Vd^2 + Vq^2). In this FOC controller, the
//! \brief Vd value is set equal to USER_MAX_VS_MAG*USER_VD_MAG_FACTOR. Vq = sqrt(USER_MAX_VS_MAG^2 – Vd^2).
//! \brief Set USER_MAX_VS_MAG = 0.5 for a pure sinewave with a peak at SQRT(3)/2 = 86.6% duty cycle. No current reconstruction is needed for this scenario.
//! \brief Set USER_MAX_VS_MAG = 1/SQRT(3) = 0.5774 for a pure sinewave with a peak at 100% duty cycle. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief Set USER_MAX_VS_MAG = 2/3 = 0.6666 to create a trapezoidal voltage waveform. Current reconstruction will be needed for this scenario (Lab10a-x).
//! \brief For space vector over-modulation, see lab 10 for details on system requirements that will allow the SVM generator to go all the way to trapezoidal.
#define USER_MAX_VS_MAG_PU (0.5) // Set to 0.5 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

在新版本Motorware(1_01_00_18)LAB的手册中也说明了

Changed SVM range, instead of 0 to 4/3, now it is from 0 to
2/3, which matches the way SVM outputs are translated into
duty cycles, updated in pwm.c/h of MotorWare drivers.

就是除以2了,但是我在PWM.C/H里面没有看到相关改动呀,文件对比也没发现啥不同,不知道这个系数2的改变到底发生在哪

其次在新版的Motorware(1_01_00_18)中的UESR.C中并没有做相应的调整,其错误判断代码依然未变

if(USER_MAX_VS_MAG_PU > (4.0 / 3.0))
{
USER_setErrorCode(pUserParams, USER_ErrorCode_maxVsMag_pu_High);
}

if(USER_MAX_VS_MAG_PU <= 0.0)
{
USER_setErrorCode(pUserParams, USER_ErrorCode_maxVsMag_pu_Low);
}

所以这段错误代码是否失去了意义?如果在新版的Motorware(1_01_00_18)中,仍然使用1.0-1.3333的设置是不会报错的,那么会带来什么样的后果?

Zhizhou Wei:

回复 Eric Ma:

谢谢Eric  ,已经找到相关修改位置, 那几个越界保护有点失去意义  不过最后都有输出限幅,所以只是程序不能正确判断用户参数问题了

赞(0)
未经允许不得转载:TI中文支持网 » Motorware新版本中USER_MAX_VS_MAG_PU设置问题,原本的错误校验是否无效了
分享到: 更多 (0)