stm32 FOC从学习开发(四)svpwm算法(1)

2024-01-26 00:30

本文主要是介绍stm32 FOC从学习开发(四)svpwm算法(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章目录

`
一、stm32 FOC从零学习开发(一)FOC概念
二、stm32 FOC从学习开发(二)Clark变换与MATLAB仿真
三、stm32 FOC从学习开发(三)park变换与MATLAB仿真
四、stm32 FOC从学习开发(四)svpwm算法(1)
五、stm32 FOC从学习开发(五)svpwm算法(2)
六、stm32 FOC从学习开发(六)基于均值零序分量注入的载波SVPWM算法
七、stm32 FOC从学习开发(七)svpwm算法MATLAB仿真
八、stm32 FOC从学习开发(八)PID基础MATLAB仿真
九、stm32 FOC从学习开发(九)FOC MATLAB仿真


文章目录

  • 系列文章目录
  • 一、spwm与svpwm
    • spwm简介
    • svpwm简介
  • 二、SVPWM的空间矢量表示
  • 三、SVPWM算法的合成


一、spwm与svpwm

spwm简介

SPWM的全称是(Sinusoidal Pulse Width Modulation),即正弦波脉冲宽度调制,是一种比较成熟的目前广泛使用的一种PWM方法,其原理就是采用控制理论中的一个重要结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。SPWM法就是以该结论为理论基础,用脉冲宽度按正弦规律变化而和正弦波等效的PWM波形即SPWM波形控制逆变电路中开关器件的通断,使其输出的脉冲电压的面积与所希望输出的正弦波在相应区间内的面积相等,通过改变调制波的频率和幅值则可调节逆变电路输出电压的频率和幅值。

svpwm简介

SVPWM的全称是(Space Vector Pulse Width Modulation),即空间矢量脉冲宽度调节,其主要思想是以三相对称正弦波电压供电时三相对称电动机定子理想磁链圆为参考标准,以三相逆变器不同开关模式作适当的切换,从而形成PWM波,以所形成的实际磁链矢量来追踪其准确磁链圆。传统的SPWM方法从电源的角度出发,以生成一个可调频调压的正弦波电源,而SVPWM方法将逆变系统和异步电机看作一个整体来考虑,模型比较简单,也便于微处理器的实时控制。SVPWM技术与SPWM相比较,绕组电流波形的谐波成分小,使得电机转矩脉动降低,旋转磁场更逼近圆形,而且使直流母线电压的利用率有了很大提高,且更易于实现数字化。
SVPWM算法实际上是对应于交流电机中的三相电压源逆变器功率器件的一种特殊的开关触发顺序和脉宽大小的组合,这种开关触发顺序和组合将在定子线圈中产生三相互差 120°电角度、失真较小的正弦波电流波形。实践和理论证明,与直接的SPWM技术相比,SVPWM算法的优点主要有:
1、SVPWM优化谐波程度比较高,消除谐波效果要比SPWM好实现容易并且可以提高电压利用率;
2、SVPWM算法提高了电压源逆变器的直流电压利用率和电机的动态响应速度,同时减小了电机的转矩脉动等缺点;
3、SVPWM比较适合于数字化控制系统。

二、SVPWM的空间矢量表示

可以知道电机可以简化为电压或者电流的三相变量,若是可以将三相变量合成一个合成量,并且保持信息的完整性,那么三相问题就可以变成单相问题。
在这里插入图片描述请添加图片描述
假设三个标量为xa、xb、xc,而且电流矢量和为零,那么可以引入:
在这里插入图片描述
其中:在这里插入图片描述
根据欧拉公式变换表示在复平面上的向量可得:
在这里插入图片描述

三个标量到空间矢量的变换
上图为三个标量到空间矢量的变换
根据电流和为零可得:
在这里插入图片描述
如果复数矢量Xout已知,则可以唯一解出xa、xb、xc,即:
在这里插入图片描述
这样就将三个标量用一个复数矢量Xout表示。
假设三相对称正弦相电压的瞬时值表示为:
在这里插入图片描述
ω为相电压的角频率,那么:
在这里插入图片描述
可以求出电压矢量Uout的实部和虚部:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
因此,三相对称正弦电压对应的空间电压矢量轨迹如上图所示,电压空间矢量Uout顶点的运行轨迹实际为一个圆,并且以角速度ω的速度逆时针旋转,则原三相电压趋近于三相对称正弦波。
在这里插入图片描述
另外,根据电机驱动的电路图,可以简化为上图所示,根据电路图可以知道的一个基本原则就是上下桥臂不能同时打开,因为如果上下同时打开就会造成正极和负极之间直接导通,导致短路。
那么我们假设a相的上桥臂打开为1,那么此时下桥臂必须关闭,假设上桥臂关闭为0,此时下桥臂必然是打开,有人说不能上下都关闭吗,当上下都关闭的时候是没有物理意义的,而且其他桥臂打开的时候需要电流从下桥臂留出,都关闭的情况反而会把问题复杂化。
那么a、b、c每相有两种状态,三路总共就有8种开关状态,对于不同的开光状态组合,可以得到8个基本的电压空间矢量,这样逆变器的8种开关模式就对应8个电压空间矢量,各矢量为:
在这里插入图片描述
相电压与开关函数之间的关系为:

在这里插入图片描述
将8种开关组合方式即0或1带入上式,可以得到开关组合与电压的关系:
在这里插入图片描述在这里插入图片描述
从表中可以看出,总共有6个非零矢量,因为000和111均为零矢量,将8种组合映射到复平面中,既可以得到该图所示的电压空间矢量图,它们将复平面分成了6个扇区:
在这里插入图片描述

三、SVPWM算法的合成

SVPWM算法的理论基础就是平均值等效原理,即在一个开关周期内通过对基本电压矢量加以组合,使得其平均值和给定电压矢量相等,如上图所示,在某个时刻,电压空间矢量Uout旋转到某个区域中,可以由组成该区域的两个相邻的非零矢量和零矢量在时间上的不同组合得到。
以扇区一为例,空间矢量合成示意图为:
在这里插入图片描述
根据平衡等效原则可以得到:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由正弦定理:
在这里插入图片描述
将U1、U2和Uout=Um带入可得:
在这里插入图片描述

这篇关于stm32 FOC从学习开发(四)svpwm算法(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645111

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife