FOC控制之小A小B小C是如何追求小D的

news/2024/5/7 8:56:01/文章来源:https://blog.csdn.net/weixin_43056212/article/details/128205831

1、写在前面

随着电动汽车的热火,关于FOC控制技术的文章这几年在网络上可谓是一搜一大把,各种理论分析,公式推导,应有尽有。通过这些文章,可以看出大佬还是很多的。另外也有FOC的开源硬件。而在大几年前,第一次做这种项目的时候,想找个开源硬件参考下代码,搜遍了全球最大的同性交友网站(github),也没有找到。只找到一些开环的VF控制的。

而大几年前关于FOC控制技术,是各个芯片公司的独家秘笈。一般是不外传的,只对合作方开放。比如TI的电机控制库,ST的motor control workbench3.0 4.0啥的,英飞凌也有,现在想不起来是什么了,特别是ST的库,以及ST举办的开发者技术交流论坛,流传的一个PPT,是众多电机开发者入门的宝典,包括我个人。在此也要感谢ST,现在用的国产芯片,他们电机库我看了一遍,有一种直觉,这就是ST的复刻版啊。

再写一篇理论性的文章,我个人觉得完全没有必要,一方面是网络上确实是太多了,多我一篇不多,少我一篇不少。另一方面,写这种文章比较耗费精力,画图,列公式,推导,写这种理论文章的意义就是自己再复习一遍。所以这里就不写了。就把一些优质资源列出来供大家参考,意义更大一些。

ABC是电机的三相,Q是力矩,D是磁链。

2、FOC的一些概念

2.1、BLDC和PMSM

关于电机,很多人开始的时候容易搞混BLDC和PMSM的概念,本质上这两种电机其实从结构形式上是一样的。唯一的区别是转子上的磁钢,一个是方波一个是正弦波。再准确点的讲,BLDC一般是用多块磁钢贴在转子上,这就导致了磁场是不连续的,形成了方波磁场。而PMSM的转子磁钢是一个整体圆环,充磁的时候径向正弦波充磁,充出我们需要的极对数。下图这种就是典型的BLDC。
在这里插入图片描述

大家看了很多文章,知道PMSM的转矩波动小,BLDC的转矩波动大。而决定这个转矩波动的就是充磁方式和磁钢安装方式决定的。通过几种方式我们可以轻易的分别这两种电机。一个是用手去转转子,感受齿槽效应,很小,甚至感受不到的一般都是PMSM,最稳妥的办法就是直接拿示波器测量旋转反电动势。反电动势波形是正弦波的就是PMSM,方波的就是BLDC。

FOC是一种矢量控制算法,这两种电机都可以控制,从我的实践看来,BLDC转起来会有轻微顿感,而PMSM是非常顺滑的。

2.2、控制流程

2.2.1 、从有刷电机到六步换向到FOC

我们知道一个直流有刷电机,给他通一个电他就开始转起来了,电压越高转的越快。小时候拆过玩具里面马达的都可以看到,这种电机后面是有一个碳刷换向器的,当然了,我们拆的那种就是两个铁片,没有碳刷。其实我们这种控制方式就是电流控制。如果用PWM调制一个电压来控制有刷直流电机,就可以轻松的改变电机旋转速度。

而三根线的这种无刷电机,直接这样通电,电机是不会转的,你给其中两根线通电,电机会卡死在某一个位置。你如果不断电的话,电机就会发热,最后可能烧毁。这个时候你再换两根线通电,电机会卡在另外一个位子,你再换两根线,电机又换一个位子,你如果速度足够快的去换着通电,电机就会按照你这个足够快的速度转起来,这就是6步换向控制。这是几年前大多数BLDC的控制方式。而实际控制过程中换向点需要比较准确,所以还要检测反向电动势过了中点。如果这个电机是一对级的,换一次相,那么电机走60度,六步换向刚好360度。那么在这个60度之间,我如果想让电机走15度或者走5度怎么办呢。通过六步换向这种方式明显是做不到了,这个时候我们就要用FOC控制了。FOC的中文翻译就是磁场向量控制。我们用一个很浅显的方式来理解他。如下图所示,如果A使出全部的力量,那么转子就转到A的位置,B使出全部力量,那么转子就靠在B的位子,如果A使出一半的力,B使出一半的力,那么转子就停在A和B的中间。这就好比,小A和小B一起追求小D,假设小D的人品有问题,小A发力的时候,小D就靠近小A,小B发力的时候,小D就靠近小B,而小A和小B一起发力,且势均力敌,小D就游走中间。这样的话,控制好小A和小B的发力尺度,通过三角函数,我们就能算出小D游走在哪个位子。如果小D走到了小B和小C的区间,那么小D就会受到小B和小C的拉扯了。这就是FOC控制的精髓。这样的话,我们就可以控制转子运动到任何一个地方了。
在这里插入图片描述

2.2.2、如何做到FOC

如何轻松控制小A和小B的发力程度呢,电机三根线,究竟该如何控制呢。上世纪七十年代,西门子公司的工程师Blaschke发表了一篇论文,如下所示:

在这里插入图片描述

巧妙的把三根电机线的控制等效成类似于有刷电机的两根线控制。那么具体是如何等效的,其实初中的知识就可以做到了。就是一个clark变换。如下图所示,Ia,Ib,Ic转换到α和β的直角坐标系。
在这里插入图片描述

Iα 等于Ia减去Ib和Ic在α轴上的分量,Ib乘以cosθ就是Ib在阿尔法轴上的投影。所以:
Iα=Ia−cosθ∗Ib−cosθ∗IcIα = Ia - cosθ*Ib - cosθ*Ic Iα=IacosθIbcosθIc
而θ很明显是60度。同理可以得到:
Iβ=sinθ∗Ib−sinθ∗IcIβ = sinθ*Ib-sinθ*Ic Iβ=sinθIbsinθIc

写成矩阵形式就是:

在这里插入图片描述

为什么要写成矩阵形式?是不是有病,装高深,其实并不是,因为转成两个控制量,是方便了我们进行控制,但是最后还是要去控制实实在在的三根线啊,所以最后还要再转回去。一个向量乘以一个矩阵变成另一个向量,那么再变回去,我们就用另一个向量乘以这个向量的逆矩阵(线性代数)。这样就不用我们再傻不拉几的反着推导了。现在这个αβ坐标系是个静止的,我们要让他转起来,所以我们要把他变成旋转的坐标DQ坐标。如下图(借用了稚晖君的图,参考文献会给出稚晖君的链接)所示,如何旋转呢,三角函数大法继续,这个转换就是park变换。

在这里插入图片描述

公式如下:

在这里插入图片描述

这个θ角度,可以通过编码器得到,或者反电动势估算,所以,这个θ角其实是已知的。这个时候,我们发现只要我们给Id和Iq一个值,然后给一个θ角度,然后反park变换,是不是我们就可以得到Ia,Ib,Ic三个控制量的值了。这就是FOC控制的核心思想和核心公式。

2.2.3、到底如何控制那三根线

看看FOC的经典控制过程图:

在这里插入图片描述

我们可以看到后面有一个SVPWM,这是个什么东西,其实这个SVPWM,是一个反clark变换器,同时也是一个pwm的调制器,先了解下pwm调制,占空比大,电压就大,占空比小电压就小。如下图所示,通过调节PWM的占空比,我们是不是就可以得到一个正弦波。你用示波器去测量电机的三个线,你会发现,里面其实就是这种波形。当然了,没有负半轴,这里的负半轴是为了方便理解。
在这里插入图片描述

为了方便理解,我们取某一个时刻来看,这个时刻ABC三根线的电压是不变的,也就是小A和小B还有小C,他们之间的发力关系是不变的,这个时候小Q在那个θ角的位置。我们现在要让小Q在360°均匀游走,雨露均沾,我们就给Iq一个值,并且把对应的θ角实时的反馈到变换公式里,这样,小Q就会转起来。我们给的这个Iq值越大,小Q就转的越快。

SVPWM一句话来概括,就是根据Uα,Uβ(电流到电压是线性的)产生脉宽调制波形送给电机,而小A和小B具体发力的多少,其实是用时间来划分的,在单位时间内,小A作用时间长,那么小A做的功就多,伏秒平衡原则。具体参考下面这篇文章。涉及到互补性PWM,全桥控制电路等。

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

2.2.4、总结

到这里,大概了解了FOC是怎么一回事,明白了做这个算法的目的。更多的理论知识可以参考下面的文档。

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

稚晖君深入浅出,讲的非常清楚。

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

一只臭皮球,这个网页也讲的很全面,同事在网上进行检索,还有很多相关的文章。

3、写在后面

理论知识过一遍,肯定还是模模糊糊的,毕竟理论要结合实际,在实际调试的过程中,你可能会碰到电机不转,发热,电流采样噪声大,电机转起来里面滋滋响,电压总线上谐波很大,电机转起来不均匀、载波频率上不去、控制范围越界等各种问题。有问题是好事,弄清楚一个问题,你对FOC的理解就会又深入了一点。

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

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

相关文章

奋勇拼搏绿茵场,永不言败足球魂——2022卡塔尔世界杯纪念

“我从来都不惧怕压力,老实说,我享受这种压力。”——C罗 第一部分:🇶🇦卡塔尔世界杯 2022年卡塔尔世界杯(英语:FIFA World Cup Qatar 2022)是第二十二届世界杯足球赛,是历史上首次在卡塔尔和中…

【信号处理】构建直接序列扩频系统模型(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

听话的苹果-第11届蓝桥杯Scratch选拔赛真题精选

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第96讲。 蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选…

c++还原简单的vector

文章目录vectorvecotor的介绍vector的模拟实现类的框架成员变量迭代器构造函数析构函数size()capacity()operator[]重载扩容resize()尾插验证是否为空尾删clear 清除swap交换insert插入erase删除迭代器区间初始化构造函数拷贝构造赋值运算符重载n个val构造函数再谈构造函数vect…

m基于遗传优化的复杂工序调度matlab仿真,输出甘特图和优化收敛图

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 遗传算法 (Genetic Algorithm,GA) 是一种基于规律进化的随机优化搜索算法,该算法最早是由Holland在1975年提出的。遗传算法的主要优势是通过对目标对象进行优化操作&#…

三面:请设计一个虚拟DOM算法吧

一、问题剖析 这不是前几天面试官开局面试官就让我设计一个路由,二面过了,结果今天来个三面。 问你道简单的送分题:设计一个虚拟DOM算法? 好家伙,来吧,先进行问题剖析,谁让我们是卑微的打工人…

数据存储,详细讲解

✨数据存储,详细讲解💜数据类型的介绍:💙整形的内存存储大小端介绍:💛浮点数的存储💜数据类型的介绍: 1.内置类型: char //字符数据类型(1&#xff…

POI在指定excel插入行java

我想在第三行&#xff0c;插入数据库的数据&#xff0c;这里假如数据库有10条&#xff0c;并且继承第二行的格式 数据库数据 {"clark",25}&#xff0c;我写个json对象&#xff0c;10条这个 造数据代码 JSONArray jsonArray new JSONArray();for (int i 0; i <…

Azkaban登录分析

分析意义:目前azkaban采用的是azkaban-users.xml配置文件的方式,配置登录用户。如果公司需要二次开发,增加安全性和便捷性,想从数据库取值呢,该如何着手开发呢?本文分析登录过程,便于进行azkaban的二次登录开发。 1、登录请求地址,请求方式和参数 请求地址:http://x…

计讯物联数字乡村解决方案全力助推三农信息化建设

​2020年&#xff0c;中央网信办等七部门联合印发《关于开展国家数字乡村试点工作的通知》。《通知》提出&#xff0c;做好数字乡村发展整体规划设计&#xff0c;统筹推进乡村的新型基础设施、数字经济、数字农业农村、农村科技创新、乡村数字治理、信息惠民服务等建设和发展。…

TF卡格式化了怎么办?tf卡数据恢复,看这3个方法

现在手机存储卡都很普及&#xff0c;TF卡是最常见的存储卡之一。但是你知道吗&#xff1f;TF卡也会有问题&#xff0c;比如出现误删数据&#xff0c;或者把数据格式化。因为手机内存有限&#xff0c;我们经常会把 TF卡设置为默认的最大空间&#xff0c;这样就可能会出现存储空间…

中国书画院院士、著名画家——戴友

戴友 戴友 中国书画院院士、著名画家 广州美术学院国画系毕业的专业画家 师从著名国画大家关山月、黎雄才、方楚雄、周波 艺术简介 戴友&#xff0c;著名画家、中国书画院院士。1960年生于广东&#xff0c;江苏省溧阳市人&#xff0c;汉族。自幼自学绘画&#xff0c;1991年…

DolphinDB 诚挚招募实施伙伴

随着 DolphinDB 业务发展&#xff0c;为满足迅速增长的客户需求&#xff0c;我们现正式启动“实施伙伴招募计划”。DolphinDB 客户已经涵盖7家Top 10券商、头部公募及私募基金、知名银行、交易所、世界500强制造业客户、标杆能源企业等&#xff0c;我们非常期待和欢迎实施伙伴们…

【C语言程序设计】实验 3

目录 1. 水仙花数 2. 五位回文数 3. 输入x&#xff0c;计算y 4. 百分制改为等级制 5. 同构数 6. 月份天数 7. 加一天后日期&#xff08;条件&#xff09; 8. 计算服装款&#xff08;条件&#xff09; 1. 水仙花数 【问题描述】输入一个3位正整数&#xff0c;判断该…

精彩数据:2021年我国民旅客周转量6530亿公里,审定受理飞机2803架

2021年是特殊的一年&#xff0c;全体民航成员在努力克服疫情防控、经营亏损、安全压力等困难交织叠加的影响下&#xff0c;切实的推动了民航的高质量发展&#xff0c;再各项工作上都取得了较好的成绩。下面是小编使用可视化互动平台对民航发展统计报告进行报表数据处理分析后得…

Word控件Spire.Doc 【图像形状】教程(12) 如何在C#中旋转word文档上的形状

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

C#学习记录——.NET Framework的组成及C#程序的执行过程

『好好学习&#xff0c;天天向上。』—— 毛主席语录 .NET Framework的组成 .NET Framework 是由微软公司推出的一种完全面向对象的软件开发平台&#xff0c;它主要由两个组件构成&#xff0c;分别为公共语言运行库&#xff08;CLR&#xff09;和.NET Framework类库&#xff…

深度学习-第P1周——实现mnist手写数字识别

深度学习-第P1周——实现mnist手写数字识深度学习-第P1周——实现mnist手写数字识一、前言二、我的环境三、前期工作1、导入依赖项并设置GPU2、导入数据集3、数据可视化四、构建简单的CNN网络五、训练模型1、设置超参数2、编写训练函数3、编写测试函数4、正式训练六、结果可视化…

机器学习与深度学习的基本概念

目录 机器学习是什么&#xff1f; 机器学习的任务 回归Regression 分类Classification 创造学习Structed Learing 机器学习怎么找这个函数 定义含未知参数的函数 定义loss损失函数 定义优化器optimization 写出一个更复杂的有未知参数的函数 sigmoid 基本推理过程 si…

一套Altair Feko复杂结构模型散射和天线辐射仿真建模攻略

导读&#xff1a;Feko软件广泛应用于电磁散射、电磁辐射仿真&#xff0c;例如&#xff1a;天线、天线布局、天线罩、屏蔽效能、电磁散射、频选结构、线束EMC等方面。问题种类繁多&#xff0c;但是无论仿真哪一类问题&#xff0c;其仿真流程是相同的&#xff0c;我们只需掌握了这…