首页 > 编程知识 正文

伺服电机foc算法(foc全称)

时间:2023-05-04 15:08:55 阅读:76886 作者:3282

谈谈最近学FOC的事,这篇文章不深。 仅作为入门百叶窗使用

注:其中有在网上找的照片和自己制作的照片。 请拿着图填写出处。 谢谢你。 我是第一次在csdn上写文章,如果格式和文章内容有什么问题的话请指出来

在本文目录中,我最近对FOC所学的理解是什么,FOC1.FOC2.FOC能用于什么,有什么好处,1 .旋转无刷电机,1 .理论推导,2 .实现电气,2 .输入电流

FOC 1.FOC驱动BLDC或PMSM电机的算法是指能够准确控制电机,且能够使电机在极低的转速下保持转矩和稳定性

2.FOC能用于什么,有什么好处?机器人关节(FOC控制下的无刷电机不像舵机关节那么僵硬,接近生物关节,有弹性) )。

无人机(FOC调速的无人机电机比普通电调速的无人机电机更平滑稳定,可以快速调整到突发情况) )。

云台(FOC调速下无刷电机的实时响应更快,变得过平滑) ) ) ) ) )。

.

一、旋转无刷电机1 .理论推导首先,我们知道电流产生磁场时,磁场和磁场之间会吸引或排斥力! 有力量的话就可以启动马达。

在这里,你只需要知道力和磁场是正相关的; 力与距离负相关; 电流与磁场正相关即可

让我们做一个简单的模型:

此时,磁铁1号、2号产生的磁力相互平衡,系统整体处于稳定的状态

现在按住1号磁铁,使2号磁铁绕电动机轴心成角度旋转。 这时,由于我们破坏了受力的平衡,两个磁铁产生的力不在一条直线上,产生了与电机半径方向垂直的力。

这个力使马达旋转! 整个系统再次旋转到保持平衡的位置。

现在,让2号磁铁绕轴心旋转一下。 2号磁铁和轴心之间的距离在时间轴上的投影根据弦状曲线变化。

现在,让我们用通电线圈代替2磁铁来分析一下:

据上面介绍,由于1号磁铁的磁力随着2号磁铁起作用,所以起作用的重要因素是磁力,通电线圈产生的磁力矢量和2号磁力矢量相同即可,是围绕轴心形成均匀圆的一定力。 因为上述磁力与磁场正相关,与距离负相关。 2号磁铁与轴心之间的距离在时间轴上的投影随着弦状曲线而变化,为了使力恒定以抵消该变化,磁场在时间轴上的投影也必须随着弦状曲线而变化。

另外,由于电流与磁场呈正相关关系,当一个线圈中流过转换为弦状的电流时,产生的磁力矢量进行等速圆运动,另一个磁铁绕其进行等速圆运动。

我们的无刷电机有三根线,所以三块相互相差120的磁铁扩展到围绕中间磁铁旋转。

为什么彼此相差120,是因为一周360。 为了取得受力的平衡,应该把360分成三等分

我们的波形变成三个相互相差120的弦波。

经过120时间后,第二个磁铁到达前一个磁铁所在的位置,因此是相互相差120的弦波

这里以担心的池塘为例。

为什么以担心的池子为例,你没有注意到我们教科书中x轴方向一般是余弦?

我们根据无刷电机的结构,将外环转子改变为几个固定磁铁,将内环定子改变为能够产生几个磁场的通电线圈——,从而向定子输入三相余弦交流电力,定子线圈产生的磁场产生的磁力矢量进行等速圆运动,从而

2 .电的实现首先介绍PWM、SPWM、SVPWM

不用说PWM,脉宽调制技术通过占空比控制电压的输出值:

另一方面,SPWM用PWM的方法生成正弦曲线,选择正弦曲线上的很多点。 各点的电压值是根据PWM调节不同的占空比而生成的,取越多的点,曲线越平滑。

另一方面,SVPWM与电机紧密接触,SVPWM比SPWM多进了一步,直接着眼于电流,考虑要使电流成为正弦曲线时电压如何变化

因为电流的大小直接决定磁场的大小

现在,让我们写一下输入电机的电流和电压的关系。

如上所述,如果带入余弦电流,则如下。

整理:

现在,我们知道了当电流沿着余弦曲线变化时,电压是如何变化的。 用PWM直接生成目标电压波形就可以了。 因为电机是大功率元件,所以不能直接从MCU供电。 因此,为了间接控制电机接线,连接了MOS管。

一位同学说:“那我用三个MOS就行了吗? 询问了“每个MOS控制一相不就行了吗?” 很好,但这是浪费能源。 通过控制各相的电压并用其他两相回收,可以更有效地利用能量

二、为了简化输入电流,我们在转动电机上用了这么麻烦的三相担心的水池。 我们现在要控制这台电机的时候,傻了。 这三相电怎么看都不规则。 我们能把它变成两相角度差为90的弦波吗? 这减少了一个控制对象,也不需要考虑120的角度,更重要的是我可以把直接变换后的模型作为平面直角坐标系来看。 答案是“能行”。

让我们受力分析,使一个方向的力垂直于坐标轴,其他两个力被分解。

于是:

其中:

设m为电流最大值

在图的作用下被分解了:

带入

,计算:

最终得到α与β的值,至此我们成功把3个方向的力变成2个垂直方向的力,把三相电变成了两相电,相角差90°。这就是Clark变换!
于是,我们的电机模型就变成了这样:

三、如何控制电机

首先我们先明确几点
上面有说电流与磁场成正相关,磁场与力成正相关,那么电流就与力成正相关,所以力矩的大小就只和电流大小有关。
而对于所有电机而言,转子受力直接影响转速这里有一个误区,就是认为无刷电机的转速是直接与三相弦波的频率有关的,但试想没有力电机怎么转动,更谈何速度。这里可能又有些同学就说了:“我们高中物理讲匀速直线运动是不需要力也可以一直保持速度的。”拜托,大哥,这里是地球,你说那种得是在宇宙中才能实现。但是的确可以认为弦波频率和电机速度是间接相关的,电流的变化频率映射为力的变化频率从而影响转速,但是频率却不能绝对影响电机的转速

最后电机的位置(角度)取决于转速,说白了我想让电机转动到的位置不就是电机的初始位置加上转速(角速度)乘时间嘛。
所以我们要控制好一个无刷电机首先要控制它的电流大小来控制力矩,其次要控制它电流的频率来映射力的变化进而控制速度,最后我们要控制它速度的持续时间来控制位置。
这其中会有很多影响因素,比如摩擦力啊,空气阻力啊,重力啊,负载啊,我们在不能明确影响因素的具体数值时,就要用到我们的控制算法通过闭环来消除这些影响因素:foc中常用的是PID算法。
当然在这一切开始之前,我们首先得解决当我们用6个MOS管来生成3相电时,我们这6个MOS的通断该如何变化。这就涉及到一个问题:电机的扇区。

1.电机扇区

扇区是判断6个MOS的导通状态的并不是判断电机位置的,电机位置在有感FOC中仅由传感器提供,并且是用这个电角度值来判断扇区位置的,不要搞反了

我们把之前α和β的值带入欧拉公式:

我们这里为了方便看把整个坐标系旋转60°

最终我们看到由三相电所产生的力的向量 合成的向量在绕原点做匀速圆周运动:
我们给这个合成的向量取个名字就叫做主向量吧

在这张动图里我们能发现几个特殊的位置:

这6个位置中主向量都恰好由三个力向量中的两个大小相等的分向量组成,第3 个分向量在此刻的值恰好为0,我们把这6种位置状态放到同一个图中:

把这6个特殊位置附近都划定出一个区域,区域大小为360°/6=60°
按照这张图把电机转的一圈分成6个区域:

区域与区域的边界恰好由另外6 个临界位置构成:

这6个位置就决定控制电机3相电的6个MOS管的不同开关状态:


设图像在横坐标轴之上为1状态,为上MOS导通;在x轴之下为0状态,为下MOS导通,这样就组成了6个MOS管的6种开关状态:

我们单扥出来一个区域,选取这个区域内的一个主向量的位置:


我们的A,B,C向量有2种路径,一条为图示红线,一条为图示蓝线。
如果按红色路径走MOS管发热量少,MCU不需要太多计算,但是波形不够准确
如果按蓝色路径走MOS管发热量大,MCU需要很多的计算,但是波形比较准确
这里就看我们如何取舍,实际问题实际分析,比较流行的是一个扇区内走红色路径,与它相邻的扇区内走蓝色路径,两两互相隔开。

这里的详细讲解请参考michaelf这位大佬的这篇文章:【SVPWM分析、各个扇区详细计算以及Matlab仿真】上面有几张图也是出自这篇文章。

2.电机控制

我们在控制电机之前意识到一个问题,由于Iα和Iβ仍为正弦变化量,但是PID算法最适合控制的是线性系统,所以我们换一个坐标系,我们把垂直于主向量的称为q轴(力矩分量);与主向量重合的称为d轴(励磁分量):


最终我们把一个静止坐标系α,β换成了一个和主向量同角速度的旋转坐标系d,q,使得正弦分量变成了阶跃分量(线性),就可以由PID进行控制了。
我们再回到dq坐标系里计算一下dq分量和αβ分量之间的关系:


由图可列:

这就是Park变换
我们通过观察这张图得知力矩分量=0,这不行啊,没有力怎么转动啊?所以实际上建立dq坐标系的时候不是让d轴与主向量完全重合的,而是稍微错开一点。让主向量产生一个q轴分量而得到转动力矩。这个力矩有使d轴和主向量重合的趋势:

最后我们是不是又回到了我们最初建立的电机模型上来:

哦不,放错了,这个:

只不过我们推导了一些变化把它和无刷电机的结构建立了联系,并且知道该控制哪些量来控制无刷电机。

1.电流控制(力矩)

电流环控制的运算最少动态响应最快

我们从头开始捋,输入的量为线性量,因为为了更好的发挥PID的效果,上面说了。我们的线性量只有dq轴的分量Id,Iq。所以我们要把dq变成三相弦波ABC要先经过反Park变换得到Iα,Iβ,再经过反Clark变化成为三相电IA,IB,IC。这里把反Clark模块,扇区封装成了一个模块就叫SVPWM。而我们反馈信号是由传感器得到的电角度值,还有电机电流采样值经过Clark和Park变化得到的Id,Iq误差值组成,这里我们的电流环PID主要用到的就是Id,Iq误差值。
所以框图如下:
这里电流环只用了PI控制

电流控制主要控制的就是电机的力矩


2.速度控制

速度控制主要是通过控制力矩(电流)和传感器返回值形成闭环实现的:


3.位置控制

通过速度控制和电角度值组成闭环:

四、总结

这篇文章基本没用什么专业术语并且运算没用矩阵求解,我喜欢用我自己理解的方式把东西讲出来,有什么错误请读者直接指出,我会及时更正。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。