当前位置: 首页 > news >正文

STM32G4 SVPWM VF开环强拖电机

目录

  • 一、STM32G4 SVPWM VF开环强拖电机
      • 1 SVPWM
        • 1.1 SVPWM技术简介
        • 1.2 基于零序分量注入的SVPWM算法的实现
      • 2. VF开环强拖电机
      • 3. VF启动电机实验现象
    • 附学习参考网址
      • 欢迎大家有问题评论交流 (* ^ ω ^)

一、STM32G4 SVPWM VF开环强拖电机

1 SVPWM

1.1 SVPWM技术简介
  • SVPWM控制策略是依据变流器空间电压(电流)失量切换来控制变流器的种新颖思路和控制策略,其主要思想在于抛弃原有的SPWM算法,采用逆变器空间电压矢量的切换以获得准圆形旋转磁场,从而在不高的开关频率条件下使得交流电机获得较SPWM算法更好的控制性能。
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 6种电机控制状态,1代表上桥臂打开,0代表下桥臂打开,根据上图可以看出三相电流无法同时达到最大,所以输出是内部的蓝色圆Uout而不是外部红色圆U1
    在这里插入图片描述
  • 几个电压之间的关系
    在这里插入图片描述
    在这里插入图片描述
  • 111和000是电感续流状态,这时候电感的电流无法进行突变,适合进行三相电流采样
    在这里插入图片描述
1.2 基于零序分量注入的SVPWM算法的实现
  • 三次谐波的电流注入可以模拟出马鞍波,所以可以采用零区注入来实现SVPWM

  • 这种方法计算量会小很多

  • 为了提高直流电压的利用率,考虑在调制波信号中注人零序分量,其调制波表达式为:
    在这里插入图片描述

  • 基于以上公式在 simulink 中建立模型,打开上一章模型;

  • 将 AntiPark 变换得到的 Valpha及 Vbeta 电压,通过 AntiClark 变换得到 Va,Vb,Vc;
    在这里插入图片描述

  • 找到Va,Vb,Vc 中的最大值及最小值,计算V0;
    在这里插入图片描述

  • Va,Vb,Vc加V0,得到调制波;
    在这里插入图片描述

  • 计算 a,b,c三相电压占空比;使用三相调制波除以母线电压Vdc,然后乘以MCU定时器的计数值,即得到Ta,Tb,Tc的三相电压切换时间;
    在这里插入图片描述

  • 模型中计算出来的三相调制波电压乘-1;乘-1的原因与的STM32G4的TIM1的发波模式有关,如下图,CH1,2,3为 PWM mode 1,即TIM计数值大于CCR值,CH1为低电平,而此处计算出来的三相调制波电压是对应PWM mode 2,与mode1刚好相反,故此处需要乘-1。

  • SVPWM模型建立完成
    在这里插入图片描述

2. VF开环强拖电机

结合前文的AntiPark模块及SVPWM模块即可实现VF模式来驱动电机开环转动;

  1. 将AntiPark模块及SVPWM 模型按如下连接;其中输入的 ud,ug,Freq及Vbus均为标量,可在软件中自行定义其值;输出的Ta,Tb,Tc直接写入MCU TIMER的比较值寄存器;
    在这里插入图片描述

  2. 增加表贴式PMSM电机模型,写入电机参数及采样时间;并在数据字典中增加电机相关参数,将增加的电机参数的类定义为struct,并将struct命名为motor:该方法生成的代码为结构体数据,便于后期更改电机参数;

    • 这里需要先连接到之前文章使用的数据字典
      在这里插入图片描述
      在这里插入图片描述
  3. 增加一个将SVPWM输出的Ta,Tb,Tc时间转化为一个占空比时间的模块;
    在这里插入图片描述

  4. 使用Simulink自带的逆变器转换模块,将三相电压占空比转化为实际的三相电压;并在数据字典中增加母线电压Udc参数,24V;
    在这里插入图片描述

  5. 将各个模块连接
    在这里插入图片描述

  6. 电机运行,查看三相电流及速度波形;电流的频率与我们设计输入的频率一致;电机转速稳定在8左右;tABC输出标准的马鞍波;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3. VF启动电机实验现象

  1. 将 simulink中 VF mode 模块,右键点击生成嵌入式代码;生成代码流程可参考之前的文章;
    在这里插入图片描述
  2. 将生成的代码,拷贝至keil工程中的 MATLAB 文件夹;
    在这里插入图片描述
  3. 打开Keil工程,在Project窗口中MATLAB 文件夹中增加VF.c文件;
  4. 修改的部分代码:
    在外设初始化函数后增加对 VF算法的输入赋值,在while 循环中实时采样Vbus 电压;
    在这里插入图片描述
    在按键三的回调函数中,启动和暂停PWM输出:
    在这里插入图片描述
    在ADC中断回调函数中,读取三相电流值;将VF算法的输出的三相计数值写入CCR寄存器:并将电流及计数值上传至VOFA上位机实时显示;
    在这里插入图片描述
  5. 按照之前文章的方法连接电机,编译并下载程序,打开Keil debug,打开VOFA上位机,可以说看到输出的三项计数值和马鞍波
    在这里插入图片描述
  6. 按下按键3,电机旋转,ab项的电流值显示正常
    在这里插入图片描述
  7. 在 keil 的 dubug watch 串口中,输入变量rtU,修改 Freq值,即可修改电机转速

附学习参考网址

  1. STM32G4 FOC开发实战

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

http://www.dtcms.com/a/352615.html

相关文章:

  • 2026 届最新大数据专业毕设选题推荐,毕业设计题目汇总
  • 达索 Enovia 许可管理技术白皮书:机制解析与智能优化实践
  • 段式存储、页式存储、段页式存储:三种内存管理策略的演进与权衡
  • PyTorch生成式人工智能——PatchGAN详解与实现
  • Docker实战系列:使用Docker部署YouTrack项目管理系统
  • Linux修改bootflag(启动标签)到指定分区
  • RedHat 5.7升级为PAE内核,并更新yum源
  • 软件产品线过程模型全景解析:双生命周期、SEI 与三生命周期
  • 《数据之心》——鱼小妖全传
  • 数据结构07(Java)-- (堆,大根堆,堆排序)
  • JHipster 一个基于 Yeoman 的全栈应用生成器
  • 常见软件优化功能项
  • More Effective C++ 条款09:使用析构函数防止资源泄漏
  • 用友NCC 如何通过OpenApi 上传附件
  • 【计组】总线与IO
  • 【C++】智能指针底层原理:引用计数与资源管理机制
  • 菜鸡还没有找到工作(DAY41)
  • 永磁同步电机无速度算法--高频脉振正弦波注入到两相静止坐标系
  • 全新机器人遥操作触觉感知解决方案
  • postman使用教程
  • MATLAB 实现子图不规则排列
  • 【软考论文】论自动化测试方法及其应用
  • 这个AI有点懒
  • ZAM5404B:通道速率和信号带宽双提升,工业采集更高效
  • Tokenizer
  • 2025全国大学生数学建模B题思路+模型+代码9.4开赛后第一时间更新,备战国赛,算法解析支持向量机(SVM)
  • 华为云之CodeArts IDE Online平台部署Homepage个人导航页【玩转华为云】
  • k230 canMV 单路、双路、三路摄像头高清显示源代码
  • 数据存储工具 ——Redis
  • 构建面向人工智能决策的世界模型引擎所需的基本知识体系