关于FOC驱动器电机方波半桥转子力矩

FOC(Field-OrientedControl),直译是磁场定向控制,也被称作矢量控制(VC,VectorControl),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。FOC旨在通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。

简单来说就是,FOC是一种对无刷电机的驱动控制方法,它可以让我们对无刷电机进行“像素级”控制,实现很多传统电机控制方法所无法达到的效果~

0.2FOC驱动器和无刷电调的区别

玩过航模的同学可能对无刷电机很熟悉,也应该知道航模中对于无刷电机的驱动使用的是电子调速器(ESC)也就是我们常说的电调,那么这个FOC驱动器和普通的电调有什么区别呢?

航模中的无刷电调

FOC的优势:

电调的优势:

综上大家应该可以看出来,FOC驱动器在控制性能上是要比电调强大得多的,其优异的性能和磁场定向控制的原理是密不可分的,下面就会详细介绍FOC控制的实现方法。

1.从电机原理说起1.1一些基础知识

不同占空比的PWM波形

1.2无刷电机原理

考察下图情况中的直流电机基本模型,根据磁极异性相吸同性相斥的原理,中间永磁体在两侧电磁铁的作用下会被施加一个力矩并发生旋转,这就是电机驱动的基本原理:

对于简化的无刷电机来说,以三相二极内转子电机为例,定子的三相绕组有星形联结方式和三角联结方式,而三相星形联结的二二导通方式最为常用,这里就用该模型来做个简单分析:

如上图所示,无刷电机三相的连接方式是每一相引出导线的一头,而另一头和其他相两两相连。这个情况下假如我们对A、B极分别施加正电压和负电压,那么由右手螺旋定则可以判断出线圈磁极的方向如下图:

思考一下这时候中间的转子处于什么角度的时候收到的力矩最大呢?

没错就是和CO(O为中心点)连线平行的时候,磁铁会受到A、B两个磁极一推一拉的作用,直到旋转到与AB连线平行的且磁铁内部磁力线方向和AB间磁力线方向一致的时候,受合力矩为0且稳定,也就是上图中右边的状态。换句话说,AB相通电会让转子努力转到上图中右边的状态。至于C这时暂时不起作用。

同理,我们下一阶段换成AC相通电,这时候转子会倾向于转到下图右边水平的角度:

然后BC相通电:

以此类推,可以得到每个通电状态下转子的角度,就是下图中的6个状态,每个状态相隔60度,6个过程即完成了完整的转动,共进行了6次换相:

整个过程就好像骑在毛驴上吊一根胡萝卜一样,旋转的磁场牵引着永磁体不断旋转:

而这个换向的操作,就是需要驱动器去完成的。

这也是无刷电机和有刷电机最大的区别,即不像有刷电机的机械换向,无刷电机是通过电子换向来驱动转子不断地转动,电机的电压和KV值决定了电机转速,而电机的转速就决定了换向的频率。

至于什么时候怎么知道该换到哪个供电相?如何产生更平滑的换向电压?如何提高电源的利用效率?这些都是FOC控制方法要探讨和解决的问题。

1.3关于BLDC和PMSM的区别

无刷电机其实可以分为无刷直流电机(BLDC,我们航模上都是用这种)和永磁同步电机(PMSM),结构大同小异,主要区别在于制造方式(线圈绕组方式)不同导致的一些特性差异(比如反电动势的波形)。

从上面分析的无刷电机模型其实可以看到,由于转子在磁场中只有6个稳定的状态,因此旋转过程其实是不平滑的,存在扭矩的抖动(没有通电的时候可以用手转一下无刷电机,会感受到这种“颗粒感”)。因此为了解决这个问题,从“硬件”和从“软件”出发有两个解决方案,这就衍生出了BLDC和PMSM的区别。

简单地说,BLDC由于反电动势接近梯形波,所以肯定是会有上面说的抖动问题的,但是转一圈抖6下太明显了,如果我增加电机槽、极对数(也就是磁铁对数),那以前是360度里面抖6下,现在变成120度里面抖6下,甚至更小,这样“颗粒感”不就变得更小了嘛?实际中买到的BLDC电机基本都是多极对的(比如下图),原理跟之前的分析是一样的,出来的都是三相信号(图中的三根线),可以自己进行类推。BLDC也可以结合抗齿槽算法的FOC进行力矩补偿实现平滑控制。

而另一方面,为什么我们非得用方波这种不平滑的波来驱动电机呢,用正弦波它不香吗?是的,这就是PMSM解决问题的方式,由于PMSM的反电动势被设计为正弦波的形状,我们用软件和算法结合PWM技术将方波转变成等效的SPWM正弦波或者SVPWM马鞍波,再来驱动电机,结果美滋滋,控制效果很理想。当然为了产生更好的波形、更好的旋转磁场,驱动器、控制算法就变得非常复杂,这也是FOC的实现原理,后面会进行详细介绍。

1.3驱动电路实现

无刷电机的驱动电路主要使用三相逆变电路来实现,如下图:

所谓逆变电路,即把直流电变换为交流电,或者简单点说就是一个可以产生不同电流流向的电路,通过前面的电机模型分析我们也可以看出,对于无刷电机的驱动是需要在不同时刻施加不同方向的电压(电流)的,因此需要逆变电路。

而逆变电路具体的实现则一般是采用半桥MOS电路来制作的。半桥电路的原型如下,其实很简单,就是两个MOS管组成的上桥臂和下桥臂,中间引出一条输出线:

用3个半桥电路就可以组合成三相逆变电路,每个半桥引出的一根输出线跟无刷电机的一根相线相连,就完成了最基本的无刷驱动电路。

原理方面,MOS管可以看作电压控制的高速电子开关,在MOS管的栅极(上图中的HighDrive和LowDrive)施加高电平或者低电平,就可以控制MOS源极和漏极的导通或者关闭。比如在下图中,我们打开第一组半桥的上桥臂、第二组和第三组半桥的下桥臂(其余的关闭),那么就可以让电流从电源正极流过电机的a相,流经b、c相,然后回到电源负极:

三相逆变驱动电路

于是通过控制三个半桥的不同开关状态,我们可以控制电流在电机中的不同流向了。

注意,在这个电路中,每个状态下电机的三相线圈都会有电流;而在上一节的示例中我们同一时刻只会让两相线圈有电流,另一相不起作用。那么这么修改的原因是啥呢?当然是:浪费可耻啊~浪费一相不用那不就白白损失了一部分扭矩嘛?通过上图中的方式驱动原理也是和之前分析一致的,但是可以产生更大的扭矩,所以当然是更好的选择啦。

接下来我们将半桥电路的状态做一个编码,首先限定一个半桥只有两种状态:

这样,三组半桥就一共有8种组合方式,编码分别为:000、001、010、011、100、101、110、111,记住这点,后面会用上~

按照前面的无刷电机基本模型,假设我们拿到这样一个电机,手动匀速转动它的转子,然后用示波器观察它的三相输出电压(也就是反电动势产生的电压),会看到什么波形呢?

其实很自然可以想到,我们会得到3根正弦曲线,而且三根曲线两两相位差为120°:

实际上三相发电机的发电原理就是这样的,输出的就是三相幅值为220V的交流电(线电压为380V,即V)。

发电机反过来就是电动机啦,所以假如反过来我们在三相无刷电机的三相线圈上输入上述三相正弦电压,那么就可以驱动无刷电机平稳高效地旋转了。

而这也是FOC驱动无刷电机的基本手段,即通过计算所需电压矢量,使用SVPWM技术产生调试信号,驱动三相逆变电路,合成出等效的三相正弦电压驱动电机。

这个会在后面进行详细介绍。

2.FOC控制原理ok基础知识铺垫完毕,终于要进入正题啦~

为什么要做各种变换和反变换?

空间矢量到底代表了啥??

不同扇区内为什么非得是这样的状态切换顺序???

不要担心,某奥力给曾经说过:战胜恐惧的最好方法就是面对恐惧。

下面就由我尝试深入浅出为大家拆解一下FOC控制,带大家直面矢量控制的核心原理~

2.1FOC算法的Pipeline

我们先来看一下FOC控制的整个流程图景:

稍微解释一下,这幅图是以电流闭环控制为例的,也就是让电机始终产生一个恒定的力矩(也就是恒定的电流,因为力矩和电流成正比)。

可以看到控制器的输入是最左边的和,两个变量经过PID控制器进行反馈调节,其中还涉及到几个变换模块,有Park变换和Clark变换;最后通过前面提到的SVPWM模块作用到三相逆变器上进而控制电机;而PID控制器的反馈量,是对电机输出电流的采样值。

上面的过程不好理解没关系,先概括一下,FOC控制的整个过程是这样的:

下面我们来分别介绍每一步的具体操作以及意义。

2.2Clark变换与Park变换

前面分析了,如果要平稳地驱动三相电机转动,我们就需要生成三个相位相差120度的正弦波,但是我们最终的控制对象是MOS管的开通和关断,只有电压最大值和0值两个状态啊,怎么去生成连续变化的正弦波呢?

对了,用前面提到的PWM技术就可以做到,所谓SPWM就是这么干的,如下图:

大家观察一下上图的波形,我们用上面坐标系中的正弦波和三角波的交点投影到下面的坐标轴,以此确定PWM的占空比变化规律,这样合成的PWM波,经过低通滤波器之后,其实就等效为了一个正弦波!所以SPWM就是在PWM的基础上用正弦波来调制合成的具有正弦波规律变化的方波。

不过SPWM调试方式在FOC实现中并不常用,原因是SPWM要比后面要说的SVPWM的母线电压利用率要低15%。

另一方面,从控制的角度来看,我们甚至根本就不想跟什么三个正弦波打交道!

因为要对于非线性的信号进行准确控制就要使用复杂的高阶控制器,这对于建模成本、处理器算力、控制实时性等都是不利的。简单地说就是,咱们控制器的反馈输入变量不是三个电流采样值嘛,你要我稳稳地跟踪三个正弦波太麻烦啦!能不能简单点跟踪一条直线(常量)啊?

答案是可以的~只需应用一点数学小技巧

Clark变换

我们回到上面FOC控制过程9个步骤的第1步,也就是对电机的三个相电流进行采样,这一步会使用串联的采样电阻(Shunt)进行电流采样。

由于电机工作的电流一般很大,所以采样电阻的阻值非常小,甚至和导线的电阻接近了,因而实际的采样电路PCB设计的时候还有一些讲究,比如使用开尔文接法(Kelvinconnections)。

但是我们实际电路设计时可以不使用三个采样器(实际有单采样电阻、双采样电阻和三采样电阻接法),只需要两个就够了。因为由基尔霍夫电流定律(KCL),在任一时刻,流入节点的电流之和等于流出节点的电流之和,也就是说

只需要知道其中两个就可以计算出第三个了。

这三个电流基本上就是三个相位相差120度的正弦波,在把这些信号输入控制器反馈控制之前,我们先来做点数学游戏:

我们知道三相坐标系如下:

问题:这明明是一个二维平面内的坐标系,为啥要用3个坐标轴来表示呢?

而且很明显这三个基向量是非正交的,学过线性代数的同学可能会想到,我们可以做一个很简单的基变换将其正交化为一个直角坐标系,我们把新的直角坐标系命名为坐标系,变换公式如下:

其实就是个很简单的坐标轴投影计算,写成矩阵形式如下:

于是我们就回到直角坐标系啦,是不是很开心,变换前后的波形如下:

可以看到变换后其实还是正弦波...只不过我们少了一个需要控制的变量了,现在只需要控制这两个变量,让其满足上图的下面的波形变化规律就可以控制电机旋转了,频率还是不变的。

注意这里的是我们虚拟出来的变量,所以在计算出一组后,我们通过上述公式的反向变换公式变换回去再应用到电机的三相上。

就这?

当然不是,如果只是为了减小一个控制变量那这个变换/反变换操作显然有点多此一举。

有趣的是我们还可以接着变换:虽然坐标系下少了一维变量,但是新的变量还是非线性的(正弦),有没有办法把它们线性化呢?有的,Park变换就是做这个工作的。

Park变换

这一步中我们接着Clark变换将坐标系旋转度,其中是转子当前的角度,如下图:

变换公式如下:

也很简单,就是作用了一个旋转矩阵,写成矩阵形式:

也就是说,这个坐标系是始终跟着转子旋转的!

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

Park变换前后的波形

接下来如果我们以这两个值作为反馈控制的对象,那么显然就可以使用一些线性控制器来进行控制了,比如PID(是的,尽管学术界有很多炫酷的高级控制方法,但是工业界还是偏爱PID)。

至此我们已经理解完上面FOC控制过程9个步骤的前3步了。

2.3PID控制

在FOC控制中主要用到三个PID环,从内环到外环依次是:电流环、速度环、位置环。

也就是说:我们通过电流反馈来控制电机电流(扭矩)->然后通过控制扭矩来控制电机的转速->再通过控制电机的转速控制电机位置。

其中最内环的电流换控制框图如下:

PID电流环

可以看出来,这也就是前面提到的FOC控制9个步骤所描述的过程。实际只用到了PI控制,没有引入微分,因为电流的采样率非常高不需要加入微分项。

上图中的Speed&Position模块可以是编码器,或者霍尔传感器等能感应转子位置的传感器。

特别说明一下其中的,前两者大家知道是通过Clark变换和Park变换得到的,而后两者是我们预期希望前两者达到的值,这个值具体代表了什么物理量呢?参考一下下图:

也就是说我们一通操作将转子磁链进行了解耦,分解为了转子旋转的径向和切向这两个方向的变量:

FOC的控制目标

通过PID控制器使用上述输入(电流采样值、编码器位置)和输出(MOS管开关状态)完成对电机电流的闭环控制。

然后进入到下一层的速度环:

速度-电流双环控制

在上图中,是速度设定值,是电机的转速反馈,可以通过电机编码器或者霍尔传感器等计算得到,依然是使用PI控制。

将计算得到的电机速度与速度设定值进行误差值计算,代入速度PI环,计算的结果作为电流环的输入,就实现了速度-电流的双闭环控制。

最外一层是位置环,也就是可以控制电机旋转到某个精确的角度并保持,控制框图如下:

位置-速度-电流三环控制

同理应该很简单可以理解,上图中位置控制PID只用了P项(也可以使用PI)。

所以为了避免速度环节带来的误差,在做位置控制的时候可以只使用位置和电流组成的双环进行控制,不过此时需要对位置环做一定的变化,控制框图如下:

位置-电流双闭环控制

由于去掉了速度环,这里的位置环我们使用完整的PID控制,即把微分项加上(因为位置的微分就是速度,这样可以减小位置控制的震荡加快收敛;积分项的作用是为了消除静态误差)。

好了,至此整个控制回路基本上捋清楚了,但是还有一些细节我们没讲到,就是上面框图中的SVPWM模块。

细心的同学可会发现,在整个控制流程图里面有Park变换和对应的反Park变换,但是却没有Clark变换对应的反Clark变换,取而代之的是一个SVPWM模块。

下面会对SVPWM技术进行详细介绍。

2.4空间电压矢量

什么是空间电压矢量?

空间电压矢量是我们在控制电机过程中虚拟出来的一个矢量,既然是矢量,自然是有大小和方向的,那么它的大小和方向是什么呢?

还是以前面三相逆变驱动电路那幅图中的状态为例,输入100的状态:

如前文分析,此时的电压矢量为AO方向,大小为,我们把这个矢量画在坐标轴中如图:

ABC坐标系和αβ坐标系下的矢量表示

注意上图中的(100)矢量方向和AO方向是相反的(变成OA方向),这跟正方向的定义有关,这样的规定更直观一些。同时可以注意到两个零矢量其实和原点重合了,因为这两个状态下电机中产生力矩的磁场为0(不考虑旋转过程中的反电动势产生的阻力力矩)。

同理,上图中还可以看出其余5个空间电压矢量,它们的端点组成了一个正六边形,同时把平面划分成了六个扇区(也就是图中的Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ)。

那么这里问题就来了:由这6个空间电压矢量只能产生6个方向的力矩啊,我们怎么产生任意方向的力矩呢?

2.5SVPWM技术

既然是“矢量控制”,当然是有办法的,答案就是:使用这6个空间电压矢量作为基向量来合成任意矢量。在每一个扇区,选择相邻两个电压矢量以及零矢量,按照伏秒平衡原则来合成每个扇区内的任意电压矢量,即:

离散化后等效为下式:

式子中的是我们期望得到的电压矢量,T是一个PWM周期。

指的是两个零矢量,可以是也可以是,零矢量的选择比较灵活,通过合理地配置零矢量可以让空间电压矢量的切换更平顺,后面会做说明。

所以上面公式的含义就是:我们可以周期性地在不同空间电压矢量之间切换,只要合理地配置不同基向量在一个周期中的占空比,就可以合成出等效的任意空间电压矢量了。

是不是跟PWM的思想完全一样呢,这也是为什么这个方法被成为SVPWM(空间电压矢量脉宽调制)。

下面举一个栗子,假设我们要合成图中所示的,在Ⅰ扇区:

显然我们可以通过和来合成,那么如图将投影分解到和的方向,由正弦定理有:

又因为,所以可以计算得到和:

其中m为SVPWM的调制系数(即调制比):

显然在电流环控制过程中m设置得越大代表了期望力矩越大。

为什么?这是我们将PWM波形设定为中央对齐模式对称配置零矢量的结果,后面会提到。

是的,理论上任何切换顺序都是ok的,但是实际中我们需要考虑更多限制,比如因为MOS管存在开关损耗,我们希望能尽量减少MOS管的开关次数,那么以最大限度减少开关损耗为目的,我们就可以设计出下面的切换顺序:

上图中可以看出来,在每个状态切换的时候,都只有一个相发生了转变:000->100->110->111->110->100->000,这也是所谓的七段式SVPWM调制法。

同理,我们也可以列出在其他扇区时的切换顺序:

总结

至此FOC的原理和整个控制链路都讲完了,回想一下整个过程,再尝试解答最开始提到的问题:为什么在FOC控制中要做这么多变换和反变换?

因为所谓的“矢量控制”其实就是在做解耦,把相互耦合的三相磁链解耦为容易控制的交轴和直轴。整个过程就好比我们在做信号处理的时候,通过FFT把信号变换到频域进行处理之后再IFFT反变换回时域是一个道理。

另外值得一提的是,本文介绍的是有感的FOC控制方法,其实FOC可以做到无感控制(也就是不需要编码器等额外的传感器),当然控制算法也会更加复杂,需要引入前馈控制、观测器等概念,无感的好处就是结构安装更简单,可以避免位置传感器失效的风险等等,当然这又是另外一个话题了。

FOC是个强大的控制方法,通过对电机的“像素级”控制,可以实现很多应用,因为可以做“力控”,FOC是很多机器人驱动单元的基础部件,比如:

MITMiniCheetah四足机器人

又比如,因为可以做到力矩的精确控制,我们可以用FOC驱动器配合无刷电机来实现各种力回馈装置,这就好像iPhone的HapticEngine一样,可以模拟出各种以假乱真的物理效果:

THE END
1.2024年用C语言求和:1+2+3+……+100C语言2024年用C语言求和:1+2+3+……+100 摘要:#include<stdio.h>(图片来源网络,侵删)main(){int m,sum=0;for(m=1;m<=100;m++){sum+=m;(图片来源网络 #include<stdio.h> (图片来源网络,侵删) main(){ int m,sum=0; for(m=1;m<=100;m++)https://win7sp.com/post/32066.html
2.(完整版)100以内加减法大全打印版.pdf(完整版)100以内加减法大全_打印版.pdf 31页内容提供方:快乐传递FD 大小:794.13 KB 字数:约4.97万字 发布时间:2024-12-13发布于四川 浏览人气:3 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)(完整版)100以内加减法大全_打印版.pdf 关闭预览 想预览更多内容,点击https://max.book118.com/html/2024/1212/8034074125007006.shtm
3.用python求出1100之间和的五种方法sum2=0 for i in range(1,101): sum2+=i print(sum2) #方法二 def fsum(n): s=0 for i in range(1,n+1): s+=i print(s) fsum(100def fsum2(n): if n==1: return 1 else: return n+fsum2(n-1) print(fsum2(100)) #方法五 一句代码搞定 print(sum(list(range(1,101)))发https://zhuanlan.zhihu.com/p/475286415
4.Python编程从小白到大牛第3章流程控制在线免费阅读我们再来看一下0~100累加之和的问题,这次用for循环来计算。 例3-7 for循环计算0到100之和 这里使用了range函数,此函数是Python内置的函数,用于生成一系列连续的整数,经常用于for循环中。图3-1解释了for循环的运行机制,可以看到使用for循环遍历range(101)数组的过程中,迭代变量i会先后被赋值为range(101)数组中的https://fanqienovel.com/reader/7110109863295847454
5.1.写出以下式子的算法过程,并画出流程图及相应的C从程序。1)1+1流程图示意图: 开始 | V 设置sum=0 循环: 计算1/i并将结果加到sum上 i++ 直到i=limit返回sum结束 相关问题 设计完整的算法,计算1+1/2+1/3++1/100的值,并画出流程图 设计一个简单的算法来计算1到100之间所有正倒数之和,可以使用累加法,同时利用循环结构避免手动逐项相加。以下是算法步骤: https://wenku.csdn.net/answer/nedxqp5tah
6.设计算法,并用传统流程图和N—S图表示。求1+2+3++100。刷刷题APP(shuashuati.com)是专业的大学生刷题搜题拍题答疑工具,刷刷题提供设计算法,并用传统流程图和N—S图表示。求1+2+3++100。的答案解析,刷刷题为用户提供专业的考试题库练习。一分钟将考试题Word文档/Excel文档/PDF文档转化为在线题库,制作自己的电子错题本,提高https://www.shuashuati.com/ti/d33af262b0c74efbba23134eba810853.html
7.三万字图文详解100多个计算机网络知识点(收藏)DNS 的解析过程如下图: DNS解析流程 假设你要查询www.baidu.com的 IP 地址: 首先会查找浏览器的缓存,看看是否能找到www.baidu.com对应的IP地址,找到就直接返回;否则进行下一步。 将请求发往给本地DNS服务器,如果查找到也直接返回,否则继续进行下一步; https://www.360doc.cn/article/61825250_1061175411.html
8.C语言入门2(02分12秒)程序1 学校将考试成绩分为3档,0-59分为不及格,60-89分为及格,90-100分为优秀。现在请编一程序,由老师输入一个学生成绩,计算机判断这个成绩在哪一档,并在屏幕上显示。 (03分02秒)讲解流程图 (05分28秒)讲解程序 switch语句和break语句 https://developer.aliyun.com/article/1260094
9.1+23+4+56+7+89+10+1112+13+1415+16+1718+19+2021···因此,整个序列可以简化为(1+2-3)+(4+5-6)+(7+8-9)+(10+11-12)+-96+(97+98-99),即3+6+9++96。这是一个等差数列,首项为3,末项为96,项数为32(因为从3到96每隔3递增)。根据等差数列求和公式,S=n(a1+an)/2,其中n为项数,a1为首项,an为末项。将n=32,a1https://zhidao.baidu.com/question/381296562385127284.html
10.基于自适应调整权重和搜索策略的鲸鱼优化算法座头鲸是一类群居动物,由于它们只能捕食成群的小型鱼虾,因此进化出一种独特的觅食方式,即泡泡网觅食方式.根据座头鲸这种独特的狩猎行为,Seyedali等[7]于2016年模拟其群体行为方式,提出了鲸鱼优化算法,该算法主要分为两部分,一部分为泡泡网觅食,另一部分为随机搜索. 1.1 泡泡网觅食 座头鲸觅食行为示意图如图1所https://xuebao.neu.edu.cn/natural/article/html/2020-1-35.htm
11.算法教学设计流程图 【设计思想】 新课标强调要“培养解决问题的能力,倡导运用信息技术进行创新实践”,以前教学中我一直从面到点,先讲算法的定义和特点,再举例,效果不是很好,学生印象不深,往往到学期结束的时候,对算法印象全无。 因此,这次在设计本节内容的时候,在选择实例的时候,我从两点考虑:一是生活化,选择的例子尽可能贴https://www.ruiwen.com/jiaoxuesheji/7729127.html
12.系统设计(八)遵守三个要素回答,包含数据表的设计、api 的设计、算法的设计,最好图文并茂,有数据表、接口定义,流程图等。 如:面试官问你怎样设计一个短网址系统? 1、问面试官:什么场景和条件下使用? 这个系统是在什么地方使用的?比如短网址系统提供给站内各种服务生成短网站 https://www.jianshu.com/p/5e6eea72b554
13.100个相见恨晚的Python库(建议收藏)腾讯云开发者社区caniusepython3:判断是哪个项目妨碍你你移植到 Python 3。 cookiecutter:从 cookiecutters(项目模板)创建moviepy:一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。 scikit-video:SciPy 视频Optimus:在使用 PySpark 时,让敏捷数据科学工作流程变得简单。 Colour:大量色彩理论转换和算法的实现。 https://cloud.tencent.com/developer/article/1922636
14.一种基于Pt100的高纯锗探测器保护系统46.请参阅图1所示,本发明提供一种基于pt100的高纯锗探测器保护系统,在核谱科学实验中常用高纯锗探测器测量γ射线,高纯锗探测器1是由一块掺杂的锗晶体(n型或p型)及电子学部件构成。在使用中,锗晶体、前置放大器输入级的场效应管和电荷灵敏级的反馈元件必须放置在液态氮中,温度低于-163℃时才能施加高压,否则巨大http://mip.xjishu.com/zhuanli/27/202211235068.html
15.个人简历模板电子版可填写「精选8篇」5、内外部沟通能有效的发现问题.解决问题.反馈风险,推进工作和业务的流程.提高工作效率. 6、编写功能模块API.详细设计.版本任务及其他相关文档说明。 工作业绩: 1、带领小组成员完成AI直播课从0到1的开发,并荣获2020年度风云项目 时间:201X.6-201X.8 https://www.100chui.com/article/474298.html
16.1加到100java最快51CTO博客已为您找到关于1加到100 java 最快的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及1加到100 java 最快问答内容。更多1加到100 java 最快相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。https://blog.51cto.com/topic/dda9053463d6b26.html
17.高二信息技术《程序设计》教案分析(通用13篇)高二信息技术《程序设计》教案分析 篇1 【教学目标】 1.能力目标 求100以内偶数和的算法设计思想,并将算法的设计思想用流程图表示出来。 2.过程与方法 利用现实生活中不断重复做某件事的例子以及假设围棋挑战赛的过程来梳理学生的思路,让学生学会从此类生活实际中提炼出循环求值的思想方法,即算法思想。 https://www.oh100.com/kaoshi/jiaoan/446599.html
18.RGSM3hmac/README.mdatmaster·rg4sun/RGHMAC 算法流程图 HMAC 算法描述 在HMAC 的定义中用到一个密码散列函数和一个密钥 Key。本作品使用的 SM3 作 为对明文进行分组循环压缩的散列函数,明文分组长度为 64(byte),散列函 数的输出长度为 32(byte)。认证密钥 K 为随机生成。 再定义两个不同的固定字符串 iPad 和 oPad 如下(“i”和“o”表示内部https://github.com/RGNil/RG_SM3hmac/blob/master/README.md