最近一直在研究无刷电机驱动,随着资料和方案越看越多,觉得还是根据自己理解写一点心得,希望对大家有帮助,文章如有不对之处还望大家多多包涵。
好了,下面来进入正题一、无刷直流电机种类
我们常见的无刷直流电机有两种,一种是带霍尔传感器的叫有感无刷直流电机;另外一种是航模常用的不带霍尔传感器的叫做无感无刷直流电机。
下面来简单介绍下两种电机之间的区别。
有感无刷电机在电机的内部会装有霍尔传感器,其安装的位置一般都是对称的,有30度、60度、120度,其重要功能是来反馈电机转子的位置,来告诉控制者什么时候可以换相了,还有可以根据其两次换相的时间来反馈电机的转速。
有感无刷电机一般都是用在工业级控制上面,其功率都偏大。
无感无刷电机是不带有霍尔传感器的,其输出线只有三根电机控制线,那么我们怎么来知道电机转子的位置和转速呢,还有我们怎么来驱动它,下面我们慢慢来分析其中的奥秘!
二、无刷电机的驱动常用的电路
在直流有刷电机驱动大家应该都知道用全桥电路来控制其的正反转,通过改变PWM 的占空比来改变其转速。
无刷电机的控制方式和其很相似,只是多了一对半桥。
上面的电路图是从其他论文上截图的,我们可以看出图右边是无刷电机的模型,其采用的是星型的连接方式。
其输出有三根线,常称其为:A相、B相、C相。
也有称呼为:U相、V相、W相。
左边的为功率变化驱动电路,上图采用的是NPN型的三极管,若用5V的单片机来驱动它,则高电平导通,低电平截止。
不知道大家注意到没有,每个三极管旁边都会有一个二极管,其作用很大,它起到一个续流的作用。
如果大家有研究过开关电源ZVS移相全桥拓扑的应该知道这个续流二极管的重要性。
上图是用MOS来驱动的,其可以过大电路,
无刷电机驱动都是按照一定顺序来换相来推动转子的转动。
其上图的换相顺序ABàACàBCàBAàCAàCB。
每个相占60度的电角度,同时只有两相通电。
其通电
上管和下管配合开通,注意同一相上的上下管不能同时开通,否则会造成电源短路,如Q1Q2。
上下管的开通方式一般为上管调制开通,下管全开。
上管调制开通的主要是改变电机转速。
其驱动的波形和各个相上的电压波形如下图所示:
三、无感无刷电机的过零检测
无感无刷电机的难点在于怎么判断转子的位置,我们可以根据线圈的反电动势和中心点电压做比较得到,我们先来理论分析下电机的反电动势。
如上图所示为端电压模型,Ex为不同相的反电动势,Ix为驱动流过电机的电流,L和R为电机线圈的等效电路。
Vn为中心点电压。
则可以列出三相端电压为:
由于在任意一时刻同时有两定子绕组通电,绕组上的电流大小相等,方向相反,而另一绕组此时为断电状态,电流为零。
则有RIa+RIb+RIc=0,而绕组上产生的瞬间的冲击电流可以忽略不计,则dI/dt可忽略不计。
则Ea+Eb+Ec=Enonfed(Enonfed为未通电绕组上的反电动势)。
上面的三个式子可以化简为:
V a+Vb+Vc= Enonfed+3Vn;
而当某相绕组断电时,其电压为:Vnonfed=Enonfed+Vn
则化简可得反电动势为:Enonfed=[3*Vnonfed-( V a+Vb+Vc)]/2;
我们根据上面的式子可以看出未通电绕组上3倍断电压减去三相端电压的和为反电动势的2倍,得到的反电动势的值从正到负跳变的时候则为过零时刻。
以上为理论分析所得,但实际上我们常采用的过零检测方式为未通电的绕组的端电压与三相的中心点电压做比较,如果比较器输出发生电平跳变则为过零时刻。
每相的端电压采样可以用电阻分压获得,其电路图为:
上图为德国MK开源的无刷电机驱动的过零检测电压采样电路,上面的电阻阻值都为4.7K,C1、C2、C4
当AB通电,即PHASE_A端电压为VCC,PHASE_B为0V,我们可以比较PHASE_C的端电压和MITTEL点电压,当发生跳变时即为过零时刻。
那么有网友根据理论说,MITTEL 点电压为1/4VCC,NULL_C电压在1/2VCC~0V之间变化。
我们可以用仿真软件来仿真一下两点实际的电压值。
当然觉得自己理论功底比较好的朋友可以自己动手笔算一下。
仿真结果为MITTEL电压为4V,NULL_C电压为5.3V。
随着电机的转动PHASE_C上的反电动势会越来越小,则PHASE_C上的电压会发生变小,PHASE_C电压为3V时,NULL_C 电压为1.8V而MITTEL点电压为2.5V,则NULL_C<MITTEL。
当把MITTEL输出点接入比较器的正极,把NULL_A/B/C接入比较强的负极,比较器输出端接入单片机捕捉口,上升沿与下降沿作为换相点。
有些是直接接入单片机模拟比较器内,内部采用上升沿或下降沿来触发进入中断,连续两次的之间的间隔时间即为电机的转速。
上面两个图都为单片机内部的模拟比较器外设模块,其通道可以复用,这样很好的能比较每一相和中心点的电压。
单片机可以采集换相时间和在过零30度点角度后换相。
有人会问,如果选的单片机没有模拟比较器这个模块怎么办,有两个办法可以解决这个问题,第一种,外加比较器硬件电路,输出端接入单片机的捕捉口。
第二种,不用搭外部硬件电路,用AD端口采样各点的电压,可以用Enonfed=[3*Vnonfed-( V a+Vb+Vc)]/2的由正到负的跳变来判断过零点,这样好处是可以软件滤波,三相电压都用起来,会降低电机本身的噪声影响。
需要注意的,用电阻分压来采集需要注意根据驱动电压的大小来正确配置分压电阻的阻值。
否则超过单片机端口电压,损坏单片机端口。
四、无刷电机的闭环控制
闭环系统需要一个反馈值和理论值做误差分析,有上面几节的介绍,大家应该知道一个
换相时间,这个可以时间可以反映电机的转速。
我们可以用PID来调节转速,看了些文章介绍一个双闭环的控制,另外一个反馈值为流过电机点的电流值,电流值我们可以
用毫欧级的功率采样电阻来采样。
如图所示RS1为采样电阻,R26与C19构成了低通滤波器,滤除高频噪声。
BA V6是为了防止采样过压和负压。
下面来说说双闭环系统是怎么来控制电机的
电机电流控制环
设电流期望值为Iset,电流反馈值Ifed,电机PWM控制值为M,比例系数为K,则有关系式:Mnew=M+K*(Iset-Ifed);
电机转速控制环
设电机反馈的速度值为SPEED1,设定值为SPEED2,则偏差为:Serror=SPEED2-SPEED1;根据Serror建立模糊化的赋值表,然后根据经验可以列出若干条的控制规则,再有控制规则进行模拟推理,输出进行反模糊化时,采用最大的隶属规则,得到一张控制查询表,电机输出的PWM的值根据查询表中的值输出,则完成了电机的模糊控制。
双闭环=电机转速控制环+电机电流控制环,可以采用两种控制方式,第一种是两个同步采样,即主回路和副回路采样周期相同。
第二种,主回路的采样周期是副回路采样周期的整数倍。
这是因为一般串级控制系统中主回路受控对象的响应速度慢,副回路受控对象响应速度快的缘故这时应根据副回路选择采样周期,因为副回路的受控对象的响应速度较快。
(参考技术文档)
以上都为硬件部分的讲解,做航模电调模块的话还需要讲解PPM的信号的解码,单通
道油门信号的采集换算。
由于时间问题,这里就不一一讲解了。
先写到这里,后期会陆续写出基于MC9S12XS128的软件控制。
写到这吧,祝大家十一七天乐!BY 优乐美2014-9-30。