Thread 中讨论的其他器件:controlSUITE
工具/软件:TI C/C++编译器
尊敬的 TI 专家:
我将介绍 TI controlSUITE 太阳能微型逆变器示例提供的代码。
项目名称:SolarMicroInv_F2803x。 它与3p3z 控制器有关。 它是构建2、无电网、电阻器负载、仅限逆变器。
#define CNTL_3P3Z_IQ_MACRO (v、k) \
/*计算误差*/ \
K.Errn = k.Ref - k.Fdbk; \
K.out =_IQ24mpy (v.COEFF_A3、k.Out3)+_IQ24mpy (v.COEFF_A2、k.Out2)+_IQ24mpy (v.COEFF_A1、k.Out1) \
+_IQ24mpy (v.COEFF_B3、k.Errn3)+_IQ24mpy (v.COEFF_B2、k.Errn2)+_IQ24eff (v.COEFF_B1、k.Errn1)+_IQ24mpy (v.Compy_B0、k.Errn); \
\
/*更新错误值*/ \
K.Errn3 = k.Errn2; \
K.Errn2 = k.Errn1; \
K.Errn1 = k.Errn; \
\
/*确定新输出*/ \
K.out =(k.out < v.Max)? K.out:v.Max; \
K.out =(k.out > v.imin)? K.out:v.imin; \
\
/*存储输出*/ \
K.Out3 = K.Out2; \
K.Out2 = k.Out1; \
K.Out1 = k.out; \
/*饱和输出*/ \
K.out =(((k.out > v.min)? K.out:v.min);
我的问题是:
(1)什么是 IMIN? 它的用途是什么? Imin 和 Min 之间的区别是什么? 我在 main()中看到,min 初始化为-0.97。 但 Imin 不是。 因此、我假设 IMIN 为0。 那么、当.out 变为负时、它会变得有问题。
CNTL_3P3Z_IQ_COEFFS_init (&cntl3p3z_initi_coeff);
cntl3p3z_invi_coeff.coeff_A2 =_iq24 (-0.6978);
cntl3p3z_invi_coeff.COEFF_A3 =_iQ24 (0.1137);
cntl3p3z_invi_coeff.COEFF_B0 =_iQ24 (0.2866);
cntl3p3z_invi_coeff.COEFF_B1 =_iQ24 (-0.3173);
cntl3p3z_invi_coeff.COEFF_B2 =_iQ24 (0.3338);
cntl3p3z_invi_coeff.COEFF_B3 =_iQ24 (-0.2616);
cntl3p3z_invi_coeff.min =_iq24 (-0.95);
(2)两个初始化函数( CNTL_3P3Z_IQ_VARS_init (&CNTL3p3z_INVI_vars);CNTL_3P3Z_IQ_COEFFS_init (&CNT3p3z_INVI_COEff))的代码在哪里? 我在项目中找不到任何位置。
提前感谢您的帮助。