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

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.xdnf.cn/news/18925.html

相关文章:

  • 两周年创作纪念,忆笑傲江湖岁月
  • 【生产实践】局域网多服务器多用户SSH登录批量测试(附完整shell脚本)
  • Linux-服务器初始化
  • 【智能化解决方案】大模型智能推荐选型系统方案设计
  • week5-[字符数组]查找
  • GD32VW553-IOT开发板测评 搭建环境到电灯(QA分享)
  • Element中table组件(el-table)右侧滚动条空白占位gutter处理
  • vue3和react的异同点
  • Tesseract OCR之基线拟合和单词检测
  • 从0开始学习Java+AI知识点总结-26.web实战(Springboot原理)
  • Linux服务器安全配置与NTP时间同步
  • 【Python系列】Flask 和 FastAPI对比
  • 【深度学习新浪潮】SAM 2实战:Meta新一代视频分割模型的实时应用与Python实现
  • Boris FX Samplitude Suite 2025.0.0 音频录制/编辑和母带处理
  • springcloud篇5-微服务保护(Sentinel)
  • 数字IC前端设计——前仿篇(VCS,DVE,Verdi)
  • 企业级集群部署gpmall商城:MyCat+ZooKeeper+Kafka 环境部署与商城应用上线流程
  • Linux SSH 基于密钥交换的自动登录原理简介及配置说明
  • 税务岗位职场能力解析与提升路径规划
  • spring全家桶
  • VMware 中 Ubuntu 右上角网络图标消失的 5 种终极修复方案
  • Android 中使用开源库 ZXing 生成二维码图片
  • Android 播放MP4格式,大视频 几个小时的视频点击快进键视频进度会倒退一秒
  • 基于 Elasticsearch 解决分库分表查询难题
  • MySQL 索引:结构、对比与操作实践指南
  • OpenAI o1:OpenAI最新推出的AI大语言模型,更擅长推理也更贵
  • 使用JDK11标准 实现 图数据结构的增删查改遍历 可视化程序
  • Linux应急响应一般思路(三)
  • Vulkan 学习路线图
  • 【机器学习】(11) --回归树算法