FOC控制算法

这篇具有很好参考价值的文章主要介绍了FOC控制算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、FOC介绍

二、FOC基本概念

1、为什么是三相?

2、FOC矢量控制总体算法简述

3、为什么FOC不一定需要电流采样?参考链接

4、FOC的分类

(1)有感FOC与无感FOC

三、FOC中电流采样 参考链接

1、高端采样

2、低端采样

(1)单电阻采样

(2)双电阻采样

(3)三电阻采样

3、采样方式的选取

四、FOC原理

1、Clark变换

2、Park变换

3、PID控制

(1)电流环(最内环)

(2)速度环(第二层)

(3)位置环(最外层)

(4)位置控制时采用 位置环+电流环 控制

4、SVPWM变换

五、FOC算法的几种模式

六、FOC控制算法调试


一、FOC介绍

        最近为了精确控制电机旋转的角度、速度、力矩,采用三相直流无刷电机控制,采用FOC磁场定向控制算法,在这里记录一下自己的学习过程。

        从家电到汽车和重工业机器人——都采用无刷直流(BLDC)和交流电机,因为它们能效高,可定制性更广。交流和BLDC电机在许多应用中都是首选,因为它们的缺点很少,如微控制器成本和复杂的控制算法。

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

        FOC是驱动电动马达的最有效方式之一。FOC的主要目标是保持正交的定子和转子磁场以产生最大扭矩。一种方法是不断监测三个时变相电流,并调制每个施加的相电压以实现正确的时变定子磁场方向。

二、FOC基本概念

1、为什么是三相?

        无刷直流电机(BLDC:Brushless Direct Current Motor),也被称为电子换向电机(ECM或EC电机)或同步直流电机,是一种使用直流电(DC)的同步电机。无刷直流电机实质上为采用直流电源输入,并用逆变器变为三相交流电源,带位置反馈的,永磁同步电机。

        一个典型的永磁同步电机的3相绕组在空间120°电角度布置,绕组里面分别通相位相差120°的三相交流电。为什么需要通相位相差120°的三相交流电?为了产生一个幅值大小不变的圆形旋转磁动势。

        三相交流电通定子线圈,定子线圈是静止的,但线圈产生的磁场是与转子永磁体产生的磁场相互作用,转子在转,线圈产生的磁场也在同步转。

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

2、FOC矢量控制总体算法简述

输入:位置信息,两相采样电流值(或3相电流、电机位置或者电机速度)

输出:三相PWM波

所需硬件:ADC至少需要一到三个电流检测输入,一个光电或磁编码器,主控,依据电压等级的不同有mosfet或者IGBT或者SiC功率模块组成的三个半桥

        FOC算法在本质上就是一些线性代数中的矩阵变换,我在这里讲述的是有传感器的FOC算法,转子的位置信息是通过绝对式磁编码器反馈的,直接是数字量。

3、为什么FOC不一定需要电流采样?参考链接

        FOC磁场定向控制。其原理在于调制电机三相的电压,使电流产生的磁场矢量方向与定子磁铁(励磁产生或永磁铁)成90度。为什么成90度?因为90度的时候力矩最大。如果小于90或者大于90,实际上电机也能转,只是达不到最大力矩而已。基本上60-120度都能转。

        我们先不考虑电流,因为我们能直接控制的实际上只有ABC三相的电压(怎么控制呢?SVPWM)。我们通过控制这三相电压的大小,就可以得到一个方向和幅值都可以控制的电压矢量。

        电压采样:把目标v_q直接经过坐标变换和svpwm输出而不经过pid运算,而v_d则直接赋予0,确实可以达到还行的效果。这样做的问题在于并不能保证i_d为零,i_q等于目标值,因此电机并不能工作在效率最高的状态,力矩控制也是不准确的, 只是这样磁场矢量与定子磁铁的角度不是90度,而是略小一点。

        如果没有电流环没有电流采样也可以工作,电流采样的作用是获取三相电流做坐标变换后得到实际的id,iq,如果不要电流环,只有速度环反馈或者位置环反馈其实也可以达到还行的效果。

4、FOC的分类

(1)有感FOC与无感FOC

        在FOC算法中,转子的磁场角必须是已知的,以保持正交的定子和转子磁场。这可通过编码器或旋转变压器的位置反馈来实现(有感FOC),也可通过反电动势/磁通观测器软件来测量相电流以估计转子角(无感FOC)。

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

三、FOC中电流采样 参考链接

1、高端采样

        又称内置电流采样,是使用起来最简单但是最精准的技术。 采样电阻串联在电机相线上,检测的电流始终都是电机相电流,因为电感中的电流不会突变,所以无论PWM占空比的状态如何,采样到的电流都是连续稳定的。缺点就是硬件成本较高。

        直接采样桥臂输出电流,软件上无需再进行电流重构计算,采样值即真实输出电流,使用方便简单高效,较为稳定,但成本过高。由于该位置采样所选器件需要承受母线电压,在电源非隔离条件下,运放的抗共模电压指标需要大于等于母线电压(多数选母线电压的2倍),否则无法正常工作。而电源隔离条件下,其参考地(GND)不同,所以无需考虑该问题。因为电机三相电流遵循Ia+Ib+Ic=0,故实际实现时只需采样任意两相电流即可获得完整三相输出电流。

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

2、低端采样

        分为单、双、三电阻采样,易受公共地噪声影响。这种方法的缺点是,必须在下桥臂MOS打开时检测电流,PWM频率通常为20k~50khz,这意味着低侧MOS的开关频率为每秒20k~50k次,因此PWM设置与ADC采集之间的同步非常重要。

(1)单电阻采样

        单电阻采样又称为母线电流采样,一般将采样电阻串联在直流母线来进行采样,受逆变桥开关状态影响,其采样电流与相输出电流有差异,且在特定占空比条件下难以获取输出电流,故需在一个周期内至少采样2次,并对采样电流重构补偿,同时把握好采样时刻才能获取有效电流数据,因而过程复杂,难度过大,不过由于成本低廉(仅使用一个运放,且不需要考虑高共模电压影响)。

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

(2)双电阻采样

        通过采样逆变任意2个下桥臂电流来获取有效数据。在实际操作过程中,需要在下桥臂开关管开通时采样(蓝色波形),并在软件上对采样数据重构获取输出电流。

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

(3)三电阻采样

        如果我们使用的是三电阻方式采样的话,选用的ADC模块必须至少要有三个通道同时采样的功能,这样才能确保采样得到的三相相电流是同一时刻的电流,此时才能保证Iu+Iv+Iw=0,这个公式成立。这样的话,可以对采样窗口小的一相电流进行重新计算,这样得到的结果准确度是最高的

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

3、采样方式的选取

    在电机控制中,对电流采样的采样转换方式一般都是使用PWM触发ADC来转换

    当PWM模块设置的触发点匹配之后,触发信号就会给到ADC模块,此时采样开关就会断开,然后ADC模块开始转换,转换完成即可得到对应的采样电流的电压信号的AD数值,在程序中使用这个数值进行算法编写验证即可。

四、FOC原理

整体步骤:

  • 1、AD转换获取电流值Ia和Ib,
  • 2、通过Clark变换得到Iα和Iβ ,
  • 3、获取电机角度,通过Park变换得到Id和Iq,
  • 4、Id、Iq不能突变,同时为减少干扰,做平滑滤波,
  • 5、Id、Iq与设定值比较,通过PID运算得到Vd 和Vq,

1、Clark变换

        三相交流电,我们是否可以把它整成两相?就好比我们看一个三维的问题,我总是倾向于转化到二维去解决。三相交流电相互间相位相差120°,那我们是否可以构建一个坐标系α-β,使用它来表示三相交流电。

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

Ia,Ib,Ic投影到该坐标系α-β,则有:

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

写成矩阵形式为:

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

2、Park变换

        虽然坐标系下少了一维变量,但是新的变量还是正弦非线性的,接下来用Park变换将它们线性化。经过这一步的变换,我们会发现,一个匀速旋转向量在这个坐标系下变成了一个定值。

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

变换公式为:

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

写成矩阵形式:

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

我们一通操作将转子磁链进行了解耦,分解为了转子旋转的径向切向这两个方向的变量:

  • 其中是我们需要的,代表了期望的力矩输出
  • 而 是我们不需要的,我们希望尽可能把它控制为0

3、PID控制

        将上一步得到的两个值作为反馈控制的对象,作为PID算法的输入。

        由于这里的电压和电流的传递函数会发现这其实就是一个一阶惯性环节,所以这里只需要PI控制即可。

        在FOC控制中主要用到三个PID环,从内环到外环依次是:电流环速度环位置环。

我们通过电流反馈来控制电机电流(扭矩) ->  然后通过控制扭矩来控制电机的转速 

-> 再通过控制电机的转速控制电机位置

(1)电流环(最内环)

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

(2)速度环(第二层)

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

(3)位置环(最外层)

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

(4)位置控制时采用 位置环+电流环 控制

        在实际使用中,由于编码器无法直接返回电机转速 ,往往计算一定时间内的编码值变化量来表示电机的转速(即平均速度代表瞬时速度)。当电机转速比较高的时候,这样的方式是可以的;但是在位置控制模式的时候,电机的转速会很慢,这时候用平均测速法会存在非常大的误差(转子不动或者动地很慢,编码器就没有输出或者只输出1、2个脉冲)。

此时需要对位置环做一点变化:

foc算法,学习笔记,FOC控制算法,FOC,嵌入式,BLDC,电机算法

4、SVPWM变换

     前面有Park变换对应反Park变换,但是没有反Clark变换,取而代之的是SVPWM变换。使用反Park变换和SVPWM变换可以把计算出来的数据转换成开环的旋转磁场。

        在这里我就不详细说明SVPWM原理了,写这篇文章目的是自己能徒手写出代码,现在有现成的SVPWM模块,可以把FOC的控制结果转换为定时器6个通道的占空比,从而驱动三相逆变模块控制定子绕组产生旋转磁场,拖动转子旋转。

五、FOC算法的几种模式

1、扭矩模式

(1)电压模式:不用采集相电流、硬件简单、程序简单。

(2)直流模式:采集相电流,只控制 Iq ,设置Vd=0。

         Iq      :1xPID  + 1xLPF

(3)FOC模式:采集相电流,控制Iq 和 Id,转子中的磁力与永磁场精确偏移90度,确保最大转矩

         Iq 、Id:2xPID  + 2xLPF

六、FOC控制算法调试

        由于作者还没有做到FOC算法调试这个步骤,后续调试算法时,会具体补充这一部分,大家可以参考:参考链接文章来源地址https://www.toymoban.com/news/detail-757593.html

到了这里,关于FOC控制算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 永磁同步电机控制笔记:FOC控制原理笔记整理

    1  FOC 原理 1.1   FOC 控制流程 FOC又称矢量控制,是通过控制变频器输出电压的幅值和频率控制三相直流无刷电机的一种变频驱动控制方法。FOC的实质是运用坐标变换将三相静止坐标系下的电机相电流转换到相对于转子磁极轴线静止的旋转坐标系上,通过控制旋转坐标系下的矢

    2024年02月05日
    浏览(41)
  • MBD-PMSM闭环控制模型(FOC算法)

    目录 前面 Speed_and_Position_Estimator 获取HALL信号 HALL状态更新 计算转速 位置判断 ADC相电流/总线电流电压 获取AD值 计算实际值 低速高速切换 SlowLoopControl FastLoopControl 最后 前面分析了BLDC的开环与闭环,接下来分析PMSM或者说FOC的算法框架。 MBD-有感(Hall)开环BLDC控制模型(上) ·

    2023年04月14日
    浏览(42)
  • 直流无刷电机FOC控制算法 理论到实践 —— 实践

    关于直流无刷电机FOC控制算法的理论章节,本人已经在前两章进行过详细说明,大家可以自行进行阅读,请务必了解过理论之后再来学习如何具体进行实现。 直流无刷电机FOC控制算法 理论到实践 —— 理论(一) 直流无刷电机FOC控制算法 理论到实践 —— 理论(二) 本章节

    2023年04月11日
    浏览(48)
  • 直流无刷电机FOC控制算法 理论到实践 —— 理论(二)

    上一章节:FOC直流无刷电机控制算法 理论到实践 —— 理论(一) 下一章节:直流无刷电机FOC控制算法 理论到实践 —— 实践 说明:部分图片素材来源于网络 续上一章: FOC直流无刷电机控制算法 理论到实践 —— 理论(一)(点击跳转) 下一章: 直流无刷电机FOC控制算法 理

    2024年02月07日
    浏览(42)
  • 直流无刷电机FOC控制算法 理论到实践 —— 理论(一)

    说明:图片素材来源于网络 1.1 FOC由来 什么是FOC? FOC英文全程为 field-oriented control ,即 磁场定向控制 ,也称之为 矢量控制 ,主要应用于直流无刷电机的控制,通过此控制算法可以实现对直流无刷电机的精确控制。 那么怎样才能称之为精确控制,FOC和普通的六步换相控制有

    2024年02月02日
    浏览(44)
  • 嵌入式学习---ARM中断控制系统

    硬件中断处理是实时系统设计的最重要、最关键的问题。 程序不断地查询各设备的状态,并做出相应的反应。该方式实现比较简单,常用在比较单一的系统中,比如一个温控系统中可以使用查询方式不断检测温度的变化。 特点:实现简单;但 CPU利用率很低 ,不适合多任务的

    2024年02月03日
    浏览(73)
  • 【嵌入式学习笔记】嵌入式入门2——中断(外部中断)

    打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断 作用1: 实时控制在确定时间内对相应事件作出响应 ——定时器中断 作用2: 故障处理检测到故障,需要第一时间处理 ——外部中断 作用3: 数据传输不确定数据何时会来 ——串口中断

    2024年02月08日
    浏览(71)
  • 【嵌入式学习笔记】嵌入式基础9——STM32启动过程

    程序段交叉引用关系(Section Cross References):描述各文件之间函数调用关系 删除映像未使用的程序段(Removing Unused input sections from the image):描述工程中未用到被删除的冗余程序段(函数/数据) 映像符号表(Image Symbol Table):描述各符号(程序段/数据)在存储器中的地址、类

    2024年02月15日
    浏览(81)
  • 嵌入式学习笔记汇总

    本文整理STM32、STM8和uCOS-III的所有文章链接。 源码:mySTM32-learn STM32学习笔记(1)——LED和蜂鸣器 STM32学习笔记(2)——按键输入实验 STM32学习笔记(3)——时钟系统 STM32学习笔记(4)——NVIC中断优先级管理和外部中断EXTI STM32学习笔记(5)——系统定时器SysTick STM32学习笔

    2023年04月20日
    浏览(68)
  • 嵌入式学习笔记——SPI通信

    之前已经介绍了STM32的ADC、DMA、EXTI、TIME、NVIC、USART以及普通IO模式,此系列笔者还打算写最后三个大的内容,分别是SPI通信、IIC通信以及看门狗,后面就看大家的需求了,需要什么可以留在评论区,本文首先来介绍SPI的有关知识。 在通信协议分类的介绍中,提到过SPI,它是一

    2023年04月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包