ZHCABI8 March   2022 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1

 

  1.   摘要
  2.   商标
  3. 1引言
  4. 2运行牵引逆变器的分步指南
    1. 2.1 创建实时调试接口
      1. 2.1.1 确认 CCS 特性
      2. 2.1.2 创建目标配置文件
      3. 2.1.3 添加串行命令监视器软件
      4. 2.1.4 启动实时调试
    2. 2.2 使用 Sysconfig 配置控制外设和 ADC 中断
      1. 2.2.1 为时间基准生成 PWM
      2. 2.2.2 同步 ADC 采样和中断服务例程
      3. 2.2.3 通过 DAC 为旋转变压器激励配置 DMA
    3. 2.3 使用 MSPI 配置栅极驱动器接口
      1. 2.3.1 确认栅极驱动器的控制卡硬件配置
      2. 2.3.2 为 UCC5870 栅极驱动器配置 MCSPI
      3. 2.3.3 初始化 UCC5870 栅极驱动器
    4. 2.4 从 ADC 采样并通过 CCS 读取样本
      1. 2.4.1 寄存和启用中断
      2. 2.4.2 添加日志代码,以固定速率读取图中样本
      3. 2.4.3 在表达式和图形窗口中读取 ADC 样本
    5. 2.5 生成空间矢量 PWM 和在开环中驱动电机
      1. 2.5.1 设置 SVPWM 发生器输入
      2. 2.5.2 在图形窗口中读取 SVPWM 占空比
      3. 2.5.3 逆变器上电并在开环中旋转电机
    6. 2.6 以模拟速度闭合电流环路
      1. 2.6.1 添加变换和读取开环中的 Id-Iq
      2. 2.6.2 添加控制器,以闭合电流环路
      3. 2.6.3 读取 Id-Iq,以闭合电流环路
    7. 2.7 添加软件旋转变压器数字转换器
      1. 2.7.1 为旋转变压器硬件生成激励
      2. 2.7.2 添加旋转变压器软件
      3. 2.7.3 读取旋转变压器软件输出
    8. 2.8 以转子速度闭合速度环路
      1. 2.8.1 添加速度环路控制器
      2. 2.8.2 添加速度环路演示程序
      3. 2.8.3 从图形窗口读取电机速度
  5. 3代码迁移的简要指南
    1. 3.1 SoC 架构概览
    2. 3.2 SDK 资源概览
    3. 3.3 从 AM24 迁移代码
    4. 3.4 从 C28 迁移代码
  6. 4总结
  7. 5参考文献

设置 SVPWM 发生器输入

SVPWM 发生器的输入为 Vd 和 Vq。需要调用以下行来赋值。Motor1 是存储在 TCM 中的结构。在程序文件中可找到有关其定义的更多详情。按住 Ctrl 键简单地左键点击几次变量名称,有助于追踪它的定义位置。代码逻辑与 TIDM-02009 的 C28 程序相同。Vd 和 Vq 是实际值,而不是标幺值。

  1. motor1.Vout_dq_V[0] = VdTesting;
  2. motor1.Vout_dq_V[1] = VqTesting;

以下行生成电机速度和电机角度。行 1 至行 4 设置斜坡控制器 rc1 和斜坡发生器 rg1。SpdRef 是 0 和 1 之间的标幺值。在行 5 和行 6 中,生成的 omega 和 theta 分配给 motor1。行 7 将 theta 限制在 0 到 TWO_PI 的范围内。文件中定义了 TWO_PI 值。按住 Ctrl 键简单地左键点击几次变量名称,有助于追踪它的定义位置。值得注意的是,在启动硬件中断之前,需要相应地初始化 rc1、rg1 和 motor1。

  1. rc1.TargetValue = SpdRef;
  2. rampControl(&rc1);
  3. rg1.Freq = rc1.SetpointValue;
  4. rampGen(&rg1);
  5. motor1.omega_e = rg1.Freq * BASE_FREQ * TWO_PI;
  6. motor1.theta_e = rg1.Out * TWO_PI;
  7. theta_limiter(&(motor1.theta_e));

接下来的几行将输入送到 SVPWM 发生器,并保持标幺值输出。行 1 将输入限制在一定范围内。行 2 是 Park 逆变换。在 CMSIS DSP 库和其他地方可找到相似的函数。角度信息已经包含在 motor1 的结构中。行 3 是 SVPWM 发生器。逻辑与 TIDM-02009 的 C28 程序相同。以前的 C28 库中还有其他实现方式。值得注意的是,此版本中有实际值到标幺值的转换。行 4 将标幺值输出限制在一定范围内。

  1. dq_limiter_run(&motor1);
  2. ipark_run(&motor1);
  3. SVGEN_run(&motor1, &pwm1);
  4. PWM_clamp(&pwm1);

SVPWM 生成后,标幺值输出通过下面行 1 中的函数传递到 EPWM 计数器比较。行 2 提供有关设置 EPWM0 计数器比较的详情。EPWM_setCounterCompareValue 是设置计数器比较值的 SDK API 的名称。对于向上/向下模式或中心线模式,此处计算该值。

  1. TRINV_HAL_setPwmOutput(&pwm1);
  2. EPWM_setCounterCompareValue(CONFIG_EPWM0_BASE_ADDR, EPWM_COUNTER_COMPARE_A,(uint16_t)((pwm->inv_half_prd * pwm->Vabc_pu[0]) +pwm->inv_half_prd));