嵌入式分享合集174

一、计算滤波电路的参数

关于RC滤波器设计,在嵌入式系统中可以说,“无滤波器,不嵌入式”,各种传感器信号多多少少会携带一些噪声信号,那么通过滤波器就能够更好的降低和去除噪声,还原真实有用信号。

而无源RC滤波器当然是大部分滤波器中首选的廉价设计,并且能较简单数字化为软件滤波器设计,所以软件与硬件滤波在于一个离散数字化的过程,所以整体设计上大同小异。

然而大部分工作多年的工程师还在盲调RC滤波参数,多多少少感觉有点凄凉,所以下面的内容能够帮助你更好的认识滤波器及设计过程。

当然很多人会问那还有很多复杂一点的滤波器如FIR,IIR等等,其实都大同小异吧,好了废话不多说了,继续看正文!

01【时域和频域】

当您在示波器上查看电信号时,您会看到一条线,表示电压随时间的变化。在任何特定时刻,信号只有一个电压值。您在示波器上看到的是信号的时域表示。

典型的示波器跟踪显示非常直观,但也有一定的限制性,因为它不直接显示信号的频率内容。而与时域表示相反就是频域,其中一个时刻仅对应于一个电压值,频域表示(也称为频谱)通过识别同时存在的各种频率分量来传达关于信号的信息。

02【什么是滤波器?

滤波器是一个电路,其去除或“过滤掉”频率分量的特定范围。换句话说,它将信号的频谱分离为将要通过的频率分量和将被阻隔的频率分量。

如果您对频域分析没有太多经验,您可能仍然不确定这些频率成分是什么,以及它们如何在不能同时具有多个电压值的信号中共存。让我们看一个有助于澄清这个概念的简短例子。

假设我们有一个由完美的5kHz正弦波组成的音频信号。我们知道时域中的正弦波是什么样的,在频域中我们只能看到5kHz的频率“尖峰”。现在让我们假设我们激活一个500kHz振荡器,将高频噪声引入音频信号。

在示波器上看到的信号仍然只是一个电压序列,每个时刻有一个值,但信号看起来会有所不同,因为它的时域变化现在必须反映5kHz正弦波和高频噪音波动。

然而,在频域中,正弦波和噪声是在一个信号中同时存在的单独的频率分量。正弦波和噪声占据了信号频域表示的不同部分(如图1所示),这意味着我们可以通过将信号引导通过低频并阻挡高频的电路来滤除噪声。

图1:正弦波和噪声信号频域的不同部分分布

03【滤波器的类型】

滤波器可以放在与滤波器频率响应的一般特征相对应的广泛类别中。如果滤波器通过低频并阻止高频,则称为低通滤波器;如果它阻挡低频并通过高频,它就是一个高通滤波器。还有带通滤波器,其仅通过相对窄的频率范围,以及带阻滤波器,其仅阻挡相对窄的频率范围(图2)。

图2:各滤波器频域表示

还可以根据用于实现电路的组件类型对滤波器进行分类。无源滤波器使用电阻器,电容器和电感器,这些组件不具备提供放大的能力,因此无源滤波器只能维持或减小输入信号的幅度。另一方面,有源滤波器既可以滤波信号又可以应用增益,因为它包括有源元件,如晶体管或运算放大器(图3)。

图3

这种有源低通滤波器基于流行的Sallen-Key拓扑结构。

本文将探讨无源低通滤波器的分析和设计。这些电路在各种系统和应用中发挥着重要作用。

04【RC低通滤波器

为了创建无源低通滤波器,我们需要将电阻元件与电抗元件组合在一起。换句话说,我们需要一个由电阻器和电容器或电感器组成的电路。从理论上讲,电阻—电感(RL)低通拓扑在滤波能力方面与电阻—电容(RC)低通拓扑相当。但实际上,电阻—电容方案更为常见,因此本文的其余部分将重点介绍RC低通滤波器(图4)。

图4:RC低通滤波器

如图所示,通过将一个电阻与信号路径串联,并将一个电容与负载并联,可以产生RC低通响应。在图中,负载是单个组件,但在实际电路中,它可能更复杂,例如模数转换器,放大器或示波器的输入级,用于测量滤波器的响应。

如果我们认识到电阻器和电容器形成与频率相关的分压器,就可以直观地分析RC低通拓扑的滤波动作(图5)。

图5:重新绘制RC低通滤波器,使其看起来像分压器

当输入信号的频率低时,电容器的阻抗相对于电阻器的阻抗高;因此,大部分输入电压在电容器上(和负载两端,与电容器并联)下降。当输入频率较高时,电容器的阻抗相对于电阻器的阻抗较低,这意味着电阻器上的电压降低,并且较少的电压传输到负载。因此,低频通过并且高频被阻挡。

RC低通功能的这种定性解释是重要的第一步,但是当我们需要实际设计电路时它并不是很有用,因为术语“高频”和“低频”非常模糊。工程师需要创建通过并阻止特定频率的电路。例如,在上述音频系统中,我们希望保留5kHz信号并抑制500kHz信号。这意味着我们需要一个滤波器,从5kHz到500kHz之间的传递过渡到阻塞。

滤波器不会引起显著衰减的频率范围称为通带,滤波器确实导致显着衰减的频率范围称为阻带。模拟滤波器,例如RC低通滤波器,总是从通带逐渐过渡到阻带。这意味着无法识别滤波器停止传递信号并开始阻塞信号的一个频率。然而,工程师需要一种方便,简洁地总结滤波器频率响应的方法,这就是截止频率概念发挥作用的地方。

当您查看RC滤波器的频率响应图时,您会注意到术语“截止频率”不是很准确。信号光谱被“切割”成两半的图像,其中一个被保留而其中一个被丢弃,不适用,因为随着频率从截止点下方移动到截止值以上,衰减逐渐增加。

RC低通滤波器的截止频率实际上是输入信号幅度降低3dB的频率(选择该值是因为幅度降低3dB对应于功率降低50%)。因此,截止频率也称为-3dB频率,实际上该名称更准确且信息量更大。术语带宽是指滤波器通带的宽度,在低通滤波器的情况下,带宽等于-3dB频率(如图6所示)。

图6

图6表示RC低通滤波器的频率响应的一般特性,带宽等于-3dB频率。

如上所述,RC滤波器的低通行为是由电阻器的频率无关阻抗与电容器的频率相关阻抗之间的相互作用引起的。为了确定滤波器频率响应的细节,我们需要在数学上分析电阻(R)和电容(C)之间的关系,我们还可以操纵这些值,以设计满足精确规格的滤波器。RC低通滤波器的截止频率(fC)计算如下:

图7

我们来看一个简单的设计实例。电容值比电阻值更具限制性,因此我们将从常见的电容值(例如10nF)开始,然后我们将使用该公式来确定所需的电阻值。目标是设计一个滤波器,它将保留5kHz音频波形并抑制500kHz噪声波形。我们将尝试100kHz的截止频率,稍后在文章中我们将更仔细地分析此滤波器对两个频率分量的影响,公式如图8。

图8

因此,160Ω电阻与10nF电容相结合,将为我们提供一个非常接近所需频率响应的滤波器。

05【计算滤波器响应

我们可以通过使用典型分压器计算的频率相关版本来计算低通滤波器的理论行为。电阻分压器的输出表示如图9:

图9

图10

RC滤波器使用等效结构,但是我们有一个电容器代替R2(图10)。首先,我们用电容器的电抗(XC)代替R2(在分子中)。接下来,我们需要计算总阻抗的大小并将其放在分母中。因此,我们有(图11):

图11

电容器的电抗表示与电流的相反量,但与电阻不同,相反量取决于通过电容器的信号频率。因此,我们必须计算特定频率的电抗,计算公式如下(图12):

图12

在上面的设计实例中,R≈160Ω且C=10nF。我们假设VIN的幅度是1V,这样我们就可以简单地从计算中去掉VIN。首先让我们以正弦波频率计算VOUT的幅度(图12):

图13

正弦波的幅度基本不变。这很好,因为我们的目的是在抑制噪音的同时保持正弦波。这个结果并不令人惊讶,因为我们选择的截止频率(100kHz)远高于正弦波频率(5kHz)。

现在让我们看看滤波器如何成功衰减噪声分量(图14)。

图14

噪声幅度仅为其原始值的约20%。

06【可视化滤波器响应

评估滤波器对信号影响的最方便方法是检查滤波器频率响应的图。这些图形通常称为波德图,在垂直轴上具有幅度(以分贝为单位),在水平轴上具有频率;水平轴通常具有对数标度,使得1Hz和10Hz之间的物理距离与10Hz和100Hz之间,100Hz和1kHz之间的物理距离相同等等(图15)。这种配置使我们能够快速准确地评估滤波器在很大频率范围内的行为。

图15:频率响应图的一个例子

曲线上的每个点表示如果输入信号的幅度为1V且频率等于水平轴上的相应值,则输出信号将具有的幅度。例如,当输入频率为1MHz时,输出幅度(假设输入幅度为1V)将为0.1V(因为-20dB对应于十倍减少因子)。

当您花费更多时间使用滤波器电路时,此频率响应曲线的一般形状将变得非常熟悉。通带中的曲线几乎完全平坦,然后随着输入频率接近截止频率,它开始下降得更快。最终,衰减的变化率(称为滚降)稳定在20dB/decade-即,输入频率每增加十倍,输出信号的幅度降低20dB。

07【评估低通滤波器性能

如果我们仔细绘制我们在本文前面设计的滤波器的频率响应,我们将看到5kHz时的幅度响应基本上是0dB(即几乎为零衰减),500kHz时的幅度响应约为-14dB(对应于0.2的增益)。这些值与我们在上一节中执行的计算结果一致。

由于RC滤波器总是从通带到阻带逐渐过渡,并且因为衰减永远不会达到无穷大,我们无法设计出“完美”的滤波器—即对正弦波没有影响并完全消除噪声的滤波器。相反,我们总是需要权衡。如果我们将截止频率移近5kHz,我们将有更多的噪声衰减,但我们想要发送到扬声器的正弦波也会衰减更多。如果我们将截止频率移近500kHz,我们在正弦波频率下的衰减会减少,但噪声频率下的衰减也会减少。

前面我们已经讨论了滤波器修改信号中各种频率分量振幅的方式。然而,除了振幅效应之外,电抗性电路元件总是引入相移。

08【低通滤波器相移

相位的概念是指周期内特定时刻的周期信号的值。因此,当我们说电路引起相移时,我们的意思是它会在输入信号和输出信号之间产生偏差:输入和输出信号不再在同一时刻开始和结束它们的周期。相移值(例如45°或90°)表示产生的偏差量。

电路中的每个电抗元件都会引入90°的相移,但这种相移不会同时发生。输出信号的相位与输出信号的振幅一样,随着输入频率的增加而逐渐变化。RC低通滤波器中有一个电抗元件(电容器),因而电路最终也会引入90°的相移。

与振幅响应一样,通过检查水平轴表示对数频率的曲线图,可以最容易地评估相位响应。以下描述表示了一般模式,查看图16可以进一步了解详细信息。

  • 相移最初为0°。

  • 相移逐渐增加,直到在截止频率处达到45°;在这部分响应期间,变化率逐渐增加。

  • 在截止频率之后,相移继续增加,但变化率逐渐降低。

  • 随着相移逐渐接近90°,变化率变得非常小。

图16

实线是振幅响应,虚线是相位响应。截止频率为100kHz。注意,截止频率下的相移为45°。

09【二阶低通滤波

到目前为止,我们假设RC低通滤波器由一个电阻器和一个电容器组成。这种配置是一阶滤波器。

无源滤波器的“阶数”由电路中电抗元件(即电容器或电感器)的数量决定。高阶滤波器具有更多的无功元件,会产生更多的相移和更陡的滚降,而后者是增加滤波器阶数的主要动机。向滤波器添加一个电抗元件,例如,从一阶到二阶或二阶到三阶,便可将最大滚降增加20dB/十倍。

二阶滤波器通常围绕由电感器和电容器组成的谐振电路构建,这种拓扑结构称为RLC(Resistor-Inductor-Capacitor)。但是,也可以创建二阶RC滤波器。如下图所示,我们需要做的就是将两个一阶RC滤波器级联起来(图17)。

图17

虽然这种拓扑肯定会产生二阶响应,但它没有被广泛使用。正如我们将在下一节中看到的那样,其频率响应通常不如二阶有源滤波器或二阶RLC滤波器。

10【二阶RC滤波器的频率响应

我们可以尝试根据所需的截止频率设计一阶滤波器,然后从中选择两个串联连接来,从而构成二阶RC低通滤波器。此举确实可以使滤波器表示出类似的总频率响应,最大滚降为40dB/decade而不是20dB/decade。

但是,如果我们更仔细地观察响应,我们会发现-3dB频率出现降低。二阶RC滤波器的行为不符合预期,因为两个滤波阶段不是独立的,因此不能简单地将这两个滤波器连接在一起,并将电路分析为一阶低通滤波器叠加一个相同的一阶低通过滤。

此外,即使我们在两级之间插入缓冲器,使得第一阶RC和第二阶RC可以用作独立滤波器,此时原始截止频率处的衰减将是6dB而不是3dB。这恰恰是因为两阶独立工作而导致的。第一个滤波器在截止频率处具有3dB的衰减,而第二个滤波器加上了另外3dB的衰减(图18)。

图18

二阶RC低通滤波器的基本限制是设计人员无法通过调整滤波器的Q因子来微调从通带到阻带的转换;此参数表示频率响应的阻尼程度。如果将两个相同的RC低通滤波器级联,则整体传递函数对应于二阶响应,但Q因子始终为0.5。当Q=0.5时,滤波器处于过阻尼的边界,这会导致频率响应在过渡区域中“下垂”。二阶有源滤波器和二阶谐振滤波器没有这一限制;设计人员可以控制Q因子,从而微调过渡区域的频率响应。      whaosoft aiot http://143ai.com

【小结】

所有电信号都混合了所需频率分量和不需要的频率分量。不需要的频率分量通常由噪声和干扰引起,并且在某些情况下会对系统的性能产生负面影响。

滤波器是以不同方式对信号频谱的不同部分作出反应的电路。低通滤波器旨在让低频分量通过,同时阻止高频分量。

低通滤波器的截止频率表示滤波器从低衰减变为显著衰减的频率区域。

RC低通滤波器的输出电压可以通过将电路视为由(频率无关)电阻和(频率相关)电抗组成的分压器来计算。

振幅(以dB为单位,在垂直轴上)与对数频率(以赫兹为单位,在水平轴上)的曲线图是检查滤波器理论行为的方便有效的方法,还可以使用相位与对数频率的关系图来确定将要应用于输入信号的相移量。

二阶滤波器的滚降更陡峭;当信号不能在所需频率分量和不需要的频率分量之间提供宽带分离时,这种二阶响应比较有用。

可以通过构建两个相同的一阶RC低通滤波器,然后将一个的输出连接到另一个的输入来创建二阶RC低通滤波器,但最终整体的-3dB频率将低于预期。

二、三种常用LED闪烁电路

如何设计一个闪烁频率为2Hz的闪光电路?

    闪烁频率为2HZ,则闪烁周期为T=1/f=0.5s,即500ms,也就说要求LED灯500ms闪烁一次,即平均1s闪烁两次。可实现的方式有很多,下面列举几种常用的例子供大家参考。

1 使用CPU实现

    若有处理器(单片机、DSP、ARM、CPLD、FPGA等)的情况下,实现起来很简单,使用处理器其中的一个I/O口作为输出驱动三极管,控制LED亮灭交替变化。通过简单的编程使I/O口250ms输出高电平,250ms输出低电平,即可实现周期为500ms,频率为2HZ的闪烁。

    I/O口的输出波形如下:实际就是使I/O口输出频率为2HZ的方波。

    下图使用NPN三极管驱动LED灯亮灭,当高电平时,LED亮;当低电平时,LED灭。三极管的驱动电路原理如下:

2 使用555定时器实现

555定时器 的功能很强大,可以输出任意占空比、频率约300KHZ以内的PWM波,如下图555定时器方波发生器原理,其输出波形的周期计算公式为:TH=ln2*R1*C1,TL=ln2*R2*C1,其中ln2≈0.7,如下图取值R1=R2=768KΩ,C1=470μF,计算得TH≈250ms,TL≈250ms,所以该方波周期为T=TH+TL=500ms,频率为1/T=2HZ。

    555定时器输出端的驱动能力约200mA左右,因此只接一个LED灯时可以不用三极管等器件作为驱动,可直接555定时器的输出脚(4脚)。

    上图为占空比为50%的方波发生器原理,使用二极管D1和D2改变电容C1充放电的顺序,从而实现电容C1充电时只经过R1,放电时经过R2。若去掉这两个二极管,其充放电的周期公式为:TH=ln2*(R1+R2)*C1,TL=ln2*R2*C1。

3 多谐振荡器

    如下图是非常经典的LED交替闪烁电路,该电路是使用两个NPN三极管及电容充放电的原理实现LED1和LED2交替闪烁,若只需1个或1组LED时,可将LED2使用电阻代替即可。此电路属于多谐振荡电路,两个三极管一个管子导通时,另一个截止,通过容阻耦合使两个管子交替导通与截止,从而产生自激振荡。

   其原理是:

    上电瞬间,由于电路两边的参数会有微小差异,两个管子导通时间肯定有先后,促使其中一个管子导通而另一个截止,形成一个暂稳态。假设Q1导通,Q2截止,则此时Q1的集电极(即电容C1左端)的电压为0,Q1基极的电压约为0.7V,此时,电容C1通过电阻R2进行充电,且电容C2也通过电阻R4进行充电,(假设VCC电压为5V)则电容C2充满后电容两端电压为4.3V(左端0.7V,右端5V),因为R4的阻值远远比R2小,因此电容C2的充电速度要比C1快得多。当C1右端的电压达0.7V时,Q2导通。此时,电容C2的右端电压直接被拉地(即电压为0),但是电容两端的电压不能突变,则该电容左端电压瞬间变为-4.3V(原电容C2两端的电压为4.3V),Q1立刻截止,形成另一个暂稳态。此时电容C2开始通过R3放电,放完后又开始反向充电,当电容C2左端电压达0.7V时,Q1又导通。同理Q1导通使电容C1左端电压变为0V,反馈到电容右端电压变为-4.3V,Q2截止,又进入下一个暂稳态,如此反复。

    其多谐振荡器的震荡周期为T=0.7(R2C1+R3C2),由于R2和R3、C1和C2的值相同,因此T=1.4*R2*C1,通过改变电容C1、C2和电阻R2、R3的值可改变闪烁频率。对于新手来说这个电路比较难理解,大家可以慢慢体会。

4 总结

    上文提供了三种比较常用的LED闪烁方案。

    第一种使用处理器实现比较简单,但是前提原系统当中已有处理器可直接使用,否则只是为了LED闪烁单独设计一个处理器划不来,成本太高。

    第二种方案使用555定时器制作,也是很常用的方法,一个555芯片加一些电容电阻即可实现,原理简单,成本也较低。   

    第三种是非常经典的多谐振荡电路,只要两个三极管加几个电容电阻即可实现,成本低。

三、介绍常见电机的控制算法

BLDC电机控制算法

    无刷电机属于自换流型(自我方向转换),因此控制起来更加复杂。

    BLDC电机控制要求了解电机进行整流转向的转子位置和机制,对于闭环速度控制,有两个附加要求,即对于转子速度/或电机电流以及PWM信号进行测量,以控制电机速度功率。

    BLDC电机可以根据应用要求采用边排列或中心排列PWM信号。大多数应用仅要求速度变化操作,将采用6个独立的边排列PWM信号。这就提供了最高的分辨率。如果应用要求服务器定位、能耗制动或动力倒转,推荐使用补充的中心排列PWM信号。

    为了感应转子位置,BLDC电机采用霍尔效应传感器来提供绝对定位感应。这就导致了更多线的使用和更高的成本。无传感器BLDC控制省去了对于霍尔传感器的需要,而是采用电机的反电动势(电动势)来预测转子位置。无传感器控制对于像风扇和泵这样的低成本变速应用至关重要。在采有BLDC电机时,冰箱和空调压缩机也需要无传感器控制。

空载时间的插入和补充

    大多数BLDC电机不需要互补的PWM、空载时间插入或空载时间补偿。可能会要求这些特性的BLDC应用仅为高性能BLDC伺服电动机、正弦波激励式BLDC电机、无刷AC、或PC同步电机。

控制算法

    许多不同的控制算法都被用以提供对于BLDC电机的控制。典型地,将功率晶体管用作线性稳压器来控制电机电压。当驱动高功率电机时,这种方法并不实用。高功率电机必须采用PWM控制,并要求一个微控制器来提供起动和控制功能。

    控制算法必须提供下列三项功能:

  • 用于控制电机速度的PWM电压

  • 用于对电机进整流换向的机制

  • 利用反电动势或霍尔传感器来预测转子位置的方法

    脉冲宽度调制仅用于将可变电压应用到电机绕组。有效电压与PWM占空度成正比。当得到适当的整流换向时,BLDC的扭矩速度特性与以下直流电机相同。可以用可变电压来控制电机的速度和可变转矩。

    功率晶体管的换向实现了定子中的适当绕组,可根据转子位置生成最佳的转矩。在一个BLDC电机中,MCU必须知道转子的位置并能够在恰当的时间进行整流换向。

BLDC电机的梯形整流换向

    对于直流无刷电机的最简单的方法之一是采用所谓的梯形整流换向。用于BLDC电机的梯形控制器的简化框架,如下图所示。

在这个原理图中,每一次要通过一对电机终端来控制电流,而第三个电机终端总是与电源电子性断开。

    嵌入大电机中的三种霍尔器件用于提供数字信号,它们在60度的扇形区内测量转子位置,并在电机控制器上提供这些信息。由于每次两个绕组上的电流量相等,而第三个绕组上的电流为零,这种方法仅能产生具有六个方向共中之一的电流空间矢量。随着电机的转向,电机终端的电流在每转60度时,电开关一次(整流换向),因此电流空间矢量总是在90度相移的最接近30度的位置。

    梯形控制:驱动波形和整流处的转矩,示意图如下。

  因此每个绕组的电流波型为梯形,从零开始到正电流再到零然后再到负电流。

    这就产生了电流空间矢量,当它随着转子的旋转在6个不同的方向上进行步升时,它将接近平衡旋转。

    在像空调和冰霜这样的电机应用中,采用霍尔传感器并不是一个不变的选择。在非联绕组中感应的反电动势传感器可以用来取得相同的结果。

    这种梯形驱动系统因其控制电路的简易性而非常普通,但是它们在整流过程中却要遭遇转矩纹波问题。

BLDC电机的正弦整流换向

    梯形整流换向还不足以为提供平衡、精准的无刷直流电机控制。这主要是因为在一个三相无刷电机(带有一个正统波反电动势)中所产生的转矩由下列等式来定义:

转轴转矩= Kt [IRSin(o) + ISSin(o+120) +ITSin(o+240)]
  其中:
      o为转轴的电角度
      Kt为电机的转矩常数
      IR, IS和IT为相位电流

如果相位电流是正弦的:IR   = I0Sino; IS = I0Sin (+120o); IT   = I0Sin (+240o)
 将得到:

转轴转矩= 1.5I0*Kt(一个独立于转轴角度的常数)

    正弦整流换向无刷电机控制器努力驱动三个电机绕组,其三路电流随着电机转动而平稳的进行正弦变化。选择这些电流的相关相位,这样它们将会产生平稳的转子电流空间矢量,方向是与转子正交的方向,并具有不变量。这就消除了与北形转向相关的转矩纹波和转向脉冲。

    为了随着电机的旋转,生成电机电流的平稳的正弦波调制,就要求对于转子位置有一个精确有测量。霍尔器件仅提供了对于转子位置的粗略计算,还不足以达到目的要求。基于这个原因,就要求从编码器或相似器件发出角反馈。

    BLDC电机正弦波控制器的简化框图,如下。

由于绕组电流必须结合产生一个平稳的常量转子电流空间矢量,而且定子绕组的每个定位相距120度角,因此每个线组的电流必须是正弦的而且相移为120度。采用编码器中的位置信息来对两个正弦波进行合成,两个间的相移为120度。然后,将这些信号乘以转矩命令,因此正弦波的振幅与所需要的转矩成正比。结果,两个正弦波电流命令得到恰当的定相,从而在正交方向产生转动定子电流空间矢量。

    正弦电流命令信号输出一对在两个适当的电机绕组中调制电流的P-I控制器。第三个转子绕组中的电流是受控绕组电流的负和,因此不能被分别控制。每个P-I控制器的输出被送到一个PWM调制器,然后送到输出桥和两个电机终端。应用到第三个电机终端的电压源于应用到前两个线组的信号的负数和,适当用于分别间隔120度的三个正弦电压。

    结果,实际输出电流波型精确的跟踪正弦电流命令信号,所得电流空间矢量平稳转动,在量上得以稳定并以所需的方向定位。

    一般通过梯形整流转向,不能达到稳定控制的正弦整流转向结果。然而,由于其在低电机速度下效率很高,在高电机速度下将会分开。这是由于速度提高,电流回流控制器必须跟踪一个增加频率的正弦信号。同时,它们必须克服随着速度提高在振幅和频率下增加的电机的反电动势。

    由于P-I控制器具有有限增益和频率响应,对于电流控制回路的时间变量干扰将引起相位滞后和电机电流中的增益误差,速度越高,误差越大。这将干扰电流空间矢量相对于转子的方向,从而引起与正交方向产生位移。

    当产生这种情况时,通过一定量的电流可以产生较小的转矩,因此需要更多的电流来保持转矩,效率降低。

    随着速度的增加,这种降低将会延续。在某种程度上,电流的相位位移超过90度。当产生这种情况时,转矩减至为零。通过正弦的结合,上面这点的速度导致了负转矩,因此也就无法实现。

AC电机算法

标量控制

    标量控制(或V/Hz控制)是一个控制指令电机速度的简单方法。

    指令电机的稳态模型主要用于获得技术,因此瞬态性能是不可能实现的。系统不具有电流回路。为了控制电机,三相电源只有在振幅和频率上变化。

矢量控制或磁场定向控制

    在电动机中的转矩随着定子和转子磁场的功能而变化,并且当两个磁场互相正交时达到峰值。在基于标量的控制中,两个磁场间的角度显著变化。

    矢量控制设法在AC电机中再次创造正交关系。为了控制转矩,各自从产生磁通量中生成电流,以实现DC机器的响应性。

    一个AC指令电机的矢量控制与一个单独的励磁DC电机控制相似。在一个DC电机中,由励磁电流IF所产生的磁场能量Φ F与由电枢电流IA所产生的电枢磁通ΦA正交。这些磁场都经过去耦并且相互间很稳定。因此,当电枢电流受控以控制转矩时,磁场能量仍保持不受影响,并实现了更快的瞬态响应。

    三相AC电机的磁场定向控制(FOC)包括模仿DC电机的操作。所有受控变量都通过数学变换,被转换到DC而非AC。其目标的独立的控制转矩和磁通。

    磁场定向控制(FOC)有两种方法:

    直接FOC: 转子磁场的方向(Rotor flux angle) 是通过磁通观测器直接计算得到的

    间接FOC: 转子磁场的方向(Rotor flux angle) 是通过对转子速度和滑差(slip)的估算或测量而间接获得的。

    矢量控制要求了解转子磁通的位置,并可以运用终端电流和电压(采用AC感应电机的动态模型)的知识,通过高级算法来计算。然而从实现的角度看,对于计算资源的需求是至关重要的。

    可以采用不同的方式来实现矢量控制算法。前馈技术、模型估算和自适应控制技术都可用于增强响应和稳定性。

AC电机的矢量控制:深入了解

    矢量控制算法的核心是两个重要的转换: Clark转换,Park转换和它们的逆运算。采用Clark和Park转换,带来可以控制到转子区域的转子电流。这种做充许一个转子控制系统决定应供应到转子的电压,以使动态变化负载下的转矩最大化。

    Clark转换:Clark数学转换将一个三相系统修改成两个坐标系统:

    其中ia和ib正交基准面的组成部分,ic是不重要的homoplanar(同平面)部分。三相转子电流与转动参考系的关系如下图所示。

    Park转换:Park数学转换将双向静态系统转换成转动系统矢量:

 两相α, β帧表示通过Clarke转换进行计算,然后输入到矢量转动模块,它在这里转动角θ,以符合附着于转子能量的d, q帧。根据上述公式,实现了角度θ的转换。

AC电机的磁场定向矢量控制的基本结构

    Clarke变换采用三相电流IA, IB 以及 IC,来计算两相正交定子轴的电流Isd和 Isq。这两个在固定座标定子相中的电流被变换成Isd 和Isq,成为Park变换d, q中的元素。其通过电机通量模型来计算的电流Isd, Isq 以及瞬时流量角θ被用来计算交流感应电机的电动扭矩。矢量控制交流电机的基本原理图如下。

   这些导出值与参考值相互比较,并由PI控制器更新。

   基于矢量的电机控制的一个固有优势是,可以采用同一原理,选择适合的数学模型去分别控制各种类型的AC, PM-AC 或者 BLDC电机。

BLDC电机的矢量控制

    BLDC电机是磁场定向矢量控制的主要选择。采用了FOC的无刷电机可以获得更高的效率,最高效率可以达到95%,并且对电机在高速时也十分有效率。

步进电机控制算法

    如下是步进电机控制示意图:

  步进电机控制通常采用双向驱动电流,其电机步进由按顺序切换绕组来实现。通常这种步进电机有3个驱动顺序:

单相全步进驱动:

    在这种模式中,其绕组按如下顺序加电,AB/CD/BA/DC (BA表示绕组AB的加电是反方向进行的)。这一顺序被称为单相全步进模式,或者波驱动模式。在任何一个时间,只有一相加电。

双相全步进驱动:

    在这种模式中,双相一起加电,因此,转子总是在两个极之间。此模式被称为双相全步进,这一模式是两极电机的常态驱动顺序,可输出的扭矩最大。

半步进模式:

    这种模式将单相步进和双相步进结合在一起加电:单相加电,然后双相加电,然后单相加电…,因此,电机以半步进增量运转。这一模式被称为半步进模式,其电机每个励磁的有效步距角减少了一半,其输出的扭矩也较低。

    以上3种模式均可用于反方向转动(逆时针方向),如果顺序相反则不行。

    通常,步进电机具有多极,以便减小步距角,但是,绕组的数量和驱动顺序是不变的。

通用DC控制算法

    通用电机的速度控制,特别是采用2种电路的电机:

  • 相角控制

  • PWM斩波控制

相角控制

    相角控制是通用电机速度控制的最简单的方法。通过TRIAC的点弧角的变动来控制速度。相角控制是非常经济的解决方案,但是,效率不太高,易于电磁干扰(EMI)。通用电机的相角控制示意图如下。

以上示图表明了相角控制的机理,是TRIAC速度控制的典型应用。TRIAC门脉冲的周相移动产生了有效率的电压,从而产生了不同的电机速度,并且采用了过零交叉检测电路,建立了时序参考,以延迟门脉冲。

PWM斩波控制

    PWM控制是通用电机速度控制的,更先进的解决方案。在这一解决方案中,功率MOFSET,或者IGBT接通高频整流AC线电压,进而为电机产生随时间变化的电压

    上图,是通用电机的PWM斩波控制的示意图,其开关频率范围一般为10-20 KHz,以消除噪声。这一通用电机的控制方法可以获得更佳的电流控制和更佳的EMI性能,因此,效率更高。

四、PID算法原理介绍

先来彻底搞懂PID到底是啥?

    PID,就是“比例(proportional)、积分(integral)、微分(differential)”,是一种很常见的控制算法。在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。

    PID已经有107年的历史了,它并不是什么很神圣的东西,大家一定都见过PID的实际应用。比如四轴飞行器,再比如平衡小车......还有汽车的定速巡航、3D打印机上的温度控制器....

    就是类似于这种:需要将某一个物理量“保持稳定”的场合(比如维持平衡,稳定温度、转速等),PID都会派上大用场。

    那么问题来了:比如,我想控制一个“热得快”,让一锅水的温度保持在50℃。这么简单的任务,为啥要用到微积分的理论呢。

    你一定在想:这不是so easy嘛~!小于50度就让它加热,大于50度就断电,不就行了?几行代码用Arduino分分钟写出来。

    没错,在要求不高的情况下,确实可以这么干!如果换一种应用场景,你就发现有问题了:

    如果我的控制对象是一辆汽车呢?要是希望汽车的车速保持在50km/h不动,你还敢这样干么。

    所以,在大多数场合中,用“开关量”来控制一个物理量,就显得比较简单粗暴了。有时候,是无法保持稳定的。因为单片机、传感器不是无限快的,采集、控制需要时间。

    而且,控制对象具有惯性。比如你将一个加热器拔掉,它的“余热”(即热惯性)可能还会使水温继续升高一小会。

    这时,就需要一种『算法』:

  • 它可以将需要控制的物理量带到目标附近

  • 它可以“预见”这个量的变化趋势

  • 它也可以消除因为散热、阻力等因素造成的静态误差

  • ....

    于是,当时的数学家们发明了这一历久不衰的算法——这就是PID。

    你应该已经知道了,P,I,D是三种不同的调节作用,既可以单独使用(P,I,D),也可以两个两个用(PI,PD),也可以三个一起用(PID)。

    这三种作用有什么区别呢?客官别急,听我慢慢道来

 我们先只说PID控制器的三个最基本的参数:kP,kI,kD。

kP

   P就是比例的意思。它的作用最明显,原理也最简单。我们先说这个:

    需要控制的量,比如水温,有它现在的『当前值』,也有我们期望的『目标值』。

  • 当两者差距不大时,就让加热器“轻轻地”加热一下。

  • 要是因为某些原因,温度降低了很多,就让加热器“稍稍用力”加热一下。

  • 要是当前温度比目标温度低得多,就让加热器“开足马力”加热,尽快让水温到达目标附近。

    这就是P的作用,跟开关控制方法相比,是不是“温文尔雅”了很多。

    实际写程序时,就让偏差(目标减去当前)与调节装置的“调节力度”,建立一个一次函数的关系,就可以实现最基本的“比例”控制了。

    kP越大,调节作用越激进,kP调小会让调节作用更保守。

    要是你正在制作一个平衡车,有了P的作用,你会发现,平衡车在平衡角度附近来回“狂抖”,比较难稳住。

    如果已经到了这一步,离成功只差一小步了。

kD

   D的作用更好理解一些,所以先说说D,最后说I。

    刚才我们有了P的作用。你不难发现,只有P好像不能让平衡车站起来,水温也控制得晃晃悠悠,好像整个系统不是特别稳定,总是在“抖动”。

   你心里设想一个弹簧:现在在平衡位置上。拉它一下,然后松手。这时它会震荡起来。因为阻力很小,它可能会震荡很长时间,才会重新停在平衡位置。

    请想象一下:要是把上图所示的系统浸没在水里,同样拉它一下 :这种情况下,重新停在平衡位置的时间就短得多。

    我们需要一个控制作用,让被控制的物理量的“变化速度”趋于0,即类似于“阻尼”的作用。

    因为,当比较接近目标时,P的控制作用就比较小了。越接近目标,P的作用越温柔。有很多内在的或者外部的因素,使控制量发生小范围的摆动。

    D的作用就是让物理量的速度趋于0,只要什么时候,这个量具有了速度,D就向相反的方向用力,尽力刹住这个变化。

    kD参数越大,向速度相反方向刹车的力道就越强。

    如果是平衡小车,加上P和D两种控制作用,如果参数调节合适,它应该可以站起来了。

    等等,PID三兄弟好想还有一位。看起来PD就可以让物理量保持稳定,那还要I干嘛?

    因为我们忽视了一种重要的情况。

kI

    还是以热水为例。假如有个人把我们的加热装置带到了非常冷的地方,开始烧水了。需要烧到50℃。

    在P的作用下,水温慢慢升高。直到升高到45℃时,他发现了一个不好的事情:天气太冷,水散热的速度,和P控制的加热的速度相等了。

    这可怎么办?

  • P兄这样想:我和目标已经很近了,只需要轻轻加热就可以了。

  • D兄这样想:加热和散热相等,温度没有波动,我好像不用调整什么。

    于是,水温永远地停留在45℃,永远到不了50℃。

    作为一个人,根据常识,我们知道,应该进一步增加加热的功率。可是增加多少该如何计算呢?

    前辈科学家们想到的方法是真的巧妙:设置一个积分量。只要偏差存在,就不断地对偏差进行积分(累加),并反应在调节力度上。

    这样一来,即使45℃和50℃相差不太大,但是随着时间的推移,只要没达到目标温度,这个积分量就不断增加。系统就会慢慢意识到:还没有到达目标温度,该增加功率啦!

    到了目标温度后,假设温度没有波动,积分值就不会再变动。这时,加热功率仍然等于散热功率。但是,温度是稳稳的50℃。

    kI的值越大,积分时乘的系数就越大,积分效果越明显。

    所以,I的作用就是,减小静态情况下的误差,让受控物理量尽可能接近目标值。

    I在使用时还有个问题:需要设定积分限制。防止在刚开始加热时,就把积分量积得太大,难以控制。

PID到底怎么调?

    PID参数调整口诀:

参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大

曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢。微分时间应加长
理想曲线两个波,前高后低四比一
一看二调多分析,调节质量不会低

若要反应增快,增大P减小I

若要反应减慢,减小P增大I

如果比例太大,会引起系统震荡

如果积分太大,会引起系统迟钝

五、传输线的三个特性,特性阻抗、反射、阻抗匹配

认识特性阻抗

    电阻是一个实实在在的物理元器件,通过欧姆定律我们可以知道,电压、电流和电阻三者之间的关系,U=I*R。

    我们通过一个具体的电路来分析这三者之间的具体关系,请看下面的一张最简单的电路图。这个电路图只有一个电源一个电阻和一些导线组成。

当然这个电阻的阻值也可以通过用万用表来直接测量。

    特性阻抗就不一样了,用万用表测量一根50欧姆特性阻抗时,将会发现是短路的。这就需要我们从概念上区分电阻(哪怕是刚好是50欧姆的电阻)和特性阻抗是两码事。就像温度上面的度(摄氏度)和角度上的度一样,不是一个东西。

    电阻这个物理量大家都懂,这里就不解释了。我们来分析一下这个特性阻抗到底是何方神圣,是在什么条件下才会用这个东西的。

    其实特性阻抗是和射频紧密相隔的一个物理量,在认识特性阻抗之前先认识一下射频。我们知道电台,手机通讯信号,wifi等都是向外部发射信号能量的装置,也就是说能量是从天线射出去,能量不再回来到天线了,可以想像就像机枪向外面扫射一样,子弹打出去就不回来了。

    好了,明白射频这个东西之后,我们再来到具体的传输射频能量的导线上面来。导线上面传输的射频信号也是一样的,希望它传过去就不要反传回来了,要是有能量反传回来就说明传输的效果差了。

    为了更具体的说明特性阻抗这个东西 我这里打一个比方:

    同一个电路板上面有2根导线(假设都是很长的两根线,你能想像它有多长就有多长),因为同一个板,那么2根导线的铜皮厚度都是一样的。两根导线,长(无限长)和厚度是一样的,只能唯一不同的是宽度了,假设1号导线宽度是1(单位),2号导线是2(单位)。也就是说2号线宽度是1号线的两倍。

    下面的图可以具体看到两根导线的示意图。

如上图所示,假如同时都接的是一样的射频发射源,同样的一小段时间T,那么我们看看这两根导线会有什么区别。同一个发射源,那么两根线的输出射频电压是一样的,射频传输的距离是一样的(假设都是光速,实际比光速少)。

    唯一不同的是线宽,而2号线的线比1号线宽一倍,那么2号线需要1号线2倍的电量来填满多出的线宽面积(其实是导线铜皮与底面产生的电容效应)。也就是说:Q2=两倍的Q1。

    因为  i = Q/T (射频电流=电量/时间),那么可以知道2号线的射频电流是1号线的两倍(因为时间是一样的,2号线电量是1号线的两倍)。

    好了,我们知道了 i2=两倍的i1。

    到了这里,我们找出个神秘的特性阻抗就不远了,为什么呢,因为我们知道电阻=电压/电流。其实特性阻抗也有这种关系:特性阻抗=射频电压/射频电流。

    从上面我们知道,射频电压一样的,电流关系为 i2=两倍的i1 。

    则2号线的特性阻抗只有1号线的一半!

    这就是我们所说的线越是宽,特性阻抗越小。

    上面是我举个例子说明特性阻抗与电阻的区别,以及为什么同样一个板子,特性阻抗与线宽有关系,与长度没有关系。

    实际上影响特性阻抗的因素很多,包括材料,导线与底板地间距等等很多因素相关。

    导线的特性阻抗用通俗的话来描述(只是比喻),就是导线对其上面传输的射频能量阻碍力的大小。

认识传输线的反射

    上面我们是假设导线是无限长的,而实际上的导线长度是有限。当射频信号到达导线末端,能量没有办法释放,就会沿着导线反传回来。就跟我们对着墙喊,声音碰到墙反传回来产生回音

    也就是说我们想像中的射频信号发射出去就没有反射回来的情况在现实是不存在的。

如上图所示,假如我们在线的末端接上一个电阻来消耗(或者接收)线上传输过来的射频能量。

    有人会问,为什么导线的特性阻抗的电阻不消耗能量,非要接个电阻才能消耗呢?其实啊,导线只是传输能量的,导线本身并不消耗能量或者近似于不损耗能量(有点想电容或者电感的属性)。电阻则是一个损耗能量的元件。

    我们发现有三种特殊情况:

    当R=RO 时,传输过来的能量刚刚好被末端的电阻R吸收完,没有能量反射回去。可看成这导线是无线长。

    当R=∞时(开路),能量全部反射回去,而且在线的末端点会产生2倍于发射源的电压。

    当R=0时,末端点会产生一个-1倍于源电压反射回去。

认识阻抗匹配

    阻抗匹配是指负载阻抗与激励源内部阻抗互相适配,得到最大功率输出的一种工作状态

    阻抗匹配是针对射频等而言的,对于功率电路则不适用的,否则会烧掉东西。

    我们常常听说特性阻抗50欧姆,75欧姆等等,这个50欧姆是怎么来的,为什么是50欧姆 而不是51欧姆呢,或者45欧姆呢?

    这个是约定来的,50欧姆应该说对于一般射频电路传输效果更好。

    也就是说,我们的导线,电缆要做50欧姆,是因为电路负载已经相当于50欧姆的电阻。你做别的阻抗值导线,就和负载不匹配。偏离越远,传输的效果就会越差!

六、MOS管加三个元件就组成BUCK电路,但难点在于电感

只要是电子产品就需要供电,就离不开电源,那什么是电源:小到手表中的电子,遥控器的电源,大到220V家庭用电,都可以看做是电源。然而在我们的电路设计中,会用到各种芯片,各种芯片所需要的电压值也不一样。

而有一颗芯片需要多个电压(比如:CPU就需要0.8V,1.0V,1.2V;DDR4颗粒需要2.5V,1.2V,0.6V;音频芯片需要3.3V等),而我们的电源输入电压,一般只有一种19V,12V,即使由多种输入也没办法满足这么多种类的电压值小的电压。

那有没有一个办法解决这个问题了?当然有,那就是BUCK能解决此类所有的问题,但今天和大家聊的重点不是BUCK电路, 而是想问问大家,你觉得BUCK电路中那个器件最重要,那个器件学习最难;

什么是BUCK电路?BUCK电路就是降压斩波电路,是基本的DC-DC电路,用于直流到直流的降压变换;与之相对的是BOOST电路(BOOST电路后面再给大家介绍);

下面我们一起先来看看BUCK电路最基本的模型图一:

图一

在这个BUCK模型中,组成的最基本的几个器件是MOS管Q1,电感L1,电容C1和二极管D1;

先来带大家了解这三个被动器件在平常电路设计的作用

1,电容:电容又称“电容量”,是指在给定电位差的电荷储藏能量;它的作用是:旁路,去耦,滤波,储能;旁路电容是为本地器件提供能量的储能器件,它能使稳压器的输出均匀化,降低负载需求。去耦电容是满足驱动电路电流的变化,避免相互间的耦合干扰,减小电源与参考地之间的高频干扰阻抗。滤波就是充电、放电的过程。储能型电容器通过整流器收集电荷,并将存储的能量通过变换器引线传送至电源的输出端;在BUCK电路中电容的选型需要注意耐压值,以及容值,相对情况下选取容值大的滤波效果好。

2, 二极管的作用:二极管也是非常常见的器件,最大特性就是单向导通性,也就是电流只可以从二级管的一个方向流过;最常见的有整流,开关,限幅,续流,检波,变容,显示,稳压等作用;在BUCK电流中二极管的选型需要注意反向耐压值,以及过流值大小,

3,电感的作用:电感在电路中主要起滤波,振荡,延迟,陷波等作用,简单地说就是通直流,阻交流。电感符号:L,电感单位:享、毫享、微享、纳享。在BUCK电路中电感的选型需要计算电感的值,以及电感电流大小的选择,这又有两个参数,电感的饱和电流(Isat)与温升电流(Irms);

下面我们来介绍下BUCK电流的工作过程:

当开关管Q1开关管导通,储能电感L1被充磁,流经电感的电流线性增加,同时给电容C1充电,给负载R1提供能量。等效电路如图二

图二

当开关管Q1开关管关断,储能电感L1通过续流二极管放电,电感电流线性减少,输出电压靠输出滤波电容C1放电以及减小的电感电流维持(此电路中的二极管D1,起到的是续流作用)等效电路如图三

图三

在BUCK电路中,电容和二级管的选取相对比较容易的,电感的两个参数,电感电流大小的选择也还好(实在不会,饱和电流和温升电流选二者小的电流能满足要求的即可),但电路中电感的感值选取和计算是我们经常所面临的一个难点;所以小编认为BUCK电路学习中,电感才是最重要的器件,大家怎么看?

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PCIE(Peripheral Component Interconnect Express)是一种高速串行总线接口标准,用于连接内部硬件设备和外围设备。对于PCIE嵌入式开发,我们需要的资料包括硬件设计指南、规范和数据手册、驱动程序和软件开发工具。 首先,对于硬件设计指南,我们需要详细的PCIE接口设计要求和布局指南,以确保PCIE接口在嵌入式系统中能够正常工作。这些指南通常包括PCIE信号传输、时序要求、电源管理、接地和布线规范等方面的内容。 其次,规范和数据手册是PCIE开发过程中必不可少的资料,这些资料包括PCIE的版本规范、寄存器描述、时序要求等详细信息,对于理解PCIE的工作原理和规范具有重要意义。 另外,针对PCIE的驱动程序和软件开发工具也是必备的资料,这些资料包括PCIE的驱动程序开发指南、软件接口规范、调试工具等,对于PCIE嵌入式系统的开发和调试非常重要。 最后,针对PCIE嵌入式开发,还需要相关的应用案例和开发经验分享,特别是一些实际PCIE嵌入式系统的设计案例和解决方案,这些资料对于开发者能够更好地理解PCIE在嵌入式系统中的应用和具体设计经验具有很大的帮助。 总之,PCIE嵌入式开发资料合集包括硬件设计指南、规范和数据手册、驱动程序和软件开发工具,以及实际应用案例和开发经验分享,这些资料对于PCIE嵌入式系统的开发和应用具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值