Lazy loaded image
🦾电机控制技术
电机控制原理(六步换相和SVPWM)
Words 8976Read Time 23 min
2024-12-8
2024-12-16
type
date
slug
category
icon
password
 

一、120°方波控制原理

方波驱动技术控制算法简单,硬件成本低。相关介绍可以参考
🗒️
应用笔记-无刷直流电机120°方波换相 -TOSHIBA
做的应用笔记,其对基本原理,电压模型做了很好的总结,尤其对实际电机的换相电压波形分析的详细分析,有助于我们理解二极管续流周期,六个换相周期波形特点和产生原因。
下面再介绍一下驱动电路、PWM调制模式以及说明方波控制缺点。

1.1 逆变器驱动电路

MCU与逆变器驱动电路
MCU与逆变器驱动电路
逆变器驱动电路是用于控制三相电机(如BLDC或PMSM电机)的常见电路结构。它由六个功率开关组成,通常是MOSFET或IGBT。以下是其组成和每个部分的作用:
  1. 功率开关:控制绕组中电流流向,实现电机正反转和调速
      • 上桥臂(High-side):每相有一个高侧开关,共三个。
      • 下桥臂(Low-side):每相有一个低侧开关,共三个。
  1. 驱动电路:将微控制器输出的低功率信号转换为可以驱动功率开关的高功率信号。
      • 用于控制功率开关的开关状态,确保它们按正确的时序导通和关断。
  1. 栅极驱动器:确保功率开关快速导通和关断,减少开关损耗。
      • 提供所需的电压和电流来驱动MOSFET或IGBT的栅极。
  1. 电流检测:实时监控电流,提供反馈信号用于电流环控制,保护电路避免过流损坏。
      • 用于监测电机电流,保护电路并实现闭环控制。
  1. 保护电路
      • 包括过流、过压、过温保护等,确保电路安全运行。
  1. 微控制器/信号处理单元:负责整个电机控制算法的执行,包括速度控制、转矩控制和换向逻辑。
      • 生成PWM信号,控制驱动电路的工作。

1.2 Hall电机配套真值表

每个霍尔的状态会每隔180°改变一次,三相霍尔将整个平面划分为6个扇区,每隔60°电角度,三个霍尔的组合值会改变一次。
下表是逆时针旋转的霍尔状态与各相导通顺序,顺时针旋转时,霍尔顺序相反,5->1->3->2->6->4。
霍尔状态与换相顺序
霍尔状态与换相顺序
根据霍尔的状态,不断的改变三相通电顺序,目的是形成旋转的磁场,电机就会转动起来。
霍尔状态与反电动势和相电流的关系
霍尔状态与反电动势和相电流的关系

1.3 PWM 控制策略(调制模式)

直流电机的转速和电压是成正比的,如果想改变转速只需要改变导通的 MOS 管的 PWM 占空比即可,相当于调压。PWM 的频率一般选择在20K左右,一是考虑到MOS开关管的承受能力,另外一个是尽量避免高次谐波的干扰。
H_PWM/L_ON,即下桥臂打开,只调节上桥臂
H_PWM/L_ON,即下桥臂打开,只调节上桥臂
2. H_ON/L_PWM即上桥臂一直打开,只调节下桥臂
2. H_ON/L_PWM即上桥臂一直打开,只调节下桥臂
第三种,H_PWM/L_PWM 即互补输出,Q3 和 Q2 为一组互补输出,Q5 与 Q4 为一组互补输出,Q1 和 Q0关断;互补的好处是上管关断的瞬间电流可以由下管续流而不经过 MOS 管的内部续流二极管,以免在大电流时造成MOS管的烧坏

1.4 方波控制缺点

  1. 方波驱动时,电机相电流只有通和断两种状态,即使占空比很小,平均电流很小的状态下,线圈电流的脉动峰值电流也会很大,由于发热量与电流的平方成正比,因此方波驱动时系统发热量大,损耗多
  1. 方波控制时,磁场不是连续的,是跳跃的,因此会造成转矩的脉动,在对转矩要求较高的场合,方波驱动是不合适的,它会造成系统的不稳定,控制精度会相应的降低。
  1. 由于转矩的脉动会造成系统的震动和噪音,震动会干扰系统本身的稳定性和板载芯片或传感器性能下降。

二、矢量控制技术

磁场和力矩大小和方向(合成磁动势)等效。
目的:Field oriented control (FOC) 算法的主要任务是基于用户定义的电压 uq,通过连续读取电机转子位置 a,计算出适当的相电压 ua, ub 和 uc
notion image

2.1 六步换相和 FOC MOS 操作策略异同

  • 驱动硬件三相逆变桥:对于直流无刷电机,驱动电路由三个半桥控制电路组成,通过控制三个半桥的上下桥导通和关断,实现逆变控制,将直流电变成交流电,简单点理解就是可以实现流过电机三相线圈的电流的流向控制。
  • FOC最底层的原理和六步换相一致,也是通过控制线圈通电,从而控制合成的磁场方向吸引着转子磁极;
    • 六步换相技术所产生的磁场固定为六个方向,
    • FOC可以理解为将六步换相产生的任意几个方向的磁场进行组合,合成一个新的磁场,使得合成的新的磁场始终与转子磁场保持90°。(力矩恒定和效率最高)
  • 控制信号区别:
    • FOC采用正弦波驱动,六步换相采用方波驱动
  • 控制方式区别:
    • FOC控制中三个半桥的MOS采用三三导通,而六步换相采用两两导通
无论是120°换相技术还是FOC控制技术,驱动电路基本一致,都是通过三相逆变桥方式控制定子上产生磁场,使其有规律变化。120°换相技术只是针对六个换相点,更改磁场方向,而不是在空间上产生连续变化的磁场。这就会造成转矩波动。为此我们有必要介绍向量控制技术。

2.2 矢量控制技术概述

向量控制技术诞生于对传统三相交流感应电机控制技术的改进,传统三相交流感应电机在三相上通入正弦交流电,电流在空间上(相差120°)和时间上(交流特性)均在变化,是一个多变量的系统。定子电流调节耦合在一起,无法单独调节励磁和转矩。由于滑差(转子的旋转速度通常低于同步速度)的存在,转子电流滞后于定子磁通。这种滞后导致磁势与磁通之间存在相位差,并非是垂直关系。
为了解决这些问题,解耦复杂的电流关系,我们控制目标是将励磁和转矩作为独立控制输入,转化为三相交流输出,用来控制电机,保证定子磁场和转子磁场夹角始终保持90°,提高控制效率。在线性代数中,这种转化就是在不同坐标系上表示磁场向量,即坐标系的变化。
这项工作由德国达姆施塔特工业大学(Darmstadt)的 K.Hasse 和西门子公司的 F.Blaschke 在上世纪七十年代完成。他们创造性地提出了一种矢量控制方式,将三相交流信号经过一系列坐标变换,最终变为直流可控的两相正交电流。解耦复杂的电流关系,使得交流电机变得简单可控。
接下来介绍一下是如何做到的?
  1. 首先,三相电机通入三路对称正弦电压,在空间上形成旋转磁场。同样的磁场通过两相正交绕组也可以产生,这样将三相电机模型转化为两相电机模型。从坐标系角度,即完成三相静止坐标系到两相静止坐标系的转换。
    1. notion image
  1. 接着,假定存在这样的旋转正交坐标系,其旋转速度和磁场旋转速度一致,该坐标上合成磁动势和三相静止坐标系到两相静止坐标系完全等效,这样就完成了两相静止坐标系到两相旋转坐标系转换。
    1. notion image
经过三相静止坐标系(A、B、C) → 两相静止坐标系()→ 两相运动坐标系(d、q)的转换,三相电机的多变量、强耦合、非线性的系统控制转化为两个相互独立的直流分量控制。
  • 第一步将系统转化为独立交流分量,但还是非线性系统。
  • 第二步将系统转化独立的直流分量,线性系统。
如上的两步变换可通过 clarke 变换和 park 变换实现。在下面章节会有详细说明。

2.3 合成矢量推导

我们先来看一下电机控制的合成矢量效果如何,这也是我们的控制目标和最终效果。
下面推导三相上通入正弦交流电产生的磁场合成矢量,三相电流在空间上互差 120°。
式中: 为幅值, 为角速度。
三相合成矢量可以表示为
即:
根据欧拉公式 可以推出:
根据正弦定理,带入三角函数值可得:
进一步分解合并最终可得:
即:
从推导结果可看出,空间上相差120° 的三相对称正弦电流的合成矢量是一个角速度为 ,且绕中心点旋转的矢量,因此它能形成一个旋转的磁场。其幅值是单相幅值的倍。
合成矢量图,图中黑色向量为合成向量,幅值圆相较于单相幅值圆扩大1.5倍。
合成矢量图,图中黑色向量为合成向量,幅值圆相较于单相幅值圆扩大1.5倍。

2.4 clark变换

卡拉克变换:将三相系统(在 abc 坐标系中)的时域分量转换为正交静止坐标系 (α、β) 中的两个分量。
经克拉克变换 (αβ) 后得到的信号。Implement abc to αβ0 transform - Simulink - MathWorks 中国
将三相对称电流矢量 分别在 轴投影,得到它们在两相坐标系下的分量:
将上式写成矩阵形式:
前面合成向量变换后为,由于 轴正交,则初始状态若不添加比例系数 ,为了变换前后等幅值,变换后 ,则需添加
代入 k, 并根据基尔霍夫定律,得最终结果:
如果三相到两相为等功率变换,假设变换前的功率为,变换后的功率为那么有:
,可推导出
 
Clark变换
反 Clark变换

2.5 park变换

帕克变换将 αβ 坐标系中的两个分量转换为一个正交旋转坐标系 (d、q)
经帕克变换 (dq) 后得到的信号。 Implement abc to dq0 transform - Simulink - MathWorks 中国
Park变换
反park变换
下图形象的描述了clarke变换与park变换的电流波形:
notion image

2.6 矢量控制架构

notion image
通过 clarke 变换和 park 变换实现通过 d,q 两轴电流分别控制转矩和励磁,达到了问题的解耦。控制架构则是说明如何达到控制电机目标,即如何实现转矩和励磁和速度的控制。
notion image
  1. 内部电流环 + 外部速度环
    1. 通过位置传感器或者无感观测器算法获得转子位置信息,并计算反馈速度,与给定速度进行比较,送入速度PI控制器,并输出转矩电流;
    2. 转矩电流继续进入电流环转矩PI控制器,最终输出d、q轴电压,这个电压无法驱动电机,需经过park逆变换和clarke逆变换,最终变换为a、b、c三相静止坐标下的电压。
  1. 常见矢量控制方式
    1. 方式1:d轴电流为0,控制q轴电流。因为d轴电流对转矩没有贡献。这种方式可以最大化利用电流,在相同转矩下,电流可以做到最小。
    2. 方式2:最大转矩控制
    3. 方式3:弱磁控制
    4. PMSM 的弱磁控制(使用 MTPA) - MATLAB & Simulink Example - MathWorks 中国
    5. 电控入门之六(电机FOC,MTPA最大转矩电流比控制) - 知乎 (zhihu.com)
  1. 方式 1 矢量控制整体流程
    1. 采集转换三相电流值,经 clarke 与 park 变换,最终得到 d、q轴电流(实际控制输出);
    2. 采集(位置传感器)/估算(无感观测器)转子电气角度,计算电气角速度;
    3. 比较目标速度与实际反馈速度,送入速度PI控制器,输出电流环所需
    4. 比较速度环目标 和反馈的,送入电流PI控制器,输出所需电压值
    5. 将 d、q 轴的电压通过 clarke 与 park 逆变换以及 SVPWM,最终形成 PWM占空比,控制逆变器输出。
实际使用中可能还会涉及到位置的控制,因此有时候还需要加入位置环,形成位置-速度-电流三变换控制结构。

2.7 坐标反变换

矢量控制最后一个小节需要将电流环输出 经过坐标反变换形成三相电机U、V、W三相所需要的电压值。
接下来是通过两相静止坐标系下的获得能够直接驱动三相电机的a、b、c三相静止坐标系下的电压,这一步骤通过SVPWM实现。

2.8 SVPWM空间矢量脉宽调制

通过坐标系变化,将复杂的矢量控制解耦为两个直流分量,控制起来简单有效,且必须保证矢量变换前后,产生的旋转磁场等效。
经过park逆变换,问题转为如何使用控制功率管开关,实现旋转等效磁场。SVPWM的全称是Space Vector Pulse Width Modulation即空间矢量脉宽调制。它通过三相逆变器的六个MOS管输出随时间改变的PWM调制波,模拟三相对称正弦电流所形成的圆形矢量,产生接近圆形的磁链轨迹。
SVPWM利用平均值等效原理,对基础矢量加以组合,产生期望电压矢量。在电压矢量转动一圈过程中,不断调整,形成一个旋转的近似原型的磁场。
下图为典型的三相逆变器驱动电路:
notion image
  • Q1-Q6 功率开关管同一时刻,同一桥臂上下两个功率管不能同时导通,否则会电源短路,烧坏管子。一般使用互补PWM种加入死区方法避免。
  • 上桥臂打开,对应那一项由正向电流流过,反之负向电流。比如Q1打开,Q2截止,电流会从DC+通过Q1流入电机的A相。
  • 对开关函数定义如下:
    • 于是三个桥臂的状态可以为 种,也就是ABC三相共有8种状态组合。
对于(A相上桥臂,B和C相下桥臂导通) 此时的等效电路为:
notion image
我们用 表示各相的相电压,相电压表示各项相对于电机中性点N的电压:
由上面的等效电路,可以推出:
将上面计算的值,带入三相对称正弦电压矢量合成的公式:
代入,并根据欧拉公式展开整理后得:
同理可以推出其他几个状态下的相电压,并根据三相合成的公式, 可以推出合成矢量的大小和方向。
notion image
  • 合成矢量可以表示成
  • 六个基础矢量的模长等值,且为
将上面八个矢量放到矢量分布图种,红色为A、B、C三相空间静止坐标系。表示只有A相导通,所以它与A轴重合; 只有B相导通,它与B轴重合。 黑色中间向量,表示相邻的合成向量。是零矢量,他们不产生磁场,对电机不起作用。
notion image
根据伏秒平衡原理,在一个开关周期内某个矢量的作用效果等同于两个相邻基础矢量分别作用不同时间的效果。
假定某个非零矢量位于上面矢量图中扇区 中, 是基础是两 的作用时间, 是基础矢量 的作用时间,T为一个开关周期:
推广到全空间矢量计算, 表示零矢量, 表示零矢量的作用时间, 分别是某一个扇区中的两个相邻矢量,分别是它们的作用时间, 是合成矢量 的作用时间,可以推出:
从上式可以看出,只要控制相邻矢量的作用时间,也就是控制相应桥臂的导通时间,理论上可以合成平面圆内任意的非零电压矢量。因此我们可以利用这六个基础矢量与零矢量合成需要的矢量。

2.9 矢量所处扇区的判断

通过以上分析,平面圆内任意非零矢量都可以利用与它相邻的两个基础矢量合成而来,接下来问题是如何确定希望合成的非零矢量所处的扇区。
  • 扇区可以确定相邻的两个基础矢量
矢量合成分析
矢量合成分析
 
定义U1、U2、U3
扇区与变量的充分必要条件
扇区与变量的充分必要条件
定义A、B、C
定义N
扇区和N值对应关系
扇区和N值对应关系
通过简单的加减逻辑运算便可以判断出希望合成矢量所在的扇区。

2.10 矢量作用时间

确定矢量所处扇区,接下来需要确定与它相邻的两个基础矢量作用时间的长短。

2.10.1 旋转电压矢量步长

式中:
为 载波PWM频率
为正弦电压矢量频率
为当前频率比下,每一份角度
欲合成位于扇区 中的某个非零矢量 是基础矢量的作用时间,是基础矢量的作用时间, 为同一个开关周期。

2.10.2 总线电压利用率推导

notion image
由正弦定理知:
基础矢量模长为
代入上式,推出
两个零矢量作用时间为:
定义 为SVPWM 的调制系数,由于 ,因此:
化简后得出:
时, 输出矢量的最大赋值为,可输出最大相电压为 ,可输出最大线电压为:
 
相比于传统的 SPWM 线电压最大为 来看,SVPWM 的直流母线利用率更高,高出 15.47%:

2.10.3 矢量合成时间推导

知道合成矢量的空间角度,那么相邻基础矢量的时间也就能确定下来。
由于常见的MCU不具备浮点运算能力,计算三角函数常常使用查表的方式实现。能不能不用三角函数,只通过简单的加减逻辑运算来确定基础矢量的作用时间。
以第一扇区为例,将合成矢量投影到
基础矢量 的作用时间为 ,全部分量在 轴;基础矢量 的作用时间为 ,在 轴的分量为,在 轴的分量为 ,因此上述可以写成:
可推出两个基础矢量与零矢量的作用时间:
根据上一小节 定义(上一小节根据这三个量判断所处扇区)。同时定义 ,因此基础矢量作用时间又可以写成:
从以上分析可知,当两个零矢量的作用时间为0时,非零矢量的作用时间最长,此时合成矢量的幅值最大,从矢量圆中可以看出,合成矢量的最大幅值不会超过六个基础矢量所决定的圆形区域。SVPWM 能够输出的最大不失真电压矢量是正六边形的内切圆。由图中可以推出,内切圆的半径为:
这个值就是逆变器输出的最大不失真相电压的幅值,和前面的计算一致。 当合成矢量落在正六边形与正六边形的外切圆形之间的区域时,将会发生过调制,此时必须采取过调制处理,可以采取等比例缩小的方式。设先发生的矢量为Tx后发生的矢量为Ty;当Tx+Ty>T时,矢量落在六边形与其外切圆之间,发生过调制,波形出现失真,假设不失真时的作用时间分别为Tx'、Ty',
那么:
可以推出缩小后的矢量作用时间:

2.11 七段式 PWM方调制式分析

至此,已经确定矢量所需的相邻矢量的作用时间后,接下来问题是,怎么和MCU的PWM结合起来。
为了减少谐波,一般采取一下原则进行脉宽调制的处理:
  1. 每次矢量变化只改变一个桥臂上的一组MOS管;
  1. 合理利用零矢量,尽可能减少开关管的切换次数,减少开关管通断过程中所造成的损耗;
  1. 尽可能减少系统谐波分量,特别是低频信号的谐波分量;
  1. 矢量合成的算法易于实现,减少CPU处理时间。
鉴于以上原则,目前有两种方式普遍被大家采用,一种是对称式调制模式也称为七段式调制,一种是低开关损耗模式也称为五段式调制。七段式调制方式开关次数比五段式多一些,但是波形对称,谐波 分量小,目前应用较多
七段式调制,顾名思义,它的PWM三相波形呈对称发布,且一个周期由七段组成,共需要六次开关切换,每次开关状态转换,只改变其中一相的开关状态,零矢量放在两边,且左右对称,中间是零矢量可以有效的降低PWM的谐波分量。
为了使每次切换只切换一组开关管,这样才能最低限度减少开关管切换次数,降低系统谐波分量。
比如,在扇区I中,由两个基础矢量 组成,根据以上开关切换原则,配合零矢量,且每次只改变一组开关,那么扇区I的开关切换顺序为:
且只有这一种切换顺序,中间的零矢量有两个作用时间,且不需切换,一共是七段波形,六次切换。
notion image
 
确定了PWM脉宽调制方式之后,接下来我们开始计算一下对应的 PWM的比较器的值,这是SVPWM最后一步也是最关键的一步。
由七段式PWM调制方式看出,对称式调试,两个基础矢量和两个零矢量都是对称作用,当采用PWM增计数模式时,也就是正三角方式,从扇区I中可以推出,A比较器率先达到给定的值,B比较器紧随其后,最后是C比较器,三路比较器都是对称发波:
notion image
由此可推出:
表示先作用电压矢量的开始时刻,因为一个周期由两个零矢量,且左右对称,等分成 4 份,因此上式除以 4;表示次作用电压矢量的开始时刻; 表示零矢量开始作用的时刻。分别是先后作用的两个基础矢量的作用时间。表示三路的占空比。该模式下同样也代表了各自的 CCRx 值。
其他扇区时,对应比较值如下表所示:
notion image

三、FOC 算法实现

DengFOC 算法实现
foc学习笔记1——准备工作_六步换相法 原理学习可参考系列文章
  • 相电压计算算法(调制): setPhaseVoltage()
    • 源代码
  • 电机和传感器校准: initFOC()
    • 电气零角度和编码器零角度对齐
      • notion image
    • 校准流程
      • notion image
      源代码
  • 实时执行: loopFOC()
    • 唯一要做的就是运行实时FOC例程。代码需要获取电机位置(形式传感器),从中计算电气角度(electricAngle()),并使用setPhaseVoltage()函数设置电机相位的所需电压(motor.voltage_q)。
    • 源代码
 
 

四、小节引用

 
 
 
 
 
 
 
 
 
上一篇
电机参数说明
下一篇
相电流检测与重构

Comments
Loading...