This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28069:逆变器的 V/F 示例

Guru**** 2530350 points
Other Parts Discussed in Thread: CONTROLSUITE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/590421/tms320f28069-v-f-example-for-inverter

器件型号:TMS320F28069
Thread 中讨论的其他器件:controlSUITE

查找实现变频 SPWM 的示例程序、以便输入电压/基准正弦波频率比保持不变。 请帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好! 您是逆变器编码的初学者吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、是的、我不熟悉逆变器编码。 我提到了使用运算放大器对具有正弦调制 PWM 的逆变器进行仿真。 如果您能提供必要的指导、将会有所帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好!   好的...我会给您发送一个基于28069的单相逆变器源代码,但我在所有型号的 MCU 中都提供了

    void device_start (void)
       {
       if (!fault)
     {
     开关(OPERAING_MODE)
     {
     情况0:
     full_system_disable();
     Inv_Counting ++;
     if (INV_Counting>SEC_5)
     {INV_Counting = SEC_5;
     Control_Init();
     OPERAING_MODE = 1;
     Inv_Counting = 0;
     if (i_bat <-2.0) {full_system_disable();fault = 4;}}
     中断;

     案例1:
     如果(V_dc >(0.98*INV_START))
     {INV_COUNTINGIN++;
     if (INV_Counting>(SEC_1))
     {INV_PWM_ENABLE ();
     OPERAT_MODE = 2;AC_PEAK 设置= 0.05;
     Inv_Counting = 0;}}

     if (V_dc < DC_critical 点)            {full_system_disable ();fault = 9;}
     if (I_bat > BAT_CUR_MAX)                   {FULL_SYSTEM_DISABLE ();FAULT = 4;}
     if (i_bat <-2.0)                    {full_system_disable();fault = 5;}
     中断;

     案例2:
     V_dc_ref = inV_start; cur_cntl ();
     V_AC_ref = sin1_value;ac_peak_setting+=0.00007;
     Relay_load_on;
     if (ac_peak_setting > 0.9)
     {ac_peak_setting = 0.9;
     Inv_Counting ++;
     if (INV_Counting>(SEC_1))
     {INV_Counting = SEC_1;
     OPERAING_MODE = 3;
     Inv_Counting = 0;}}

     if (V_dc < DC_OUT_MIN)                 {full_system_disable ();fault = 3;}
     if (V_dc < DC_critical 点)            {full_system_disable ();fault = 4;}
     if (I_bat > BAT_CUR_MAX)                   {FULL_SYSTEM_DISABLE ();FAULT = 5;}
     if (i_bat <-2.0)                    {full_system_disable();fault = 5;}
     中断;

     案例3:
     V_dc_ref = INV_START;
     CUR_CNTL ();
     V_AC_ref = sin1_value;
     pi_control (vol_err、ac_vol_set_peak、v_ac_peak_f、v_ac_sum、sample_time、ac_VOL_Kp、ac_VOL_Ki、-20.0、20.0);
     V_AC_KP = AC_VOL_KP*(AC_VOL_SET_PEAK - V_AC_PEAK);
     V_ac_peak_ref =(ac_VOL_SET_PEAK + vol_err);
     ac_peak_setting = V_ac_peak_ref / V_dc;

     Inv_Counting ++;
     if (INV_Counting>(SEC_5))
     {INV_Counting = SEC_5;
     OPERAING_MODE = 4;
     Inv_Counting = 0;}
     if (V_dc >(1.02*INV_START) ){no_load_cntl ();}
     其他
     {V_dc_ref = inV_start; cur_cntl ();
     V_AC_ref = sin1_value;INV_CONTROL = 6.0;
     pi_control (vol_err、ac_vol_set_peak、v_ac_peak_f、v_ac_sum、sample_time、ac_VOL_Kp、ac_VOL_Ki、-20.0、20.0);
     V_AC_KP = AC_VOL_KP*(AC_VOL_SET_PEAK - V_AC_PEAK);
     V_ac_peak_ref =(ac_VOL_SET_PEAK + vol_err);
     ac_peak_setting = V_ac_peak_ref / V_dc;}

     if (V_dc < DC_OUT_MIN)                 {full_system_disable ();fault = 3;}
     if (V_dc < DC_critical 点)            {full_system_disable ();fault = 4;}
     if (I_bat > BAT_CUR_MAX)                   {FULL_SYSTEM_DISABLE ();FAULT = 5;}
     if (i_bat <-2.0)                    {full_system_disable();fault = 5;}
     中断;

     }
     fault_checking();
     Inv_PWM_Creating();
      }
       }

      void open_loop_cntl (void)
     {
       EST_theta  +=Delta_THETA_60Hz;/// Delta_THETA_60Hz = 2 * 3.14 * 60 * SAMPLE_TIME;
       if (est_theta>PI){est_theta = est_theta - PI2;}
       if (est_theta<-pi){est_theta = est_theta + PI2;}
       }

       void INV_PWM_Creating()
       {
       如果(V_AC_ref > 0)  {VOL_POLE = 1;}
       否则                     {VOL_POLE = 0;}

       开关(VOL_POLE)
       {案例1:
       Inv_ref                    =  ac_peak_Setting * V_ac_ref;
       PWM_COUNT_INV_REF[0]  = (Int16)(inV_ref*PWM_COUNT_INV_MAX);
       PWM_COUNT_INV_REF[1]  = 界限1 (PWM_COUNT_INV_REF[0]、PWM_COUNT_INV_MAX);
       EPwm1Regs.CMPA.half.CMPA = PWM_COUNT_INV_REF[1];
       EPwm2Regs.CMPA.half.CMPA   = 0;
       中断;

       情况0:
       Inv_ref                    =  - ac_peak_Setting * V_ac_ref;
       PWM_COUNT_INV_REF[2]  = (Int16)(inV_ref*PWM_COUNT_INV_MAX);
       PWM_COUNT_INV_REF[3]  = 界限1 (PWM_COUNT_INV_REF[2]、PWM_COUNT_INV_MAX);
       EPwm1Regs.CMPA.half.CMPA = 0;
       EPwm2Regs.CMPA.half.CMPA   = PWM_COUNT_INV_REF[3];}}

       void INV_PWM_ENABLE (void)
       {
     INV = 1;FD = 0.0;
     EALLOW;
     GpioCtrlRegs.GPAMUX1.bit.GPIO0=1 ;
     GpioCtrlRegs.GPAMUX1.bit.GPIO1=1 ;
     GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 1;
     GpioCtrlRegs.GPAMUX1.bit.GPIO3=1 ;
     EDIS;
       }

     此处使用的开关模式基于双调制。 我觉得它会对 您有所帮助...

    作者!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们有一个使用 V/F 控制的电机控制示例

    请在此处查看

    C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVACI_Scalar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    主席先生,
    我已经为28069器件导入了 C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVACI_Scalar。 我将获得构建级别为1的 PWM 输出,我想知道 PWM DAC 是否也可以工作? 我在 EPWM6和7上看不到任何输出。 设备的更改是否有任何限制?
    请提供指导。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ravi、

    我认为原始项目是在 F2803x 上完成的、GPIO 多路复用器中可能会有一些变化、这可能会导致 PWM DAC 出现问题。

    您也可以在 DLOG 窗口中查看变量。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    主席先生,  

    是否有任何单独具有正弦调制 PWM 或具有 V/F 正弦调制 PWM 的逆变器示例(电机示例使用了空间矢量)?

    我尝试在向上/向下计数模式下使用 PWM,并在 ISR 中更新比较寄存器(total_period/2)+(total_period/2)* a* sin (2*pi*f*t),通过该寄存器,我可以生成不同的 PWM,并能够在滤波器之后获得正弦波。 您能告诉我这是如何完成的吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

      您是否  测试      了我 发送 给您的代码 ?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="eedii iiiiiii"]

      您是否  测试      了我 发送 给您的代码 ?

    [/报价]
    感谢您的帮助。 我将在生成具有所需死区的三相正弦调制 PWM 后尝试双调制。
     
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hiii、iam 使用 C2000 F28027微控制器执行单相惯性器。 上述代码是否有助于我从 F28027控制器生成脉冲? 请回复我。