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

从零开始之了解电机及其控制(11)实现空间矢量调制

广泛地说,空间矢量调制只是将电压矢量以及磁场矢量在空间中调制到任意角度,通常同时最大限度地利用整个电压范围。

其他空间矢量调制模式确实存在,并且根据您最关心的内容,它们可能值得研究。

如何实际执行这种所谓的交替反向序列 PWM,以及更普遍的真正空间矢量调制模式。

我们首先要回顾一下在六块换向期间如何执行电压调制。回想一下,PWM 周期可以分为两个阶段。强制阶段,其中电流由所施加的电压主动驱动,

而非强制阶段,则不是。                                             

强制阶段所花费的 PWM 周期的百分比称为占空比。在强制阶段,当执行块换向时,当我们将电机旋转一圈时,我们总是有 H 桥的一个桥臂 PWM 到高电压,而另一个桥臂正好 PWM 到地。

因此,在 PWM 周期的强制阶段,我们根据转子角度使用这六种可能的 H 桥配置之一。为了简化我对 H 桥的描述,并使其在视觉上更加令人愉悦,

其中每个圆圈描绘一个 MOSFET,并用黄色表示正在连接。此外,我将显示每个产生的电压矢量。

我们在非强制阶段使用的配置因我们的切换方案而异。例如,如果我们进行硬开关,这六个活动配置中的每一个都对应于相同的、完全断开的 H 桥。如果我们使用软切换,这六个活动配置分别对应于三个非强制配置之一。

而且,如果我们使用免费切换,这六种主动配置对应于三种不同的非强制配置之一。就像我们之前的换相方案一样,通过空间矢量调制,我们的 PWM 周期将分为强制阶段和非强制阶段。

然而,与块换向不同的是,我们的电机相位之一始终保持浮动,既不连接到高电平也不连接到地。

在空间矢量调制期间,我们始终希望所有三个相位都连接到高压或接地。

因此,我们将使用六种配置,而不是在块换向的强制阶段使用的配置,其中涉及连接所有三相以驱动电流。我将把这些电压配置描述为电压配置 1、2、3、4、5 和 6。

显然,就像块换向、电压配置一样,这六种配置中的每一种都指向一个独特且谨慎的角度。

因此,为了产生随转子连续转动的电压矢量,我们将进一步将 Pw-impyret 的受迫相位细分为 T1 和 T2。

在 T1 期间,我们将应用产生场矢量的电压配置,该矢量在顺时针方向上最接近我们所需的矢量。

在 T2 期间,我们将应用电压配置,该电压配置会产生一个最接近逆时针方向所需矢量的矢量。

T1 相对于 T2 的持续时间将由所需的向量确定或相对于由两个选定的电压配置生成的矢量的方向。

 

在执行空间矢量调制时 Pw-impyret 的非强制阶段,我们将使用两种“零”电压配置中的至少一种,其中涉及所有三相都连接到高电平,或者所有三相都连接到高电平连接到低电压。我们将这两种配置称为电压配置零和电压配置七。

如之前说的,任何相连接的电压的绝对大小并不重要。驱动电流的是电压差。在配置零和配置七中,电机两端的电压差为零,因此电流不受强制,这意味着它就像电机引线全部焊接在一起一样自由流动。本质上,我们获得了与互补切换的非强制阶段相同的结果,只是使用所有三个阶段而不是仅两个阶段。

但是我们什么时候使用配置 0,什么时候使用配置 7?那么,这个问题的答案取决于您选择的空间矢量调制模式。例如,如果您试图最小化开关损耗,“null_v0”模式通常被认为是最佳选择,它在整个非强制阶段始终使用配置零。

我们在上一集介绍的交替反向序列具有较少的谐波失真,它使用两者均匀地分割其非受迫相位。但在我们结束这个话题并为您提供发送到 MOSFET 的 PWM 方程之前,我们还需要讨论一件事。脉宽调制对齐。

PWM 信号可以通过三种不同的方式进行配置:前沿调制或左对齐调制,其中周期的前沿被保留为高相位的开始,信号的后沿被调制以在 0 到 100 之间调整 % 占空比。

后沿或右对齐 PWM,其中周期结束被保留为周期结束高相位,改变左上升沿的位置以在 0 和 100% 占空比之间调整,

最后,脉冲中心或中心对齐 PWM,其中保留 PWM 周期的中心作为高相位的中心。上升沿和下降沿的位置都是变化的,并且一致地在 0 和 100% 占空比之间进行调整。

一般来说,在广泛讨论 PWM 信号时,除非另有说明,否则左对齐 PWM 是默认假设。

然而,对于空间矢量调制模式,我们的 PWM 信号通常需要中心对齐。现在,我们终于了解了所有背景信息,以便我们可以描述如何将空间矢量调制信号发送到 H 桥。

因此,我们需要做的第一件事是将 PWM 设置配置为中心对齐。

接下来,我们需要计算所需的矢量方向和占空比。方向通常由您的转子位置决定,但也可能受到任何想要说场信标的影响。您的占空比命令将是当前控制器的输出。您可以计算您想要在每个力配置以及零向量中花费的时间。

T1 将等于 PWM 周期(以秒为单位)乘以占空比乘以 60 的符号减去角度 alpha。该 alpha 值是您想要的向量超出您将花费 T1 的向量的距离。可以通过找到所需矢量角除以 60 的余数来轻松计算。

然后,T2 将再次等于 PWM 周期(以秒为单位)乘以占空比乘以 alpha 符号。最后,T0(您将在零向量中花费的时间)等于总周期 T(以秒为单位)减去 T1 和 T2。

现在,虽然我们一直在谈论的这些电压配置至少在我看来对我们了解正在发生的事情很有帮助。微处理器要求您根据每个相位写入高电平或接地的时间长度来指定 PWM 周期。因此,为了将这些配置周期转换为发送到 H 桥的实际 PWM 信号,我们将使用以下分段函数。

这里有两件事值得注意。如果您希望矢量严格指向转子 Q 轴方向,您可以根据霍尔扇区来考虑这些方程,其中每组方程对应于不同的扇区。其次,非常重要的是,其他资源可能会以与我不同的方式定义他们称为零的角度,或者他们将哪个hall扇区称为零。这将导致他们的方程相对于我的方程发生相移。我的角度约定并不比其他人的更正确或更不正确,但重要的是,无论您选择哪种约定,都必须与其保持一致。

但是如果您的转子中有多个极对,则您将需要更高分辨率的角度测量,因为我们讨论的所有角度都是磁角,而不是机械角。

这是如何优化控制无刷 PMDC 电机的基础知识。

相关文章:

从零开始之了解电机及其控制(11)实现空间矢量调制

广泛地说,空间矢量调制只是将电压矢量以及磁场矢量在空间中调制到任意角度,通常同时最大限度地利用整个电压范围。 其他空间矢量调制模式确实存在,并且根据您最关心的内容,它们可能值得研究。 如何实际执行这种所谓的交替反向序列…...

如何将html转换成markdown

什么是Turndown “Turndown” 是一个用于将 HTML 转换为 Markdown 的 JavaScript 库。它通常用于将富文本内容从网页或其他 HTML 格式转换为纯文本 Markdown 格式,以便在不同平台上显示或存储。 如果在有node环境的情况下要使用 Turndown,首先需要将它…...

【VUE复习·3】@keyup.xxx 键盘事件触发函数(单按键 or 组合按键触发)

总览 1.keyup.xxx or keydown.xxx 单按键触发 2.组合按键触发 一、keyup.xxx or keydown.xxx 1.用法 在我们使用 keyup.enter 时&#xff0c;那么我们可以这样写&#xff1a; <div><input type"text" placeholder"按下回车键以确定..." keyu…...

IntelliJ IDEA学习总结(3)—— IntelliJ IDEA 常用快捷键(带动图演示)

一、构建/编译 Ctrl + F9:构建项目 该快捷键,等同于菜单【Build】—>【Build Project】 执行该命令后,IntelliJ IDEA 会编译项目中所有类,并将编译结果输出到out目录中。IntelliJ IDEA 支持增量构建,会在上次构建的基础上,仅编译修改的类。 Ctrl + Shift + F9:重新编…...

巨人互动|Facebook海外户Facebook的特点优势

Facebook作为全球最大的社交媒体平台之一&#xff0c;同时也是最受欢迎的社交网站之一&#xff0c;Facebook具有许多独特的特点和优势。本文小编将说一些关于Facebook的特点及优势。 1、全球化 Facebook拥有数十亿的全球用户&#xff0c;覆盖了几乎所有国家和地区。这使得人们…...

(vue3)create-vue 组合式API

优势&#xff1a; 更易维护&#xff1a;组合式api&#xff0c;更好的TS支持 之前是选项式api&#xff0c;现在是组合式&#xff0c;把同功能的api集合式管理 复用功能封装成一整个函数 更快的速度 更小的体积 更优的数据响应式&#xff1a;Proxy create-vue 新的脚手架工…...

【如何看待Unity收费】对标中小公司的待就业者的该如何做

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…...

c++迷宫小游戏

一、总结 一句话总结&#xff1a; 显示&#xff1a;根据map数组输出图像 走动&#xff1a;修改map数组的值&#xff0c;每走一步重新刷新一下图像就好 1、如果走函数用z()&#xff0c;出现输入s会向下走多步的情况&#xff0c;原因是什么&#xff1f; 向下走两层循环ij增加&a…...

需求堆积,如何排序产品优先极

面对堆积的产品需求&#xff0c;到底该如何排序优先极呢&#xff1f; 需求排期的目标 在谈具体的排期方法之前&#xff0c;有必要先探讨一下——合理的需求排期应该达到什么的目标呢&#xff1f;如果站在与项目相关的利益人员的角度来看&#xff0c;至少应该使以下四方面的收…...

计算机视觉 回头重新理解图像中的矩

一、人类的欲望 图像中的矩是一个十分古老的话题,这个东西的出现始于人类的欲望,想要找到一种自动且强大的图像分析方法。 比如我们要在图像中识别某一个物体,而这个物体在不同的成像条件下,表现出的高矮胖瘦方向位置颜色都不可能完全一致,这就为识别带来了巨大的困难,但…...

MapStruct应用实战及BeanUtils性能比较

目录 1、MapStruct介绍2、应用设置2.1 Maven依赖 3、功能实战3.1 常用注解3.2 基本映射3.2.1 定义映射器的Java接口3.2.2 测试验证 3.3 参数引用映射3.3.1 定义映射器的Java接口3.3.2 测试验证 3.4 多对象参数映射3.4.1 定义映射器的Java接口3.4.2 测试验证3.4.3 注意点 3.5 嵌…...

ISP技术概述

原本或许是为了对冲手机系统和APP设计无力感而诞生的拍照功能,现今却成为了众手机厂家除背部设计外为数不多可“卷”的地方,自拍、全景、夜景、小视频等旺盛的需求让这一技术的江湖地位迅速变化。对圈内人士而言,这一波变化带来的后摄、双摄、多摄、暗光、防抖、广角、长焦、…...

CSDN: ABTest流量分层分桶机制

在互联网行业&#xff0c;无论是构建搜索推荐系统&#xff0c;还是智能营销等场景&#xff0c;都是围绕用户进行不同的实验&#xff0c;从各项指标上观察用户对不同交互、流程、策略、算法等反馈&#xff0c;进而对产品进行迭代改进。 本文的goal&#xff1a;在进行了模型的线下…...

【小余送书第一期】《数据要素安全流通》参与活动,即有机会中奖哦!!

目录 1、背景介绍 2、本书编撰背景 3、本书亮点 4、本书主要内容 5、活动须知 1、背景介绍 随着大数据、云计算、人工智能等新兴技术的迅猛发展&#xff0c;数据已经成为我国经济社会发展的五大生产要素之一&#xff0c;《网络安全法》《个人信息保护法》《数据安全法》的…...

蓝牙核心规范(V5.4)10.7-BLE 入门笔记之L2CAP

1.概述 ATT属性用于两个设备,一个扮演客户端的角色,另一个扮演服务器的角色。服务器公开一系列称为属性的复合数据项。这些属性由服务器按索引列表组织在称为属性表的列表中。 每个属性包含一个句柄、一个通用唯一标识符(UUID)、一个值和一组权限。 句柄是一个唯一的索引…...

VUE之正则表达式全集整理

一、正则表达式的基本语法 var expression /pattern(模式)/flags(标识符); 二、如何创建正则表达式 1.字面量创建 代码如下&#xff1a; //匹配字符串中所有“at”的实例 var e /at/g; //匹配第一个“bat”或“cat”,不区分大小写 var e /[bc]at/i; 2.RegExp构造函数创…...

Python 中的字符串基础与应用

在Python中&#xff0c;字符串可以用单引号或双引号括起来。‘hello’ 与 “hello” 是相同的。您可以使用print()函数显示字符串文字&#xff1a; 示例&#xff1a; print("Hello") print(Hello)将字符串分配给变量是通过变量名后跟等号和字符串完成的&#xff1a…...

C++:如何实现数组元素逆置?多种方法

方法1&#xff1a;使用额外的数组 这是一种比较简单的方法&#xff0c;它创建一个额外的数组来存储逆置后的元素&#xff0c;然后将其复制回原始数组。 #include <iostream>void reverseArray(int arr[], int size) {int reversed[size];for (int i 0; i < size; i)…...

php框架thinkPHP6的安装教程

1&#xff0c;composer官网下载最新版本 composerhttps://getcomposer.org/download/ 2&#xff0c;双击下载后的运行文件&#xff0c;一直点击next就行了 上面这个路径根据自己安装的php版本位置选择&#xff08;没有的可以下载一个phpstudy&#xff09;&#xff0c;最后需要…...

PTA程序辅助实验平台——2023年软件设计综合实践_3(分支与循环)

第一题&#xff1a;7-1 印第安男孩 - C/C 分支与循环 朵拉编程的时候也想顺便练习英语。她编程从键盘读入一个整数n&#xff0c;如果n值为0或者1&#xff0c;向屏幕输出“0 indian boy.”或“1 indian boy.”&#xff1b;如果n大于1&#xff0c;比如9&#xff0c;则输出“9 in…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...

怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)

+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...

Canal环境搭建并实现和ES数据同步

作者&#xff1a;田超凡 日期&#xff1a;2025年6月7日 Canal安装&#xff0c;启动端口11111、8082&#xff1a; 安装canal-deployer服务端&#xff1a; https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...

工厂方法模式和抽象工厂方法模式的battle

1.案例直接上手 在这个案例里面&#xff0c;我们会实现这个普通的工厂方法&#xff0c;并且对比这个普通工厂方法和我们直接创建对象的差别在哪里&#xff0c;为什么需要一个工厂&#xff1a; 下面的这个是我们的这个案例里面涉及到的接口和对应的实现类&#xff1a; 两个发…...