伺服电机控制

前言:感谢各位大佬愿意将知识开源并作出详细的说明。我只是依据自己的学习轨迹稍作整理,加以自己的理解并记录于此。本文几乎所有的参考内容都附上了原文链接,本文的文字内容有一些是我的,有一些是从链接中粘贴出来的,有一些是粘贴出来后加以精简的。如有冒犯,请私信我删除,非常抱歉。文中如有错误,劳烦大佬评论区指正,非常感谢。

文章目录

  • 逆变电路
    • 硬件与电路
    • 开关引导电流
    • 谐波
      • 逆变器的死区效应
        • 死区的产生
        • 死区带来的影响
        • 减小/补偿死区时间的方法
        • 考虑死区的电流采样
    • 三相逆变电路
      • 测电压
        • 端电压:
        • 相电压:
        • 线电压:
    • 电压与电流的相位
      • 电感的基础原理
      • 正弦信号下的电感的电压电流相位
      • 三相电机的线电压相电压的相位
        • 星形连接
  • 电机的其他知识点
    • 霍尔传感器位置检测
  • 作者:mymymind 专场
    • 第一部分 其他电机特点
    • 第二部分 电调与霍尔位置检测
    • 第三部分
  • 永磁同步电机 PMSM
    • 从电路细节控制伺服电机
    • SPWM
        • 为什么3个相的正弦波就能让伺服电机顺滑转动
        • 实际观测
    • SVPWM
      • 承上启下
      • 大概讲讲
      • 详细讲解
        • 一个相,一个S,两个状态;3个相,2 * 2 * 2 ,8个状态
        • 如何用这8个基本电压矢量合成?
          • 周期
          • 角度
          • 幅值
          • 周期内的矢量分配顺序
        • SVPWM算法的实施
          • 扇区判定
          • 扇区内相邻两个非零向量和零向量的作用时间
          • 确定切换时间点
          • 切换时间点和一个三角波的比较
    • SPWM进化版
  • DSP
    • 从控制转速看电机控制
    • FOC控制
      • 第1步,对电机的三个相电流进行采样+clark变换
      • 第2步,做park变换,把α-β换到d-q
      • 第3步,设定合适的预期值,预期值与反馈值求差补偿控制
      • 第4步,park反变换,将目标矢量换算成SVPWM的输入的矢量
    • 有感/无感FOC
      • 无感FOC电机的启动和观测
    • 弱磁调速
    • 另外
    • 控制板微操
  • 代码移植
  • 自动控制原理在三相电机上的应用
      • MATLAB仿真
      • 电机应用上的控制目标
  • 车用伺服电机

matlab 之永磁同步电机仿真

逆变电路

把直流电变为交流电称为逆变

硬件与电路

逆变电路中的各种基本原理与线路图一览
逆变电路中IGBT为什么要反并联二极管
IGBT(绝缘栅双极型晶体管),是由 BJT(双极结型晶体三极管) 和 MOS(绝缘栅型场效应管) 组成的复合全控型-电压驱动式-功率半导体器件,其具有自关断的特征。简单讲,是一个非通即断的开关,IGBT没有放大电压的功能,导通时可以看做导线,断开时当做开路。IGBT融合了BJT和MOSFET的两种器件的优点,如驱动功率小和饱和压降低等。
下图是电流控制型的晶闸管,已被淘汰。【但我看到的教程里有人用这个图替代IGBT】
伺服电机控制_第1张图片
下图是IGBT , 电压控制型【哦,好像我不应该把边上的二极管排除掉。。下图的图标和它旁边的二极管合在一起才是IGBT】
伺服电机控制_第2张图片
这个也是IGBT的符号。
在这里插入图片描述

电机控制器三相逆变桥驱动电源、驱动电路结构如何设计
开关管IGBT和二极管的损耗和驱动电源
电赛必备之逆变电路:单相逆变,三相逆变 【是电赛老师的讲解,他还说网上有人故意传播错误知识】【太长了,暂时没看】

一文看懂逆变器的17种主要类型
【不知道电机用的是哪个。。。。】
电压源逆变器(VSI)
电压源逆变器的输入有一个刚性直流电压源,其阻抗为零。实际上,直流电压源的阻抗可以忽略不计。假设VSI由理想电压源(极低阻抗源)供电,则交流输出电压完全由逆变器中开关器件的状态和应用的直流电源决定。

电流源逆变器(CSI)
刚性电流从直流电源提供给CSI,其中直流电源具有高阻抗。通常,使用大电感器或闭环控制电流来提供刚性电流。由此产生的电流波是刚性的,不受负载的影响交流输出电流完全由逆变器中的开关器件和直流施加电源的状态决定。

开关引导电流

逆变电路 【知乎】有讲解
Q1、Q3和Q2、Q4交替导通,使得负载上获得交流电能。当负载不是纯电阻【电机是感性负载】时,负载电压和负载电流不是同相位,这时开关管的寄生二极管D1-D4则起着电流续流的作用。【电感会产生反电动势,反着灌电流】
【一次打开两个以上的晶闸管会引起短路,产生过多的热量并立即烧毁电路。】
伺服电机控制_第3张图片

伺服电机控制_第4张图片
伺服电机控制_第5张图片

伺服电机控制_第6张图片
伺服电机控制_第7张图片
在这里插入图片描述

手撕系列(1):PWM控制的基本原理

使用FFT分析逆变电路数据【MATLAB仿真的操作】
【matlab仿真】逆变电路(PWM控制)

谐波

所有非线性负荷,都能产生谐波电流。【因为电感/电容会聚集电荷,聚集起来的电荷又会产生新的受力反应 吧?】变频器工作时会产生大量的谐波电流,谐波电流在电网阻抗上产生压降,会使电压波形也变成非正弦。
老司机为你科普什么是谐波?电力系统谐波怎么产生的?
电力系统对谐波的定义:对周期性非正弦电量(电压或电流)进行傅立叶级数分解,除了得到与电网基波频率相同的分量,还得到一系列大于电网基波频率的分量,这部分电量称为谐波。

//另外,当两个频率相同、相位相同的正弦波叠加时,叠加波的幅度达到最大值,这就是共振现象,在电路里称为谐振。【谐振是谐波振荡,不要和谐波搞混】
谐波是具有不同幅度的基频奇数倍的正弦波,例如基波频率为50Hz,二次谐波为100Hz,三次谐波则为150Hz。
伺服电机控制_第8张图片

上图为三相整流回路,整流后的电流波形为阶梯方波,右图是按傅里叶级数展开后的频谱,可以看出五次和七次谐波比例很高。
为什么电机感应电动势中没有偶次谐波?

逆变器的死区效应导致相电流波形中有严重的5,7次谐波。
电网谐波主要由发电设备(电源端)、输配电设备以及电力系统非线性负载等三个方面引起的。

永磁同步电机-谐波抑制
干货 | 永磁电机PWM谐波噪音的原理和优化

逆变器的死区效应

死区的产生

任何固态的功率开关管都存在着一定的导通和关断时间,为确保同一桥臂上下开关管不致发生直通故障【短路】,通常采用将理想的SPWM驱动信号上升沿(或下降沿)延迟一段时间Td(称为死区时间)。死区是为保证开关器件安全、可靠运行而采取的措施。
这意味着其中一个IGBT要首先关断,然后在死区时间结束后再开通另外一个IGBT,这样,就能够避免由开通时间和关断时间不对称造成的直通现象。

IGBT的开关时间:
伺服电机控制_第9张图片
变频器“死区效应”及“死区补偿”Matlab仿真
如何正确计算并最大限度减小IGBT的死区时间?
在有效死区时间内,两个开关管都是关断的,且续流二极管D2流过输出电流。此时负的直流电压加在输出侧,此时电压极性符合设计的要求。考虑另一种情况,T1由关断到开通,而T2由开通到关断,此时,由于电流还是沿着同一个方向,这一电流在死区时间依然流过,因此输出电压还是为负值,此时电压极性不是设计希望得到的。结论可以总结如下:在有效死区时间里,输出电压由输出电流决定,而非控制信号

死区带来的影响

较低的总谐波畸变率(THD)与较快的动态响应是逆变电路所期望达到的指标,因此对死区带来的谐波影响应该引起更高的关注。【是单位阶跃响应吗】

理论上 SPWM逆变器输出电压中的谐波分量应该聚集在以开关频率及其倍频数为中心的一定范围,当此谐波被LC滤波器滤除后,输出电压失真度应相当小,且严格正比于调制比的正弦波形。 但在实际应用中,由于死区时间的设置和开关器件固有特性(通态电压降和开关时间)的影响,带来的低次谐波给输出电压造成了严重的波形畸变和基波电压损失,从而使系统的动、静态性能下降,增加了低次谐波抑制的难度,降低了高速开关器件的实际应用效果。【啧,一看就是论文里的,不讲人话】SPWM逆变器死区问题研究
受到逆变器死区时间和管压降的影响,逆变器输出电压无法形成完美的正弦电压 。假设三相绕组对称,且星形连接,则在实际系统中的三的整数倍的谐波分量不能导通, 则电压误差将使得电流谐波只有 5 次、7 次、11 次、 13 次等谐波分量,相对于电流基频,主要电流谐波的阶次为 5 次和 7 次。 矢量控制的基本思想是将三相定子电流经过 PARK 变换得到 dq 轴电流而等效成直流电机进行控制的,由于 PARK 变换是一个无损变换,因此定子的三相电流的谐波分量也将以高次谐波的形式反映在 dq 旋转坐标系下, 特别是 5 次、7 次电流谐波转换到 dq 坐标系下的电流 6 次谐波分量,导致转矩存在 6 次脉动。

减小/补偿死区时间的方法

加快IGBT门的动作:

  • 采用足够大的驱动器来给IGBT门极提供峰值灌拉电流。
  • 使用负电压来加速关断。
  • 最好选择快速传递信号的驱动器,比如使用基于无磁芯变压器技术的驱动器会好于使用传统光耦技术的驱动器。
  • 如果选用0V/15V的驱动电压,那么应该考虑使用独立的Rgon/Ggoff电阻。

死区效应及死区补偿【MATLAB和FFT】

平均电压前馈补偿法:
将 加入死区后的输出电压波形 与 理想电压波形的差值 (即死区脉冲电压) 平均化后,通过前馈的方式,补偿给调制波, 补偿电压的正负取决于逆变器输出电流方向。
但在工程设计中,由于采样误差、干扰、抖动等原因,电流在过零区域内,H桥逆变器输出电流在正负之间会出现跳变,且随着开关频率的增大,电流跳变越频繁,因此平均电压前馈补偿法 用在工程设计上存在缺陷,关键在于电流过零的时候容易出现误判

考虑死区的电流采样

伺服电机控制_第10张图片
在电机驱动中,除了选用合适的器件外,还需要对信号延迟进行软件补偿。文中提及的这些延迟源的精确延迟时间,我们可以通过示波器和计算得出,在软件上补偿这些延迟,才可得出正确的电流采样时刻。这样在正确的时刻采集到的数据才能作为FOC控制中重建电机三相电流的数据来源。
系统地理解SVPWM【而且有五段式的具体内容】

三相逆变电路

三相电压型方波逆变电路(最全图解)
UVW三条线路,不可能全入也不可能全出,所以要么两进一出,要么一进两出,也就是说每次必须打开3个开关。
U是进时,有三种情况;U是出时也有三种情况;
U进,如果V进,那W就只能出;W进也同理,但如果V和W都不进,那就他们俩都出。
U是出时,把上面的出和进对调就可以了。
伺服电机控制_第11张图片

理想三相电源的输出电压是对称的,其输出的三个电压是幅值(大小)相等、频率相同、初相角依次相差120°的正弦量,如下图1-3所示,在初相位上,A相超前B相120°,B相超前C相120°,C相又超前A相120°。所谓“超前”、“滞后”,我们可以这样看:图1-3中,时间沿着横轴走,随着时间的变化,A相电压最先达到最大值,随后是B相、C相,谁在前(左)谁超前,谁在后(右)谁滞后。
伺服电机控制_第12张图片

测电压

端电压,相电压,线电压别还傻傻分不清楚

伺服电机控制_第13张图片
三相电路中,
三相电源和三相负载中每一相的电压称为相电压,流经每一相的电流称为相电流;
各输电线的线端之间的电压,称为线电压,流经输电线路的电流称为线电流。
相电压和相电流都是基于电源和负载的,
而线电压和线电流是基于输电线路的。

端电压:

在三相逆变桥与三相永磁同步电机连接示意图中,三相线(U,V,W)相对于参考点o所测量得到的电压称为端电压。

伺服电机控制_第14张图片

相电压:

在三相逆变桥与三相永磁同步电机连接示意图中,三相线(U,V,W)相对于电机星型连接点N所测量得到的电压称为相电压。
但一般电机的星型连接点N都不会引出来,所以一般来说是无法直接测量得到相电压。如果想看相电压波形,可用远远大于电机相电阻的电阻模拟出星型连接点,测量三相线U,V,W相对于模拟星型连接点N1的电压,也可等效反映相电压。
伺服电机控制_第15张图片

线电压:

在三相逆变桥与三相永磁同步电机连接示意图中,三相线(U,V,W)取任意两根相线所测量得到的电压称为线电压【是相电压矢量相减】
伺服电机控制_第16张图片

电压与电流的相位

如何理解电容、电感产生的相位差

电感的基础原理

电感的原理:电感——电势能→电流→磁场能,&磁场能→电势能(若有负载,则→电流)。v(t)=L*di(t)/dt,即电感的感应电压与电流的变化率(对时间的导数)成正比,电流变化越快则感应电压越高。【像电容元件反抗电压的变化一样,电感元件反抗电流的变化。】
当电源电势加在电感线圈两端,电荷在电势差作用下流动——形成了电流,电流转变磁场,这称为“充磁”过程。
若被充磁电感线圈两端的电源电势差撤销,且电感线圈外接有负载,则磁场能在衰减的过程中转换为电能(如负载为电容,则为电场能;若负载为电阻,则为电流),这称为“去磁”过程。

正弦信号下的电感的电压电流相位

首先要提醒,相位的概念是针对正弦信号而言的,直流信号、非周期变化信号等都没有相位的概念
伺服电机控制_第17张图片
  因为电感上感应电压v(t)=Ldi(t)/dt,若i(t)=sin(ωt+θ),则v(t)=Lcos(ωt+θ)。 所以,电感上电流落后感应电压90°相位,或者说感应电压超前电流90°相位。

直观理解:设想一个电感与电阻串联充磁。根据楞次定律,感应电流方向与充磁电流相反,延缓了充磁电流的变化,使得充磁电流相位落后于感应电压。

三相电机的线电压相电压的相位

A相电压相量初相角为0°,B相滞后A相120°,所以在图中表示为顺时针旋转120°,同理C相电压相量超前A相电压120°,所以逆时针旋转120°。三个相电压对称,大小相等,例如220V的三个相电压,长度均为220。
伺服电机控制_第18张图片
线电压UAB 为例,前文说到,线电压UAB 是等于相电压UA减去UB 的【超前的 - 滞后的=比超前还超前】,在相量图上,两个相量的相减,就相当于它们的箭头相连,指向有减数指向被减数,如下图1-7所示的紫色线段,箭头指向UA ,因为UA 是被减数。
伺服电机控制_第19张图片
综上,在星形接法中,若三相电压对称,线电压大小为相电压的根号三倍,角度超前对应相电压30°,即当相电压UA =UB =UC =220V时,线电压UAB =220√3 V,且超前UA 角度30°
伺服电机控制_第20张图片

相、线电流、电压的概念及三相电路功率的计算

星形连接

伺服电机控制_第21张图片

电机的其他知识点

霍尔传感器位置检测

详细讲了霍尔元件原理
伺服电机控制_第22张图片
传感器定子上的霍尔器件的数目和配置方法取决于∶ 电动机本体的相数m、磁极对数p、电枢绕组、逻辑信号处理电路、换向电路、电动机运行时的磁状态角az和逆变电路中功率开关器件的导通角ai等。归结起来,传感器定子上的霍尔器件的数目和配置必须满足以下两个条件∶
1)霍尔器件在电动机的一个电周转内所产生的开关状态是不能重复的,每一个开关状态所占的电角度应相等;
2)霍尔器件在电动机的一个电周转内所产生的开关状态数应和该电动机的磁状态数相对应。

伺服电机控制_第23张图片
三个霍尔传感器60度电角度安装的霍尔波形
伺服电机控制_第24张图片

三个霍尔传感器120度电角度安装的霍尔波形

有程序
异步电机的

作者:mymymind 专场

直流无刷电机、永磁同步FOC

第一部分 其他电机特点

有刷电机:外圈是定子 永磁体。中心是线圈。靠电刷换向。但是由于长时间通大电流,有火花有损耗,寿命短。
异步电机:鼠笼式绕组,定子和转子都是线圈,定子通电产生磁场,定子磁场变化令转子产生感应电流,电机就转了。力矩和速度都不能太大。
永磁同步电机:外圈是定子线圈,中心是永磁体。直流电调制的电信号就没有频率上限,所以速度可以很快
伺服电机控制_第25张图片
永磁同步电机图

第二部分 电调与霍尔位置检测

对于直流电,电机只能通过MOS的方式控制与直流电两端点的接触,从而控制直流电在电机线圈中的流向,所以再次强调通过电调出来的电不是交流电,交流电是指电流方向随时间作周期性变化的电流,在一个周期内的平均电流为零,电调里面的电流方向不是周期性的改变(电调的理论基础是面积等效原理,最简单的,任意两个相邻极短时刻交流电的电压都不一致,但是电调基于面积等效原理的PWM总是存在短时间内电压不变现象),所以不是说拿个电池一会正接一会反接就是交流电了,你的电压总有段时间没变。

我理解的是电流方向一直不变,只是电流变大变小,那就是直流电;如果电池交替正接反接,电流在电路里有方向的变化,我是认为是交流电的。这一点,我以后找别人的文章看看再做记录。

有一种最简单的控制方式叫做6步换向。强调一下,6步换向是一种基于最简单无刷电机模型的驱动方式,可以认为是一种理论。这种理论描述了维持无刷旋转一个周期也就是一圈的步骤,并不是所有无刷电机都是换向6次旋转一周 。

在控制电机旋转时,像有刷电机一样,转子磁极和定子绕组对齐的时候要换向 ,所以需要三个霍尔传感器去感知转子磁极和定子绕组对齐了没有。每当转子磁极经过霍尔传感器附近时,他们便会发出一个高电平或低电平信号,表示N极或者S极正在经过该传感器,根据这三个霍尔传感器信号的组合,就能精确检测转子位置,决定换相的精确顺序。所以简单想想的话,霍尔元件应该是安装在定子上,然后检测转子磁场。但是,定子通电产生的感应磁场会干扰霍尔元件的判断,所以设计师给转子上加了一个磁铁。。。。。为什么要加一个磁铁??
伺服电机控制_第26张图片

第三部分

想要实现恒定扭矩驱动无刷电机就需要保证驱动电流合乎正弦波,当然除了FOC即磁场定向控制外还有DTC即直接转矩控制, 作者:mymymind https://www.bilibili.com/read/cv12279090 出处:bilibili

永磁同步电机 PMSM

一文了解BLDC与PMSM的区别

德国人怎么学电机【超级硬核,段位极高】
【不仅电机也是定子通电产生磁场控制转子转动,他和伺服最大的差别还是步进电机属于开环控制,而伺服是闭环控制】【姑且了解到这个程度】
超详细!永磁同步电机,看完你肯定会懂的!

永磁同步电动机(PMSM)以 永磁体提供励磁(励磁:电机工作所依靠的磁场),无电刷,不需要励磁电流,提高电机的效率和功率密度!
定子绕组,围绕着 定子铁芯进行环绕,通过控制定子绕组的
输入电流的频率
,可以控制磁场旋转频率,进而控制转速。
  永磁同步电机工作方式分为两种:一种是 通过 变频调速器控制电机达到同步,一种是通过异步起动方式来达到同步。

伺服电机控制_第27张图片
一般的三相两极永磁同步电机的物理模型可以简化如图1-1,可以看出PMSM的转子是永磁体,三相定子对称分布,在空间上互差120°,且采用的是Y型接法。这也就构成了PMSM的三相静止坐标系ABC。PMSM的工作原理其实很简单:在定子中产生一个大小恒定的旋转磁场带动转子连续旋转。

为了让永磁同步电机朝一个方向匀速旋转,电机的定子需要产生一个匀速旋转的磁场,去牵引电机的转子。为了产生旋转磁场,要求电机UVW三相(空间相差120度)需要加载幅值相等,且在时间上相差120度相位的正弦电流。而为了产生这样的电流波形,需要在UVW三相上加载幅值相等,时间上相差120度相位的电压波形。调节正弦电压的幅值和频率,就能调节电机的扭矩和转速。如何产生这样的电压波形呢?

给定三相正弦电压调制波 – SPWM/SVPWM – 近似的三相正弦电压波形

因此,可以看出SPWM/SVPWM只是一个工具,根据给定的参考电压,控制加在电机的三相绕组上的电压。而如何控制6个IGBT/MOSFET的通断,就是SPWM/SVPWM具体要做的工作。
一文了解BLDC与PMSM的区别

电机控制学习笔记——PMSM数学模型
参考电压的值是我们来输入的,但我们总不能以三轴坐标系来计算吧。
通过Clarke变换,将电机方程从三相静止a − b − c坐标系转换到两相静止α − β 坐标系。
为消除方程中的时变参数,需要通过Park变换,将电机方程从两相静止α − β 坐标系转换到两相旋转d − q坐标系
之所以我们费尽心思在这搞什么矢量控制,坐标变换,把好好的三相变成旋转的两相X,Y坐标系里面去,是因为变过去了以后,你会发现 Ia, Ib 的幅值固定了,变量被分离到了旋转角θ里面去了。电流的期望值固定了,就可以用PID来控制啦!!! 对,折腾了这么久,我们就是想用PID,这就是电机控制的核心,现代控制虽然好,工业界只爱PID :)

从电路细节控制伺服电机

电机控制要点解疑:SPWM,SVPWM和矢量控制【这篇文章可信度下降】

三大电机控制方案之DSP篇:TMS320F28335
  基于DSP的电机专用集成电路由于在计算速度、容量存储等方面比单片机具有更优的性能,已逐渐代替单片机运用于电机控制系统中。高性能的速度控制都离不开电流控制,因此完全可以把它们集成到一个芯片中处理,这样既可以实现速度伺服控制,又可以单独进行电流控制,还可以和DSP共同构成位置伺服系统。
伺服电机控制_第28张图片
三相SPWM波在TMS320F28335中的实现
  载波相移正弦脉宽调制(SPWM)技术是一种适用于大功率电力开关变换装置的高性能开关调制策略,在有源电力滤波器中有良好的应用前景。本文介绍了如何利用高性能数字信号处理器TMS320F28335的片内外设事件管理器(EV)模块产生三相SPWM波,给出了程序流程图及关键程序源码。该方法采用不对称规则采样算法,参数计算主要采用查表法,计算量小,实时性高。在工程实践中表明,该方法既能满足控制精度要求,又能满足实时性要求,可以很好地控制逆变电源的输出。

伺服电机控制_第29张图片

免责声明
进行磁场定向控制需要控制的是电流而非电压,只是因为我们没有办法直接去控制电流才暂时退而求其次地去控制电压 。虽然电压控制的效果也还不错,但由于电机不是单纯的阻性负载,所以控制电压并不能得到一个完美的效果。【所以后续的电流环非常关键,加油,慢慢学,保持清醒,在这章节先认真学电压控制】

SPWM

正弦脉宽调制技术(Sinusoidal Pulse Width Modulation, SPWM)
【不过SPWM调试方式在FOC实现中并不常用,原因是SPWM要比后面要说的SVPWM的母线电压利用率要低15%。】
控制器控制IGBT可以控制电路负载的电流流向。以单相为例,要用方波控制单相的电流,1与0为两个方向。控制器的pwm为1 – 逆变器的两个开关关闭,另外两个打开 – 磁通量变化,线圈的电极改变 – 转子转动。扩展到三相,就是三相轮流吸引转子。然后方波不够顺滑,所以SPWM仅仅是把每个相从方波控制变成正弦波控制

SPWM的思路简单粗暴,既然输出你想要正弦波,那还不简单,把正弦电压采个样,当前你要多大的电压,我调调PWM的占空比给你就是了。比如这一秒你要1.2V,我给个10%占空比的PWM,12V的电源输出不就成了你要的1.2V了吗?电机参数,当前状态什么的,我才懒得管。
SPWM基本原理详解(图文并茂+公式推导+C程序实现)

如下图3(a)(b)和(c )所示的三个波形分别为矩形波脉冲、三角波形脉冲以及正弦波形脉冲,显然它们的形状完全不同,但是面积完全相同,如果把它们分别加在具有同一个惯性的环节上时,其输出作用完全相同。
伺服电机控制_第30张图片
面积不同【占空比不同】才能做出SPWM
伺服电机控制_第31张图片

为什么3个相的正弦波就能让伺服电机顺滑转动

有ABC三个相的向量,我们按SPWM驱动,就是给每个相输入相位相差120度的正弦波电压,而且这三个向量本身的物理分布也相差着120度。
A向量是ωt 的正弦波,即相位位于0°,而且其电磁矢量位于0°;B向量是ωt 且相位是- 120°的正弦波 ,矢量位于正120°,记作sin(ωt - 120°)∠120° ; C向量不赘述
现在把这三个向量相加,用到了虚数和三角函数的诱导公式,分别求出了实部和虚部之后发现这样的三个正弦矢量叠加后的幅值是固定的3/2,合力的角速度就是每个相正弦波的角速度
伺服电机控制_第32张图片

实际观测

伺服电机控制_第33张图片
伺服电机控制_第34张图片

//但其实在这时候要关注死区效应了。上去复习。

SPWM的几点理解
为了保证不进入过调制区域,SPWM的相电压幅值最大为1/2Ud

电压利用率:逆变电路输出的线电压的基波幅值直流母线电压Ud的比值
因为调制波幅值不能大于直流母线电压的一半,所以输出电压是Ud/2 ,不过按照星形连接,电机的线电压是相电压的根号3倍,所以要再乘以根号3。
因此SPWM的电压利用率是 根号3/2 也就是0.866

【SPWM还可以加一个电流滞环跟踪控制则直接控制输出电流,使之在正弦波附近变化,这就比只要求正弦电压前进了一步。

SVPWM

空间矢量脉宽调制(Space Vector Pulse Width Modulation,SVPWM)
输入是一个目标矢量位置,输出是一个开关周期内的IGBT的开关节奏。
【这个做成gif会很可爱啊。。】

承上启下

传统的SPWM方法从电源的角度出发,使变压变频器的输出电压尽量接近正弦波【每一相都尽量做成正弦波,而且保证每相之间是120°】,并未顾及输出电流的波形。  【也就是说,SPWM调制是从三相交流电源出发,着重于生成一个可以调压调频的三相对称正弦电源。【我们负责把3个相各自安顿好,它们自己在输出时形成的合力能自然而然地让转子转圈】

然而交流电动机需要输入三相正弦电流的最终目的是在电动机空间形成圆形旋转磁场,从而产生恒定的电磁转矩。【表面上看我们要的输出是三相正弦波,本质上讲是正弦波产生的旋转磁场在带着转子在转动啊。】

如果对准这一目标,把逆变器和交流电动机视为一体,用8个基本电压矢量合成期望的电压空间矢量【由3个相构成的8个基本的开关状态把他们的电压合力拼出离散的一整圈的方向】按照跟踪圆形旋转磁场来控制逆变器的工作,模型比较简单,也便于微处理器的实时控制。这种控制方法称作“磁链跟踪控制”,而磁链的轨迹是交替是由使用不同的电压空间矢量得到的,所以又称“电压空间矢量PWM(SVPWM,Space Vector PWM)控制”。
【也就是说,SVPWM的控制基础是要能单独确定转子转一圈下来的每个位置,方便以后用以力的形式去控制转速】
SPWM与SVPWM区别

大概讲讲

SVPWM就是,首先拿最基础的3相逆变电路,做出静态的8个(6+2)开关状态下的电机线电压的合力方向【没有,我胡说的,只有正弦输入才有矢量方向】,然后由这8个状态,在极短的周期内进行切换,切换的时长占比不同,造成的“合力”的角度也会不同【这算并发吧?】6个矢量把360°分成6个区域,另外2个矢量不通电流 所以可以作为过渡状态。为了减小IGBT的操作次数,并且切换区域的时候可以顺利对接,并且减小电流波纹,所以每个周期内是0-A-B-7-7-B-A-0 这样的顺序,生成的合力是A与B之间的力。
  然后确定好要划分多长的周期,输入的矢量在哪个区域,每个周期内的分力各自要多久,什么时候切换分力的状态,什么时候开始一个周期。 这样就能依据输入的目标电压矢量去达成转子的位置了。

详细讲解

彻底吃透SVPWM如此简单

一个相,一个S,两个状态;3个相,2 * 2 * 2 ,8个状态

【笑死,一生二,二生三,三生万物】
SVPWM算法实际上计算的是逆变器的六个开关何时导通,何时切断。
在下文中,图3的Period也就是SVPWM算法的PWM开关周期,以后用Ts来表示。 Ton代表在一个PWM开关周期内该开关导通的时间,单位是秒。
伺服电机控制_第35张图片
伺服电机控制_第36张图片
[虽然有8种组合,但只有6种能用,因为3路全部输入或者全部输出是不算的,但是可以借助这两个状态作为过渡】
SVPWM算法都假设电机拥有三相平衡绕组,也就是说所有的电机三相的相电阻相等(那么电机三相绕组的连接点就是中性点喽)。【如果不相等的话,产生的合力就会有偏差】
电机在星形连接时,电流就可以看作经过【一个电感+一组并联的电感】,就能计算出下表 6个情况下每个电感的分压
伺服电机控制_第37张图片
把二进制的(1 0 0)转化为十进制后是数字4,所以下标4就代表该状态。
上述电压都是向量,可以用固定在电机定子上的一个直角坐标系来表示:【下图的b,c两相的电压方向和我文章上面引用的别人的做法不一样】
伺服电机控制_第38张图片
目前是6种开关状态下,此电机受到的电压的合力矢量的方向。

三个空间位置差120°,相位还差120°的正弦相电压的空间矢量合成的矢量电压的幅值是相电压幅值的3/2倍。
【凭啥他们的模长都是2/3V啊?】

伺服电机控制_第39张图片
下图解释了:由于线圈通电产生磁性,再通过3个方向合成,电压的矢量方向就是转子的方向。
伺服电机控制_第40张图片

如何用这8个基本电压矢量合成?

伺服电机控制_第41张图片伺服电机控制_第42张图片

原文里有很丝滑的gif,去看,解压。总之我们的目标就是用那6种开关状态组合出尽量像这样丝滑的角度控制。【虽然SVPWM是离散化控制,理论上不可能这么丝滑】
我们需要的Vout可以在任何位置,而且幅值也是可以变化的。但我们只有6个非零向量和2个零向量,而且它们的幅值都是固定的。下面我们来看看我们如何用这6个非零向量和2个零向量来重现Vout

周期

每一个PWM开关周期 Ts(图3),SVPWM算法便可以使用图中的8个向量来合成一次 Vout 。Ts 越短,旋转一圈的时间中合成 Vout 的次数就越多
【每个Ts时间段内,都会用合力两边的基础力去合成一次合力】
假设需要合成的电压空间矢量 Uout的旋转角速度ω=2πf(即旋转磁场角速度),则旋转一周的周期为T=1/f。若开关管的频率为fs(载波频率),两者间的频率比R=fs/f,即 Uout旋转一周被均分成了R份,每两份之间的增量角为γ=2π/R。也就是说 Uout的运动轨迹并不是一个标准的圆,而是用一个R边形来拟合圆,这也就代表了磁场旋转一圈需要进行R次运算。因此载波频率越大,转速越小,Uout就越接近圆形,反之就越接近多边形。但是载波频率过高的话会导致开关管损耗较大,一般取5~10kHz。
伺服电机控制_第43张图片

角度

经过原文作者的一系列计算,求得了合力所需的时间分配公式。θ为合成矢量与主矢量之间的夹角。一个周期Ts = T4+T6+T0+T7
伺服电机控制_第44张图片

幅值

伺服电机控制_第45张图片
六个矢量所能合成的最大的区域范围是那个六边形的范围。
但是如果按六边形的幅值大小来控制,那给电机的力就忽大忽小,会导致电机抖动。
要想让电机顺滑地转圈,就得给幅值一定的力,所以力的范围应该是一个圆。六边形的外接圆是没法实现的,所以只能做到用内切圆那么大的幅值来控制。所以难以避免地没有做到百分百的利用率。

【再捋一下,前面提到的3/2的幅值是由于3相电压被矢量分解到新的坐标系,这时候幅值会变成原来的3/2 , 所以如果想要等幅值变换,就要自己乘2/3 等功率变换就得是sqrt(2)/sqrt(3); 而这里提到的调制比,是为了能让电机良好运行而做出的内切圆的尺寸】

关于调制比、过调制、基波电压和母线电压的概念和关系总结

周期内的矢量分配顺序

【不知道你还记不记得,这个1和0代表的是每个相的电流方向】
000 - 100 - 110 - 111 - 111 - 110 - 100 - 000【除了000 ,a这个相的电流一直都没变喔】
000 - 010 - 110 - 111 - 111 - 110 - 010 - 000
000 - 010 - 011 - 111 - 111 - 011 - 010 - 000
很丝滑对不对。IGBT的操作次数非常少,并且切换区域的时候可以顺利对接,所以每个周期内是0-A-B-7-7-B-A-0 这样的顺序。

伺服电机控制_第46张图片

SVPWM算法的实施
扇区判定

我们需要给定我们的目标电压的方向和幅值,所以我们需要一个算法去自动判断这个目标电压需要靠哪两个电压去合成。也就是说,要知道扇区位置。

SVPWM原理(五段式&七段式)及其Simulink建模【他讲扇区判定讲得好】
用下图这三条公式,每条公式将圆形分割成两个区域
伺服电机控制_第47张图片
伺服电机控制_第48张图片
伺服电机控制_第49张图片

扇区内相邻两个非零向量和零向量的作用时间

伺服电机控制_第50张图片
1是上开关导通,下开关切断;0是下开关导通,上开关切断。所以,U4是电流从A流入,从B,C流出;U6是从A,B流入,从C流出;U0和U7都是没有电流通过。
【如果有一个位置闭环的电机,我用一个恒定的外力把轴拧偏到一个角度,那么电机会以那个角度去计算纠偏的力,然后输出一个恒定的mos管的电压波形。纠偏力越大,电流越大,三个相的电压波形的宽度差值越大】
三角形的锯齿波是【载波】它的频率叫【基波频率】或【载波频率】同时它和【开关频率】一致,因为就是用这个载波去比较数值并生成开关信号。
【控制频率】是程序在中断中采样并输出占空比的频率。图中普通的对称调制,控制频率和开关频率一致。如果用的是非对称调制,则图中锯齿波的前半截和后半截的占空比数值不一样,在中间又更新过一次占空比,所以控制频率是开关频率的两倍。这要求每次程序中断的运行时间要小于半个周期的70%。每次计算出新的占空比之后在下一个控制周期进行更新。

T1 和 T2 是扇区两边的向量维持的时间
伺服电机控制_第51张图片
毕竟合力讲究的是T1 和T2的占比,所以如果数值太大了,只要归一化一下就好了。

确定切换时间点

每个状态的时段算出来了【按列来看】,但是在这个周期里是按三个相位来控制的【按行来看】,所以我们组合计算出了Ta Tb Tc 。
伺服电机控制_第52张图片

切换时间点和一个三角波的比较

仅仅知道Ta Tb Tc ,算法依然不能自行判断何时改变开关状态。将这三个时间变量与一个三波比较后算法就能精确的在指定的时间改变开关状态。

伺服电机控制_第53张图片

这个三角形的底边长是一个开关周期 Ts,三角波的高度是幅值,高度是半个开关周期。
SVPWM【有非常漂亮的动图】
【话说回来,用这种控制方法的话,死区的危害好像就不大了 吗?】

SVPWM算法理解(一)——基本原理
基于STM32的SPWM驱动步进电机,使用软件实现电机细分
SVPWM算法原理及详解【这个讲的也是整个流程】

SPWM进化版

【知乎某人:工程中的三电平调制算法,建议用三次谐波注入,或者SFOPWM算法。都比SVPWM简单许多,三电平的SVPWM,既复杂,执行时间还长,如果要考虑中点电位平衡的话,就更复杂了。】

为什么有三次谐波注入法spwm?
基于SPWM的方法上,这个三次谐波,是在uvw三相的相电压上都叠加了同样的一个值,所以在线电压上,其实并没有谐波,也就是说,对于后面带的电机,它根本不知道你在相电压上注入了谐波。那注入谐波为什么可以提高电压利用率呢?因为叠加上这个三次谐波后,原来正弦形状的波形就变成了马鞍波,这个马鞍波就是正弦波削去了顶部,原来已经顶到天花板的相电压输出,经过这么一削顶,离天花板又多了一点距离,所以相电压又可以输出更大一些了。【可以超出0.5Ud了】。当然对于线电压,还是完美正弦,幅值却比之前要大一点。

【为什么我不放在SPWM章节后面?让你复习呀】

DSP

一文看懂DSP
  FPGA 芯片与 DSP 芯片是有区别的。 DSP 是专门的微处理器,适用于条件进程,特别是较复杂的多算法任务。 FPGA 包含有大量实现组合逻辑的资源,可以完成较大规模的组合逻辑电路设计,同时还包含有相当数量的触发器,借助这些触发器, FPGA又能完成复杂的时序逻辑功能。
现在的DSP和ARM区别还大么?
  DSP是数字信号处理器,可以视作特殊化后的MCU,主要是比MCU多了硬件乘法器和诸如FFT算法指令的支持
  DSP主要是实现数字信号处理问题,直接硬件上支持滤波和各种变换所需的大量各种专用功能,提供这方面专用指令集。既可以是独立芯片,也可以是电路的一部分。
ARM是最初是通用型CPU架构,类似x86架构的。特别是Cortex-A,甚至可以制作通用计算机。而例如Cortex-M这些类似于单片机一些。

从控制转速看电机控制

【CSDN】foc学习笔记系列

在这个阶段,我们需要的是一个合适的控制量,毕竟这电机跑得再迅速准确,如果指挥官乱搞,那这电机转得也不利索。

伺服电机控制_第54张图片
这是让转子能最高效转动起来的力的方向。
控制电机转速需要控制加速度a
F=ma 而F是定子的电磁力
电磁力由电流决定,而硬件只能控制电压,所以只能退而求其次去鼓捣电压。鉴于我是到处查资料来的,下文可能电压和电流混着用,但大家只要明白:控制只能用电压来控制,反馈的时候却可以用电流环读取电流反馈。 通过读回来的实际转子位置去设定对应的合适的力,这样就清楚了。
电压/电流为矢量,可分为线速度上的力和垂直于转轴的力【dq轴】需要分别控制。
其中 Iq 是我们需要的,代表了期望的力矩输出
Id 是我们不需要的,我们希望尽可能把它控制为0
但我们在SVPWM里只能给定转子的目标位置而已,怎么去关联到这个q轴的力呢【那就靠clark变换和park变换啦】
伺服电机控制_第55张图片

电机转矩正比于转子磁场和定子磁场的叉乘,即等价于转子磁场和定子磁场围成的平行四边形的面积,亦正比于DQ轴磁场围成的矩形面积。无论是感应电机还是永磁电机,控制转矩都是通过控制DQ矩形面积来实现的。
//直接转矩控制的专利被买断了,只能用矢量控制 要想控制电机转的漂亮,有两个因素要把握好:

  1. 磁铁磁力的强弱
  2. 内外磁铁的空间相对位置

永磁电机的转子是永磁体,磁场强,定子通过创造反向磁场进行弱磁控制;感应电机的转子是感应生成的磁场,所以异步,起步的时候效率低于永磁电机,弱磁高速控制的时候效率高于永磁电机。
混合动力汽车的电机都是无刷永磁电机,纯电动车的电机主要是感应电机(也叫异步电机)
知乎FOC入门讲解

FOC控制

【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术【知乎 稚晖君】
伺服电机控制_第56张图片
【注意,上文第3步流程省略了位置环,但实际计算时,位置量θ是必不可少的】
伺服电机控制_第57张图片

第1步,对电机的三个相电流进行采样+clark变换

对电机的三个相电流进行采样,这一步会使用串联的采样电阻(Shunt)进行电流采样。

由于电机工作的电流一般很大,所以采样电阻的阻值非常小,甚至和导线的电阻接近了,因而实际的采样电路PCB设计的时候还有一些讲究,比如使用开尔文接法(Kelvin connections)。

电流采样的方案大致有电流互感和电阻采样两种,而电阻采样又分为低端采样、母线采样和高端采样。对于电阻采样而言无论是哪一种,其原理都是一样的,根据欧姆定律可得电流等于电压除以电阻。由于电阻阻值是我们给定的,所以只要采集了电阻两端的电压就可以算出流过电阻的电流。为了尽可能的不影响电路正常工作,我们选用的采样电阻的阻值一般都会很小 (毫欧级) ,所以电阻两端的电压往往会比较小,比如10毫欧的电阻,流过10安培的电流,其两端电压仅为100毫伏,因此我们需要运算放大器来放大这个电压信号,最后送给单片机的ADC。foc学习笔记3——电流环

但是我们实际电路设计时可以不使用三个采样器(实际有单采样电阻、双采样电阻和三采样电阻接法),只需要两个就够了。因为由基尔霍夫电流定律(KCL),在任一时刻,流入节点的电流之和等于流出节点的电流之和。
在这里插入图片描述
虽然电流知道了,但是不能直接用三相的电流信息来做控制。
因为要对于非线性的信号进行准确控制就要使用复杂的高阶控制器,这对于建模成本、处理器算力、控制实时性等都是不利的。简单地说就是,咱们控制器的反馈输入变量不是三个电流采样值嘛,你要我稳稳地跟踪三个正弦波太麻烦啦!能不能简单点跟踪一条直线(常量)啊?
伺服电机控制_第58张图片
伺服电机控制_第59张图片
伺服电机控制_第60张图片

是的,非常可惜,变换后仍然是正弦波,所以还得再变换一下。

第2步,做park变换,把α-β换到d-q

这一步中我们将 α-β ​坐标系旋转 θ ​度,其中 θ ​是转子当前的角度【用编码器读到的】,如下图:
伺服电机控制_第61张图片
伺服电机控制_第62张图片
也就是说,这个​ d-q 坐标系是始终跟着转子旋转的!
伺服电机控制_第63张图片
经过这一步的变换,我们会发现,一个匀速旋转向量在这个坐标系下变成了一个定值!
接下来如果我们以 Iq Id ​这两个值作为反馈控制的对象,那么显然就可以使用一些线性控制器来进行控制了,比如PID

实际只用到了PI控制,没有引入微分,因为如果推导一下电压和电流的传递函数会发现这其实就是一个一阶惯性环节(而且实际上我们可以通过零极点对消来简化掉PI参数,只需要控制一个参数即电流带宽即可)。

第3步,设定合适的预期值,预期值与反馈值求差补偿控制

现在我们有转子当前的位置和转子当前的Id Iq。
Id 要为0,Iq决定了给电机的转速,所以我们需要什么样的转速呢

编码器获得的位置量求导就可以获得电机当前的转速
那我们所期望的转速 - 当前转速就是需要调节的转速
我们差多少就申请多少吗?当然不是,这里也需要PI调节
伺服电机控制_第64张图片
在实际使用中,由于编码器无法直接返回电机转速 ,因此可以通过计算一定时间内的编码值变化量来表示电机的转速(也即用平均速度代表瞬时速度)。当电机转速比较高的时候,这样的方式是可以的;但是在位置控制模式的时候,电机的转速会很慢(因为是要求转子固定在某个位置嘛),这时候用平均测速法会存在非常大的误差(转子不动或者动地很慢,编码器就没有输出或者只输出1、2个脉冲)。
所以为了避免速度环节带来的误差,在做位置控制的时候可以只使用位置和电流组成的双环进行控制,不过此时需要对位置环做一定的变化,控制框图如下:

伺服电机控制_第65张图片
由于去掉了速度环,这里的位置环我们使用完整的PID控制,即把微分项加上(因为位置的微分就是速度,这样可以减小位置控制的震荡加快收敛;积分项的作用是为了消除静态误差)。

第4步,park反变换,将目标矢量换算成SVPWM的输入的矢量

永磁同步电机(PMSM)的FOC闭环控制详解
伺服电机控制_第66张图片
【反变换的时候应该用电压,在经过PID调节之后的数据都是电压了,望周知】
现在要做扇区判定的话,是0

另外,
在传统 SVPWM 算法如式(2-34)中用到了空间角度及三角函数,使得直接计算基本电压矢量作用时间(T4, T6)十分困难。实际上,只要充分利用 Uα 和 Uβ 就可以使计算大为简化,如式(2-38)
伺服电机控制_第67张图片
伺服电机控制_第68张图片

有感/无感FOC

【电机控制】无感FOC与滑模观测器 - 龙猫的文章 - 知乎
做好SVPWM之后,就可以按照自己的项目要求,来确定自己的方向,是有霍尔FOC,还是有编码器FOC(伺服电机),还是无传感器FOC,从软件算法的角度来讲,无传感器FOC是比较难的,因为没有传感器去获取电角度,也就是位置信息。

编码器可以直接反馈出电角度,只需要自己对应好电角度与机械角度即可;霍尔传感器虽然没有编码器那么方便,但也是可以轻松霍尔电角度的,只是霍尔FOC需要方波启动,然后切换到正弦波(SVPWM)。
无感FOC需要通过算法来重构出电角度与转速,只要获取到电角度,转速是比较容易的。相比之下,虽然驱动无传感器电机算法要难一些,但是对于有传感器电机,无传感器电机的优势也是比较明显的:
1.成本低,传感器的成本也是高的,尤其是伺服电机的编码器
2.在一些恶劣环境,比如高温环境,传感器是有可能会有失灵或不准确的情况的,此时使用无传感器电机要好很多。
同样,无传感器的BLDC电机的劣势也是显而易见的:
1.算法复杂,开发周期长
2.启动困难,在对启动不能抖动的应用场合,应用不方便
3.精度不高,在对控制精度有要求的应用场合,也基本不会选用无传感器电机

无感FOC电机的启动和观测

无感电机的启动是一个世界性难题,当然,不是说无法启动,而是没有一个通用的方法能够比较好的启动所有电机,由于状态观测器重构电角度需要使用正弦电流来观测反电动势,进而观测电角度,在电机静止条件下,没有电流,也就无法观测出电角度,目前比较通用的做法是两种:强拖,或者高频注入。
观测器的分析比较:分析各大做电机控制的半导体公司的方案,以及对现有资料的丰富度分析,如果我没记错的话,TI是使用的FAST观测器+反正切,ST是使用的龙伯格观测器+PLL,Microchip使用的是滑模观测器+PLL,新塘使用的滑模观测器+反正切+PLL,传统的方案是滑模观测器+反正切,或滑模观测器+PLL,因为滑模观测器比较简单,编程容易。

弱磁调速

主要是在十几万转以上的高速场合才会用到弱磁调速,是为了降低反电动势的影响。
PMSM弱磁的思想来源于他励直流电动机的调磁控制。
为何想要升速时需要弱磁:
电压不变,频率升高,系统阻抗增大,电流自然减小,定子磁场减小,转子侧磁是转子闭合导体线圈切割定子磁通最后产生转子磁场,所以定子磁场的减小必然会使得转子磁场减小,这也是感应电机的最本质一点,提高频率时自动弱磁!
还可以换个角度:
转子侧磁链会在定子绕组端产生反电动势,这样不弱磁情况下如果转速上去后定子端压会超额,所以我们要弱磁,在使得定子电压不超过额定时速度可以升上去。当然,除了电压极限外,电流也存在极限限制
【不过弱磁增速会导致最大转矩明显减小】

永磁同步电机矢量控制(八)——弱磁控制(超前角弱磁)
永磁同步电机也能弱磁调速

另外

SVPWM输入的电角度和电机转子的机械角度之间就有极对数的倍数关系:
极对数越多,转速越慢,但是扭矩可以越大。
如果极对数是1,那么SVPWM输出的磁场旋转一圈,电机转子也旋转一圈,电角度和电机转子角度是一一对应的。
如果极对数是2,那么SVPWM输出的磁场旋转一圈,电机转子只旋转半圈,电角度是电机转子角度的2倍。

控制板微操

控制板DSP可以用TMS320系列。
控制板需要做的有:
读取编码器,
电机三相电流的两路ADC采样,
计算所需电流并给出驱动IGBT的信号。

电机控制器中DSP如何输出SVPWM驱动信号?模拟量、开关量信号输出电路详解
伺服电机控制_第69张图片
DSP输出的电流不大,要输出mA级的电流就需要加一个功率放大模块。

伺服电机控制_第70张图片
这个是 把不同占空比的脉冲信号转换成不同电压值的输出 的电路。
伺服电机控制_第71张图片
浅析电流输出DAC的特性和应用

使用定时器产生中央对称的pwm波,去生成三相的驱动IGBT的信号
使用双ADC模式,同时触发ADC1、ADC2采集电机的两相电流,可保证采集到的两相电流值时间误差最小。配置ADC1为主,ADC2为从,用ADC1触发ADC2。
FOC和SVPWM的C语言代码实现【stm32的】

代码移植

SimpleFOC、ODrive和VESC 教程链接汇总

自动控制原理在三相电机上的应用

电机控制也就是个转子转圈,我们现在能控制转子的每个角度了,也能控制它的位置和速度了,那么接下来就是【怎么让它转得又快又稳又准】的问题了。
你以为我要讲PID了?不,事实上麻烦得多。。。所以,先自己去学PID吧。
伺服电机控制_第72张图片
电力电子控制中如何确定传递函数

电流环采集逆变器输出负载上的电流信号,与电流给定值进行比较,通过计算(PI调节器)得到输出电压。输出电压经过SVPWM模块的调制,输出SVPWM信号作用到逆变器上。逆变器响应SVPWM信号,输出电压作用到负载上。
伺服电机控制_第73张图片
在上面的传递函数框图中,PI调节器和负载的传递函数均很好理解,但绿色虚框中的是什么呢?一般教科书不会把细节展现到这种程度,但实际应用上是需要考虑的。【看起来好像是把控制器的寄存器更新周期导致的延迟也算进去了?】
伺服电机控制_第74张图片
在上图中,CPU在红色点处进入中断,读取了电流反馈值,然后进行PI调节器的计算,得到输出电压(或者三角波比较值)。但是输出电压不是立即作用出去的,通常会等到三角波回到0计数点,才会将比较值输出出去。这样就造成了采样和计算的延时,也就是第一个绿色虚框中的一阶延时Ts。
输出的电压是立刻作用到了负载上面吗?还不是的。输出的比较值和三角波进行比较,产生PWM信号,上图中的橘黄色线。对于这种7段式SVPWM来说,调制特点决定了还有0.5Ts的延时,也就是第二个绿色虚框中的分母部分。

剩下就只有Kpwm这个系数应该怎么确定了。Kpwm到底是怎么确定的
Kpwm系数和很多因素有关,比如park变换矩阵、调制方式、系统标幺值选取等等。看似复杂,其实我们只需要知道PI调节器输出变量的物理意义是什么就可以了,也就是逆变器输出的电压(单位V)和PI调节器输出的变量之间的比例关系。这个值没有一个确定的数值,每个人的计算习惯不一样,该值会完全不一样。

如上我们就完全确定了电流环的传递函数。为了简化,可以将传递函数里面的小延时环节进行合并。Ts和0.5Ts的延时,合并后变为1.5Ts的延时。

在这里插入图片描述

三相逆变器的传递函数 建模

MATLAB仿真

近20年以来,国际、国内出现了许多专门用于计算机数字仿真的仿真语言与工具,如CSMP,ACSL, SIMNOM, MATLAB/Simulink, Matrix/System Build, CSMP-C等。

目前比较普通的程序设计思路是这样的:先在simulink中搭建仿真模型,用模型去实现算法;仿真没问题后,开始将模型人工翻译成C语言;烧写到芯片中,进行调试。当然,稍微好一点的会做Sfunction的仿真。S-Function实例解析

而基于模型设计,是在simulink中搭建仿真模型,直接进行测试,如果满足要求后,用工具直接生产C代码,然后在芯片中直接使用。当然,如果是汽车行业,不能这么简单粗暴,还有各种测试和验证,不过在大部分电力电子行业,代码基本是可以直接用的,和仿真结果基本一致。(本着严谨的态度,用了“基本”二字,但我还没发现不一致的)。

不再手敲代码后,每天都跟建模打交道,期间总觉得自己的模型看着别扭,每天都想重构。后来接触了MAAB(Mathwork Automotive Advisory Board),一个matlab写的一个关于汽车行业建模规范,包括simulink和stateflow的建模规范,里面内容很多,跟MISRA差不多,就是一些怎么命名、连线、布局的规范。
基于模型设计——电力电子的利器

matlab 之永磁同步电机仿真【有给matlab的官方帮助文档,有一定的步骤】

电机应用上的控制目标

车用电机控制器
高性能
汽车的低速起步需要较大的启动转矩,汽车的高速巡航需要宽范围的功率区。这两个特点就要求控制器在低速时具有高过载能力(通常为额定电流的2倍以上),高速时能有较宽的弱磁恒功能力。

高转矩
较大的启动转矩,就要求控制器在低速时能输出较大的电流。大家都知道,低速时对应的电流频率也很低,频率很低带来的问题就是某一个功率器件(IGBT或二极管)会发热的时间较长,热应力会大大增加,会损坏器件或降低器件的寿命。极端的情况是,汽车在开上马路牙子时,司机会猛踩油门,但车基本不会动,这种电机堵转的工况,控制器基本输出的是直流,电流持续流过某一个器件,热设计时需要全面评估

宽转速
较高的转速范围,就要求驱动系统有较宽的恒功率区,从而要求控制器有较强的弱磁能力。因为永磁体的磁场是基本恒定的,随着转速的升高,反电动势越来越大,当其值高于电池电压后,控制器就会失控,所以需要用弱磁电流将电压控制在可控范围内。简单的弱磁就是发现电压升高后,增加弱磁电流,电压就会被压下去。但是对于车用永磁电机来说,随着转速的升高,弱磁电流增加到一定值后,再增加弱磁电流反而没有用了。此时弱磁电流减小,电压反而能控制住。这个特点简直反人类……这就产生了所谓的MTPV(Maximum Torque Per Voltage)控制策略,下图中的H到E这一段。

高效率
新能源汽车的能量来源都很宝贵,驱动系统的效率直接影响了续航里程。目前行业里面,峰值效率都标到了95%,高于80%效率的区域都多于90%,不知道这里面有多少水分。在低速和高速段,效率都不高;在高转矩段,效率也不高。电机设计好了,其效率区就基本确定了。驱动系统转矩输出满足司机给定的转矩指令前提下,尽量减小驱动系统的损耗。传统的优化方向,就是在同样的转矩输出下,输出最小的电流。但电流仅仅影响的是铜损,电机损耗还有铁损、机械损耗,控制器还有开关损耗和导通损耗,如果把这些都考虑进去,工作量相当大。

【知乎】电力电子工程师的系列文章

【知乎】德国人怎么学电机
电机驱动时所关心的主要功能,就是其电机输出轴的转矩 M 以及转数 n.

车用伺服电机

车用永磁电机都是凸极电机,而不是表贴电机。下图的蓝色槽里面,就是装永磁体的地方。凸极电机最大特点就是D轴电感小于Q轴电感,所以转矩不止跟Q轴电流有关,D轴电流也会影响转矩,所以有MTPA(Maximum Torque per Ampere)控制策略。【我。。。你。。。】【只有英文的一篇论文】
伺服电机控制_第75张图片
DQ轴电感不相等也就罢了,DQ轴电感还非线性。由于磁饱和的影响,DQ轴电感随着电流的增加,还会减小。Q轴电感的变化最明显,变化从1到1/2左右。下图的红线是Q轴电感,蓝线是D轴电感。DQ轴的电感还不解耦。也就是随着D轴电流的变化,会影响Q轴磁场,同样Q轴电流也会影响D轴磁场。虽然DQ轴互感和自感相比小很多,但也是一个不可控因素啊。
伺服电机控制_第76张图片
电机的磁场会随着电机温度的增加而减小,通常和常温下有10%到20%左右的衰减,这也会影响电机的出力。
电机的电阻会随电机温度的增加而增加,会造成电阻的压降变大。

你可能感兴趣的:(学习记录,电机,电机)