无刷电机控制基础(3)——FOC矢量控制入门

news2024/11/23 4:09:22

本节我们讲一些无刷电机FOC矢量控制的入门知识。

1)FOC矢量控制的作用

我们前两节讲的无刷电机(BLDC),是最简单的结构,当转子匀速转动时,定子内产生的反电动势是梯形波;在驱动无刷电机转动时,线圈中只有加电和不加电两种状态,所以转矩是脉冲式的,转动的过程不平稳,会有顿挫感。虽然增加电机的极对数可以减轻这种不平稳特性,但是极对数不能无限增加。

FOC矢量控制,就是研究怎样控制无刷电机的几个定子线圈中的电压,使得它们产生的磁场效果之和,能产生稳定的转矩,使转子平稳地转动。为了达到这一目的,需要使用一种特殊的无刷电机——永磁同步电机。

永磁同步电机(PMSM)的转子和定子间的磁隙是经过特殊设计的,使得转子转动时,定子内的反电动势是正弦波;在驱动它时,也使用正弦电压驱动,那么它的转矩就有可能保持不变,使得转动更加平稳。通常我们所说的FOC矢量控制,都是指的用三相正弦电压去驱动永磁同步电机。

另外,普通的梯形波反电动势的无刷电机也可以用FOC矢量控制。因为梯形波也可以近似为正弦波,所以使用永磁无刷电机的正弦波矢量控制法,也是可以驱动普通的梯形波无刷电机的,只是相比永磁同步电机转矩的稳定性稍差。

2)FOC矢量控制的实现方法

由于FOC矢量控制的目的是要能实现一个大小固定,方向旋转的转矩。如下图所示,也就是定子产生的磁场之和要大小固定,方向稳定地旋转:

不难想到,当三相线圈中通过幅度相同、相位相差120°的正弦波电流时,可以得到一个旋转的磁场,而且这个磁场的大小是恒定的。而这个三相正弦波,需要与转子的位置、转速相匹配,才能把电机顺利驱动起来。具体来说,正弦波的相位与转子位置相关,正弦波的幅值与转速(电压控制电流,电流控制转矩)相关。

FOC矢量控制,就是要依据转子的位置和转速,来确定一个合适的三相正弦波电压去驱动定子线圈。但是,直接通过转速和位置去推算三相电的特性比较困难,我们需要使用各种数学变换来降低控制的难度

a)基础的数学变换

我们先来熟悉一下几个变换,之后再讲如何使用它们去实现FOC控制。

Clarke变换

Clarke也叫3s/2s变换,是一个实现三相到两相的变换。

在三相线圈中,通过的电流Ia、Ib、Ic,它们产生的电流矢量在平面上,是可以变换到一个直角坐标系中的,这样,可以把三相变换为两相,如下图:

a、b、c坐标系里的电流之和,可以通过以下公式变换到α、β直角坐标系中:

这样,我们就把相差120°的三相电流,变换到了正交的两相电流。

Park变换

Park又叫2s/2r变换,是一个实现两相静止到两相旋转的变换。

如下图,α、β是一个静止的直角坐标系,d、q是一个绕原点旋转的直角坐标系(与转子相对静止,d方向的电流矢量能产生转矩,q方向的电流矢量不能产生转矩):

α、β坐标系里的电流之和,可以通过以下公式变换到旋转的d、q直角坐标系中:

同样地,不难得出Park逆变换,把旋转的d、q直角坐标系中的矢量,变换为静止的α、β坐标系中的矢量可以使用如下公式:

b)FOC矢量控制流程

好了,讲了几个变换的,那么对于简化FOC的实现有什么作用呢?我们把三相的电流Ia、Ib、Ic经过Clarke变换,再经过Park变换,会发现,旋转的电流矢量,转换到旋转的d、q坐标系以后,变成了两个固定的电流Id和Iq

通过这两层变换之后,我们再来控制电流矢量的大小就简单得多了,而控制了电流就等于控制了转矩。

下面这张图是FOC矢量控制的基本框图:

FOC控制的步骤如下:

采集无刷电机的三相电流Ia、Ib、Ic;

进行Clarke变换,计算出电流Iα、Iβ;

进行Park变换,计算出电流Iq、Id(这一步需要用到转子的角度信息);

依据特定的控制策略,来调节Iq、Id的大小,图中使用的是PID控制(只用了PI);

PID控制器的输出,是电压Vq、Vd(旋转坐标系下的电压),因为控制电压也就控制了通过电机的电流;

再通过Park反变换,把Vq和Vd变换为静止的直角坐标系下的Vα、Vβ(这一步也需要转子角度信息);

再用SVPWM方法来实现Vα、Vβ的输出,驱动三相全桥;

注意上面步骤中这个“特定的控制策略”,一种最容易想到的方法是使得Id = 0,控制Iq的大小去控制转矩,这样效率最高,也是最常见的一种FOC控制方法。

除了Id = 0策略,还有多种控制策略,如:单位电流电磁转矩最大控制、弱磁控制、最大输出功率控制,等等多种控制方法,有兴趣可以自行钻研。

c)SVPWM实现

FOC的基本框图中,SVPWM是控制中重要的一步,它把Vα、Vβ两相正交的电压矢量变换成了三相全桥的控制量。它是如何工作的呢?

如下图的三相全桥,每个桥臂同一时刻上、下管只能导通一个:

我们将上管导通记为1,下管导通记为0,那么各种导通情况下共有8种导通组合,可产生的电压矢量U0~U7如下图所示:

除去000和111两种电压矢量为0的情况,可以输出U1~U6六种电压矢量。这六个电压矢量把平面分成了六个区,平面内的任一电压矢量,都可以通过它所处区间两边的两个电压矢量来合成。

具体来说,可以分为两步:先确定在哪个扇区,再确定各矢量的大小。如下图:

假定要产生的电压矢量为Uref,Vα、Vβ是两个正交轴上的投影,首先可以通过Vα、Vβ的正负以及大小确定Uref处于哪个扇区。

如上图,则处于U4和U6之间,那么就可以用U4和U6两个矢量来合成Uref矢量。

我们可以通过角度θ,来计算Uref在U4和U6两个方向上投影的比例大小,再依据这个比例去设置一个周期T内输出U4和U6电压矢量的时间,就能保证输出的矢量方向与Uref相同;同时,使用PWM脉宽调制来控制电压的大小。这样,我们就可以通过U4和U6来合成Uref电压矢量了。

假如U4导通时间为T4,U6导通时间为T6,则T4和T6的比例大小如下(T为一个控制周期,m是SVPWM的调制系数,m=√3*Uref/Udc):

一种划分各段实际的方法是,在一个周期中,把时间分成如下几个片段(实际切换7次状态,通常称为7段式):

在T0时桥臂导通000,T4时间导通100,T6时间导通110,T7时间导通111,这样在一整个周期中,通过控制T4和T6时间的大小,可以控制合成电压矢量的方向,通过控制PWM波的占空比可以控制合成电压矢量的大小,我们的输出就与Uref一致了。

另外,注意T0时间段和T7时间段,都是输出0矢量。在非零矢量中间插入零矢量的输出,主要是为了降低谐波分量。选择000矢量还是111矢量,要看合成电压在哪个扇区,哪一种切换的状态变化最少。

除了上面的7段式,也有5段式控制,如下图所示:

d)双环、三环控制

上面已经把FOC最基本的几个模块讲完了,但是只讲了如何控制电机的电流,使得电机平稳转动。实际上,在电机的控制系统中,我们还希望能控制电机的转速、位置等等。

在b)节中出现的FOC基本的框图,只控制了电流,并没有对电机的转速、位置进行控制,所以称为电流环控制:

当我们在上述系统中,增加转速控制的PI环节后,变成了如下框图形式,双环控制:

当我们在上述系统中,再增加位置控制的P环节后,变成了如下框图形式,三环控制:

在实际使用中有时候电机的转速很低时,角速度ω的测量不精确,系统中的速度环会带来较大误差。此时可以不用速度环,而只用位置和电流双环控制:

(注意这里的位置环用上了完整的PID环节,是因为位置的微分就是速度,引入微分环节可以在不使用速度误差的情况下改善速度控制)

好了,关于无刷电机FOC矢量控制的入门知识,就讲到这里了。

如果觉得有用可以关注作者微 信公 众 号,有更多内容分享,在公众号也可以找到代码和资料下载地址:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大二Web课程设计】基于HTML+CSS技术制作抗疫感动专题网页设计

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Vue2 带纵向合并的原生表格实现切割侧栏分页

文章目录前言一、目标效果二、失败方案三、正确方案四、解决正确方案中的一个Bug总结前言 前端表格分页. 带纵向合并的表格, 到达固定行数强制分页, 截断本页纵向合并, 在下页展示该纵向列的剩余部分, 代码多为前端数据处理, 所以仅提供思路. 这并不难, 你可以直接看第三节. 一…

嵌入式系统-开关机测试笔记

在嵌入式系统中,产品在出厂前需要对开发板的开关机进行测试,用于验证产品在大量次数的开关机过程中是否出现异常.实现方法如下: 1.电源准备 我们不可能完全人工操作,太耽误时间和效率.在这里我选用了一款稳压源GW INSTEK GPD 3303这款产品支持串口编程控制,花了一些时间编写了…

智能车图像处理去畸变+逆透视教程

逆透视请参考:智能车逆透视教程(含上位机、源码)_LoseHu的博客-CSDN博客 去畸变请参考:智能车去畸变教程(含上位机、源码)_LoseHu的博客-CSDN博客 逆透视去畸变:如下 1.简介 在前两个博文中已经分别说明了单独去畸变、逆透视的方法。为了同…

web前端进阶之一些动画

1.字体图标的基本使用 首先下载iconfont文件夹&#xff0c;用link标签引入&#xff0c;使用如下&#xff1a; <i class"iconfont icon-favorites-fill green"></i> //改样式的话使用iconfont或者使用 .green(自己设置的类名) .iconfont {font-size: 60…

React.memo 和 useMemo 的使用

文章の目录问题背景useMemo 进行优化React.memo 进行优化props的值是基本类型props的值是引用类型写在最后问题背景 大家在使用 React 框架进行开发时一定遇到过以下问题&#xff1a; 当函数式组件中的某一状态改变&#xff0c;整个组件刷新&#xff0c;重新渲染在类组件中 s…

解决虚拟机下 “Linux和Windows之间复制粘贴” 的问题

大家在安装完虚拟机后&#xff0c;其实很多东西都还是要跟Windows打交道的&#xff0c;比如像Linux下某个软件的环境配置&#xff0c;你在Linux下遇到种种问题&#xff0c;这时你已习惯回到Windows下&#xff0c;默默的打开了“一亿名程序员都在用的CSDN平台”&#xff0c;找到…

腾讯疯狂招人,肝完自动化测试这关,20k+妥了

前言 对于程序员来说&#xff0c;BAT 为首的一线互联网公司肯定是自己的心仪对象&#xff0c;毕竟能到这些大厂工作&#xff0c;不仅薪资高待遇好&#xff0c;而且能力技术都能够得到提升&#xff0c;最关键的是还能够给自己镀上一层金&#xff0c;让人瞻仰。 最近很多同行群…

测试开发工程师到底是做什么的?

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

本地电脑搭建SFTP服务器,并实现公网访问

1. 搭建SFTP服务器 1.1 下载 freesshd 服务器软件 下载地址&#xff1a;freeSSHd and freeFTPd image_1gbuejept12741719ta61ubn8ej9.png-63.1kB 选择freeFTPD.exe下载 下载后&#xff0c;点击安装 image_1gbueks891c258ee2o315kmf9m.png-57.7kB 安装之后&#xff0c;它会提…

Reactor反应器模式

单线程Reactor反应器模式 在事件驱动模式中&#xff0c;当有事件触发时&#xff0c;事件源会将事件dispatch分发到handler处理器进行事件处理。反应器模式中的反应器角色&#xff0c;类似于事件驱动模式中的dispatcher事件分发器角色。 在反应器模式中&#xff0c;有Reactor反…

企业进行高质量数据管理,实施数据治理的关键是什么?

随着数据通过各种方式创造了巨大价值&#xff0c;各领域的企业开始不断挖掘数据的作用&#xff0c;数据的重要性得到了社会各界的共同认可。像我们熟知的数据治理、数据管理、数据标准以及数据资产都是因为数据地位不断提升&#xff0c;企业开始重视起数据全生命周期流程&#…

SpringBoot笔记(一)核心内容

官网&#xff1a;https://spring.io/projects/spring-boot Spring Boot可以轻松创建独立的、基于Spring的生产级应用程序&#xff0c;它可以让你“运行即可”。大多数Spring Boot应用程序只需要少量的Spring配置。 SpringBoot功能&#xff1a; 创建独立的Spring应用程序直接嵌…

2022.11.1 固体物理

Drude Model 原子由原子核和核外电子组成 我们首先看一下不同材料的自由电子密度 知道原子数目基本就知道了核外电子的数目 如果是单位体积内的&#xff0c;知道密度&#xff0c;我们就可以知道质量&#xff0c;根据摩尔质量和阿伏伽德罗常数&#xff0c;我们就可以知道原子…

网络层——IP协议

网络层 网络层概述 网络层主要考虑数据传输的路上问题&#xff0c;在复杂的网络环境中确定一个合适的路径。 网络层设计要尽量简单&#xff0c;向上层只提供简单灵活的、无连接的、不保证可靠性的数据报服务。网络层不提供服务质量的承诺&#xff01; IP 数据报的格式 如何分…

计算机网络---第四章网络层---ipv4---选择题

9# 1IPV4在第一个4B&#xff0c;5678位。当它为0101时&#xff0c;表示首部长度为5420B&#xff0c;这也是最常见的。当它为1111时&#xff0c;表示首部长度为15460B&#xff0c;此时加上了可选字段40B 2协议字段在第三个4B的9到16位&#xff0c;表示IP的上层协议&#xff0c;…

聚观早报 | 吉利汽车拟将极氪独立上市;比亚迪斥资近50亿元造船

今日要闻&#xff1a;吉利汽车拟将极氪独立上市&#xff1b;比亚迪斥资近50亿元造船&#xff1b;华硕开设首个AI智能工厂&#xff1b;升级款Mac将于明年3月推出&#xff1b;世界互联网大会将于11月9日举行吉利汽车拟将极氪独立上市 10 月 31 日消息&#xff0c;吉利汽车午间在港…

个人设计web前端大作业——HTML+CSS华为官网首页

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

【Java 数据结构】顺序表

篮球哥温馨提示&#xff1a;编程的同时不要忘记锻炼哦&#xff01;我们不过是普通人&#xff0c;只不过在彼此眼中闪闪发光 目录 1、什么是顺序表&#xff1f; 2、模拟实现ArrayList 2.1 模拟实现前的约定 2.2 构造方法 2.3 add方法 2.4 contains 方法 2.5 indexOf 方法…

Python量化初学者入门必备,如何入门Python量化交易?

前言 量化可以简单分为数据管理、策略分析和策略执行三个模块&#xff0c;数据是基础&#xff0c;策略分析是核心&#xff0c;其中策略自动化执行&#xff08;算法交易&#xff09;在国内由于政策限制实施起来比较麻烦。&#xff08;文末送福利&#xff09; 从Python的角度看…