TMS320F280039C: 关于电机在作为发电机启动时FAST估算器没有可靠电流输入时如何进行PWM控制

Part Number: TMS320F280039C

1、我的电流采集电路在没有PWM输出时,U22器件无法正常工作,采集不到有效的电流值;

2、当电机被其它电机带动旋转时,电机作为发电机;

3、在没有开启负载时,PWM是关闭的,这个时候Ia、Ib、Ic采集到的是无效值(25A),实际应该约为0A;

4、在开启负载时,因为没有有效的电流值,FAST估算器没有给出有效的Id反馈值、Iq反馈值,我没法使用Iq_ref、Id_ref和FOC算法,输出正确的PWM。如果输出错误的PWM,会对高速转动的电机产生风险;

5、发电机从待机切换到为负载供电,该使用什么方法控制PWM呢?(我能采集到相电压、母线电压、转速、ZERO_U、ZERO_V、ZERO_W、HXOR)

551ba8a75a7a0fae5068b636aa16bd01.png

 

b63b67f4b180db78a5373634ba828014.png

  • 已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 您好

    我的电流采集电路在没有PWM输出时,U22器件无法正常工作,采集不到有效的电流值;

    您的VDD1、VDD2是从PWM驱动端取的电、还是说在无PWM驱动I_UNP和I_UNN无任何信号供您采集。

    当电机被其它电机带动旋转时,电机作为发电机;

    根据您这个描述您的PWM驱动的电机可能存在从负载变成电源?

  • 您好,

    1、VDD1通过自举电路从隔离12V取电,参考地为电机输出相,VDD2就是系统数字电源3.3V。PWM没工作时,自举电路失效,没电压,U22 VDD1没有供电,U22没正常工作,导致IU_ADC采集的是错误值(约25A);

    2、是的,PWM驱动的电机A开始作为电机带动发动机B启动,发动机B转起来后,电机A转为发电机;

    3、电机A启动时我先通过输出PWM_H关闭、PWM_L开启(PWM_DATA= -0.5f),对电路进行5ms预启动,采集到正确的电流值后(因电机还未启动,此时约为0A),开始正常启动电机;

    4、当电机A转为发电机(电源),没有接负载时,PWM处于关闭状态。当接通负载,需要为负载供电时,这个时候因为没有有效的电流值,FOC计算错误,不能输出正确的PWM,对已经高速转动的电机造成风险。

  • 您好

    1、VDD1通过自举电路从隔离12V取电,参考地为电机输出相,VDD2就是系统数字电源3.3V。PWM没工作时,自举电路失效,没电压,U22 VDD1没有供电,U22没正常工作,导致IU_ADC采集的是错误值(约25A);

    请给出独立电源,防止这种情况出现

    2、是的,PWM驱动的电机A开始作为电机带动发动机B启动,发动机B转起来后,电机A转为发电机;

    3、电机A启动时我先通过输出PWM_H关闭、PWM_L开启(PWM_DATA= -0.5f),对电路进行5ms预启动,采集到正确的电流值后(因电机还未启动,此时约为0A),开始正常启动电机;

    这是您采集正常是因为整个逻辑流程以及控制流程是正向且没有冲突的。

    4、当电机A转为发电机(电源),没有接负载时,PWM处于关闭状态。当接通负载,需要为负载供电时,这个时候因为没有有效的电流值,FOC计算错误,不能输出正确的PWM,对已经高速转动的电机造成风险。

    这个过程中您的采集对象应该变成负载电机(即B电机)进而进行控制逻辑闭环,否则有可能变成有点畸形的开环。

  • 您好,

    现在遇到的难题就是没法更改硬件设计,在电机A高速转动时,因为没有可靠的相电流,如何切入发电FOC控制呢?

  • 您好

    尝试用软件的设定阈值以及保护电路来缓解前期启动过程的空档期。

  • 您好,

    对于电机驱动FOC算法有一点疑问:
    FAST和ESMO观测器都使用了参考速度:

    obj->estInputData.speed_ref_Hz = TRAJ_getIntValue(obj->trajHandle_spd);
            obj->speed_int_Hz = obj->estInputData.speed_ref_Hz;
    EST_run(obj->estHandle, &obj->estInputData, &obj->estOutputData);
    ESMO_setSpeedRef(obj->esmoHandle, obj->speed_int_Hz);
    ESMO_run(obj->esmoHandle, obj->adcData.VdcBus_V,
                        &(obj->pwmData.Vabc_pu), &(obj->estInputData.Iab_A));
    在软件框图中,只需要5个值就可以观测出角度和速度。
    如果把FAST和ESMO用到发电机状态,是否需要把测得的转速赋值给obj->estInputData.speed_ref_Hz和obj->speed_int_Hz呢?
  • 您好

    感谢您的回复

    关于新的问题建议您重新发帖。