飞骑 发表于 2019-2-14 17:35:13

关于5.2中的前馈控制计算问题 (FF_VqdffComputation)

官方资料中前馈控制框图如下:



但 FF_VqdffComputation 中 计算结果与之不同,以 ΔUq 为例

ΔUq = (Ke + Ld*Id)*2*pi*p*fr + Uq

FF_VqdffComputation中代码如下:
/*q-axes ff voltage calculation */
wtemp1 = ( ( ( int32_t )( hSpeed_dpp ) * Iqdref.qI_Component2 ) / ( int32_t )32768 );
wtemp2 = ( wtemp1 * pHandle->wConstant_1D ) / ( int32_t )( hAvBusVoltage_d );
wtemp2 *= ( int32_t )2;

wtemp1 = ( ( pHandle->wConstant_2 * hSpeed_dpp ) / ( int32_t )hAvBusVoltage_d )
         * ( int32_t )16;

wtemp2 = wtemp1 + wtemp2 + pHandle->VqdAvPIout.qV_Component1;

SATURATION_TO_S16( wtemp2 )

pHandle->Vqdff.qV_Component1 = ( int16_t )( wtemp2 );其中 pHandle->VqdAvPIout.qV_Component1 为框图中 Uq* 滤波处理后的标幺值。


在 FF_VqdConditioning() 函数中通过前馈控制修正Uqd时,又加了 Uq


FF_VqdConditioning 中代码如下
wtemp = ( int32_t )( Vqd.qV_Component1 ) + pHandle->Vqdff.qV_Component1;其中 Vqd 为框图中的 Uq*, Ud*

请帮忙确认一下,是我理解错误,还是代码错误?


szy 发表于 2019-2-14 20:10:25

mark,跟踪学习

mmuuss586 发表于 2019-2-15 10:22:02

:loveliness::loveliness::loveliness::loveliness::loveliness:

xmshao 发表于 2019-2-21 14:44:11

本帖最后由 xmshao 于 2019-2-21 14:46 编辑

Vqd = FF_VqdConditioning(pFF,Vqd); 输出Uq2*/Ud2*; 这里不合适讨论STM32马达库FULL版的内容。

如果有FULL版的问题,请联系相关的代理商或者ST公司的marketing人员以获得技术支持。

FULL版是注册和审批通过以后才可以获得的。

飞骑 发表于 2019-2-21 15:59:47

本帖最后由 飞骑 于 2019-2-21 16:07 编辑

xmshao 发表于 2019-2-21 14:44
Vqd = FF_VqdConditioning(pFF,Vqd); 输出Uq2*/Ud2*; 这里不合适讨论STM32马达库FULL版的内容。

如果有FU ...
好的,谢谢指点,在官方社区 Q&A 咨询也没得到答复,我找找你说的途径
页: [1]
查看完整版本: 关于5.2中的前馈控制计算问题 (FF_VqdffComputation)