ZHCABI8 March 2022 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1
SVPWM 发生器的输入为 Vd 和 Vq。需要调用以下行来赋值。Motor1 是存储在 TCM 中的结构。在程序文件中可找到有关其定义的更多详情。按住 Ctrl 键简单地左键点击几次变量名称,有助于追踪它的定义位置。代码逻辑与 TIDM-02009 的 C28 程序相同。Vd 和 Vq 是实际值,而不是标幺值。
以下行生成电机速度和电机角度。行 1 至行 4 设置斜坡控制器 rc1 和斜坡发生器 rg1。SpdRef 是 0 和 1 之间的标幺值。在行 5 和行 6 中,生成的 omega 和 theta 分配给 motor1。行 7 将 theta 限制在 0 到 TWO_PI 的范围内。文件中定义了 TWO_PI 值。按住 Ctrl 键简单地左键点击几次变量名称,有助于追踪它的定义位置。值得注意的是,在启动硬件中断之前,需要相应地初始化 rc1、rg1 和 motor1。
接下来的几行将输入送到 SVPWM 发生器,并保持标幺值输出。行 1 将输入限制在一定范围内。行 2 是 Park 逆变换。在 CMSIS DSP 库和其他地方可找到相似的函数。角度信息已经包含在 motor1 的结构中。行 3 是 SVPWM 发生器。逻辑与 TIDM-02009 的 C28 程序相同。以前的 C28 库中还有其他实现方式。值得注意的是,此版本中有实际值到标幺值的转换。行 4 将标幺值输出限制在一定范围内。
SVPWM 生成后,标幺值输出通过下面行 1 中的函数传递到 EPWM 计数器比较。行 2 提供有关设置 EPWM0 计数器比较的详情。EPWM_setCounterCompareValue 是设置计数器比较值的 SDK API 的名称。对于向上/向下模式或中心线模式,此处计算该值。