变流器负载试验中的能量回馈装置

任务

设计并制作一个变流器及负载试验时的能量回馈装置,其结构如图1所示。
变流器进行负载试验时,需在其输出端接负载。通常情况下,输出电能消耗在该负载上。为了节能,应进行能量回馈。负载试验时,变流器1(逆变器)将直流电变为交流电,其输出通过连接单元与变流器2(整流器)相连,变流器2将交流电转换成直流电,并回馈至变流器1的输入端,与直流电源一起共同给变流器1供电,从而实现了节能。
model

要求

  • 变流器1输出端c、d仅连接电阻性负载,变流器1能输出50Hz、25V0.25V、2A的单相正弦交流电。
  • 在要求(1)的条件下,变流器1输出交流电的频率范围可设定为20Hz~100H,
    步进1Hz。
  • 变流器1与能量回馈装置按图1所示连接,系统能实现能量回馈,变流器1输出电流I1 = 1A。
  • 变流器1与能量回馈装置按图1所示连接,变流器1输出电流I1 = 2A,要求直流电源输出功率Pd越小越好。
  • 其他。
  • 设计报告。

大致方案

本设计以单片机最小系统板为控制核心,协调各个模块工作以实现题设功能。电路分为DC-AC、AC-DC这两个主模块。其中DC-AC模块由PWM控制信号驱动电路、全桥逆变电路、电压电流采样电路、电压转换电路组成,AC-DC由桥式整流电路、稳压电路、驱动电路等组成。单片机STM32F103RCT6产生的信号通过驱动电路、全桥逆变电路产生不同占空比的方波,通过电压电流采样电路变换为正弦波信号,同时反馈至STM32,由程序PID算法进行控制稳压;由DC-AC产生的信号传入AC-DC模块,当信号传入桥式整流电路,通过二极管的导通与截止,使交流信号重新转变为直流信号;再通过稳压电路将直流信号反馈至输入端同输入直流电源共同供电,实现能量回馈。
result

参数计算

  • 在变流器输出端加入负载,通过设计要求的电压和电流,可求测量值为R=U/I=12.5Ω。
  • 采用一阶LC滤波低通无源滤波。电路信号中的调制波频率为50Hz载波频率为18KHz,所以设置滤波器的截止频率为100Hz,电感L和电容C取值可按照如下公式选取:f = 1 / (2 * pi * sqrt(L * C)),所需的频带为20HZ-100HZ,可以设计通频带为0到100HZ的低通滤波器,经计算L=3mh,C=106PF。
  • 输出功率计算:Pd = U * I。
  • PWM波的计算:
    一个脉冲的频率: f = fDSC /(8 * ARR);
    一个周期频率: f = fosc /(8 * ARR * 180);
    通过改变ARR,改变每个脉冲频率,从而改变步进为1HZ 。

DC-AC逆变器电路

STM32软件编程,使之产生脉冲宽度按正弦规律变化的PWM 波形,并由IR2304集成电路驱动,该波形通过LC低通滤波器,使之转换为正弦波,在采样电路处给单片机稳压,通过软件编程PID,使之输出稳定。

1
2
3
4
5
6
7
8
9
10
if(!(p->deg_cnt & 0x80000000))
{
TIM_SetCompare1(TIM1, i);
TIM_SetCompare2(TIM1, 0);
}
else
{
TIM_SetCompare2(TIM1, i);
TIM_SetCompare1(TIM1, 0);
}

如图,代码中输出不同占空比的pwm是由四个mos管来控制,这四个二极管是由单片机自己输出的不同占空比的pwm波控制的(定时器1),首先右下角二极管一直导通接地,右上角二极管关闭,左边的两个二极管轮流导通,就能输出不同占空比的pwm波;然后左下角二极管一直导通,左上角关闭,右边两个二极管轮流导通,这样就输出了与前一个波形反向的pwm波。然后经过滤波输出为正弦波。
为了稳定输出的正弦波,使用了ADC采样反馈,然后通过PID稳定正弦波。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//ADC部分配置
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T4_CC4; //转换由定时器4外部触发启动
ADC_ExternalTrigConvCmd(ADC1, ENABLE); //外部触发
DMA_Cmd(DMA1_Channel1, ENABLE );
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; //模数转换工作在单次转换模式
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T4_CC4; //转换由定时器4外部触发启动
ADC_InitStructure.ADC_NbrOfChannel = 2; //顺序进行规则转换的ADC通道的数目, out1和out2
ADC_InitStructure.ADC_ScanConvMode = ENABLE; //转换是扫描(多通道模式)还是单个转换(单通道模式)

#define ADC1_TRIG_PERIOD 100 //200uS PWM, ADC采样周期
#define ADC1_PERIOD_CNT (20000/ADC1_TRIG_PERIOD) //一个正弦周期采样点
TIM_TimeBaseStructure.TIM_Period = (ADC1_TRIG_PERIOD-1);
g_adc_val.adc_cnt_thre=ADC1_PERIOD_CNT;
g_adc_val.acv_set=25;
ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 1, ADC_SampleTime_71Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期 AD TEMPER4

多通道AD采集需要使用DMA:不论是单次采集还是多次采集,转换完成的数据都会放在同一个地方。由于ADC_DR寄存器不是一个数组,而是一个16位的变量,所以只能保存最新的转换结果。运用STM32的DMA功能,可以更好地解决结果被覆盖的问题。重点:用于高速搬运数据,还无需CPU干预。 因此在多通道采集模拟量是,我们可以建立一个数组,用于储存AD转换的数据。一旦ADC_DR寄存器里有了新的数据,就把新数据放在数组里。一会儿ADC_DR有了一个新的数据,就放在数组下一位。数组装满以后?根据需求来。我们设置的是循环模式,也就是再来一遍,覆盖之前的数据。

DC-AC

由于是用正弦波类型的占空比通过驱动电路驱动mos管,但是在C语言中用sin函数很耗时间,而我们产生的正弦波若频率较高,那么可能时间会来不及,所以我们先自己算好sin的值然后乘以32767(大约65536的一半),做成一个数组,到时候只需要查表即可,大大减少了时间。

AC-DC整流器电路

正弦波通过变压器,经过桥式整流电路,通过二极管的导通与截止,使交流信号重新转变为直流信号,再通过PFC功率因数校正电路将直流信号反馈至输入端同输入直流电源共同供电,实现能量回馈,此电路由STM32控制驱动电路操控。

整体程序功能描述与设计思路

该程序分能大致分为四个主要任务:初始化定时器任务、ADC采样、PWM输出、低线程任务(OLED显示)。各个定时器的配置主要有Timer1的模块1-3作为3相互补输出,updata中断对角度增量,模块4作为捕获输入,输入来自PLL的输出;Timer2的模块1作为PLL输入捕获,模块2作为波形反馈输入捕获;Timer4的模块4作为ADC外部触发。ADC采样主要对DC-AC交流器输出电压进行采样,得到电压值并且反馈使系统更加稳定。PWM通过不断设置定时器的CCR寄存器来不断改变输出的脉冲波的占空比,并且通过改变ARR寄存器的值使输出信号频率可调,输出的脉冲波经过滤波即可得到正弦波。

任务要求先做一个变流器DC-AC,然后接负载,大部分电能都会消耗在负载,所以又在后面设计了一个AC-DC装置,将电能回馈到直流电源电源一起供电,从而节能。

本人才疏学浅,若有任何不严谨或者错误的地方,欢迎指正:Scotteland@163.com

Author: Jcwang

Permalink: http://example.com/2020/05/08/%E5%8F%98%E6%B5%81%E5%99%A8%E8%B4%9F%E8%BD%BD%E8%AF%95%E9%AA%8C%E4%B8%AD%E7%9A%84%E8%83%BD%E9%87%8F%E5%9B%9E%E9%A6%88%E8%A3%85%E7%BD%AE/