|
|
@@ -337,15 +337,26 @@ bool mot_contrl_update(mot_contrl_t *ctrl) {
|
|
|
LowPass_Filter(ctrl->out_vdq_filterd.q, foc->out.vol_dq.q ,lowpass/1.5f);
|
|
|
|
|
|
/* 计算母线电流 */
|
|
|
+#if (CONFIG_IBUS_CALC_SAMPLED_V)
|
|
|
+ float v_alpha = ctrl->phase_v_ab.a;
|
|
|
+ float v_beta = ctrl->phase_v_ab.b;
|
|
|
+ float i_alpha = foc->in.curr_ab.a;
|
|
|
+ float i_beta = foc->in.curr_ab.b;
|
|
|
+#else
|
|
|
float vd = ctrl->out_vdq_filterd.d;
|
|
|
float vq = ctrl->out_vdq_filterd.q;
|
|
|
float id = ctrl->out_idq_filterd.d;
|
|
|
float iq = ctrl->out_idq_filterd.q;
|
|
|
+#endif
|
|
|
/*
|
|
|
根据公式(等幅值变换,功率不等):
|
|
|
- iDC x vDC = 3/2(iq x vq + id x vd);
|
|
|
+ iDC x vDC = 3/2(iq x vq + id x vd) = 3/2(i_alpha * v_alpha + i_beta * v_beta);
|
|
|
*/
|
|
|
+#if (CONFIG_IBUS_CALC_SAMPLED_V)
|
|
|
+ float m_pow = (v_alpha * i_alpha + v_beta * i_beta);
|
|
|
+#else
|
|
|
float m_pow = (vd * id + vq * iq);
|
|
|
+#endif
|
|
|
float raw_idc = 0.0f;
|
|
|
float v_dc = get_vbus_float();
|
|
|
if (v_dc != 0.0f) {
|