ST电机库v5.4.4源代码分析(1): FOC原理(结合ST电机库)

这篇具有很好参考价值的文章主要介绍了ST电机库v5.4.4源代码分析(1): FOC原理(结合ST电机库)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

编者:沉尸 (5912129@qq.com)

本文字描述电机FOC的原理性内容,大部分取材于网络,但是我对于某些细节进行了比较详细的描述。因为很多最初的出处链接没有记录下来,所以没有标明,忘谅解!本文字不会用于任何商业行为!

第一章 电流分析

st电机库,ST电机库,人工智能 设计目标:

电流流经三个绕组会产生磁场,我们希望这个磁场的“合力”拉着转子做连续的圆圈运动,且大小可控。显然这个合成的磁场方向和转子的南北极方向垂直时产生的力矩最大。

根据数学理论,如果在三相中分别产生互差120度的相电流正弦波(也可以用相电压来描述),可以获得上述结果。因为电流和磁场的强度成正比,且磁场的南北极和电流方向相同,所以考虑电流就是考虑磁场。

标准三相电流Ia Ib Ic 在空间上互差120 ̊ ,假设Im 为相电流峰值,

Ia  = Im *cos(θ)                                                     (1-1)

Ib  = Im *cos(θ-2π /3)                                           (1-2)

Ic  = Im *cos(θ-4π /3) = Im *cos(θ+2π /3)            (1-3)

注意:上面三个式子公式不能把相位搞错,要很严谨!必须和下面图3中的波形对应起来,否则最后推导出来的矢量和的旋转方向会成问题,某些资料不严谨,将Ib  Ic  相互写反了(和图3相违背),但是在计算矢量和的时候却又按照图3来计算,写成Ib 逆时针转2π /3,将Ic 逆时针转4π /3,这样算出来的合力的方向会有错!

验证互差120° 相位的三相电流是否符合设想:

1)首先这种三相交错正弦波需要符合“基尔霍夫”定律:

Ia  + Ib  + Ic  = 0         

证明:

Ia  + Ib  + Ic  

=  Im *cos(θ) + Im *cos(θ-2π /3) + Im *cos(θ+2π /3)

=  Im *cos(θ) + Im *[cos(θ)*cos(2π /3) + sin(θ)*sin(2π /3)]

+ Im *[cos(θ)*cos(2π /3) - sin(θ)*sin(2π /3)]

=  Im *cos(θ) + 2* Im * cos(θ)*cos(2π /3)  

=  Im *cos(θ) + 2* Im * cos(θ)*(-1/2)

=  0

2 ) 我们希望“合力”是一个绕着原点运动的向量,且大小恒定

st电机库,ST电机库,人工智能

                                              图3                                                图4

st电机库,ST电机库,人工智能

st电机库,ST电机库,人工智能

第二章 Clarke变换之等幅值转换推导

(推导过程参考了:Clark变换及比例系数2/3推导过程_w_乐天的博客-CSDN博客_clark变换)

第2~4章都是描述公式推导,至于为什么要这样转换,看到后面的控制部分自然就会明白,这里提前知道有这样一个数学工具!

st电机库,ST电机库,人工智能

 图5

如上图所示,将a,b,c三轴电流矢量投影到α,β轴上可得

st电机库,ST电机库,人工智能

转换成矩阵如下式,其中系数Kast电机库,ST电机库,人工智能 为三相变两相比例系数, 

st电机库,ST电机库,人工智能

为了保证变换前后的幅值不变,即合成矢量的大小和方向相等。

由式1-4可知当Ka =2/3 时,转换前后幅值相等。

解释:上图5中,红色的圆可以认为是式子(1-4)形成的圆,半径是黑色的圆的1.5倍,黑色的圆半径可以认为是本文开始推导中Im 的大小

这里的等幅显然是和Im 进行等幅,所以需要缩小成2/3

Ka =2/3 及 Ic  = -(Ia+ Ib)代入式2-2中可得:

st电机库,ST电机库,人工智能

 为了让式子2-2中矩阵可逆,引入0 轴(零轴)坐标

st电机库,ST电机库,人工智能

 于是1-7式子可以转换为:

st电机库,ST电机库,人工智能

备注:ST电机库5.4.4源代码对应的数学模型为:

st电机库,ST电机库,人工智能

 所以它对应的Clarke公式为:

st电机库,ST电机库,人工智能

 注意上面式子中有一个“负号”。在看st电机源代码的时候以免疑惑!

第三章Clarke变换之等功率转换推导

(推导过程参考了:克拉克 (Clark) 变换中等幅值 (2/3) 和等功率 (sqrt(2/3)) 变换的公式推导 - 知乎)

在应用中我们一般采取等幅值变换,所以本节仅仅作为数学推导学习用,可以跳过!

首先接着上述的等幅值变换我们用Λ表示转换矩阵,也就是说无论在等幅值变换还是等功率变换下恒存在:

st电机库,ST电机库,人工智能

而三相电压和电流的转换矩阵实际上是相同的,也就是说: 

st电机库,ST电机库,人工智能

 st电机库,ST电机库,人工智能

 st电机库,ST电机库,人工智能

 等功率转换矩阵即为:

st电机库,ST电机库,人工智能

第四章 Park变换和逆变换 

Clarke变换是将三相系统(在 abc 坐标系中)的时域分量转换为正交静止坐标系(αβ)中的两个分量

st电机库,ST电机库,人工智能st电机库,ST电机库,人工智能

                         图4-1 

 st电机库,ST电机库,人工智能

附录:ST电机库5.4.4源代码对应的数学模型如下:

st电机库,ST电机库,人工智能 st电机库,ST电机库,人工智能

 所以它对应的Park转换公式为:

st电机库,ST电机库,人工智能

Q和D分别对应电机的Q轴(交轴)和D轴(直轴),θ就是转子转动的角度,也就是d-q坐标系是始终随着转子进行转动的。

这个操作是可行的,因为我们会通过编码器输入转子的实时旋转角度,所以这个角度始终是一个已知数。经过这一步的变换,我们会发现,一个匀速旋转向量在这个坐标系下变成了一个定值!(因为参考系相对于该向量静止了,Id和Iq相对于D-Q坐标系),这个坐标系下两个控制变量都被线性化了!

在系统中我们就以Iq和Id这两个值作为反馈控制的对象,那么显然就可以使用一些线性控制器来进行控制了,比如PID

 第五章 SVPWM描述

本节主要参考:

SVPWM算法原理及详解_【ql君】qlexcel的博客-CSDN博客_svpwm

FOC控制原理

5.1概述

SVPWM是近年发展的一种比较新颖的控制方法,是由三相功率逆变器的六个功率开关元件组成的特定开关模式产生的脉宽调制波,能够使输出电流波形尽可能接近于理想的正弦波形。空间电压矢量PWM与传统的正弦PWM不同,它是从三相输出电压的整体效果出发,着眼于如何使电机获得理想圆形磁链轨迹。SVPWM技术与SPWM相比较,绕组电流波形的谐波成分小,使得电机转矩脉动降低,旋转磁场更逼近圆形,而且使直流母线电压的利用率有了很大提高,且更易于实现数字化。

通俗化理解:把PMSM想象成两块同心的磁铁,两块磁铁是相吸的,因此当用手拨动外面的磁铁绕组圆心转动时,里面的磁铁也会跟着转动,这其实就是PMSM的本质了。PMSM的转子是永磁铁,定子是绕组,我们用电路控制定子绕组产生旋转的磁场,里面的转子磁铁就会跟着转动,这个磁场的大小最好恒定,不然一会儿大一会儿小,转子受到的牵引力也就一会儿大一会儿小,影响运动性能。好了,现在我们知道电机的本质是什么了。接下来,我们需要一个算法来控制定子绕组的输出,使其产生一个恒定的旋转磁场,这个算法就是SVPWM。

5.2   SVPWM基本原理

要得到一个恒定大小的旋转磁场,可以先来得到一个恒定大小的旋转电压矢量。如下图:

st电机库,ST电机库,人工智能

 从上图可知,我们可以通过互差120度,大小随着时间按正弦规律变化的3个分矢量来合成一个大小不变旋转的总矢量。于是问题又变成了:如何得到大小随着时间按正弦规律变化的3个分矢量呢?我们先回到电机上,其实这3个分矢量就对应了电机的3个绕组,3个绕组就是互差120度的,只要再控制绕组上的电压大小按照正弦规律变化,是不是就可以得到大小不变旋转的总矢量呢?看下面电机定子的坐标系图:

st电机库,ST电机库,人工智能         st电机库,ST电机库,人工智能

图5-2                                                     图5-3 

如果让绕组上的电压大小按照正弦规律变化呢?直接通交流电,就是正弦的呀,可不可以呢?驱动器的控制电路如上右

我们只能控制6个管子的开关而已,看来直接通交流电是不行了。于是我们只能控制PWM的占空比来等效正弦:

st电机库,ST电机库,人工智能

上面图是SPWM的示意图(不是SVPWMSPWM又有很大不同,变频器中基本上运用的是SPWM技术),这里描述原理而已。其实就是占空比越大,电压越大;占空比越小,电压越小。让占空比呈正弦变化,电压值自然也就呈正弦变化了。

我们用公式来表示一下:定义这三个电压空间矢量为UA(t)、UB(t)、UC(t),他们方向始终在各自的轴线上,而大小随时间按正弦规律变化,时间相位上互差120度。假设Umst电机库,ST电机库,人工智能 为相电压的最大值(相电压呈正弦变化),f为电源频率,则有:

 st电机库,ST电机库,人工智能

 st电机库,ST电机库,人工智能

st电机库,ST电机库,人工智能

(图5-6)

 根据Clarke变化,添加一个参数K

st电机库,ST电机库,人工智能

根据不同的需求选择不同的变换,K可以取不同的值。不同的需求如:要求功率不变、要求电压电流幅值不变等。我们这里为了使合成的空间矢量在静止的三相坐标轴上的投影和分矢量相等,取K值为2/3,这也是Clarke变换所采用的系数。

由于逆变器三相桥臂共有6个开关管,为了研究各相上下桥臂不同开关组合时逆变器输出的空间电压矢量,特定义开关函数Sx(x=a、b、c) 为:

st电机库,ST电机库,人工智能

(Sa、Sb、Sc)的全部可能组合共有八个,包括 6个非零矢量U1(001)、U2(010)、U3(011)、U4(100)、U5(101)、U6(110)、和两个零矢量 U0(000)、U7(111)。

下面以其中一种开关组合为例分析,假设Sx(x=a、b、c)=(100),此时等效电路如图:

st电机库,ST电机库,人工智能

图5-6 

 因此相电压可以表示为:(相电压是每相相对于电机中间连接点的电压

st电机库,ST电机库,人工智能

 同理可得,其他开关状态三相的相电压。另外线电压是两相之间的电压差,如:

st电机库,ST电机库,人工智能

前面章节中已经推导,三相相电压矢量与合成矢量的关系如下:

st电机库,ST电机库,人工智能 [下面阴影部分的内容,也是摘录网文,感觉和我们控制的实际情况差异很大,所以略过本理论,但还是节选下来]

st电机库,ST电机库,人工智能

st电机库,ST电机库,人工智能

                                                                                     表5-1

把上面的8个电压空间矢量按照Uout的相位关系放在扇区图中:

st电机库,ST电机库,人工智能

图5-7

上图中,6个非零矢量幅值相同,相邻的矢量间隔60度。两个零矢量幅值为零,位于中心。

我们真正想获得的合成矢量是一个绕着圆心旋转,半径保持固定

如果我们的硬件配置很强悍,可以直接输出三相UVW的正弦波形(比如采用DAC的方式等等),那么就直接根据余弦函数计算出幅值,进行DAC控制即可,可惜我们的硬件无法做到,我们能控制的仅仅只有6个mos管而已,也就是桥电路中的上下臂的控制,那么如何控制呢?

我们需要的合成矢量是一个围绕圆心旋转、幅值(半径)固定的向量,于是转换思路,可以采取两个向量合成的方式,比如上图5-7中,对于第Ⅰ扇区,我们就可以用U4和U6进行合成,因为U4和U6的方向是固定的,但是大小我们却可以通过占空比的方式进行控制,于是就可以进行合成了。

st电机库,ST电机库,人工智能

图5-8

如5-8中所圈出的两个点对应的向量,就是U4和U6

下面开始分析如何控制pwm进行合成:

三相电压给定所合成的电压向量旋转角速度为ω=2πf(即磁场旋转角速度),则旋转一周所需的时间为T=1/ f;若开关管载波频率是 fs ,则频率比为 R=fs / f。这样将电压旋转平面等切割成R个小增量,亦即设定电压向量每次增量的角度是:γ=2π/ R。(注:这里就是把电压向量旋转一周,均分为R份,用来R边形来拟合圆形,同时这也代表了磁场旋转一圈,进行R次运算。因此载波频率越大,转速越小,电压旋转平面越接近圆形,反之,越接近多边形。当然载波频率太高的话,管子的开关损耗就比较大,一般取5K-10K)

这里补充详细描述一下,比如载波频率为10KHz,也就是我们控制uvwpwm波形时的频率,周期为100us,假设向量旋转的频率为100Hz,也就是说马达转速为100/(6000rpm),转一圈时间为10ms,计算R=10KHz/100Hz=100,也就是相当于10ms/100us=100次,也就是转一圈会计算100次。

实际上,软件中我们会固定在每个载波周期都进行一次FOC计算与控制,至于向量旋转1圈计算了多少次,就看向量转圈的周期了。

现在假设需要输出一个空间矢量Uref ,假设它在第Ⅰ扇区,我们先把第Ⅰ扇区单独取出来,然后用和它相邻的两个电压空间矢量来表示它:

 st电机库,ST电机库,人工智能

st电机库,ST电机库,人工智能

得到以U4U6U7U0 合成的Uref 的时间后,接下来就是如何产生实际的脉宽调制波形。在SVPWM 调制方案中,零矢量的选择是最具灵活性的,适当选择零矢量,可最大限度地减少开关次数,尽可能避免在负载电流较大的时刻的开关动作,最大限度地减少开关损耗。因此,我们以减少开关次数为目标,将基本矢量作用顺序的分配原则选定为:在每次开关状态转换时,只改变其中一相的开关状态。并且对零矢量在时间上进行了平均分配,以使产生的 PWM 对称,从而有效地降低 PWM 的谐波分量。可以发现当U4 (100)切换至U0 (000)时,只需改变 A 相上下一对切换开关,若由U4 (100)切换至U7 (111)则需改变 B、C 相上下两对切换开关,增加了一倍的切换损失。因此要改变电压向量U4 (100)、U2 (010)、U1 (001)的大小,需配合零电压向量U0 (000),而要改变U6 (110)、U3  (011)、U5 (101), 需配合零电压向量U7 (111)。这样通过在不同区间内安排不同的开关切换顺序, 就可以获得对称的输出波形,其它各扇区的开关切换顺序如下表所示。

st电机库,ST电机库,人工智能

 因此就可以利用U4U6U7  及U0  的顺序和时间长短的搭配来表示出Uref 了。

    以第Ⅰ扇区为例,其所产生的三相波调制波形在一个载波周期时间Ts 内如下图所示,图中电压向量出现的先后顺序为U0U4U6U7U6U4U0 ,各电压向量的三相波形则与上表中的开关表示符号相对应。在下一个载波周期TsUref 的角度增加一个γ,利用式(5-11)可以重新计算新的T0T4T6  及T7  值,得到新的类似下图的合成三相波形;这样每一个载波周期Ts 就会合成一个新的矢量,随着θ的逐渐增大,Uref 将依序进入第Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ区。在电压向量旋转一周期后,就会产生R个合成矢量。

st电机库,ST电机库,人工智能

图5-9

    因此SVPWM会在每个载波周期进行一次计算。

    通过以上 SVPWM 的法则推导分析可知要实现 SVPWM 信号的实时调制, 首先需要知道参考电压矢量 Uref 所在的区间位置,然后利用所在扇区的相邻两电压矢量和适当的零矢量来合成参考电压矢量。

    控制系统需要输出的矢量电压信号 Uref ,它以某一角频率ω在空间逆时针旋转,当旋转到矢量图的某个60°扇区中时,系统计算该区间所需的基本电压空间矢量,并以此矢量所对应的状态去驱动功率开关元件动作。当控制矢量在空间旋转360°后,逆变器就能输出一个周期的正弦波电压。

Uref 所在的位置

开关切换顺序

波形输出

(0° ≤ θ <60° )

...0-4-6-7-7-6-4-0...

st电机库,ST电机库,人工智能 ​​​​​

II (60° ≤ θ <120° )

...0-2-6-7-7-6-2-0...

st电机库,ST电机库,人工智能

III (120° ≤ θ <180° )

...0-2-3-7-7-3-2-0...

st电机库,ST电机库,人工智能

IV (180° ≤ θ <240° )

...0-1-3-7-7-3-1-0...

st电机库,ST电机库,人工智能

V (240° ≤ θ <300° )

...0-1-5-7-7-5-1-0...

st电机库,ST电机库,人工智能

VI (300° ≤ θ <360° )

...0-4-5-7-7-5-4-0...

st电机库,ST电机库,人工智能

                                                                           表5-3

第六章 SVPWM怎么和FOC算法对接

说完了SVPWM算法,我们来对接FOC算法,框图如下:

st电机库,ST电机库,人工智能

                                                                 图6-1 矢量控制方框图

理解前后关系:FOC的输出是SVPWM的输入,SVPWM输出是三相电压的占空比,也就是最终设置到计时器中的比较寄存器的值。那么FOC输出的是什么呢?这里直接给出结论是Vα Vβ ,这个也与直轴和交轴方向相同的两个电压矢量。

直轴:转子N到S的方向          

交轴:与直轴垂直,维持转子转动的方向,在电机转动的过程中,交轴方向的力是维持转子转动的,而直轴上的力对转动无效果,因此我们应该尽力让其为0。

上图中的第7部分就是SVPWM,其作为FOC最终的执行部分,接收FOC传来的 ,然后通过上面的过程转换成开关管的控制信号,控制定子绕组产生旋转磁场。 

6.1合成矢量Uref 所处扇区N 的判断

    空间矢量调制的第一步是判断由 所决定的空间电压矢量所处的扇区。

假定合成的电压矢量落在第 I 扇区,可知其等价条件如下:

st电机库,ST电机库,人工智能

 st电机库,ST电机库,人工智能

st电机库,ST电机库,人工智能

【备注:上面是原理,对于ST电机库源代码中的判断,又有一些变形,我们后面有专门的的章节详细解读源码】

6.2 基本矢量作用时间计算与三相 PWM 波形的合成

    在传统 SVPWM 算法如式(5-11)中用到了空间角度及三角函数,使得直接计算基本电压矢量作用时间变得十分困难。实际上,只要充分利用st电机库,ST电机库,人工智能st电机库,ST电机库,人工智能  就可以使计算大为简化。

 st电机库,ST电机库,人工智能

我们来分析一下FOC整个控制过程:

  1. 采集ABC三相中的二相(2相即可,第3相可以推导出)
  2. clarke变换生成α β
  3. park变换为d-q坐标系
  4. 进行PI等控制+磁链圆
  5. park重新获得α β

这里到第(5)步后就不要进行什么反克拉克变换之类的了,这里直接可以从α β 相获得pwm波形驱动的数据

下面的理论开始来解决这个问题:

Uref 处在第Ⅰ扇区时进行分析,根据下图有:

st电机库,ST电机库,人工智能

                   图6-2 电压空间向量在第Ⅰ区的合成与分解

Ud 就是Udc ,即母线电压。下式的最后把Ⅰ扇区两边的电压矢量U4 (100)和U6 (110)的Uout 式子带进来了,分别是2/3Ud 和2/3Ud *cos(π /3):

 st电机库,ST电机库,人工智能

st电机库,ST电机库,人工智能 st电机库,ST电机库,人工智能

st电机库,ST电机库,人工智能

 st电机库,ST电机库,人工智能

 st电机库,ST电机库,人工智能

不同扇区比较器的值之分配如下:

st电机库,ST电机库,人工智能

TaTbTc 分别对应三相比较器的值,将这三个值写入相应的比较寄存器,就完成了整个svpwm算法。

taon tbon tcon 的波形呈马鞍形,如下:

 st电机库,ST电机库,人工智能

    图6-5

这个计算出来的时间函数为什么会成马鞍波形?下面章节中会有,虽然是按照相电压进行说明。

第七章  SVPWM 物理含义

SVPWM 实质是一种对在三相正弦波中注入了零序分量的调制波进行规则采样的一种变形 SPWM。但 SVPWM 的调制过程是在空间中实现的,而 SPWM 是在ABC 坐标系下分相实现的; SPWM 的相电压调制波是正弦波,而 SVPWM 没有明确的相电压调制波,是隐含的。为了揭示 SVPWM 与 SPWM 的内在联系,需求出SVPWM 在 ABC 坐标系上的等效调制波方程,也就是将 SVPWM 的隐含调制波显化。

为此,下面开始对其调制波函数进行了详细的推导。 由表格 5-3 我们知道了各扇区的矢量发送顺序:

奇数区依次为: 𝑈0𝑈𝑘𝑈𝑘+1𝑈7𝑈𝑘+1𝑈𝑘𝑈0

偶数区依次为: 𝑈0𝑈𝑘+1𝑈𝑘𝑈7𝑈𝑘𝑈𝑘+1𝑈0

这里的k要理解它的含义,它是扇区序号,𝑈𝑘𝑈𝑘+1对应着这个扇区边缘的两个矢量,kk+1按照逆时针顺序。比如对于第1扇区,𝑈𝑘𝑈𝑘+1就分别对应着图6-3中的𝑈4𝑈6

利用空间电压矢量近似原理,可总结出下式:

st电机库,ST电机库,人工智能

 上式中k对应扇区号,从1开始,上面式子容易推导和理解,具体看上一章节图6-1对应的公式推导;对于第1扇区,去推导一下T4和T6就更清楚了,这里仅仅记录结果。

st电机库,ST电机库,人工智能

图7-1       第I扇区电压的平均值

同样可以推导出其它扇区的调制波函数,其相电压调制函数如下

 st电机库,ST电机库,人工智能

 图7-2 各扇区电压调制函数

st电机库,ST电机库,人工智能

图7-3  扇区线电压调制波函数

从图7-2来看,输出的是不规则的分段函数,为马鞍波形(这样也解决了上一章中时间比较值为什么是马鞍波形的问题):

st电机库,ST电机库,人工智能

图7-4  相电压的马鞍波形

从线电压调制波函数公式7-3来看,其输出的则是正弦波形

st电机库,ST电机库,人工智能

图7-5 线电压的正弦波形

8. 附录,一个几何问题的证明

8.1    本命题为了解决:幅值最大不会超过图中所示的正六边形边界问题

st电机库,ST电机库,人工智能st电机库,ST电机库,人工智能st电机库,ST电机库,人工智能

                    图8-1                       图8-2                                   图8-3 

 st电机库,ST电机库,人工智能文章来源地址https://www.toymoban.com/news/detail-799020.html

到了这里,关于ST电机库v5.4.4源代码分析(1): FOC原理(结合ST电机库)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【区块链 | 智能合约】Ethereum源代码(3)- 以太坊RPC通信实例和原理代码分析(上)

    上一节提到,以太坊在node start的时候启动了RPC服务,以太坊通过Rpc服务来实现以太坊相关接口的远程调用。这节我们用个实例来看看以太坊 RPC是如何工作的,以及以太坊RPC的源码的实现 1,RPC启动命令 : go-ethereum的RPC服务默认地址:http://localhost:8545/ 通过以下命令修改默认地

    2024年02月02日
    浏览(70)
  • 电机系列(1) - foc最基本原理、clark变换 、park变换、附代码

    本文章更多的是,阅读别人的文章,再加上自己的理解和实践凑起来的 FOC(Field-Oriented Control) ,直译是磁场定向控制,也被称作矢量控制 (VC,Vector Control) ,是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。FOC旨在通过精确地控制磁场大小与

    2024年02月15日
    浏览(41)
  • STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机

    HALL有感启动电机基于STMCSDK: https://www.bilibili.com/video/BV1W14y1k7Ct/?spm_id_from=333.999.0.0vd_source=eb375996b1aae493d63fe367f98b306c 无感启动电机基于STMCSDK: https://www.bilibili.com/video/BV1QG41197AH/?spm_id_from=333.999.0.0vd_source=eb375996b1aae493d63fe367f98b306c 电位器控制电机转速基于STMCSDK: https://www.bilibili

    2024年02月22日
    浏览(39)
  • Linux 内核源代码情景分析(四)

    Linux 内核设计与实现 深入理解 Linux 内核 Linux 设备驱动程序 Linux设备驱动开发详解 深入理解Linux虚拟内存管理 Linux 内核源代码情景分析(一) Linux 内核源代码情景分析(二) Linux 内核源代码情景分析(三) Linux 内核源代码情景分析(四)     在一个块设备(见本书下册

    2024年02月12日
    浏览(46)
  • TCP/IP协议栈源代码分析

    在 Linux 内核启动过程中,inet_init 是在网络子系统初始化的一部分,负责初始化 TCP/IP 协议栈。下面是从 start_kernel 到 inet_init 的调用路径: start_kernel: start_kernel() 是 Linux 内核启动的入口函数,位于 init/main.c 文件中。 kernel_init: kernel_init() 在 start_kernel 中被调用,它位于 init/ma

    2024年02月03日
    浏览(46)
  • Spark 3.2 MemoryManager源代码分析

    MemoryManager 统一管理 Execution 内存和 Storage 内存。 Execution 内存包括 shuffles, joins, sorts and aggregations。 Storage 内存包括 caching 和传播内部的数据结构,如 broadcast 的对象等。 在 UnifiedMemoryManager 中,Execution 和 Storage 内存可以共享堆内存,这两部分可以占用的总内存为 (the total hea

    2024年02月13日
    浏览(34)
  • ChatGPT在源代码分析中可靠吗?

    ChatGPT自发布以来,它在各行各业都掀起了一股学习热潮。由于其惊人的语言理解和生成能力,ChatGPT已经备受全世界瞩目。它在智能对话、翻译、摘要、文本生成等领域中展现出了非凡的能力,让人们对其充满了好奇、敬畏和赞叹之情,同时开始怀疑自己的行业是否马上就会

    2024年02月05日
    浏览(46)
  • 数学建模之回归分析算法(含matlab源代码)

    目录 一、一元线性回归 1、步骤  2、matlab命令(多元线性回归) 3、举例  二、一元非线性回归  三、多项式回归 1、一元多项式回归  应用  2、多元二项式 应用  四、非线性回归  应用 五、 逐步回归  应用    r²和F越大越好 p越小越好      从残差图可以看出,除第二个

    2024年02月09日
    浏览(68)
  • python+pygame之飞机大战-第一版源代码分析

    目录 一、源代码 二、源代码梳理分析: (一)代码的主要结构 1、引用需要的模块 2、定义的类 3、定义main()函数:主程序 (二)代码分析收获 最好的学习方法是学习别人的代码,加上自己以前比较喜欢雷电这款游戏,所以就从飞机大战入手了,从网上下的源代码和图片素材

    2023年04月10日
    浏览(42)
  • 网络程序设计:TCP/IP协议栈源代码分析

    从调用栈中可以看到inet_init被调用的过程 start_kernel函数位于 init/main.c中,是内核的入口位置, 它在系统引导过程中被调用。执行该函数后,内核初始化各种子系统,包括调度器、内存管理、文件系统等。在函数最后,会调用 rest_init 函数来继续剩余的初始化工作。 在rest_in

    2024年01月15日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包