发作品签到
标准版

2021年B题-三相整流器-PowerOnP03队

工程标签

1.2w
0
0
0

简介

本次大赛B题为三相整流电路,本方案采用三相整流电路级联Buck变换器,以STM32F407VET6单片机作为整流器和Buck变换器的控制器,实现三相AC-DC变换,国测测试现场整机效率可达95.9%

简介:本次大赛B题为三相整流电路,本方案采用三相整流电路级联Buck变换器,以STM32F407VET6单片机作为整流器和Buck变换器的控制器,实现三相AC-DC变换,国测测试现场整机效率可达95.9%

开源协议

GPL 3.0

创建时间:2022-01-05 09:07:50更新时间:2022-01-19 12:09:19

描述

1.前言:本次大赛B题为三相整流电路,本方案采用三相整流电路级联Buck变换器,以STM32F407VET6单片机作为整流器和Buck变换器的控制器,实现三相AC-DC变换。整流控制器采用数字锁相环进行锁相,利用dq变换及PI控制算法控制整流器的电压幅值及相位稳定。该电路可以稳定工作在额定工况下,输出电压稳定,负载调整率和电压调整率均小于0.1%,国测测试现场整机效率可达95.9%,输入侧功率因数可达0.998,并且可在±0.70~1.00 范围内可调。同时系统具有过压过流保护和友好的人机交互功能。
2.团队介绍:我们团队有两名18级及一名20级队员,负责主电路的队长焊工精湛,擅长设计电感,选型电容,及整个电路板的布局及线路连接,负责程序及联调的程序员精通C语言,程序框架完善,熟悉STM32配置,能够快速码出高效代码,负责模块的硬件工擅长各个测量模块、辅助电源模块、驱动电路模块的制作,能够为团队提供可靠的模块电路。
3.项目分析:设计并制作图1所示的三相AC-DC变换电路,该电路的直流输出电压Uo应稳定在36V,直流输出电流Io额定值为2A
pjoKptMMmF4CgVUseP4sLTUs0HvOgERt9f9YwOey.png
 
1. 基本要求
(1)交流输入线电压Ui=28V,Io=2A时,Uo=36V±0.1V。
(2)当Ui=28V,Io在0.1A~2.0A范围内变化时,负载调整率SI ≤ 0.3%。
(3)当Io=2A,Ui在23V~33V范围内变化时,电压调整率SU ≤ 0.3%。
(4)在Ui=28V,Io=2A,Uo=36V条件下,AC-DC变换电路的效率η不低于85%。
2. 发挥部分(1)在Ui=28V,Io=2A,Uo=36V条件下,AC-DC变换电路输入侧功率因数不低于0.99。
(2)在Ui=28V,Io=2A,Uo=36V条件下,AC-DC变换电路的效率η不低于95%。
(3)三相AC-DC变换电路能根据数字设定自动调整功率因数,功率因数调整范围为0.90~1.00,误差绝对值不大于0.02。
(4)其他。
拿到题目,对比了一下B题与C题,选择了B题(随意选的),然后选定了三相PWM整流级联Buck电路方案,考虑到效率要求,采用了非隔离方案,利用dq变换进行整流电路的锁相及电压控制。
4.原理图电路分析:
系统包括三相整流器、Buck 变换电路、辅助电源电路、驱动电路、测量电路以及单片机控制电路和显示电路。本系统采用电压外环、电流内环的双环控制法进行闭环控制,可良好实现三相整流以及功率因数调节功能,输出稳定的直流电,辅助电源电路为驱动电路、测量电路、控制电路等供电,本系统利用PID 控制器进行电压电流双闭环。显示电路可提供良好的人机交互界面,并具备过流保护警
告功能。系统总框图如图所示。
9TXnWUDpva67rmdH7l0vMRsyLFU4knxwhTZBKreP.png
该主电路采用三相整流电路,后级接入一个Buck 降压电路。系统主电路原理图如图所示。
cvvcc0M8HEUlLP2AE77wQTlbal4akfaWVRmT5ECV.png
开关管选型
开关管承受电压和导通电流为整流器输出电压和电流,分别为50V 和2A,开关管选取时应留有余量。同时为减小系统的损耗,需综合考虑开关管的开关损耗和通态损耗,最终选择英飞凌公司的IRF540NPbF,其最大耐压100V,可导通7.5A 电流,其导通电阻为44mΩ,输入电容为1960pF,输出电容为250pF。
滤波器参数设计
(1)输入交流侧电感参数计算
系统交流电感的取值不仅影响系统的动静态性能,还会对输入电流波形等其他因素产生影响。增大电感值可以抑制交流侧电流的谐波,但是会影响电流跟踪的快速性。所以合适的电感值应该满足两个条件。首先,应保证电流跟踪的快速性,其次,应保证电感电流的谐波大小在允许范围内。根据以上两个条件,可以计算出交流侧电感的取值范围表达式为:
ShWHT8BUx3dM9RNV2vorawKHGw3CwwblLuo2ihYu.png
其中直流侧输出电压Uo 为50V,开关管的开关频率fs 为48kHz。按照输入电流谐波畸变率2%计算电流纹波,Uipp 为交流侧电压峰峰值,Im 为输入电流基准电流峰值。将以上参数带入上式,可得电感值214uH≤L1≤568uH。选取交流侧电感L1=290uH,采用铁硅铝磁粉芯和2 股并绕的0.7mm 漆包线绕制电感。
(2)整流器输出测直流电容参数计算
直流电容上总是会重复着充放电的过程,为了使母线电压的脉动大小控制在一定范围内,直流侧电容取值不能太小。考虑母线电压的响应速度,直流电容取值也不能过大。直流侧电容参考取值范围如下:
xcnvqTjguD2At1wI7uk59L7k5LoaGSdGNBFKlF7Y.png
其中,△Um*=0.01,为母线电压纹波率,RL=18Ω,是由整流器输出功率得到的等效电阻,输出直流电压从初值到额定电压的上升时间tr 取40ms。将以上参数带入上式,可得电容值1670μF
(3)输出直流侧电感参数计算
Buck 的直流输入电压为50V,设定输出电压为36V,经计算占空比D=0.72。Buck 电感计算公式如下:
2IL4jzrMYUWLwp9Ea9NQaakCEDIORpRe1xVYK5L3.png
其中占空比D=0.72,输出直流电压Uo=36V,电感电流Id=2A,电感电流纹波率rd=0.3,调制波频率fc=20kHz,将以上参数带入上式,可得电感值L2=605uH,实际中留取裕量,电感取值为980uH。采用铁硅铝磁粉芯和2 股并绕的0.7mm漆包线绕制电感。
5.PCB设计分析:电源线尽量宽,GND铺铜,电力电子方向没有高频信号,信号线注意一下就可以。
6.实物展示:
图中电路板上端为输入端,下端为输出端,图中左上角为按键键盘,用来设置功率因数,单片机作为主控制器完成对系统的控制,在前级输出母线处取电做辅助电源为测量模块、单片机及驱动模块供电。
实物图,整体体积小,且布局工整,使用灰排线及排针连接主电路及控制器,保证了接触的可靠性。
7.作品装配:主电路长宽约为30(cm)*30(cm),控制器约为10(cm)*10(cm),键盘约为7(cm)*12(cm)。
8.程序设计:本系统采用软件锁相环对电压信号进行锁相,采用电压外环控制、电流内环控制的控制思路,对系统进行闭环控制,从而使系统具备良好的功能,下图为本系统控制框图。
7WR8I6lE8EkxOQKmS2TlhXMLJMY8bv2hjnV7OTRT.png
功率因数调整方法
三相电压Ua、Ub、Uc 经过坐标变换后得到直流分量Ud、Uq,当锁相成功时,Uq 值为0,若Uq 值存在误差,则将Uq 与参考值0 比较,再将产生的误差信号经过PI 调节器得到ωerr ,再通过与电网理论角频率相加,并经过积分器得到相位θ,该相位即为坐标变换所需要的三角函数相位值。最终可以实现整个锁相环的闭环控制。实现过程如图所示。
PrlfVNJxSQEf75Hpoj6e0Lgo5P3tuReZCSMnI68o.png
稳压控制方法
本系统采用电压外环、电流内环的控制方案。采样母线端电压Udc 与母线参考电压U*dc_ref 求偏差进行PI 闭环,得到Ia 参考电流I*d_ref,Ua,b,c 为ABC 三相的相电压,采样Ua,b,c,经过锁相环获得A 相基波角度。利用abc/dq 坐标变换模块,将三相电压与三相电流分别进行坐标变换得到Ud、Uq 电压分量和id、iq 电流分量。将id 电流分量与参考电流i *d_ref 进行PI 的所得值与Ud 分量计算获得指令调制电压U*d 将电流分量iq 与参考电流值i*q_erf 进行PI 的所得值与uq 分量计算获得调制电压U*q 将所得调制电压经过dq/αβ变换模块获得U*α,U*β,输入SVPWM 模块判断扇区位置,调制输出PWM 驱动信号,驱动开关管构建目标矢量。其中,双闭环控制策略框图如下。
jNbwqj48BR9UMMEOSvDlsHTiJC7HSM2pX5ngKynk.png
9.部分程序解读

      以下代码为控制中断中的代码,中断频率为20kHz, 首先进行有效值计算用来计算输入电压有效值,做过压保护,然后利用ADC-DMA进行采样,得到输出电压、输入电压及输入电流,并进行dq变换,之后利用PID做控制器,并加入前馈从而实现稳压控制。红色字体为额外说明

        time_count++;
        sum_u_a+=adc_6ch.nowI1*adc_6ch.nowI1;        
        if(time_count==400)计算有效值
            {        
                time_count=0;                
                I_a=sqrt(sum_u_a*0.0025f);//
                sum_u_a=0;//
            }
        if(I_a>1.1f)对参考电压做修正
        {
            U_out.U_ref = 36.26f;
        }
        else
        {
        U_out.U_ref = 36.13f;
        }
            
        ADC_Process_6CH(); 获取采样值

        U_out.U_now = adc_6ch.nowUo;    
        
        U_in.theta = theta;获取锁相环输出值
        I_in.theta = theta;
        
        U_in.sin_value = arm_sin_f32(U_in.theta);
        U_in.cos_value = arm_cos_f32(U_in.theta);
        I_in.sin_value = U_in.sin_value;
        I_in.cos_value = U_in.cos_value;
        
        U_in.ab = adc_6ch.nowU1;
        U_in.bc = adc_6ch.nowU2;
        U_in.ca = - adc_6ch.nowU2 - adc_6ch.nowU1;
        
        //线电压转相电压
        U_in.a =  0.3333333f * U_in.ab - 0.333333f * U_in.ca;
        U_in.b =  0.3333333f * U_in.bc - 0.333333f * U_in.ab;
        U_in.c =  0.3333333f * U_in.ca - 0.333333f * U_in.bc;
        
        abc_to_dqz(U_in.a,U_in.b,U_in.c,U_in.theta,&U_in.d_now,&U_in.q_now,&U_in.z_now);得到电压dq值
        
        I_in.a = - adc_6ch.nowI1;
        I_in.b = - adc_6ch.nowI2;
        I_in.c = adc_6ch.nowI1 +adc_6ch.nowI2;
        
        abc_to_dqz(I_in.a,I_in.b,I_in.c,I_in.theta,&I_in.d_now,&I_in.q_now,&I_in.z_now);

        U_in.d_now = 0.999f*U_in.d_last + 0.001f*U_in.d_now;
        U_in.q_now = 0.999f*U_in.q_last + 0.001f*U_in.q_now;
        
        U_in.d_last = U_in.d_now;
        U_in.q_last = U_in.q_now;    
        
        //Set reference value         
        setPIDTarget(&PID_U, U_out.U_ref);进行pid闭环
        I_in.d_ref = LocPIDCalc(&PID_U,U_out.U_now);
        setPIDTarget(&PID_Id, I_in.d_ref);
        
        
        setPIDTarget(&PID_Iq, I_in.q_ref);
        //Perform PID calculation on D and Q, and output the duty cycle under rotating coordinates 
        I_in.d_duty = - LocPIDCalc(&PID_Id,I_in.d_now);
        I_in.q_duty = - LocPIDCalc(&PID_Iq, I_in.q_now);

        //Use feedforward to decouple dq and calculate the midpoint voltage of the board bridge 
        U_in.d_duty = I_in.d_duty + U_in.d_now + 314.15926f*inductance*0.000001f*I_in.q_now;//算出期待的半桥中点电压
        U_in.q_duty = I_in.q_duty + U_in.q_now - 314.15926f*inductance*0.000001f*I_in.d_now;加入前馈

        arm_sqrt_f32((U_in.d_duty*U_in.d_duty)+(U_in.q_duty*U_in.q_duty),&U_R);

        if(sw.lastPWM_on != sw.PWM_on)对pid进行清零
        {
            sw.lastPWM_on = sw.PWM_on;
            PIDClear(&PID_Id);
            PIDClear(&PID_Iq);
            PIDClear(&PID_U);
        }
        
        if(PLL_Locked == 1&& sw.PWM_on == 1) 
            TIM_CtrlPWMOutputs(TIM1,ENABLE);
        else 
            TIM_CtrlPWMOutputs(TIM1,DISABLE);
    
        if(lastpll != PLL_Locked || sw.PWM_on == 0)对pid进行清零
            {
                lastpll = PLL_Locked;
                PIDClear(&PID_Id);
                PIDClear(&PID_Iq);
                PIDClear(&PID_U);
            }
        if(U_out.U_now>40.f||I_a>3.f)//
            protect_sta=0;
        
        if(duty<2000)
        SVPWMmodulation(U_R,U_out.U_now/0.85f,theta+atanf(U_in.q_duty/U_in.d_duty));采用SVPWM调制
        else if(duty>2000)
        SVPWMmodulation(U_R,U_out.U_now/0.72f,theta+atanf(U_in.q_duty/U_in.d_duty));
        
        if(U_in.d_now<24.3f && U_in.d_now>22.5f)
            duty = 1260;
        else duty = 2352;
        
        if(lock == 1 )
            duty = 2352;
        
        TIM_SetCompare2(TIM8,duty);
      TIM_ClearITPendingBit(TIM1,TIM_IT_Update);

10.总结
电流环的PI参数比较难调,谨记调参原则,切忌一次浮动太大。
方案确定再动硬件即可。
附件为代码文档演示视频
 
 
 
 

设计图

原理图(1 / 4)
PCB

BOM

IDNameDesignatorFootprintQuantity
10.33uFC101
20.15uFC201
30.1uFC301
410uFC401
52.2uFC501

附件

序号文件名称下载次数
1
Three-phase-AC-DC.zip
2845
2
BAOGAO.pdf
631
3
COMPRESS20220106000130846_1.mp4
1712
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航