2P2Z是比较常用的电源环路补偿算法,这里对它的使用做一个简单的总结,便于后续使用
首先需要申明结构体:
//CNTL2P2Z
volatile CNTL_2P2Z_F_C_Coeffs coeff1;//补偿参数结构体
volatile CNTL_2P2Z_F_C_Vars var1;//控制相关结构体,var1.out就是控制的输出量
然后在main函数里面将coeff1和var1这两个要用的结构体初始化,基本上都是赋零值
CNTL_2P2Z_F_C_VAR_INIT(var1);
CNTL_2P2Z_F_C_COEFF_INIT(coeff1);
往coeff1结构体内填充控制用的补偿参数:
coeff1.Coeff_B2 = (float)(CNTL_3p3z_B2_1); // B2
coeff1.Coeff_B1 = (float)(CNTL_3p3z_B1_1); // B1
coeff1.Coeff_B0 = (float)(CNTL_3p3z_B0_1); // B0
coeff1.Coeff_A2 = (float)(CNTL_3p3z_A2_1); // A2
coeff1.Coeff_A1 = (float)(CNTL_3p3z_A1_1); // A1
coeff1.M