电源方向团队-四天三夜的拼搏不负青春(工程链接在文末)
整个实验室的资源故有偿,望理解!
摘 要
本系统采用STM32F103单片机作为MCU,使用键盘+OLED作为人机交互模块。整个系统由两个独立的单相逆变器系统组成,两个独立的逆变器系统并联后为负载供电(24V),也可以通过变压器并入220V电网。其中逆变器所使用的直流辅助电源为LM2596,将设置的50V直流电压降压得到15V,再经过LDO芯片给MCU、隔离芯片、交流采样运放供电。在仅有逆变器1工作时,MCU将由互感器模块处理后采样的电压值卡尔曼滤波,再进行PI调节,将逆变器设定为恒压源并尽量减小负载调整率。在逆变器1、2并联工作时,两独立逆变器的MCU通过采集有互感器模块处理后的电流值进行PID调节,两独立逆变器设定为恒流源,按照设定值进行电流的分配。采用软件算法闭环PLL锁相控制,使系统稳定输出电压和分配电流。
关键词:逆变器、并联、单相、PID、卡尔曼滤波、PLL锁相
目录
【本科组】
一、系统方案
本系统主要由单片机控制模块、交流采样模块、全桥和驱动模块、电源模块、滤波模块组成。
1、主控制器件的论证与选择
1.1.1控制器选用
单片机比较
方案一:采用ESP32系列模块
ESP32是一款集成了Wi-Fi和蓝牙功能的低功耗系统级芯片(SoC),具有双核处理器和丰富的外围接口,具备较快的处理速度和通信能力。尽管ESP32在许多应用场景中表现出色,然而由于其较高的功耗特性,对于需要长时间待机以及在低功耗应用场景中的需求,可能不太适合本系统。且相比传统的单片机,ESP32的成本较高,可能会对项目预算造成影响。
方案二:传统的51系列单片机
采用传统的51系列单片机,这种型号的单片机具备8位处理能力,成本相对较低,控制逻辑相对简单。然而,这种单片机的运算速度相对较慢,且片内资源有限,存储容量有限,难以应对存储大型程序和实现高速、精确的响应控制。其受限于时钟频率,从而导致计时精度的局限,同时外围电路的增加可能会引入系统不可靠性。
方案三:采用STM32F1系列单片机
采用STM32F1系列单片机,这一系列是专门为高性能、低成本的嵌入式应用而设计,基于ARM Cortex-M3内核构架,拥有32位CPU。这种方案的优势在于丰富的外围接口,快速的运算速度和强大的功能。STM32F1系列单片机能够应对复杂的控制任务,其性能和能力使其成为多种应用的理想选择。
通过深入比较和综合分析,最终选择了方案三。具体而言,选择了基于ARM Cortex-M3内核的STM系列单片机,其中选型为STM32F103RCT6。这一选择为系统的控制器提供了强大的处理能力和丰富的外围接口,满足了系统对于高性能、多功能的要求。
1.1.2控制系统方案选择
方案一:面包板搭建单片机验证平台
通过在面包板上建立单片机验证平台,实现硬件即时调整与验证的灵活性。然而,面包板布线频繁,可能导致信号交叉干扰,降低系统可靠性。
方案二:自制印制电路板, 自制印制电路板涉及设计、制作、加工等多个复杂步骤,耗时长且需技术与资源投入,不适合紧迫开发。
方案三:单片机最小系统集成,采用单片机最小系统整合显示、矩阵键盘、A/D、D/A等功能,简化外围电路设计,提高设计效率。降低系统设计的难度,非常适合本系统的设计。
综合以上三种方案,选择方案三。
2、交流采样的论证与选择
方案一:采用高精度差分放大器进行交流电压和电流信号的采样,通过差分放大和滤波实现精确的信号提取,适用于精密测量和控制应用。
方案二:采用电流电压互感器进行交流电压和电流信号的采样,通过互感原理实现信号隔离和采样,适用于高电流和高压的应用环境。
综合以上两种方案,选择方案二,即采用电流电压互感器进行交流信号的采样,以确保信号隔离和适应不同工作环境的要求。
方案一:采用IR2101半桥驱动器,具有简单的控制接口和稳定的性能,适用于基本的半桥驱动应用。
方案二:采用IR2104半桥驱动器,在IR2101的基础上增加了高侧引脚驱动功能,适用于需要高侧驱动控制的半桥应用。
综合以上两种方案,选择方案二,即采用IR2104半桥驱动器,以满足更多复杂驱动需求。
方案一:采用开关电源和线性电源相结合的方式,兼顾了高效率和低噪声的特点,适用于对电源质量要求较高的应用。
方案二:采用两个开关电源组成的方式,提供高效率的电源供应,适用于对功率要求较高的应用。
综合以上两种方案,选择方案二,即采用开关电源加开关电源的方式,以满足高效率和高功率的电源需求。
方案一:采用电感(L)进行滤波,能够有效抑制高频噪声,适用于基本的滤波需求。
方案二:采用电感(L)和电容(C)的组合(LC滤波),能够更好地衰减高频噪声,适用于对滤波效果有更高要求的应用。
方案三:采用电感(L)、电容(C)和电感(L)的组合(LCL滤波),能够在LC滤波的基础上进一步提高滤波效果,适用于对噪声抑制要求较高的应用。
综合以上三种方案,选择方案三,即采用LCL滤波模块,以实现更高效的噪声抑制和滤波效果。
6、控制系统的论证与选择
方案一:采用集中控制方式,并联控制模块同时还检测负载电流,将其除以参与并联逆变器的台数,把所得结果作为每台逆变器的电流参考指令。同时,每台逆变器检测自身的输出电流,与平均电流相减求误差,用以补偿参考电压,消除环流。其优点是结构简单,均流效果好。缺点是一旦公共电路失效,整个并联系统就无法工作,因此可靠性不高。
方案二:采用主从控制方式,主模块控制整个并联系统的输出电压幅值和频率,从模块输出的电流跟随参考电流的变化来实现负载均分。主模块检测负载电流,并且将其分配给每个从模块作为参考电流。因为参考电流跟随负载电流,因此从模块的输出电流按输出电压频率眼随负载电流,响应速度很快。其优点是系统稳定性好,易于扩展。缺点是主模块一旦失效,从模块将无法工作。
综合这两种方案的优、缺点,本系统采用主从控制方式,完成单相逆变器并联运行系统的设计。
二、系统理论分析与计算
1、逆变器提高效率的方法
(1)优化开关技术采用SPWM(Sinusoidal Pulse Width Modulation)开关逆变方式
通过调整脉宽实现输出波形的精确控制,降低谐波含量,提高逆变器的输出效率和波形质量。
(2)优选功率开关器件
选用导通电阻低至90mΩ的高性能功率MOSFET(IRF530型),以降低开关管的导通压降,从而减少能量损耗。其低驱动电流要求能降低驱动电路的功耗,提高整体效率。
(1)多重闭环控制策略
采用基于电流外环、电压内环的多重闭环控制策略,实现对逆变器输出电流和电压的精确调控,保证并联运行时的电流均分和电压稳定。
(2)动态分配策略
应用基于模式识别和实时监测的动态分配策略,根据系统负载变化动态调整逆变器的输出功率,实现逆变器间的负载均衡和高效利用。
(1)频率与相位同步
通过锁相环(PLL)控制,实现逆变器输出与电网频率和相位同步,确保逆变器的电能注入与电网同步运行,提高电网的稳定性和电能质量。
(2)电流注入控制
应用电流注入控制策略,根据电网需求调整逆变器的输出电流,实现有功功率和无功功率的精确控制,满足电网对功率的要求。
(3)电网响应策略
采用响应速度快、控制精度高的电网响应策略,能够及时调整逆变器的工作状态,应对电网故障和变化,保障电网的稳定性和安全性。
三、电路与程序设计
1、电路的设计
![]() |
(1)系统总体框图
图1 系统总体框图
系统总体框图如图1所示,两个独立的逆变器并联,每一个逆变器由MCU、逆变拓扑、交流采样等部分组成。
(2)逆变拓扑子系统框图与电路原理图
1)逆变拓扑子系统框图
![]() |
图2 逆变拓扑子系统框图
2)逆变拓扑子系统电路
![]() |
图3 逆变拓扑子系统电路
(3)交流采样子系统框图与电路原理图
1)交流采样子系统框图
![]() |
图4 交流采样子系统框图
2) 交流采样子系统电路
![]() |
图5 交流采样子系统电路
(4)电源
电源由变压部分、滤波部分、稳压部分组成。为整个系统提供
5V或者
12V电压,确保电路的正常稳定工作。这部分电路比较简单,都采用三端稳压管实现,故不作详述。
2、程序的设计
(1)程序功能描述与设计思路
1)程序功能描述
根据题目要求软件部分主要实现电压电流有效值采样、卡尔曼滤波、PID闭环、SPWM输出、PLL锁相环、屏幕显示。
键盘实现功能:设置频率值、频段、电压值以及设置输出信号类型。
显示部分:OLED显示采集的电压值,电流值、正弦波调制比、正弦波码表值、PID实时输出电压幅度控制值。
2)程序设计思路
在基础部分,首先设置定时器1输出PWM载波频率为40KHz,设置定时器2作为定时器中断控制PWM变化频率,输出双极性SPWM波。设置DMA进行ADC采样,采集电压互感器和电流互感器输出的电压电流值,并分别计算出其均方根值即为有效值。通过卡尔曼滤波算法,融合采样值来估计系统的状态,从而减小噪声的影响并提高估计的准确性。将卡尔曼滤波后的值输入增量式PI控制器,控制SPWM调制度输出实现空载和带载时电压和电流的闭环,电压稳定在24V,电流稳定自动可调。在发挥部分,通过相位锁相环(PLL)控制系统,用于对输入信号进行频率和相位的估计和控制。其中涉及到的数学计算包括二阶广义积分器、Clarke变换、Park变换、PID控制和角度运算等。最后实现系统并联,电流均流可调。使用ADC采集电流Io,设计PID控制算法和PWM输出,实现单相逆变器并联系统,自动分配输出电流,保持0.5~2范围内,误差不超过5%,确保稳定并网运行。
(2)程序流程图
图6 主程序流程图和采样图
- 电压电流采样子程序流程图
3、PID子程序流程图
图7 PID程序图
四、测试方案与测试结果
1、测试方案
(1)硬件测试
接入直流电源,辅助电源、MCU、采样模块均正常工作,将全桥逆变的输出端口接入LCL滤波,再由互感器进行采样,采样结果正常,满足与软件联调的条件。
(2)硬件软件联调
将STM32F103RCT6与硬件联调,发现能够采集正弦波有效值,并且通过PID控制,能够将电压值稳定在24V,同时OLED模块上面需要显示的调制比、ADC采集值都正常显示。改变电阻的阻值,LCL输出端依旧能够满足24V±0.2的条件。
2、测试条件与仪器
测试条件:检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。
测试仪器:高精度的数字毫伏表,模拟示波器,数字示波器,数字万用表,指针式万用表。
3、测试结果及分析
(1)测试结果(数据)
表1
测试条件 | 电压 | 电流 | 效率 | THD | 电压调整率 |
2A | 23.961V | 2A | 89.3% | 1.4% | 0.16% |
1.6A | 24.000V | 1.601A | 88.7% | 1.3% | 0 |
1.8A | 23.980V | 1.806A | 88.9% | 1.5% | 0.083% |
(2)测试分析与结论
根据上述测试数据,在基础要求下,由此可以得出以下结论:
1)在仅逆变器1工作的状态下,THD不大于2%
2)在仅逆变器1工作的状态下,效率不低于88%
3)在仅逆变器1工作的状态下,电压调整率小于等于0.2%
综上所述,本设计达到设计基本要求。
通过以上设计,实现了逆变器并联系统的基本要求和发挥部分指标,为未来的应用提供了可靠的电源和输出控制能力。
工程链接(点击):
2023全国大学生电子设计竞赛A题单相逆变器并联运行系统(代码工程+原理图+PCB+设计报告)二等奖
五、参考文献
[1]周郭飞,杨宏,杨延峰.基于自适应环路滤波算法的全数字锁相环设计与分析[J].微电子学与计算机,2020,37(9):62-67.
[2]方红伟,陶月,肖朝霞,贺叶君.并网逆变器并联系统的鲁棒控制与环流分析[J].电工技术学报,2017,32(18):248-258.
[3]曾正,邵伟华,刘清阳,马青,冉立.并网逆变器数字锁相环的数学物理本质分析[J].电工技术学报,2018,33(4):808-816.
[4]杨勇,阮毅,汤燕燕,叶斌英,张峰.风力发电系统中并网逆变器并联运行环流分析[J].高电压技术,2009,35(8):2012-2018.
[5]Kumar Pakki Bharani Chandra,Da-Wei Gu,Ian Postlethwaite.Square Root CubatureIn-formation Filter[J].IEEE Sensors Journal,2013,13(2):750-758.
[6]Ienkaran Arasaratnam.Sensor Fusion with Square-Root Cubature Information Filtering[J].Intelligent Control and Automation,2013,4(1):11-17.
附录1:电路原理图
LM2596 输出可调
附录2:源程序
int main(void)
{
MX_GPIO_Init();
MX_DMA_Init();
MX_TIM1_Init();
MX_TIM2_Init();
MX_ADC1_Init();
MX_TIM4_Init();
MX_USART3_UART_Init();
/* USER CODE BEGIN 2 */
OLED_Init();
OLED_Clear();
/*sPWM1互补,单极性倍频*/
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
//定时器中断2,1/4000秒进一次
HAL_TIM_Base_Start_IT(&htim2);
//ADC采样DMA,4路,前两路是1.5cycle,后两路ADC周期是55.5cycle
HAL_ADCEx_Calibration_Start(&hadc1);
HAL_ADC_Start_DMA(&hadc1, (uint32_t *)AdcBuf, 4);
/*输入捕获*/
HAL_TIM_IC_Start_IT(&htim4, TIM_CHANNEL_4);
//TIM1->ARR = 719;//100khz 的载波
while (1)
{
key_change();
key_long_change();
}
}
//取电压均方根值
float get_rms1( void )
{
static float cnt = 0;
static float value = 0, sum = 0;
static float rms = 0;
if( cnt < 800 )
{
value = (AdcBuf[0]-2048); //读取采样值
sum += value * value; //计算平方和
cnt++;
}
if( cnt == 800 )
{
rms = ( float )sqrt( sum / 800 ); //平方和取平均,再开方
cnt = 0;
sum = 0;
// return 3.3*(rms/4096);
}
return rms*3.3/4096;
}
float Last_Error=0, //上次误差
iError=0, //当前误差
Integral=0, //积分误差
AimValue=0.6385, //目标值 带负载时正弦波的有效值电压,稳24V
NowValue=0, //当前值
Output, //控制输出
pid_P=1.23, //比例P
pid_I=0.65, //积分I0.33,
pid_D=0.0, //微分D
IntegralMax=0.5, //积分项限幅
OutputMax=0.8; //控制输出上限幅
float PID_Cal(void)
{
//增量式PID
NowValue = get_rms1();//AdcBuf[0]*3.3/4096;
iError = AimValue - NowValue; //计算当前误差
Output+= pid_I * iError;
PID.kd * (PID.err - 2*PID.last_err + PID.last_last_err);
PID.last_last_err = PID.last_err;
PID.last_err = PID.err;
Output = Output > OutputMax? OutputMax:Output; //控制输出上限幅
Output = Output <-OutputMax? -OutputMax:Output; //控制输出下限幅
return Output; //返回控制输出值
}
float PLL(void)
{
static float PLLLoopOut;
static float PLLAngle = 0;
static float Theta = 0;
static float sinwt,coswt = 0;
ClarkTransform(AC_V,&Clark_U);
Clark_I.Ualpha= Second_order_filter(&SOGI_i,AC_I); //通过SOGI获得正交信号
Clark_I.Ubete = Second_order_filter(&SOGI_qi,AC_I);
ParkTransform(&Clark_I, &Park_I); //Park变换得到电流的DQ值
ParkTransform(&Clark_U, &Park_U); //Park变换
PLLLoopOut = (Incremental_PID(&PllLoop, 0, Park_U.q)+100*PI) * ((float)1 / TS_FREQ);//PID输出
PLLAngle += PLLLoopOut;
if (PLLAngle > (2 * PI))
{
PLLAngle = PLLAngle - (2 * PI);
}
else if (PLLAngle < 0)
{
PLLAngle = PLLAngle + (2 * PI);
}
Theta = PLLAngle;
sinwt = arm_sin_f32(Theta);//闭环运算
coswt = arm_cos_f32(Theta);
Park_U.Sinwt = sinwt;//闭环运算
Park_U.Coswt = coswt;
Park_I.Sinwt = sinwt;//带入锁相环输出角度
Park_I.Coswt = coswt;
Park_OUT.Sinwt = sinwt;//带入锁相环输出角度
Park_OUT.Coswt = coswt;
return Theta; //返回角度值
}
void key_long_change(void){
if(!switch_falg){
/*oled显示*/
oled_show();
}
else{
oled_show2();
}
if(get_rmsl_current()>=0.15)
{
M=0.865+PID_Cal();//PID闭环控制,目前理想值是0.849调制度,对应控电压24V
OLED_ShowString(115,0,(uint8_t *)"Y",16); } // }
else
{
OLED_ShowString(115,0,(uint8_t *)"N",16);
M=0.850;//+PID_Cal_2();
}
}