本文主要是关于pwm的相关介绍,并着重对pwm的原理以及pwm直流电动机进行了详尽的阐述。
PWM直流电机
目前 ,在直流电机控制系统中 ,普遍采用以单片机或 DSP 作为微处理器的控制系统 , 由于单片机或DSP 控制电机占用端口资源多 、所需周边元器件也较多 ,对整个系统的稳定性和可靠性有较大影响 。可编程控制器作为一种工业控制装置 , 以抗干扰能力强和可靠性高而著称 , 随着可编程控制器的迅速发展 ,其性价比也在不断提高。
直流电机伺服驱动器的主电结构通常采用H桥,调速大都通过PWM方式,其调制方式大致有双极式、单极式和受限单极式三种。不同的PWM方式下电机的运行特性以及主电回路的开关损耗和安全性各有不同。无刷直流电机(BrushlessDCMotor,BLDCM)通常采用三相全桥主电路结构,以三相六状态方波控制运行,任一状态下有两只开关管受PWM控制,其PWM调制方式和直流电机的H桥PWM调制很类似,都是同时两只桥臂受控。直流电机调速PWM方式选择要依据技术指标要求。通常直流伺服控制系统大多采用双极控制,可以保证电机电流的连续性等要求,从而保证电机的快速响应性;对于调速系统,通常电机工作在较高转速、较大负载下,这时可选择单极式,或受限单极式,使主电路不易出现直通故障,工作可靠性高。同时,不同的PWM方式,桥式电路功率器件的损耗、热平衡及续流回馈也不尽相同。
系统软件设计
系统软件总体设计
系统程序主要包括转速检测显示程序、PI控制算法程序及PWM信号产生程序。转速检测显示程序实现对电机实际转速的测量,并利用组态王软件实时显示出来。PI控制算法程序利用PLC的PID功能指令实现速度的PI控制,并将PI控制器的输出值作为PWM控制信号的占空比。PWM信号产生程序利用PLC的PWM功能指令产生周期一定、占空比可调的PWM信号 [2] 。
程序首先对高速计数器、PWM信号发生器和PID参数表进行初始化。然后设置定时中断,并启动定时器开始定时。接下来判断电机的转动方向,若正转,则判断正转高速计数器是否发生中断,否则判断反转高速计数器是否发生中断。高速计数器一旦发生中断,立即读取定时器的当前值,作为计算转速的时间值。之后判断是否发生定时中断,若是则执行定时中断程序,定时中断程序主要工作为定时器清零、高速计数器清零并重新启动、计算转速、转速标准化、执行PID指令、输出值转换及执行PWM指令,继而输出PWM控制信号,否则继续判断是否发生中断 [2] 。
转速检测程序
转速的检测主要是通过光电编码器和PLC的高速计数功能来实现的。光电编码器和电机同轴连接,电机每转1圈,光电编码器A,B两路就产生一定数量的相位互差90°的正交脉冲。为此选择高速计数器为A,B两路正交计数工作方式。为使高速计数器正确工作,首先应向高速计数器的控制字节写入控制字,利用高速计数器的定义指令为所用的高速计数器选定工作模式,写入高速计数器的设定值,把当前值清零,采用当前值等于设定值的中断事件,建立中断连接,然后启动高速计数器。同时启动定时器,当高速计数器的当前值等于设定值时,产生中断,并同时把定时器的当前值读出来,作为产生所设定脉冲数的时间,从而可计算出转速。为提高测量精度,减少测量误差,可使用多个高速计数器,每个高速计数器检测不同时间范围的脉冲数。鉴于S7-200PLCCPU224有4个高速计数器具有A,B两路正交计数方式,程序采用了4个高速计数器进行计量,然后取其平均值。
浅谈直流电动机pwm原理
1.脉宽 调 制 (PWM)是利用数字输出对模拟电路进行控制的一种有效技术,尤其是在对电机的转速控制方面,可大大节省能量。PWM 具有很强的抗噪性,且有节约空间、比较经济等特点。模拟控制电路有以下缺陷:模拟电路容易随时间漂移,会产生一些不必要的热损耗,以及对噪声敏感等。而在用了PWM技术后,避免了以上的缺陷,实现了用数字方式来控制模拟信号,可以大幅度降低成本和功耗。
2.直流无刷电机
直流无刷电机由电动机、转子位置传感器和电子开关线路三部分组成。直流电源通过开关线路向电动机定子绕组供电,电动机转子位置由位置传感器检测并提供信号去触发开关线路中的功率开关元件使之导通或截止,从而控制电动机的转动。在应用实例中,磁极旋转,电枢静止,电枢绕组里的电流换向借助于位置传感器和电子开关电路来实现。电机的电枢绕组作成三相,转子由永磁材料制成,与转子轴相连的位置传感器采用霍尔传感器。3600范围内,两两相差1200安装,共安装三个。为了提高电机的特性,电机采用二相导通星形三相六状态的工作方式。开关电路采用三相桥式接线方式。
调速以及稳速控制
在调 速 电 路中,主要采用时基电路LM555和脉宽调制器SG1525来完成,LM555用于产生一个占空比一定、且有固定频率的方波信号。SG1525为单片脉宽调制型控制器芯片,具有输出5.1V 的基准稳压电源,误差放大器、振荡频率在100^ 400kHz范围内的锯齿波振荡器、软启动电路、关闭电路、脉宽调制比较器、RS寄存器以及保护电路等。它解决了PWM电路的集成化问题,在实例中用此芯片来实现系统的调速。在具体的电路中,首先对位置传感器信号进行整形,形成所需要的前后沿很陡,具有一定宽度的波形。经微分电路微分,产生的微分脉冲去触发时基电路LM555,形成占空比为2:1的方波,方波频率约为200Hzo
此方波频率计算公式为:f= n * p/ 60式中,Y1为电机的额定转速r/min, f为位置传感器输出信号的频率、P为电机的极对数。方 波 经 滤波器滤波后,形成直流电压送人脉宽调制器,与脉宽调制器的反馈电压进行比较,利用得到的误差信号去控制脉宽调制器输出的调制方波脉冲的宽度变化,即PWM输出脉冲占空比的变化,利用占空比的变化调整加在电机电枢绕组上的电压,改变电压随即改变电机电流,转速依据电流的大小来改变。
结束语:在应用实例中,PWM对调速系统来说,有如下优点:系统的响应速度和稳定精度等指标比较好;电枢电流的脉动量小,容易连续,而且可以不必外加滤波电抗也可以平稳工作;系统的调速范围宽;使用元件少、线路简单。
pwm应用详解
PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。
图1显示了三种不同的PWM信号。图1a是一个占空比为10%的PWM输出,即在信号周期中,10%的时间通,其余90%的时间断。图1b和图1c显示的分别是占空比为50%和90%的PWM输出。这三种PWM输出编码的分别是强度为满度值的10%、50%和90%的三种不同模拟信号值。例如,假设供电电源为9V,占空比为10%,则对应的是一个幅度为0.9V的模拟信号。
图2是一个可以使用PWM进行驱动的简单电路。图中使用9V电池来给一个白炽灯泡供电。如果将连接电池和灯泡的开关闭合50ms,灯泡在这段时间中将得到9V供电。如果在下一个50ms中将开关断开,灯泡得到的供电将为0V。如果在1秒钟内将此过程重复10次,灯泡将会点亮并象连接到了一个4.5V电池(9V的50%)上一样。这种情况下,占空比为50%,调制频率为10Hz。
3、特点
PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换,让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。
对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。
PWM控制直流电动机
直流调速器就是调节直流电动机速度的设备,上端和交流电源连接,下端和直流电动机连接,直流调速器将交流电转化成两路输出直流电源,一路输入给直流电机砺磁(定子),一路输入给直流电机电枢(转子),直流调速器通过控制电枢直流电压来调节直流电动机转速。同时直流电动机给调速器一个反馈电流,调速器根据反馈电流来判断直流电机的转速情况,必要时修正电枢电压输出,以此来再次调节电机的转速。
直流电机的调速方案一般有下列3种方式:
1、改变电枢电压;
2、改变激磁绕组电压;
3、改变电枢回路电阻。
使用单片机来控制直流电机的变速,一般采用调节电枢电压的方式,通过单片机控制PWM1,PWM2,产生可变的脉冲,这样电机上的电压也为宽度可变的脉冲电压。根据公式
U=aVCC
其中:U为电枢电压;a为脉冲的占空比(0
电动机的电枢电压受单片机输出脉冲控制,实现了利用脉冲宽度调制技术(PWM)进行直流电机的变速。
因为在H桥电路中,只有PWM1与PWM2电平互为相反时电机才能驱动,也就是PWM1与PWM2同为高电平或同为低电平时,都不能工作,所以上图中的实际脉冲宽度为B,
我们把PWM波的周期定为1ms,占空比分100级可调(每级级差为10%),这样定时器T0每0.01ms产生一次定时中断,每100次后进入下一个PWM波的周期。上图中,占空比是60%,即输出脉冲的为0.6ms,断开脉冲为0.4ms,这样电枢电压为5*60%=3V。
我们讨论的是可以正转反转的,如果只按一个方向转,我们就只要把PWM1置为高电平或低电平,只改变另一个PWM2电平的脉冲变化即可,,如下图(Q4导通,Q3闭合,电机只能顺时针调整转动速度)
C语言代码:
#include
#define uchar unsigned char
#define uint unsigned int
sbit K5=P1^4;
sbit K6=P1^5;
sbit PWM1=P1^0;
sbit PWM2=P1^1;
sbit FMQ=P3^6;
uchar ZKB1,ZKB2;
void delaynms(uint aa)
{
uchar bb;
while(aa--)
{
for(bb=0;bb<115;bb++) //1ms基准延时程序
{
}
}
}
void delay500us(void)
{
int j;
for(j=0;j《57;j++)
{
;
}
}
void beep(void)
{
uchar t;
for(t=0;t《100;t++)
{
delay500us();
FMQ=!FMQ; //产生脉冲
}
FMQ=1; //关闭蜂鸣器
delaynms(300);
}
void main(void)
{
TR0=0; //关闭定时器0
TMOD=0x01; //定时器0,工作方式1
TH0=(65526-100)/256;
TL0=(65526-100)%256; //100us即0.01ms中断一次
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器T0
ZKB1=50; //占空比初值设定
ZKB2=50; //占空比初值设定
while(1)
{
if(!K5)
{
delaynms(15); //消抖
if(!K5) //确定按键按下
{
beep();
ZKB1++; //增加ZKB1
ZKB2=100-ZKB1; //相应的ZKB2就减少
}
}
if(!K6)
{
delaynms(15); //消抖
if(!K6) //确定按键按下
{
beep();
ZKB1--; //减少ZKB1
ZKB2=100-ZKB1; //相应的ZKB2增加
}
}
if(ZKB1》99)
ZKB1=1;
if(ZKB1《1)
ZKB1=99;
}
}
void time0(void) interrupt 1
{
static uchar N=0;
TH0=(65526-100)/256;
TL0=(65526-100)%256;
N++;
if(N》100)
N=0;
if(N《=ZKB1)
PWM1=0;
else
PWM1=1;
if(N《=ZKB2)
PWM2=0;
else
PWM2=1;
}
//显现:电机转速到最高后,也就是N为1或99时,再按一下,就变到99或1,
//电机反方向旋转以最高速度
关于pwm的相关介绍就到这了,希望通过本文能让你对pwm有更全面的认识。
;
结语
相关阅读推荐:基于UC3637的直流电动机PWM控制电路图
相关阅读推荐:无刷直流电机的PWM调制方式
评论
查看更多