STM32G4 电流环闭环

发布于:2025-09-04 ⋅ 阅读:(18) ⋅ 点赞:(0)

一、STM32G4 电流环闭环

1 电流环闭环

  • 电流环框图
    在这里插入图片描述
PID控制

在这里插入图片描述

  • 时域和拉普拉斯域的传递函数
    在这里插入图片描述
  • PID:
    P比例部分,I积分部分,D微分部分
    直观的描述出当前误差,过去误差和误差的变化趋势
    一般只使用PI控制

2 电流环闭环建模

  1. 基于上章SVPWM模型,我们可以得到电机的输出三相电流,得到电机的三相电流后我们可以通过Clark变换将其转换为alpha及beta轴电流;
    在这里插入图片描述

  2. 使用BusSelector模块将电流总线输出为三相电流,并使用Goto模块及From模型,将电机输出的三相电流参数输入到Clark变换模块;
    在这里插入图片描述
    在这里插入图片描述

  3. 得到alpha和beta轴电流后,再经过Park变换转换为实际dq轴电流:
    在这里插入图片描述

  4. 电流环的目的就是将实际的dq轴电流变成我们期望的dq轴电流,故我们在期望的dq轴电流和实际的dq轴电流之间增加PI控制器;使用constant模块设置我们期望dq轴电流,PID模块用作PI控制器,Kp和Ki参数配置外部输人:通常期望的d轴电流值都为 0;

    • 新建idq_Controller子模块
      在这里插入图片描述
      在这里插入图片描述
  5. PI控制器的输出就是dq轴的电压经过anti_Park变换就得到了SVPWM模块的输入alpha和beta轴电压;
    在这里插入图片描述

  6. 电流环的模型框架基本搭建完成,接下来确定我们的控制参数;电流环的PI参数可以按照以下公式计算,其中α为电流环的带宽可以选择100左右;
    { K p d = α L d K i d = α R K p q = α L q K i q = α R \begin{cases} K_{pd} = \alpha L_d \\ K_{id} = \alpha R \\ K_{pq} = \alpha L_q \\ K_{iq} = \alpha R \end{cases} Kpd=αLdKid=αRKpq=αLqKiq=αR

  7. 在数据字典中建立CurrKp以及CurrKi参数,并输入PI控制器;
    在这里插入图片描述

  8. 设置PI控制器的输入dq轴电压阈值为90%;
    在这里插入图片描述

  9. 将刚才所建立的算法部分选中并生成子系统,命名为currloop;
    在这里插入图片描述

  10. 连接外部模块并增加Rate Transition模块,确保输入数据相同速率,其中theta角度来自电机的输出机械角度,要把他转化为电角度;
    在这里插入图片描述
    在这里插入图片描述

  11. 点击仿真按钮,观察三相电流输出;
    在这里插入图片描述

  12. 如上图,可以看到三相电流为完美的正弦波,但是电流赋值不是我们期望的q轴电流大小,设定的iq_ref是2;这是因为电机的输出转矩与负载不匹配,如果想让我们输出的电流复制达到我们设计的参考值,可以增加负载;
    在这里插入图片描述
    在这里插入图片描述

附学习参考网址

  1. STM32G4 FOC开发实战

欢迎大家有问题评论交流 (* ^ ω ^)


网站公告

今日签到

点亮在社区的每一天
去签到