九、FOC原理详解

1、FOC简介

FOC(field-oriented control)为磁场定向控制,又称为矢量控制(vectorcontrol),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最佳选择。FOC 可以精确地控制磁场大小与方向,使得电机转矩平稳、噪声小、效率高,并且具有高速的动态响应。目前已在很多应用上逐步替代传统的控制方式,在运动控制行业中备受瞩目。

电流可以产生磁场,并且磁场大小与电流大小成正比,因此为了使定子构造最合适的旋转磁场,需要精确控制线电流。想要磁场旋转就需要线电流做着正弦变化,而 3 组线圈绕组的角度差,就使得三相电流需要时刻做相位差为 120 度的正弦变化,这时可使定子构造最合适的旋转磁场,显然简单的 6 步换向无法控制三相电流做正弦变化,转矩在一定程度上会有跳变,这样无法输出稳定转矩,因此需要 FOC 来保持转子的扭矩时刻连续稳定可调。下面总结六步换向和 FOC 控制方式的对比表,如下表所示。

2、FOC框图

上图是以电流闭环控制为例,也就是让电机始终保持一个恒定力矩(力矩与电流成正比)。最左边的 Iq_Ref 和 Id_Ref 两个变量经过 PID 控制器进行反馈调节,其中涉及到几个变换模块,包括:Clarke 变换、Park 变换以及反 Park 变换,最后是 SVPWM模块作用到三相逆变器进而控制电机旋转。

FOC 的整个控制框图:

① 对电机三相电流进行采样得到:ia、ib、ic;

② 将 ia、ib、ic 经过 clarke 变换得到 iα、iβ;

③ 将 iα、iβ 经过 park 变换得到 iq、id;

④ 计算 iq、id 和其设定值 iq_Ref、id_Ref 的误差;

⑤ 将上述误差输入到两个 PID(只用到 PI)控制器,得到输出的控制电压Vq、Vd;

⑥ 将 Vq、Vd 进行反 park 变换得到 Vα、Vβ;

⑦ 将 Vα、Vβ 输入 SVPWM 模块进行调制,合成电压空间矢量,输出该时刻三个半桥的开关状态进而控制电机旋转;

⑧ 循环上述步骤。

3、FOC坐标变换(FOC控制的核心)

假设我们将一个 PMSM 电机手动让其匀速旋转,此时使用示波器观察它的三相输出电压(反电动势),我们会发现示波器上会得到三组正弦波,并且三组正弦波之间两两相位差为 120°。

所以反过来我们在三相无刷电机的三相线圈上输入上述三相正弦电压,那么就可以驱动无刷电机平稳高效地旋转了。而这正是 FOC 驱动无刷电机的基本手段,但是从控制的角度来看,我们根本就不想跟三个正弦波打交道,因为对于非线性的信号进行准确控制就要使用复杂的高阶控制器,这对于建模成本、处理器算力、控制实时性等都是非常不利的,那么有没有什么方法可以将被控制量线性化呢?答案是当然有的,只需要应用一些数学技巧。

3.1CLARKE变换

三相电路计算困难,将三相等效成二相,变换原则是电流产生的磁场相等。

根据基尔霍夫定律(KCL)可得,流入节点的电流之和等于流出节点的电流之和。Ia+ib+ic=0;

将ia、ib、ic分解为iα和iβ

假设变换前三相定子绕组匝数为N3,变换后的两相定子绕组匝数为N2,根据磁动量守恒可得:

提取iα和iβ可以得到

遵循恒幅值不变原理可得:N3/N2=2/3

带入N3/N2可得

归纳为

化简为

经过 Clarke 变换后就变成了直角坐标系了,变换前后的波形如下图。

可以看到变换后还是正弦波,虽然少了一个需要控制的变量,但是新的变量还是非线性的(正弦),控制它依旧难度很大。此时就需要使用PARK进行变换来得到两个线性的变量。

3.2PARK变换

Park变换可以将电机从两相静止坐标系变换到随转子转动的坐标系(dq轴)。

d轴方向与转子内磁场方向重合,称为直轴;q轴方向与转子内磁场方向垂直,称为交轴。

将iα和iβ分解为id和iq。

将 α—β 坐标系变换到 d-q 坐标系,即 Park 变换;依据坐标变换,Park 变换矩阵为:

变换公式后为

3.3反PARK变换

在将 Park 变换后的结果在经过 PID 控制器,PI 运算后的输出结果在进行反 Park 变换,反 Park 变换矩阵为:

变换公式后为

4、FOC的目的

通过将转子磁链进行了解耦,分解为转子旋转的径向和切向这两个方向的变量:Iq 以及 Id。

1、Iq 是我们需要的。代表了期望的力矩输出;

2、Id 是我们不需要的。我们希望尽可能把它控制为 0;

5、FOC中PID双环和三环的使用

电流环、速度环、位置环都会经历完成了FOC流程,并在PID控制模块进行偏差计算,对前一个系统(外环)的输出进行偏差的计算,计算结果作为后一个系统(内环)的输入。

位置环、速度环、电流环(由外环到内环排序)

Position_Ref 是位置设定值,Position 是位置反馈,Speed_Ref 是速度设定值,w 是电机转速。

将位置环的输出,作为速度环的输入;将速度环的输出,作为电流环的输入,就可以实现位置+速度+电流三闭环控制了。

速度环、电流环(由外环到内环排序)

Speed_Ref 是速度设定值,w 是电机转速。

将速度环的输出,作为电流环的输入,就可以实现速度+电流双闭环控制了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/477508.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web-03

CSS回顾 选择器 标签选择器 标签{}ID选择器 标签中定义ID属性。 #ID值{}类选择器 标签中使用class属性 .类名{}关于DIV/span div任意的大小的长方形,大小css: width, height控制。—换行 span-- 一行内 CSS常用属性 width/height 宽度/高度 定义&…

Excel求和如何过滤错误值

一、问题的提出 平时,我们在使用Excel时,最常用的功能就是求和了,一说到求和你可能想到用sum函数,但是如果sum的求和区域有#value #Div等错误值怎么办?如下图,记算C列中工资的总和。 直接用肯定会报错&…

蓝桥杯每日真题 - 第22天

题目:(卡片) 题目描述(12届 C&C B组B题) 解题思路: 该问题要求用数字卡片从 1 开始拼出整数,直到某一时刻不能拼出时停止。要确定拼到哪个最大整数,需要统计 每个数字“1”被用…

Ubuntu20.04 Rk3588 交叉编译ffmpeg7.0

firefly 公司出的rk3588的设备,其中已经安装了gcc 交叉编译工具,系统版本是Ubuntu20.04。 使用Ubuntu20.04 交叉编译ffmpeg_ubuntu下配置ffmpeg交叉编译器为arm-linux-gnueabihf-gcc-CSDN博客文章浏览阅读541次。ubuntu20.04 交叉编译ffmpeg_ubuntu下配…

python代码制作数据集的测试和数据质量检测思路

前言 本文指的数据集为通用数据集,并不单是给机器学习领域使用。包含科研和工业领域需要自己制作数据集的。 首先,在制作大型数据集时,代码错误和数据问题可能会非常复杂。 前期逻辑总是简单的,库库一顿写,等排查的时…

Windows系统编程 - 进程遍历

文章目录 前言进程的遍历CreateToolhelp32SnapshotProcess32FirstProcess32Next进程遍历 总结 前言 各位师傅好,我是qmx_07,今天给大家讲解进程遍历的相关知识点 进程的遍历 快照:使用vmware虚拟机的时候,经常需要配置环境服务…

【GD32】(三) ISP基本使用

0 前言 有一块GD32的板子不知道为啥用着用着就下载不了程序了,没办法,只能另寻他法。作为STM32的平替,GD32的功能和STM32基本是一致的,所以也可以使用ISP来下载程序。于是就开始复活这块板子。 1 BOOT模式 对于熟悉STM32开发的人…

【SKFramework框架核心模块】3-2、音频管理模块

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群:398291828小红书小破站 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【Unity3D框架】SKFramework框架完全教程《全…

开源项目-如何更好的参与开源项目开发

开源之谜-提升自我核心竞争力 一、寻找适合自己的开源项目二、像坐牢一样闭关修炼三、最后的实践 开源代码对所有人开放,开发者可以基于现有代码进行扩展和创新,而不是从零开始,参与开源项目可以提升自我的技术能力,丰富个人的经历…

利用c语言详细介绍下插入排序

插入排序,被称为直接插入排序。它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增 1 的有序表。 一、图文介绍 我们还是使用数组【10,5,3,20,1],排序使用升序的方式&…

STL——string类常用接口说明

目录 一、string类的介绍 二、string类常用接口的使用说明 1.成员函数 ​编辑 2.迭代器 3.容量 一、string类的介绍 下面是string类的文档对string类的介绍 1.string类是表示字符序列的对象 2.标准字符串类通过类似于标准字符容器的接口为此类对象提供支持&#xff0c…

Excel的图表使用和导出准备

目的 导出Excel图表是很多软件要求的功能之一,那如何导出Excel图表呢?或者说如何使用Excel图表。 一种方法是软件生成图片,然后把图片写到Excel上,这种方式,因为格式种种原因,导出的图片不漂亮&#xff0c…

2024年亚太地区数学建模大赛A题-复杂场景下水下图像增强技术的研究

复杂场景下水下图像增强技术的研究 对于海洋勘探来说,清晰、高质量的水下图像是深海地形测量和海底资源调查的关键。然而,在复杂的水下环境中,由于光在水中传播过程中的吸收、散射等现象,导致图像质量下降,导致模糊、…

【数据分享】2024年我国省市县三级的住宿服务设施数量(8类住宿设施/Excel/Shp格式)

宾馆酒店、旅馆招待所等住宿服务设施的配置情况是一个城市公共基础设施完善程度的重要体现,一个城市住宿服务设施种类越丰富,数量越多,通常能表示这个城市的公共服务水平越高! 本次我们为大家带来的是我国各省份、各地级市、各区…

一文学习Android系统核心服务ServiceManager

ServiceManager 是 Android 系统中核心的系统服务注册与发现机制,它在 Android Framework 层扮演服务注册中心的角色。它允许进程通过它注册、查询和使用系统服务,实现进程间通信 (IPC) 的基础架构。 ServiceManager 的作用 服务注册:应用程…

DMA理论篇

DMA理论篇 简介 传统的数据传输都是需要CPU来实现,从一个地方拷贝到另一个地方;而DMA(Direct Memory Access)则不完全依赖CPU,DMA更新芯片SOC的一个控制器,他可以控制数据从内存中传输到另一个地方(外设、soc其它模块)&#xff…

SpringBoot 集成 html2Pdf

一、概述&#xff1a; 1. springboot如何生成pdf&#xff0c;接口可以预览可以下载 2. vue下载通过bold如何下载 3. 一些细节&#xff1a;页脚、页眉、水印、每一页得样式添加 二、直接上代码【主要是一个记录下次开发更快】 模板位置 1. 导入pom包 <dependency><g…

IDEA怎么定位java类所用maven依赖版本及引用位置

在实际开发中&#xff0c;我们可能会遇到需要搞清楚代码所用依赖版本号及引用位置的场景&#xff0c;便于排查问题&#xff0c;怎么通过IDEA实现呢&#xff1f; 可以在IDEA中打开项目&#xff0c;右键点击maven的pom.xml文件&#xff0c;或者在maven窗口下选中项目&#xff0c;…

webStorm安装

一、webStorm安装 简介 Webstorm是一款非常受欢迎的优秀开发工具&#xff0c;跟vscode同誉为卧龙凤雏编辑器&#xff0c;是97%开发人员的理想编辑器&#xff0c; 尤其是webstorm&#xff0c;焕然一新的外观&#xff0c;新的导航功能&#xff0c;githob拉取等&#xff0c;更是备…