FOC控制原理完整_第1页
FOC控制原理完整_第2页
FOC控制原理完整_第3页
FOC控制原理完整_第4页
FOC控制原理完整_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FOC控制原理FOC控制原理简介电机分为有刷电机和⽆刷电机,这⾥主要描述的FOC控制算法主要是针对⽆刷电机的控制,⽆刷电机⽤于飞⾏器或者四⾜狗、机械臂FOC直接有什么优缺点呢?电调⽐较适⽤于电机告诉旋转的场景,⽽对低速的控制确实乏⼒,⽽FOC⽆论在⾼速还是低速的场景下都适⽤FOC⽤途之⼀,⽐如下⾯的狗⼦:⼀.电机的旋转原理电机旋转的基本知识磁铁的分N和S级,同性相斥异性相吸的原理,那么将两个磁铁放在⼀起会出现什么现象呢?如下图,若拖动下⽅的磁铁进⾏旋转,那么由于磁场的原因,上⽅的磁铁也会跟着进⾏旋转那么两个磁铁在何时⼒矩(⼒矩在物理学⾥是指作⽤⼒使物体绕着转动轴或⽀点转动的趋向)最⼤呢?如下图,当两个磁铁呈直⾓时,⼒矩最⼤(可以简单的认为相互作⽤⼒最⼤)。当将上⾯两个磁铁中下⽅的磁铁换成电磁铁,电磁铁是物理不旋转⽽是形成的磁场的进⾏旋转,那么是不是与上⽅的效果⼀样,带动另⼀个磁铁进⾏旋转电机旋转的⽅式a.电磁铁的构成单个通电线圈如下图所⽰,由右⼿螺旋定理可以得出该线圈磁场的⽅向是向上的,那么这⾥只有⼀个⽅向的磁场,那么如何增加旋转磁场的⽅向呢?简单的办法就是增加线圈,并且线圈的朝向不同即可,这⾥我们以三相电机为例⼦进⾏描述,三相电机就是采⽤如下图的⽅式,采⽤三个线圈,每个线圈的⽅向间隔120度由于减少硬件电路驱动(H桥)的数量,因此⼀般是将三个线圈的⼀端进⾏相连接,组成了三相星型结构,如下图,那么为什么会这样链接呢?每个线圈单独供电是否可以呢,当然是可以的,具体原因下⾯会描述b.H桥驱动电路驱动线圈驱动线圈供电,⼀般使⽤H桥驱动电路,那么我们先看⼀下如何驱动⼀个线圈的,如下图H桥由4个MOS管组成,当A和B‘打开时,电流由左上⽅流⼊线圈经由B’流⼊负极,也就是图上的红⾊箭头的⽅向,同理打开B和A'同时打开,电流就是蓝⾊箭头的⽅向,这样就能控制线圈产⽣不同⽅向的磁场了。那么如何控制上⽅线圈产⽣的磁场的⼤⼩呢?转换来看也就是如何控制加在线圈两侧的电压的⼤⼩呢?这⾥可以使⽤⽅波来控制MOS管的导通,如时间周期T,在T/2时间打开A和B',剩下的T/2关闭A和B',这样的话就相当于0.5VDC的电压加载到线圈上了(若是T时间均打开那么线圈上的电压就是VDC),线圈上的电压可能是0~0.5VDC之间不断的跳动,但是线圈的电流是接近连续的,因为这是电感,如下图,若是电压变动很快并且电感⾜够⼤,理论上是可以做到电流连续的由上⾯的H桥驱动电路可以知道,⼀个H桥由4个MOS管构成,那么若是三个线圈就需要12个MOS管构成,这样⾮常的浪费,**这也是为什么要将三个线圈连在⼀起组成星链结构的原因**。ps:在上⾯的H桥驱动电路上桥臂和下桥臂在同⼀时间只有⼀个能打开,这是为什么呢?因为两个同时打开就短路了。所以这种情况是不允许发⽣的。**时间的概念,死区时间是PWM输出时,为了使H桥或半H桥的上下管不会因为开关速度问题发⽣同时导通⽽设置的⼀个保护时段,所以在这个时间,上下管都不会有输出。那么H桥驱三相星链线圈是怎么样呢?如下图:定义MOS管开关状态如下:上桥开通下桥关断定义为状态1上桥关断下桥开通定义为状态0这样,三组半桥就⼀共有8种组合⽅式,编码分别为:**000**、**001**、**010**、**011**、**100**、**101**、**110**、**111**c.三相线圈产⽣的磁场0电流状态:上⾯的8种组合中有000和111状态,⽐较明显看出当在这两个状态时三相线圈是没有电流经过的,这个状态我们称为0电流状态。上⾯的8种状态除去两个0电流的状态,其余6种都会产⽣磁场,并且相应的磁场⽅向分别为:其中橘⾊箭头的⽅向和电磁铁形成磁场⽅向⼀致,但是这⾥我们把橘黄⾊箭头称呼为**电压⽮量的⽅向**,因为这⾥我们加载的是电压⽅向(1图中A指向B和C)由于是稳态的,所以电流⽅向也是这个⽅向,所以磁场⽅向和橘⾊箭头⼀致了<右⼿螺旋法则>。所以最终产⽣的磁场⽅向汇总如下:d.电磁场牵引转⼦最优的状态在上⾯已经提到当电磁铁的⽅向和转⼦(永久磁铁)的⽅向呈90度的时候,⼒矩最⼤,如下图,此时转⼦会向着电磁铁的⽅向旋转,此时若转⼦受到牵引转动了θ⾓,与此同时电磁铁也按照同⽅向转动了θ⾓,那么电磁铁的⽅向始终和转:**⽑驴⼀直跟着胡萝⼘的位置进⾏转动,但是⽑驴和胡萝⼘的位置确不会被改变**那就是⼀个旋转任意⾓度的磁场并且⼤⼩可控**,但是由上⾯描述三相线圈只能⽣成6个⽅向的电6个电压⽮量合成任意⾓度的电压⽮量(磁场⽅向)呢?这就是SVPWM要⼲的事情了SVPWM:空间⽮量脉宽调制(SpaceVectorPulseWidthModulation)SVPWM的基本思想就是根据上⾯6个磁场⽅向的来合成任意⾓度的磁场⽅向a.⽮量的合成初中数学的知识回顾如下我们想产⽣(0,1)的⽮量,其实可以看作是:1可以看作周期T的时间内有T这么长时间作⽤在X轴上,Y轴作⽤时间0我们想产⽣(1,0)的⽮量,其实可以看作是:我们想产⽣(0.5,0.5)的⽮量,其实可以看作是:其中这⾥0.5可以看作周期T的时间内有0.5T的时间作⽤在X轴上,也有0.5T的时间作⽤在Y轴上;根据上⾯的例⼦,我们可以固定这样的表达式那么若是想产⽣(0.25,0.25)这个⽅向的⽮量,该如何表达:这⾥加⼊了零向量,这⾥向量(0.25,0.25)和向量(0.5,0.5)⽅向相同,但是赋值不⼀样,但是总时长加起来还是1**可以得出⼀句话就是幅度要低,拿0来抵<上⾯的000和111状态派上了⽤场>**。b.SVPWM中的电压⽮量合成由上图可以看出,通过U4和U6显然是能够合成Uref的,将要⽣成的Uref向量分别投影到U6和U4上,由正⽞定理(**各边和它所对⾓的正弦值的⽐相等**)可以得出如下恒等式:(T6/T)*U6:可以理解为要产⽣Uref这个电压,U6要产⽣多少电压因为|U6|=|U4|=2Udc/3(Udc是供给电压,由欧姆定律计算得出),因此可以得出如下T4和T6的时间:其中参数m表⽰为SVPWM的调制系数(调制⽐):上⾯已经描述过,因为我们需要根据需要控制幅值,因此需要零⽮量的参与,因此零⽮量的时间为总时间T减去T4和T6的作⽤时间:这⾥为什么是1/2,是因为我们要插⼊两个零⽮量,所以时间要平分给两个零⽮量,那么为什么要插⼊两个零⽮量呢?只⽤⼀个零⽮量可以吗?理论上是可以的,但是会对MOS管的开断会产⽣较⼤的影响,影响MOS管的寿命,所以我们希望尽量减少MOS管的开关次数,因此⽬前设计出了7段式SVPWM的调制法,如下:解释⼀下该图的参数,A、B、C代表的是H桥驱动电路上的控制端信号,同时我们通过在合理的位置插⼊两个零⽮量,并且对零⽮量在时间上进⾏了平均分配,以使产⽣的PWM对称,从⽽有效地降低了PWM的谐波分量。同理可以得出其他扇区的切换顺序如下,为什么有这样的顺序呢?**对应到MOS管的开关上来看就是每次状态的切换只要⼀个MOS进⾏切换,极⼤的降低了MOS管的损耗**重新回到上⾯的T4和T6的公式中,得出的公式如下:其中因此到这⾥,SVPWM的⼯作完成了,我们得到了每⼀时刻所需要的空间电压⽮量以及它们持续的时间,在处理器中赋值给对应通道的捕获⽐较寄存器产⽣相应的三个PWM波形,控制MOS管的开关,**进⽽产⽣我们期望的电压、电流、⼒矩。**但上⾯的公式在实际的控制中并不使⽤,因为其还是太过于复杂,因为牵扯到了⾓度的变化,该种算法是⽼式的SVPWM的思路,那么现在是如何得到每个⽅向的Tx(基向量的作⽤时间)呢?如下⼀节:c.SVPWM和FOC的联系那么FOC和SVPWM是如何对接的?⾸先理解前后关系:FOC的输出是SVPWM的输⼊,SVPWM输出是三相电压的占空⽐,也就是最终设置到计时器中的⽐较寄存器的值。那么FOC输出的是什么呢?因为后⾯会介绍,所以这⾥直接给出结论是Vα和Vβ,这个也与直轴和交轴⽅向相同的两个电压⽮量直轴:转⼦N到S的⽅向 交轴:与直轴垂直,维持转⼦转动的⽅向,在电机转动的过程中,交轴⽅向的⼒是维持转⼦转动的,⽽直轴上的⼒对转动⽆效果,因此我们应该尽⼒让其为0.那么该如何得到T4、T6、T0、T7,从⽽更新寄存器控制PWM的输出呢?继续贴出上⾯讨论的在第⼀象限的Uref,如下(Ts和上图中的T是⼀个意思,都是表⽰PWM输出的完整周期时间):电压⽮量U4(100)和U6(110)的Uout,分别是2/3Udc和2/3Udc*(cos(π/3),sin(π/3))->⽮量1.⾸先上式表⽰的是U4和U6⽅向的总电压,这个电压如何计算得出来的呢?三相线圈的等效电阻如下:由上⾯的电路我们可以根据电路原理和⽮量合并等原则算出各个⽅向输出的电压,这⾥不再进⾏计算直接给出结论,如下图:其中红框标出来的就时第⼀象限所需要的U6和U4的总电压其中U4(1,0,0)=2/3Udc(α⽅向),⽽U6=2/3Udc*e^(j\*π/3),这是个⽮量表达形式,我们将其变⼀下形:根据虚数变换公式可以将e^(j\*π/3)=cos(π/3)+j*sin(π/3),⽤坐标表⽰则就是**(cos(π/3),sin(π/3)),这样就很清晰了,其表⽰的是α和β轴对应的值,那么FOC输出的就是α和β轴向的值,这样就能得到了上⾯的值。我们将U4和U6分和Uref别投影到α和β轴上,那么就会出现如下恒等式:那么由左侧和右侧等式可以得出如下公式:其中⽐例系数为*K*=√3*Ts*/Udc,该是个固定的值。因此上⾯就建⽴了T4、T6、T0和T7与FOC输出的Uα、Uβ的关系了。上⾯仅限于第⼀区域的计算公式,其他扇区的公式不进⾏推倒,直接给出结论:这样我们拿到FOC的输出结果Uα、Uβ,然后执⾏如下步骤:1.根据该值判断合成的⽮量所在的扇区2.然后利⽤对应扇区的公式计算Tx、Ty、Tz等值,然后进⾏变换后设置到PWM控制器的⽐较值中,即可产⽣我们想要的波形,从⽽产⽣定向的磁场⽅向这样就能完成电机的⽮量控制,SVPWM的⼯作就已经完成了上⾯已经得到根据FOC的输出能够很轻易的得到需要设置寄存器的值以来控制电机,那么下⾯我们来分析这个FOC是如何得到这个Uα、Uβ的⼆.FOC控制原理当我们拿到⼀个三相⽆刷电机时,当⼿转动电机然后⽤⽰波器观察电机的三根信号线,能够看到输出的是三个相位相差120度的正弦波形,因为电动机反过来就是发电机。因为控制常⽤的就是闭环控制,⽽检测正弦波⽐较困难,那么FOC主要做的⼯作就是解耦,就是将复杂的信号拆解成⽐较容易分析的量1.FOC控制的Pipeline这幅图是以电流闭环控制为例的,也就是让电机始终产⽣⼀个恒定的⼒矩(也就是恒定的电流,因为⼒矩和电流成正⽐)。可以看到控制器的输⼊是最左边的Iq_ref和Id_ref,两个变量经过PID控制器进⾏反馈调节,其中还涉及到⼏个变换模块,**有Park变换和Clark变换**;最后通过前⾯提到的SVPWM模块作⽤到三相逆变器上进⽽控制电机;⽽PID控制器的反馈量,是对电机输出电流的采样值。FOC控制的整个过程是这样的:对电机三相电流进⾏采样得到IaIbIc将Ia、Ib、Ic经过`Clark变换`得到IαIβ将IαIβ经过`Park变换`得到Iq和Id计算Iq和Id和其设定值Iq_ref,Id_ref的误差将上述误差输⼊两个PID(只⽤到PI)控制器,得到输出的控制电压Uq,Ud将进⾏`反Park变换`得到Uα,Uβ⽤Uα,Uβ合成电压空间⽮量,输⼊`SVPWM模块`进⾏调制,输出该时刻三个半桥的状态编码值按照前⾯输出的编码值控制三相逆变器的MOS管开关,驱动电机循环上述步骤2.Clark变换度的正弦波,采集电机前的电流的作⽤主要是⽤作PID反馈,以此来调整输⼊的误差。从上图可以看出,我们只需要采样两个信号线,另⼀根可以使⽤基尔霍夫定律得出(在任⼀时刻,流⼊节点的电流之和等于流出节点的电流之和,也就是说Ia+Ib+Ic=0那么将三相正选波形直接作为PID,那么这个过程⾮常的复杂,因此我们这⾥⽤⼀些算法对其进⾏转换,将采集的三相电流表⽰如下图:经过这样的投影,我们将Ia、Ib、Ic转换成了Iα和Iβ两个变量了,可能这样还不够直观,我们从波形上看看到底有什么变化:3个编程了2个了,这样的转换就称为Clack变化,但是这两个还是正弦波形,还是不好做跟踪不好做处理,最理想的跟踪变量是什么呢?肯定是直线了,下⾯我们沿着Clack变换继续进⾏处理。变换在上⾯的Clack的输出中得到了**α-β坐标系**,若是将该坐标系旋转θ⾓,如下:经过旋转后Q-D坐标系可以表⽰成如下:D轴(直轴),θ就是转⼦转动的⾓度,也就是d-q坐标系是始终随着转⼦进⾏转动的。这个操作是可⾏的,因为我们会通过编码器输⼊转⼦的实时旋转⾓度,所以这个⾓度始终是⼀个已知数。经过这⼀步的变换,我们会发现,因为参考系相对于该向量静⽌了,Id和Iq相对于D-Q坐标系)**,这个坐标系下两个控制变量都被线性化了!接下来如果我们以Iq和Id这两个值作为反馈控制的对象,那么显然就可以使⽤⼀些线性控制器来进⾏控制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论