引言
为使发动机转速均匀需要对其精确供油,不同的转速通过控制油泵不同工作电压实现,不仅要求供电电源具有大功率输出能力、输出电压易于调节,而且要求电源的输出电压能够有效抑制负载干扰。一般情况下,频率恒定、占空比可调的PWM波通过驱动电路给直流电机供电,可以实现其调速,参考文献[1]、[2]给出了一种PWM波的直流电机调速系统。
但对于低成本的经济燃油泵电机,因其负载特性比较复杂,油泵电机在PWM波供电方式下的转速不稳定,经常出现抖振,影响了给发动机供油的精确性。现在市场上虽然有性能优良的大功率稳压模块和开关电源可供选择使用,但它们存在体积偏大、价格高、非专业用途难以接受等现实问题,且通常输出电压不能程控调节,不能满足实际的应用要求。本文设计了一种低成本、大功率程控稳压电源,该电源不仅具有给不同复杂负载供电的通用性,而且能够满足高精度输出电压的要求。
1 实现方案
程控大功率可调稳压电源主要由外部电源、大功率稳压电路、程控电压调节电路和抗负载干扰电路构成。系统结构框图如图1所示。
图1 系统功能框图
程控大功率可调稳压电源通过稳压电路获得稳定输出电压,大功率电路提高电流输出能力,程控电路自主调节稳压电路的输出电压,抗负载干扰电路抑制稳压电路中出现的交流杂波和高频尖峰来实现电源系统功能的。
大功率稳压电路是当负载电流远大于稳压芯片标称电流值时,用扩大输出电流的方法来满足大电流输出要求的。开关电源芯片反馈获得稳定电压,电流的取样放大首先选择的方案1是通过大功率三极管扩流完成,但是稳压电路的输出电压中始终摆脱不了三极管的非线性带来的影响。大电流实现方案2是通过外部电源驱动大功率MOS管实现的,这种方式得到的输出电压比较稳定,能够满足供电需求。程控电压调节电路是通过程序控制调节串联在反馈稳压回路中的分压数字电阻的阻值实现输出电压自主调节目的。摆脱了必须通过手动调节电压的不便,同时提高了输出电压的调节精度。
抗负载干扰电路是采用电容滤波的方式来滤除电路中的交流杂波和高频尖峰,实现电源电路的直流电压输出。
2 硬件电路设计
2.1 大功率稳压电路
大功率稳压电路主要包括稳压电路和扩流电路。稳压电路主要是获得稳定的输出电压。扩流电路主要是在稳压芯片的输出电流不能满足负载电流要求时,采用扩大电流的方式提高电路的输出电流满足负载应用的。
第一部分为稳压电路,LM2596ADJ[3]开关电压调节器输出电流最大为3 A,同时具有很好的线性和负载调节特性。12 V供电时,输出电压范围广(1.2 V~12 V±4%),能够满足不同的电压需求。具体电路如图2所示。调整W和B两端串联电阻的阻值可以调整稳压电路的输出电压值。
图2 稳压电路
第二部分为扩流电路。开关电源芯片LM2596ADJ组成的稳压电路能够输出最大3 A的电流,而实验用BOSCH牌经济燃油泵额定工作电流为3.5 A。工作过程中,当油泵两端的电压较高时,要求的输出电流会在10 A左右。为满足电机负载的工作需要,需提高电路的输出电流。
大功率实现方案1的具体电路如图3所示。
图3 提高输出电流后的稳压电路
上述电路采用两个大功率PNP三极管3AD53对稳压电路进行扩流,扩流后的电流理论上能够到达10 A,但是稳压电路的输出电压始终摆脱不了三极管的非线性区带来的影响。所以并未采用这种方案。
大功率实现方案2的具体电路如图4所示。
图4 提高输出电流后的稳压电路
图4的电路采用+12 V驱动大功率MOS管IRF9530N[4]来提高电路的输出电流,P沟道增强型MOS管的开启电压UGS(th)<0,当uGS<UGS(th)时,MOS管才导通,漏(D)源(S)之间应加负电源电压。LM2596ADJ的输出通过开关三极管S9013控制扩流电路的导通,使得uGS可在一定负值(UGS(th))的电压范围内实现对电流ID的控制。其漏极允许流过的最大电流为14 A,完全可以满足电机负载的电流要求。更大电流需求情况下,可以通过更换大电流MOS管的方式实现。
2.2 程控电压调节电路
为了实现电源输出电压的自主调节,同时提高输出电压的调节精度,系统采用程序控制调节电源的输出电压。具体的程控电压调节电路是通过两部分电路来实现的。
第一部分为程控调节数字电位计电阻值电路。数字电位计AD5293选择单电源+12 V供电,逻辑电平选择+3.3 V。AD5293[5]兼容SPI串行接口,因此选择STM32F103VET6的SPI总线来控制调节AD5293的阻值变化。具体电路如图5所示。
图5 程控电压调节电路(电阻调节部分)
第二部分为程控电压调节电路(稳压电路部分),如图4所示。图4和图5电路中的网络标号W与B分别相连构成了基本的程控电压调节电路。控制芯片STM32F103VET6发送控制指令改变数字电位计AD5293的电阻,串联在稳压调节电路中的电位计反馈分压改变输出电压。
2.3 抗负载干扰电路
2.3.1 输出串联阻性负载
程控大功率电压调节电路在输出串联阻性负载时,不同输出电压的实验结果略——编者注。从上到下,输出电压分别为1.92 V、2.52 V、3.01 V和3.46 V。输出电压的测量值与期望值之差在0.01 V左右,电路的控制效果良好。
2.3.2 输出串联电机负载
在实际使用BOSCH牌经济型燃油泵电机情况下,因其负载特性复杂,干扰了LM2596ADJ的开关控制效果,扩流后电源输出呈现出明显的延迟后的开关电源调节过程,此时油泵电机出现大幅度转速波动。经济型油泵电机负载对控制电路产生了不良影响,导致电源电路输出的电压中含有不同程度的波动。实验结果略——编者注。
开关电源的锯齿波电压频率高达数万Hz,甚至是数十MHz,这时衡量输出滤波电解电容滤波效果的主要指标不再是其电容量,而是其“阻抗频率”特性。要求电容在开关电源的工作频率内要有较低的等效阻抗,同时对开关电源工作中产生的高频尖峰信号有良好的滤波作用。所以,为了抑制输出电压的波动到LM2596控制电路反馈的噪声,在反馈回路中的数字电位计两端并联220 μF/25 V的电容,用示波器测量输出端的电压波形,并在电压输出端并联2 200 μF/50 V的电容,同样用示波器测量输出端电压波形。具体硬件电路如图6所示。
图6 抗电机负载干扰电源电路
电路在没有设计抗干扰电路时,输出电压的波动很大;而在数字电位计两端并联电容后,输出电压的波动有了一定的改善,虽然输出电压波形中还存在不小的杂波,但是这些杂波并不会影响电机的运行;分别在数字电位计和输出端并联滤波电容后的电源电路的输出电压波形,相比上述两种情况又有了明显的改善,输出电压波形中杂波幅值较小,电机的运行非常平稳,而且噪声非常小,实现了电源电路的功能。
3 软件设计
数字电位计AD5293是一种单通道、1 024位置的可编程电阻。可以通过程序控制数字电位计AD5293使其W和B两端的电阻值能够根据实际电路的要求自动调节。
首先配置微控制器STM32F103VET6的SPI总线设置,具体代码如下:
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;//主模式
SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;//高位在前
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(SPI1, &SPI_InitStructure);
然后,配置好连接AD5293控制线的I/O口。
AD5293的写时序如图7所示。
从数字电位计AD5293BRVZ的写时序中可以看出,AD5293BRVZ的低电平选通状态从控制芯片SPI总线发送控制指令开始,一直坚持到16位的控制指令从移位寄存器中完全移位出去到DIN引脚。否则,写指令不能成功,数字电位计的电阻值不能相应地改变。软件上,判断控制指令是否完全从移位寄存器中移位出去是通过查询STM32F103VET6[6]的SPI总线的状态标志实现的,具体的语句为:
while((SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == 1));//SPI总线忙的话一直等,空的话则执行后续语句
图7 AD5293BRVZ写时序图
GPIO_SetBits(GPIOA, GPIO_Pin_4);//置为选通引脚
通过用示波器测量RDY引脚的电平变化情况可以确定AD5293BRVZ写指令正确实现与否。
控制芯片STM32F103VET6与数字电位计AD5293BRVZ读、写功能的指令表如表1所列。
表1 AD5293读、写功能指令表
定义控制器写数字电位计的函数SPI_AD5293_SendBytes(u16 data),具体的代码如下:
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == 0);//发送缓存空标志
SPI_I2S_SendData(SPI1, data);
SPI_AD5293_SYNC_LOW();//低选通
while((SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == 1));//SPI忙标志
SPI_AD5293_SYNC_HIGH();
写RDAC寄存器的指令是调节数字电位计阻值变化的关键指令,找到W和B两端的电阻值与控制指令的对应关系无疑成为实现数字电位计阻值调节的关键。
硬件电路中的开关电源LM2596ADJ的稳定反馈电压为1.21 V,R1=5.1 kΩ。输出电压的表达式为:
则:
又:
因此:
通过上述公式就可得到所需要的数字量,进而用SPI_I2S_SendBytes(int(D)+1024)语句将数字量发送到数字电位计的RDAC寄存器,来调节数字电位计的电阻值变化,然后,串联在反馈回路中的阻值变化引起稳压电源电路输出电压幅值的变化,实现电压调节的目的。
结语
本文介绍了基于STM32F103VET6微控制器、数字电位计AD5293BRVZ、开关电源LM2596ADJ的程控大功率可调稳压电源的设计过程,首先对大功率电路、程控电压调节电路及抗负载干扰电路等硬件电路进行了详细的介绍,然后介绍了控制器发送控制指令调节数字电位计电阻值的软件实现。数字电位计的应用使得电源输出电压值能够根据负载的实际需求实现程序调节,摆脱了机械电位计阻值不能自动调节的束缚。抗负载干扰电路的设计使得电源在串联电机负载时,仍能够输出较为平稳的电压以满足系统的需求。