添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

最近在学习和电机驱动有关的知识,其中涉及了 PWM控制脉宽周期 以及 输出电压电流 , FOC驱动算法,H桥驱动电路,PID控制 ......信息量过大,在此记录一下以防忘记,学习主要参考 正点原子官网的电机资料 以及下面的一些链接

【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 知乎 (zhihu.com)

PWM 驱动电路的结构 - 知乎 (zhihu.com)

peng-zhihui/Dummy-Robot: 我的超迷你机械臂机器人项目。 (github.com)

TB67H450FNG (szlcsc.com)

克拉克变换(Clarke Transformation)

这是一块由东芝出品的基于 PWM输入 的 斩波型直流有刷电机驱动器 (对于两相步进电机也适用),额定输出电压为50V,有前进/倒挡/刹车/停车四种模式,允许大电流驱动,

宏观上的四种模式由这两个输入口决定,特别注意的是当IN1和IN2均为低电平进入 休眠模式 后过 1ms 会进入准备状态

而从准备模式进入工作模式也有 30微秒 的延时

我们先看一下宏观逻辑图

特别强调一点,由于电机线圈是电感类元器件,因此在工作时会涉及 能量的循环利用 ,为此设计者配置了三种不同的模式来利用这部分能量,这在后面会提到

明白了逻辑后我们再看引脚图就会清晰很多

这里的输入信号即为单片机发出的 PWM信号 ,在提PWM之前我们先来看看 斩波电路

简单来说,斩波电路就是将 恒定的输入信号 转换为 目标信号的电路 ,通常为DC-DC,大致原理为:将连续的信号斩断成 一节一节的脉冲 信号,斩波电路一般有 降压斩波电路、升压斩波电路、升降压斩波电路、Cuk斩波电路、Sepic斩波电路、Zeta斩波电路 ,我们来简略介绍一下前三种

降压斩波电路(BUCK)

我们看左边的电路图, Ui为电压源,U0为负载电压,V是一个可控开关 ,当V 导通 时,负载电压等于电压源电压,当V 断开 时,二极管D 续流 ,此时U0为0,因此在一个 单位周期T 内,负载的电流等于 Ui*α ,其中α为 占空比 ,即一个周期内V导通的时间Ton/T

因此我们不难得出,U0的最大电压只能为Ui,此时α=1,如果减小占空比单位负载电压也会随之减小,故称该电路为 降压斩波电路

升压斩波电路(BOOST)

和之前的配置差不多,当V为导通态时,Ui会持续给 电感L1充电 ,同时给 C1充电 ,C1再给U0充电,当电路处于 稳态 时,电感在一个周期内吸收到的能量为 Ui*I1*Ton

当V 断开 时,电感和电压源一起给U0充电,此时电感的电压为Ui-U0,由于稳态 系统能量守恒 ,

Ui*I1*Ton = (Ui-U0)*I1*Toff

不难得出 U0 = (T/Toff)*Ui ,因此无论何时T/Toff >= 1,故称之为 升压斩波电路

升压降压斩波电路

根据图中信息我们可以得知,当V导通时电压源Ui给L1充电且给U0充电,当V断开时电感给U0充电且方向与Ui 相反 ,因此易得U0 = (Ton/T-Ton)* Ui,因此当占空比 0<α<0.5 时为 降压电路 ,反之为 升压电路

H桥驱动电路

现在我们知道PWM信号控制的是输入信号的 占空比 进而控制斩波电路的输出信号,那么我们在之前步进电机原理部分学习到,电机线圈上的电流每发生一次换向电机转子移动一个步距角,用于改变电机 电流方向&大小 的方法即为---- H桥

先不急着看这些衰减模式到底有何作用,我们就从最左边的图来分析H桥,该电路简单来看就是由四个 MOS管开关 组成,将输入的交流信号转换为直流信号,或者将直流信号转换为交流信号,通过开关的在时间节点上的关断实现,不难理解,我们来聊聊 衰减模式

快速衰减 就是断开加在电机绕组线圈的电压,同时将其 内部储存能量 释放给 其他用电器 ,由于

Q = I*R^2*T ,含有电阻元件的用电器 消耗能量快 ,进而衰减速率快,因此称为快速衰减

和上面形成对比,在慢速衰减模式下,断开加在电机线圈绕组的电压,同时将电机绕组 正负极相接 ,由于绕组 没有 电阻元件,此时 能量消耗较慢 ,称为慢速衰减

一般根据电机的转速来选择衰减方式: 转速高进快速衰减,转速低进慢速衰减,高速衰减会出现震动大有噪声 的情况, 慢速衰减会导致电机转矩不够进而定位不准

导致上述现象的原因为,快速衰减时PWM信号断开,再到重新启动的过程中会存在一个 较大的死区 ,信号需要从 0加载回目标值 ,而慢速衰减时会有一个 大的电流信号 无法流向其他负载而是直接 流向H桥 ,严重可能导致烧坏,所以我们一般采用 混合衰减模式 ,高速用快速衰减,降到低速换回慢速衰减

PID算法

相信大部分学过自控的朋友都有涉猎过,三个 参数P(比例)I(积分)D(微分) ,我简单带过一下全局PID算法

通俗地说就是目标值和测量值之间存在 误差Δ ,我们就用 P*Δ 去逼近目标值,有时候这个逼近的过程太慢或者出现 稳态误差 (在未到达目标值之前系统就收敛)

我们就需要引入 积分项I 令其乘上累计误差,我们用 I* \sum Δ + P*Δ 即为比例积分输出,但有时候可能会出现响应过快的情况( 超调 )

此时我们就需要引入第三个参数: 微分项D ,其计算公式为 D*(Δi - Δi-1) ,此时输出的计算公式就可以称为一个完整的PID系统

FOC算法

在提FOC之前,我们先来看看FOC的一般应用场合---- 直流无刷电机(BLDC)&永磁同步电机(PMSM) ,在之前也提到了步进电机的内部组成,广义地说,步进电机也能算是无刷直流的一个子集,电机驱动都离不开 MOS管开关

那么BLDC的驱动原理也应该和步进电机类似---- 控制加载在电机绕组上的电流值来精准控制电机转子的转动 ,那么只是普通的给绕组电流肯定是不够的,之前提到了电机驱动软件细分的原理就是通过PWM持续发送 离散的正弦信号 给线圈进而控制电流,这样能够使电机输出的转动更为丝滑,个人拙见认为FOC与其有异曲同工之妙

拿三相电机举例,如果我们想让转动时的精度最高,效果最好,那么不难得出我们要尽可能地控制电机输出的三个相信号之间要 存在120°的相位差(360°/3) ,为此,FOC便诞生了

三相逆变电路

补充一下BLDC的驱动原理---- 三相逆变电路 ,和H桥类似,只不过这里用了 三组半桥MOS管 组成电路,通过按一定顺序控制MOS管的关断就可以控制三组绕组按一定次序的工作,注意这里的MOS自带了二极管,其目的是为了后面利用电机绕组电感产生的电流

但我们知道如果输入给驱动器的信号大小不变的话,绕组产生的力也不变且转子转动的角度不好控制,为此我们就要引入FOC算法,在那之前我们要先介绍FOC中的一些数学知识---- Clark变换&Park变换

Clark变换

当我们用手转动PMSM的输出轴时,通过示波器我们可以观测到输出的信号为 三组正弦波

我们已经知道了三相逆变电路的工作流程,不难想象当电机稳定工作时传感器能采样到的电流应该如下如图所示( 相位差120° )

那么如果我们 反过来 给电机三组正弦波信号,电机就能匀速丝滑的转起来,但是作为一个系统来说,这个系统是 非线性 的, 运算量过大 ,因此我们需要利用数学工具来 线性化系统

创建一个三维CUBE并将其 投影 到二维平面

投影的图像方向与a',b',c'相同,我们需要乘上一个 比例系数K1 ,以a为例,a在二维平面上的电压大小会变为 Ua = K1*Ua’*sinθ

在经过三维->二维的变换后,我们现在只需要通过 一组正交基 就可以表达三相信号

为了防止 产生相位差 ,我们令α坐标与a'重合,此时 α = K2*α ,K2为新的比例系数,利用三角函数以及矢量合成可以得出最终Uα和Uβ分别为

这样一个Clark变换就算初步完成了,但还需要做一些调整

我们假设在变换前电机 三相绕组数为N1 ,变换后电机 二相绕组数为N2

从下图公式可以看出,当a与α同方向时, Umax = 3/2Ua ,根据 幅值不变原理 ,我们需要在最终得到的结果前乘上 2/3

故N1/N2 = 2/3

利用齐次方程组表示为

再利用 基尔霍夫电流定律(KCL) 可以求解方程最终解

于是我们便成功地将 三个正弦波 转换成了 两个正弦波

但两个正弦波直接 并不是线性无关 的,还没有完全解耦,控制起来难度还是很大,所以接下来就要引入 Park变换

Park变换

Park变换简单来说就是将 静态的坐标系 变为 动态 的,变换后的坐标系会 随着转子一直持续转动 ,这样就能得到最终解耦出的信号,分别为 励磁分量 和 转矩分量 ,其中励磁分量从狭义上来讲就是通过电机绕组的电流量,这两个分量始 终相互垂直,线性无关

简单地说,Park变换就是通过变换矩阵改变坐标系的位置进而实现解耦,和机械臂中的空间变换矩阵有类似的效果

具体计算即为下面这个简单的变换矩阵

经过Park变换后,坐标系始终与运动中的电机转子保持同步,这个向量最终变成了一个定值,两个控制变量都完成了线性化

但Id是我们不需要的,我们需要的只是Iq

因为我们要尽可能地减少 励磁效应 带来的电流误差,我们要尽可能得到精确的力矩分量

但最后我们还需要进行 逆Park变换 ,这是为什么呢,因为三相逆变电路的输入信号是SVPWM,该信号计算需要用到 静态的坐标系 ,因此在我们经过PID闭环处理后需要进行一次逆Park变换交给SVPWM处理

SVPWM

在介绍SVPWM之前,我们要先提一下 空间矢量电压 的概念,直观地说就是在三相线圈上的电压值按照 矢量合成 的结果

在三相电路中,各相位电压的表达式如下,其中Um为输入的最大电压,而最右侧的式子是经 欧拉公式 转换得到的

经过了Park逆变换后,动态坐标系变为静态,此时 角速度为0 ,经过简化得到最终的合成矢量电压

由结果可以看出得到的结果为一个 旋转的空间矢量 ,它的幅值不变,为相电压峰值的 1.5 倍,且以角频率 ω= 2πf 按逆时针方向匀速旋转的空间矢量

我们知道三相电路的六个半桥MOS管能够产生8种输出(2^3),全部可能组合共有 八个 ,包括 6 个非零矢量 Ul(001)、U2(010)、U3(011)、 U4(100)、U5(101)、U6(110)、和两个零矢量 U0(000)、U7(111)

举个例子,当我们MOS管状态为 100 时, A相上半桥导通,B,C相下半桥导通 ,等效电路如下

不同的输入产生不同的电压值

这些不同的MOS管状态就产生了不同的相位扇区

因此我们可以用这 六个扇区的矢量电压以及两个零电压 来表示所有的电压值,公式的直观解释就是控制 单位时间 内不同电压的 占空比 来控制最终的输出电压

下面给出公式推导

最后我们就可以求得每个扇区所占用单位周期的比重( 脉宽调制比 )

在做完这些操作以后,我们还需要做最后一步,那就是设计MOS开关的顺序,为了减少资源消耗,我们要尽可能地让每次状态切换只产生 一个相位的改变 ,因此就需要用到 七段式SVPWM调制法

最终,在经过这样有序的周期性SVPWM输出调节后,我们的电机总算能够稳定且丝滑地被驱动了

总结一下驱动的整体流程,我们要先通过 力矩环即电流环 来实现对 Iq&Id 的控制,然后进入速度环进行控制,利用 编码器读取电机输出的脉冲信号计算速度 ,将 速度环 的输出传递给 电流环 作为输入,这样就形成了 双闭环控制 ,亦或者我们可以将速度环直接替换成位置环,这在机械臂运动中应用性更好

闭环部分介绍完了就该介绍FOC部分了,我们先将 三相信号 经过 Clark变换 变为 ‘二相’信号 ,再经由 Park变换 变为 线性信号 传给 PID闭环 ,然后再 逆Park变换 回 静态坐标系 给 SVPWM部分 做 静态矢量计算 ,将要控制的 脉宽系数 传递给 三相逆变驱动 ,最后成功驱动电路

TB67H450FNG 电机驱动 芯片应用要点:该芯片支持50V/4.5A大电流驱动,采用0.25Ω低阻MOSFET,内置过流、过热、欠压保护。核心电路包含电源(12-44V)、控制信号(带施密特触发)和 电机驱动 三部分,需特别注意大电流路径布局和散热设计。通过VREF引脚调节输出电流,支持混合/慢衰减模式选择。典型应用需配置100μF电解电容滤波、0.1μF去耦电容及合适检测电阻(0.1-0.5Ω)。控制时序由IN1/IN2输入决定,nENABLE引脚实现启停控制。 【下载地址】 TB67H450FNG 直流有刷 电机驱动 IC规格书datasheet TB67H450FNG 是一款由东芝公司生产的高性能直流有刷 电机驱动 IC,适用于多种应用场景。该产品具有宽工作电压范围(4.5V至44V),最大额定值可达... 随着生活水平的提高,我们也越来越注重家居的生活品质,此时智能产品也不断出现在我们的生活当中,大到选购家具橱柜小到家用电器,都会格外用心,以达到提升家居质感。而智能家居领域中的扫地机器人,无疑具备了这种时尚又实用的特质,受到越来越多的消费者的喜爱和认同。扫地机器人的基本功能是清扫、吸尘、拖地,通过对于清扫毛刷的材料、结构形式、旋转方式,以及拖布材料、供水量、拖布布置方式等功能实现了更好的清... 此外,该产品采用兼容引脚分配的小型HSOP8表面贴装进行封装,适用性更强。优化了 TB67H450FNG 的待机电流消耗,当电机在停止运行时自动进入待机模式,并关闭VCC稳压器以进行内部电路操作。这有助于帮助OA设备和家用电器降低能耗,以及延长电池供电设备的电池使用寿命。该IC采用小型表面贴装式HSOP8封装,通过封装散热焊盘设计,既能节省空间,又能实现良好的散热性能。驱动能力,可用于真空扫地机器人、冰箱和其他家电的 电机驱动 ,以及办公设备、ATM机等多种应用。供电和工业12至36V供电设备。 ## 产品概述 TB67H450FNG 是一款新型的直流有刷 电机驱动 IC,具备最大额定值50V/3.5A,能够在宽泛的工作电压下驱动电机。该产品采用小型HSOP8表面贴装封装,具有更强的适用性。 ## 特性 - **宽工作电压范围**:4.5V至4... 东芝 TB67H450FNG 是一款采用先进ACDS(高级电流检测系统)技术的双极步进 电机驱动 器,无需外部分流电阻即可实现精确的电流控制。这款驱动器支持最高1/16微步进操作,提供高达2.8A的输出电流,是各种精密运动控制应用的理想选择。