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

FOC控制与SVPWM解析

本文主要解决一下问题:

1.FOC是什么?
2.SVPWM是什么?在FOC中有什么作用?如何生成?
3.FOC三环如何控制
4.

1.FOC是什么

为了实现电机在磁场(定子产生的磁场)中旋转起来,应该使电机的定子具有旋转的磁场,也就是旋转的电压矢量。

下图是FOC的系统控制框图。

教一下这个图怎么看,像反Park变换(RevPark)我们的输入是(Vq、Vd),经过反park

变换输出就是V_{\alpha }V_{\beta }。其他地方也是这样的。

这里我们关注一下SVPWM模块的输入和输出,输入是合成电压矢量在静止直角坐标系下的分量V_{\alpha }V_{\beta },输出是相电压V_{a }V_{b }V_{c }。所以你理解SVPWM模块的作用了吗?如果知道合成电压矢量在静止直角坐标系下的分量V_{\alpha }V_{\beta },那么SVPWM模块就需要控制硬件输出产生最终矢量的相电压。(请记牢这个目的)。

同理其他模块也是这样分析,但是其他模块比较简单就不说了。看资料一下子就能明白。

相电压:
在三相逆变桥与三相永磁同步电机连接示意图中,三相线(U,V,W)相对于电机星型连接点N所测量得到的电压称为相电压。
但一般电机的星型连接点N都不会引出来,所以一般来说是无法直接测量得到相电压。如果想看相电压波形,可用远远大于电机相电阻的电阻模拟出星型连接点,测量三相线U,V,W相对于模拟星型连接点N1的电压,也可等效反映相电压。
————————————————
版权声明:本文为CSDN博主「晓蓝WQuiet」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42635852/article/details/126545870

相电压如何计算

我们知道矢量方向的范围是0-360度那么矢量的大小是什么呢?由于三相绕组阻值基本一样,因此每个矢量的最大值为Udc2/3,其中Udc为母线电压(电源电压),但我们发现各个方向上矢量最大值并不一样,为了让电机平滑转动,我们的目标矢量的最大值应为上图中六边形的内切圆的半径,即Udc2/3*sqrt(3)/2 = Udc/sqrt(3).具体参考下图。

原文链接:https://blog.csdn.net/qq_35947329/article/details/115483413

线电压:

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

2.SVPWM在FOC中的作用

前面了解了当知道合成矢量在静止坐标系下的分量V_{\alpha }V_{\beta }时,SVPWM应该输出相电压。

我们在SVPWM控制中使用的都是MOS管去开关电源,要控制相电压大小就是去控制每一相的导通时间,从微观上看通电时间不同,一个周期内平均电压不同,合成的矢量磁场就不一样。

这里电流和电压不用去纠结,因为转化关系是固定的,看作一样的即可。

电机内的线圈可以简化成这个样子。

加上MOS管对电流的方向进行控制,如下图所示:

同一对桥臂S_{a}开,S_{a}^{'}关,定义开为1;S_{a}关,S_{a}^{'}开,定义开为0。且同一桥臂(S_{a}S_{a}^{'})不能同时打开。此3个桥臂可以有8种开关组合可以产生6种非零矢量U_{1}(001)、U_{2}(010)、U_{3}(011)、U_{4}(100)、U_{5}(101)、U_{6}(110),以及两个零矢量U_{0}(000)、U_{7}(111)。

SVPWM算法采用均值等效原理,就是在一个开关周期T_{s}内通过对基本电压矢量进行组合,使其平均值与给定电压矢量相等(看下图第二个圆)。

黑色为需要的矢量U_{out}

问答1:左上角有两个圆分别表示什么?

左上角第一个圆表示由三个矢量去调制生成最终需要的矢量U_{out},而产生的矢量圆。

第二个圆表示由扇区内相邻的两个矢量去生成最终需要的矢量U_{out},而产生的矢量六边形(注意第二个产生的是六边形而不是圆,需要调制,原因在后面说。)

问答2:为什么两项矢量调制的不是圆是6边形?

因为当相邻矢量都做功时,各有一部分矢量不是输出矢量U_{out}的方向,被相互抵消了。所以可以看到矢量U_{out}在两矢量中间时输出最小(抵消部分最多),而合成方向和某个矢量的方向相等时(只需要一个矢量做功),矢量U_{out}的输出最大。

问答3:为什么左上角的圆面积更大?能否采用这种调制方式?
因为其采用三个矢量去调制生成最终的需要的矢量U_{out},虽然效率更低,但是总的矢量更大。

不能,因为无法解耦,当存在三个矢量去合成一个矢量时,有无数种组合;而由两个矢量去合成一个矢量时只有一种组合(输出矢量的方向和大小可以看成两个约束,只能有两个未知数矢量)。

当需要生成向左的矢量时,采用三个矢量合成时(第一个图)有原始的解法和图中紫色的解法,但是采用两个矢量合成时(第二个图),只有图中紫色一种解法。

个人感觉当需要加大电机力矩的时候采用三项矢量合成或许一个方法。

为什么不加大相邻两项矢量去走外圈呐?

因为在一个Ts周期内,如果要去合成外圈的Uout,那所需的时间就必须加长,这样的话一个Ts周期内就无法完成

2.算法上如何实现SVPWM

前面说了:SVPWM是采用U_{out}所在的相邻两个矢量去合成它,表达的公式为

U_{ref}*T_{s}=U_{4}*T_{4}+U_{6}*T_{6}

α轴和β轴上分量与通电时间的关系:

从上面的式子我们SVPWM的核心公式,通过Uref和当前的θ值(α轴和β轴上的分量)就能计算出相邻两个矢量的作用时间T4和T6。

同时还有一些其他细节:
1.与Uref相邻的是哪两个矢量?(方法:扇区判断)
2.每个扇区计算T4和T6的公式是什么?
3.当需要合成的矢量过大(电压需求大于 Vdc/√3),T4与T6相加大于Ts如何处理?—过调制。
4.知道T4和T6怎么应用到MOS管的开关上?    (定时器PWM)

1.扇区判断解析:

假定合成的电压矢量落在第 I 扇区,可知其等价条件如下: 0<arctan(Uβ/ Uα) <60
落在第 I 扇区的充分必要条件为:Uα > 0 ,Uβ > 0 且Uβ/Uα <√3。
同理可得到合成的电压矢量落在其它扇区的等价条件,得出:
Uref落在第Ⅱ扇区的充要条件为:Uβ>0 且Uβ/ Ua>√3;
Uref落在第Ⅲ扇区的充要条件为:Ua<0 ,Uβ> 0 且-Uβ/Ua <√3;
Uref落在第Ⅳ扇区的充要条件为:Ua<0 ,Uβ < 0 且Uβ/Ua <√3;
Uref落在第Ⅴ扇区的充要条件为:Uβ<0 且 -Uβ/Ua>√3;
Uref落在第Ⅵ扇区的充要条件为:Ua>0 ,Uβ<0且-Uβ/Ua <√3;

令N=4C+2B+A,就可以得到与扇区的关系表:


————————————————
原文链接:https://blog.csdn.net/bing_xin_/article/details/132640034

2.每个扇区计算T4和T6的公式是什么?

根据前面的公式可以同理求出其余扇区在Uout下的作用时间。

看看表可以看出其中有些表达式长得都一样只是正负的问题。

令:

那么我们只用三个公式就可以表达所有扇区的作用时间(仅仅的作用就是简化)。

3.当需要合成的矢量过大(电压需求大于 Vdc/√3),T4与T6相加大于Ts如何处理?

在电机使用过程中不可避免遇到需要大力矩的情况,我们就需要加大Uout,这样的话T4和T6的作用时间也会延迟。但是为了保证T4和T6合成的矢量方向不变,T4和T6的比例还是应该不变。

4.知道T4和T6怎么应用到MOS管的开关上?

以第一扇区为例

 

而MOS管开断一般用PWM做,看第一扇区的矢量组合,每个桥臂的控制不就像是PWM三角波吗?

当Uref所在的扇区和对应矢量的作用时间确定后,再根据PWM调制原理,计算出每一相对应比较器的值,其运算如下:

式中,Ta、Tb、Tc分别是相应的比较器的值,而不同扇区比较器的值分配如下(顺序有变化是因为作用的矢量不一样):

而在STM32中我们采用定时器去产生三角波,同时用不同的比较值去控制不同桥臂上MOS的开断时间。这里计算的Ta、Tb、Tc在STM32上就是定时器的比较值。例如:假设我们一个周期的定时器装载值是2000,比较值是1500的时候,mos管打开的时间就长像PWMA,比较值是1000,MOS打开的时间就为一半的时间像PWMB,比较值是500,MOS打开的时间就为1/3的时间像PWMC。

三角形的锯齿波是【载波】它的频率叫【基波频率】或【载波频率】同时它和【开关频率】一致,因为就是用这个载波去比较数值并生成开关信号。
【控制频率】是程序在中断中采样并输出占空比的频率。图中普通的对称调制,控制频率和开关频率一致。如果用的是非对称调制,则图中锯齿波的前半截和后半截的占空比数值不一样,在中间又更新过一次占空比,所以控制频率是开关频率的两倍。这要求每次程序中断的运行时间要小于半个周期的70%。每次计算出新的占空比之后在下一个控制周期进行更新。
————————————————
版权声明:本文为CSDN博主「晓蓝WQuiet」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42635852/article/details/126545870

https://blog.csdn.net/qlexcel/article/details/98534608

最终SVPWM的输出就是马鞍波,横坐标表示时间,纵坐标表示理解为定时器的装载值、相电压的大小。

可以看出马鞍波就是始终只有2相在作用。当只有一项在做功时,其装载值反而小(做功时间少,需要零矢量补充时间到Ts);当开始两相做功相同时,其值又慢慢增大后减小;直到U_{out}在两相之间的时候,刚好消耗完Ts,之后开始减小到0。

马鞍波相减就是分别的做工时间。当两相相等的时候就是有一个矢量在做工。

1.当分别为950、50、50时,t4作用900(950-50),T6作用0(50-50),T0作50(50-0)

2.当分别为1000、500、0时,t4作用500(1000-500),T6作用500(500-0),T0作用0。

3.当分别为950、50、50的时是,t6作用900(950-50),T2作用0(50-50),T0作用50。   

可以看到输出了非常标准的三相马鞍波。每一个横坐标轴对应一个角度,三相波形在此横坐标下的纵坐标的值即是定时器三个pwm通道的装载值。当然如果有不信邪的,也可以用单片机硬件输出pwm波再用示波器测量,但别忘了加个RC低通滤波器,否则你只能看到方波而后面的硬件电路三相全桥也只是对pwm波起到一个功率放大的作用,并不会改变实际的波形(当然由于死区时间和传导延时,会有一丢丢的影响)。
 

simulink上SVPWM仿真。(后面再写)

3.硬件上如何实现SVPWM

前面我们已经知道要合成Uout就是控制MOS管开闭的时间,在Ts时间内按比例进行矢量调制。

https://blog.csdn.net/qlexcel/article/details/95227991

  • 如果是6路,一般意味着你要自己控制死区,输出6路pwm一般要高级定时器才能做到

死区:指在两个通道切换时的延迟,用于确保一个通道完全关闭后另一个通道才开始导通,为了避免功率开关器件(如MOSFET或IGBT)同时导通而导致短路

问答1:机械角度和电角度

参考资料:https://zhuanlan.zhihu.com/p/1929600358235214912
机械角度是实际的物理角度,取值在0-360度之间,也就是电机的一周,也就是空间几何角度,用于表示电机转子的实际位置。
电角度是经过一个N-S-N极对的角度范围(算法应用时会由小范围放大成0-360°去计算,因为),如果只有一个极对那机械角度就和电角度相同。

n=\frac{n_{\Theta }}{N}   ,n为机械角度,n_{\Theta }为电角度,N为极对数。

我认为这个公式不太准确,因为电角度的范围在公式中是0-360°,而机械角度的范围也是360°。

在硬件实现的时候我们一般采用编码器采集电机的机械角度,结合极对数去计算电角度。

新公式:电角度=(机械角度x极对数)mod 360           (取360的余数)

零点对齐:将机械角度(定义的机械0°)和电角度的0°对齐。便于之后通过机械角度计算电角度。

问答2:电机控制精度怎么计算

参考资料:https://zhuanlan.zhihu.com/p/1929600358235214912

理论上,有几个θ,就能合成几个空间电压矢量,θ是编码器测出来的,所以最终取决于编码器的分辨率,比如14位分辨率(稚晖君Dummy Robot也是这个编码器分辨率),就是编码器转一圈360度,能产生2^14=16384个脉冲,那么最小角度分辨率就是360/(16384-1)=0.023度。

假如我想让转子精确转到θ位置,输出电压Um,那么已知θ和Um,代入公式,算出占空比交给PWM驱动器控制电机。代入公式计算,会发现要大量计算sin函数,一般会用查表法和数值逼近近似计算,这个之后详细讲,不在这讲,这里是在说到底能合成多少个空间电压矢量。

So,理论分析得出的结论是,可以合成编码器分辨率个空间电压矢量。在具体sin值时,正弦波在接近峰值和谷底的左右临近区间,虽然θ不同,但sinθ其实很接近,因此,不同θ会可以采用同一个y值,这样,合成的空间电压矢量数量就少于理论计算的数值了,实际操作中具体要看需求情况,一般情况压根也必要控制到0.023度这么变态。

所以电机的控制精度矢量的合成总数相关:1.编码器分辨率,电角度\Theta   2.正余弦的计算方法 。  

快速正余弦计算方法

https://zhuanlan.zhihu.com/p/1929600358235214912

书接上回,FOC控制器需要实时计算大量sin函数,而且是MCU计算,这可跟你在PC上用Matlab或python计算sin,随便写个公式调个库就行,MCU资源有限啊,好钢得用在刀刃上,所以就有了快速sin计算方法,主要就是查表法和数值逼近。此外,具体操作时,为了规避浮点操作,可通过0~90度角度放大得到一个整数输入区间,相应结果也适当放大便于工程计算和精度取舍。

查表法

稚晖君Dummy Robot的FOC控制器使用的就是查表法,那先看看他是怎么实现的。直接给出了sin_map,长下面这个样子。

横轴取值范围0~1024,纵轴取值范围0~2^12(4096),上面这个矩阵直接给定了纵轴的值,总共1024+1=1025个。这个操作,就是为了避免浮点操作,对数据进行放大操作。横轴[0,2pi]放到大[0,1024],纵轴[-1,1]放大到[-4096,4096]。

(继续更新)

 一些比较好的文章

https://blog.csdn.net/qq_35947329/article/details/115483413?fromshare=blogdetail&sharetype=blogdetail&sharerId=115483413&sharerefer=PC&sharesource=m0_67794575&sharefrom=from_linkhttps://blog.csdn.net/qq_35947329/article/details/115483413?fromshare=blogdetail&sharetype=blogdetail&sharerId=115483413&sharerefer=PC&sharesource=m0_67794575&sharefrom=from_linkhttps://blog.csdn.net/qq_42635852/article/details/126545870https://blog.csdn.net/loop222/article/details/121201638https://blog.csdn.net/loop222/article/details/132623366https://blog.csdn.net/beikemeng/article/details/146322935https://blog.csdn.net/qlexcel/article/details/98534608https://blog.csdn.net/qlexcel/article/details/74787619https://blog.csdn.net/qlexcel/article/details/95227991https://blog.csdn.net/qq_42635852/article/details/126545870

https://blog.csdn.net/beikemeng/article/details/146322935

https://blog.csdn.net/weixin_46253745/article/details/127228208

https://zhuanlan.zhihu.com/p/56529497

https://zhuanlan.zhihu.com/p/147659820

https://blog.csdn.net/jdhfusk/article/details/120425093

https://blog.csdn.net/qlexcel/article/details/98534608

http://www.dtcms.com/a/590973.html

相关文章:

  • 门户网站建设技术要求网络推广方案书模板
  • 淄博建设局网站做网站千篇一律
  • 如何用matlab求圆的圆心及半径
  • 做软件界面的网站织梦网站上传的文章只显示摘要不显示内容如何修改
  • 怎么把网站管理系统自适应单页网站模板
  • 模板网免费下载官网seo排名诊断
  • 化妆品网站开发哪里有软件培训班
  • qq登录网页版登录入口搜索引擎优化服务公司哪家好
  • 昆明建设招投标网站潍坊最近最新消息
  • 局域网网站制作教程自己制作一个网站的软件
  • 《Redis应用实例》Java实现(28):栈
  • 石家庄网站建设培训上海网站域名备案处
  • 【操作系统】虚拟内存以及页面置换算法
  • 搜索引擎是软件还是网站大连装修公司哪家好
  • dw做的网站要多大网站充值怎么做分录
  • UE4做购物网站手机网站怎么做seo
  • 网站怎么快速排名专注网站基础优化
  • 订房网站开发太原seo软件
  • 国内网站没备案网址导航浏览器
  • 网站建设中故障分类和排除方法网站后台登录地址修改
  • 网站域名使用费徐州哪家公司做网站水平好
  • 百日挑战——单词篇(第十六天)
  • 浙江网站开发学影视后期大概多少钱
  • wordpress本站导航在哪里电商学校学费多少钱
  • 嘉兴住房和城乡建设厅网站wordpress图片主题演示
  • 滨海新区商城网站建设四川seo技术培训
  • 有哪些网站可以做设计挣钱室内设计网上教学
  • 上海建设厅是哪个网站中国交通建设集团有限公司董事长
  • 网站建设 天津湖北交投建设集团网站
  • 东莞网站推广运营公司iis部署网站提示建设中