英飞凌
直播中

一曲作罢

10年用户 979经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术
私信 关注

求助,关于AP32370官方PMSM FOC代码疑问求解

最近在阅读AP32370配套的源码,在力矩PI控制的KPKI计算时,有用到三个宏定义,无法理解其含义,求前辈们解答该宏定义实际的含义。
#define DEFAULT_L_NO_SCALEUP                       (float)((3.0f/2.0f)*(2.0f*USER_PI*USER_CCU8_PWM_FREQ_HZ) *                                                      (N_I_ALPHABETA_A/N_VREF_ALPHABETA_V) *(USER_MOTOR_L_PER_PHASE_uH/1000000)/(1<<16))//#define DEFAULT_L_SCALEDUP                         (uint32_t)((DEFAULT_L_NO_SCALEUP) * (1<<(uint32_t)DEFAULT_SCALE_OF_L))#define DEFAULT_L_SCALEDUP                         ((DEFAULT_L_NO_SCALEUP) * (1<<(uint32_t)DEFAULT_SCALE_OF_L))#define DEFAULT_SCALE_OF_L                         (uint32_t)(log2f((((1<<16) - 1)/(SPEED_HIGH_LIMIT_RPM/(1<< USER_RES_INC)))/(DEFAULT_L_NO_SCALEUP)))
查看的例程版本是“Infineon-AP32370_PMSM_FOC_for_XMC1000_4000-ApplicationNotes-v01_06-EN.zip”
使用的是XMC1302+PMSM_LV15W的开发板组合。

回帖(1)

丁冬芹

2024-5-20 15:36:46
首先,我们需要逐步分析这个宏定义。宏定义如下:

#define DEFAULT_L_NO_SCALEUP (float)((3.0f/2.0f)*(2.0f*USER_PI*USER_CCU8_PWM_FREQ_HZ))

我们可以将其分解为以下几个部分:

1. 3.0f / 2.0f:这是一个简单的浮点数除法,结果为1.5f。

2. 2.0f * USER_PI:USER_PI是一个用户定义的宏,通常用于表示圆周率π的值。这里将其乘以2.0f,结果为2 * π。

3. USER_CCU8_PWM_FREQ_HZ:这是一个用户定义的宏,表示PWM频率(单位:赫兹)。

4. 将上述三个部分相乘:(1.5f * (2.0f * USER_PI * USER_CCU8_PWM_FREQ_HZ))

现在我们来解释这个宏定义的实际含义:

DEFAULT_L_NO_SCALEUP宏定义用于计算力矩PI控制器的比例增益(KP)和积分增益(KI)的初始值。这个宏定义的计算公式是基于电机控制中的一些基本参数,如PWM频率和圆周率π。

在电机控制中,力矩PI控制器用于调整电机的电流,以实现对电机力矩的精确控制。比例增益(KP)和积分增益(KI)是PI控制器的两个关键参数,它们决定了控制器的性能和稳定性。

这个宏定义的计算公式可能是基于某种特定的电机控制策略或经验公式。具体的计算原理和应用场景可能需要参考AP32370的官方文档或相关论文。

总之,DEFAULT_L_NO_SCALEUP宏定义用于计算力矩PI控制器的初始增益值,其计算公式涉及PWM频率和圆周率π。要完全理解这个宏定义的含义,可能需要进一步研究AP32370的官方文档和相关电机控制理论。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分