Thread 中讨论的其他器件:controlSUITE
您好!
我正在尝试构建一个简单的三相电压源逆变器、以使用六开关逆变器模块来驱动三相感应机器。 到目前为止、我已经配置了 ePWM4、5和6来生成互补对的 PWM 信号、其中有一个死区、我将使用它们分别控制逆变器的三个桥臂。
目前、我只为这些 PWM 信号指定了占空比、以便我可以在示波器上验证它们。
uint32 ePWMdutyA = 500; uint32 ePWMdutyB = 600; uint32 ePWMdutyC = 700; ...... EPwm4Regs.CMPA.half.CMPA = ePWMdutyA; //调整输出 ePWM4A EPwm5Regs.CMPA.half.CMPA = ePWMdutyB 的占空比; //调整输出 ePWM5A EPwm6Regs.CMPA.half.CMPA = ePWMdutyC 的占空比; //调整输出 ePWM6A 的占空比
我在 main()中执行此操作,它的行为符合我的预期。
不过、我想调制这个占空比来产生一个正弦输出。 我计划使用 math.h 库中的 Sine 函数。 我想这样做:
ePWMdutyA =模数索引* sin (2 * pi * f * t)
ePWMdutyB =模数索引* sin (2 * pi * f * t + 120)
ePWMdutyC =模数索引* sin (2 * pi * f * t - 120)
不过、我不确定如何随着时间的推移而实现这一点、也就是从哪里获得这一 t 项。 最好在我的 PWM 计时器达到其最大值并在该最大值处更改占空比时设置一个中断来触发吗? 最好设置一个单独的 CPU 计时器来执行此操作吗?
我最终计划从编码器获取反馈、并使用它来更改模数索引和频率、以实现非常基本的 v/f 控制方案。
如果我不熟悉这个领域、我会非常感谢您的任何建议!