基于STM32 FOC下桥三电阻采样方式的电机相电流重构方法

news2024/11/24 6:20:48

文章目录

    • 1、本文中的PWM生成模式
    • 2、 注意事项
    • 3、与SVPWM相关的问题
    • 4、采样点的选择
      • 4.1、在低调制系数时(1)
      • 4.2、在高调制系数时(2)
      • 4.3、在高调制系数时(3)
      • 4.4、在高调制系数时(4)
    • 5、最大调制系数和最大占空比的确定
    • 6、参考文献

  在三相电机FOC控制算法里,电机三相电流重构对电流环的稳定性和电机运行效率都非常关键。在采用下桥三电阻采样方案时,如果没有有效方法重构三相电流,电机在高调制率下将无法稳定运行。传统的方法是限制调制率,从而保证电机不会运行在高调制率下,这个方法牺牲了母线电压的利用率,从而导致电机无法高速运行或者高速运行效率降低。

  本文重点介绍针对采用下桥三电阻采样方式的一种相电流重构算法,通过本文介绍的电流重构算法,可以使电机运行在更高的调制率下,可以充分利用母线电机,从而让电机运行在高速区间并提高电机高速运行效率。

本文是基于STM32平台,且分析基于以下场景:

  1. PWM输出高有效,且上桥壁在计数值大于比较值时输出高电平,则下桥壁在比较值大于计数值输出高电平;
  2. 相电流的采样由PWM4的上升沿触发;
  3. 使能PWM4个通道的预装功能,在发生更新事件时开始作用;
  4. 更新事件发生在PWM计数的下溢处;

1、本文中的PWM生成模式

如下:
 
在这里插入图片描述

2、 注意事项

  1. 必须读取两相的定子电流,由SVPWM的当前扇区决定读取哪两相电流,即读取下桥壁占空比较大的两相电流;
  2. 只有在下桥壁打开时,才能读取该相电流;
  3. 每次桥壁开关状态有变化时,会在shunt电阻上的电压产生一个电子干扰,假设该干扰的时间长度为TN;
  4. 当下桥壁打开后,需要等待一段时间来使shunt电阻上的电压达到稳定值,假设该干扰的时间长度为TR;
  5. 在TN 及 TR期间不能读相电流;
  6. 由于STM32 ADC/TIM1的高性能,我们可以在PWM周期的任何时刻采样,但是我们希望在不同扇区,采样点无太大变化;

3、与SVPWM相关的问题

下图为三相下桥壁的占空比

  • 对于每个SVPWM扇区,总有两相桥壁的占空比变化很小而另一相变化很大;
  • 在下述的介绍中,我们假设C相下桥的占空比最大,A相下桥的占空比最小,而B相下桥壁的占空比变化最大,如下图中圈出的部分:
    在这里插入图片描述

4、采样点的选择

4.1、在低调制系数时(1)

 
在这里插入图片描述
 
在这里插入图片描述
 
这里DT为死区时间,上下桥壁都有插入这个时间,TN为开关噪声时间,Ts为采样点, Δ D u t y \Delta Duty ΔDuty就是通道A的比较值CC1,采样点处是采样BC相的电流。

4.2、在高调制系数时(2)

 
当调制系数增大,A相下桥壁的占空比减小时,若
 
在这里插入图片描述

4.3、在高调制系数时(3)

 
在这里插入图片描述
 
在这里插入图片描述

4.4、在高调制系数时(4)

 
在这里插入图片描述

5、最大调制系数和最大占空比的确定

如果在同一个硬件上TN、TR、DT 已确定,Ts,PWM频率也确定了,那么怎么计算出最大调制系数和最大占空比呢。这里我们通过simulink仿真得到。举个例子,假设TN = TR = 3.5us,DT= 0.6us,
Ts = 0.2us;fpwm = 15.625K,那么通过仿真得到 最大调制系数为93%,最大占空比为96.5%。
仿真模型见下载链接。

6、参考文献

1、基于 C2000 InstaSPIN FOC 下桥三电阻采样方式的电机电流重构方法【TI】
2、基于STM32的PMSM FOC软件库培训 【ST】
3、知乎 —— 如何提高三电阻采样最大占空比

仿真模型和参考文献的下载链接:根据控制板硬件参数和载波频率,仿真计算最大调制率和最大占空比

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/860718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle 使用 CONNECT_BY_ROOT 解锁层次结构洞察:在 SQL 中导航数据关系

CONNECT_BY_ROOT 是一个在 Oracle 数据库中使用的特殊函数,它通常用于在层次查询中获取根节点的值。在使用 CONNECT BY 子句进行层次查询时,通过 CONNECT_BY_ROOT 函数,你可以在每一行中获取根节点的值,而不仅仅是当前行的值。 假…

Window下安装MinGW64

欢迎来到我的酒馆 介绍Windows下,安装MinGW64。 目录 欢迎来到我的酒馆二.MinGW64三.配置系统环境变量 二.MinGW64 从sourceforge下载mingw64, sourceforge下载MinGW https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/ 下…

效率指数级提升的Intellij IDEA快捷键集合

温馨提示:全文有18个小技巧,为了阅读体验,可以直接先看文章目录。 1,打开一个文件中的所有方法展示框 CtrlF12 Alt7 2,打开一个类的所有使用位置 AltF7 3,打开一个类在项目使用的位置 CtrlAltF7 4&#…

谁才是真正的协议之王?fastjson2 vs fury

文章目录 写在前面简单介绍官网和引入设备,环境及样本设备JDK样本 测评数据包体大小序列化反序列化垃圾回收JIT优化耗时 结论序列化对比反序列化对比包体压缩比上API易用性上多语言生态上垃圾回收上JIT优化耗时上 综述 写在前面 前阵子,我们写过一篇关于…

Tomcat 部署及优化

Tomcat概述 Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,是 Apache 软件基金会的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。在中小型系统和并发访问用户不是很…

Vite 创建 Vue项目之后,eslint 错误提示的处理

使用 npm create vuelatest创建 vue 项目(TS)之后,出现了一些 eslint 错误提示,显然,不是代码真实的错误,而是提示搞错了。 vuejs/create-vue: 🛠️ The recommended way to start a Vite-pow…

利用NtDuplicateObject进行Dump

前言 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。(本文仅用于交流学习) 这是国外老哥2020年提出的一种蛮有意思的思路。 我们先来看看大致的思路是…

Technical debt (技术负债 / 技术债)

Technical debt (技术负债 / 技术债) In software development, or any other IT field (e.g., Infrastructure, Networking, etc.) technical debt (also known as design debt or code debt) is the implied cost of future reworking required when choosing an easy but li…

成集云 | 报销单同步到金蝶云星空 | 解决方案

方案介绍 金蝶云星空是金蝶集团针对企业数字化转型需求推出的一款云端产品。它是一套集成了多个业务模块的全面企业管理解决方案,旨在帮助企业实现全面管控和高效运营。 旗下涵盖了多个功能模块,包括财务、人力资源、供应链、生产制造、销售与市场、客…

SpringBoot 整合JDBC

SpringData简介 Sping Data 官网:https://spring.io/projects/spring-data数据库相关的启动器 :可以参考官方文档:https://docs.spring.io/spring-boot/docs/2.6.5/reference/htmlsingle/#using-boot-starter 整合JDBC 创建测试项目测试数据…

云技术-混沌工程

目录 混沌工程 故障注入 监控和观测 自动化和持续集成 混沌工程 混沌工程(Chaos Engineering)是一种实验性的系统可靠性工程方法,主动引入故障和异常来测试系统的弹性和容错能力。混沌工程的核心思想是通过模拟故障场景来验证系统在各种异…

Android:换肤框架Android-Skin-Support

gihub地址:https://github.com/ximsfei/Android-skin-support 样例: 默认: 更换后: 一、引入依赖: // -- 换肤依赖implementation skin.support:skin-support:4.0.5// skin-supportimplementation skin.support:ski…

ctf中linux内核态的漏洞挖掘与利用系列(一)

说明 该系列文章主要是从ctf比赛入手,针对linux内核上的漏洞分析、挖掘与利用做讲解,本篇文章主要介绍内核漏洞利用所需的前置知识以及准备工作。 linux内核态与用户态的区别 以 Intel CPU 为例,按照权限级别划分,Intel把 CPU指…

Mysql数据库之单表查询

目录 一、练习时先导入数据如下: 二、查询验证导入是否成功 三、单表查询 四、where和having的区别 一、练习时先导入数据如下: 素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CRE…

umi快速搭建中后台管理系统(命令行创建和区块开发的区别)

后台管理系统 命令行创建新项目命令行效果图配置文件package.json umi3构建区块readme.md主页面页面布局页面布局的一些参数总结 区块开发步骤三级目录 命令行创建新项目 命令行 1、 npm i ant-design/pro-cli -g 2、 pro create demo_spacemv_managementsys 3、 umi 3 simpl…

安防监控小程序商城开发攻略

在当今信息化的时代,安防监控已经成为了人们生活中的重要一环。为了更好地满足人们对于安全的需求,许多企业都开始利用小程序来开展安防监控业务。那么,如何搭建一个安防监控小程序呢?下面我们将一步步来进行介绍。 首先&#xff…

Oracle 开发篇+Java通过共享模式访问Oracle数据库

标签:共享服务器进程、shared server process释义:shared server process是Oracle的一种数据库连接技术,类似的还有专用模式和DRCP ★ 数据库配置 alter system set shared_server_sessions1 scopespfile; alter system set max_shared_serv…

Delphi7通过VB6之COM对象调用PowerBASIC写的DLL功能

Delphi7通过VB6之COM对象调用PowerBASIC写的DLL功能。标题挺长,其实目标很简单,就是在Delphi7中使用PowerBASIC的MKI/CVI, MKS/CVS, MKD/CVD,并顺便加入CRC16检验函数,再进行16进制高低字节调整,方便在VB6、Delphi、La…

基于grpc从零开始搭建一个准生产分布式应用(系列)

花了点时间先把程序代码完全写完了,加了这个章节。因为后续章节是连续的,没有一个总纲同学们难免看的云里雾里的。本章先描述下完整的源码如何运行以及工程的结构。此专题大概由30章组成,真正的从0开始,框架是在原生产环境中抽取的…

【目标检测系列】YOLOV2解读

为更好理解YOLOv2模型,请先移步,了解YOLOv1后才能更好的理解YOLOv2所做的改进。 前情回顾:【目标检测系列】YOLOV1解读_怀逸%的博客-CSDN博客 背景 通用的目标检测应该具备快速、准确且能过识别各种各样的目标的特点。自从引入神经网络以来&a…