最近看了论坛的发帖奖励,安耐不住内心想拿奖品的冲动;不管丢不丢脸了,只求各位看官,喷清点!!!
主要内容只要分两大块:
一、硬件参数设计:
1、MPPT以及INV电路设计;
2、结缘阻抗检测电路设计;
3、GFCI漏电流检测电路设计;
二、软件系统搭建;
1、MPPT软件算法实现;
2、并网锁相算法实现;
3、MPPT追踪并网算法实现;
4、防孤岛算法检测实现;
最近看了论坛的发帖奖励,安耐不住内心想拿奖品的冲动;不管丢不丢脸了,只求各位看官,喷清点!!!
主要内容只要分两大块:
一、硬件参数设计:
1、MPPT以及INV电路设计;
2、结缘阻抗检测电路设计;
3、GFCI漏电流检测电路设计;
二、软件系统搭建;
1、MPPT软件算法实现;
2、并网锁相算法实现;
3、MPPT追踪并网算法实现;
4、防孤岛算法检测实现;
逆变器参数需求如下:
1、MPPT以及INV电路设计
直流侧:单路MPPT输入范围为120-500V,最大支流输入为12A;
我们直接选取BOOST拓扑作为MPPT电路;
交流侧:并网电压为220V,最大输出功率3KW,最大交流输出电压15A;
我们直接选取H4拓扑作为INV电路;
整体电路框架如下图:
参数计算:BOOST跟INV开关管频率设计为20KHz,BUS母线最低电压350V
BOOST电感计算如下:
INV电感计算如下:
开关管选型:BOOST管跟H4开关开关管都用同一型号的IGBT管子:FGA40N65SMD
BOOST续流二极管:APT30DQ60BG
二、软件系统搭建;
1、MPPT软件算法实现;
对于3KW的逆变器前级一般用的是Boost拓扑,BOOST是最基本的升压拓扑,具体工作原理就不在赘述;
比较常见的用法都是控制BOOST的输出电压;如下图:
但是对于光伏应用来说,由于光伏面板的电压是动态的曲线,要找最大的功率点必须要控制住面板的电压(也就是BOOST的输入电压);
我们对此提出疑问,BOOST电路能否稳住输入侧的电压???
答案是肯定的我们下面进行验证,先搭下控制环路,如图一:
根据控制环路搭建仿真模型,如图二:
仿真结果如图(输入电压被控制在给定电压70V):
上面我们已经实现了BOOST控制输入电压,那怎么去寻找光伏面板的最大功率点呢?
我们做这样的假设,先给定电压Uref=Uo,然后计算光伏面板的功率P1;接着给定电压Uref=Uo+△U,然后计算光伏面板的功率P2;接着给定电压Uref=Uo-△U,然后计算光伏面板的功率P3;通过比较P1、P2、P3,找出最大的功率点,然后将给定值Uref=Upmax;如此反复循环最终是否就能找到了光伏面板的最大功率点呢?
下面通过仿真验证:系统仿真如下图:
光伏面板参数设置如下:
MPPT仿真波形如下:(通过仿真可以看出BOOST已经实现了MPPT功能)
二、软件系统搭建;
2、并网锁相算法实现;
为什么并网逆变器要锁相?这是一个比较重要的一个问题;首先我们的光伏并网逆变器,主要作用是最大效率的将太阳能转化为电能并输送到电网上;但是由于我们的电网类似等效于一个50Hz的交流电压源,这样就决定了我们的光伏逆变器必须是控制电流输出的(因为如果我们的逆变器也是电压输出,两个电压源是不能并联的);为了将我们的电能100%输送给电网,那我们逆变器的电流角度就必须要跟市电的角度一样,这样才能保证输送给电网的电能100% 是有功功率;
知道了为什么要锁相,那接下来的问题是怎么去锁相?要实现锁相就必须得到关于市电的一对正交因子;
我们假设市电Va=Vmax*sin(100π*t);要实现锁相就要设法得到一个跟Va正交的要个信号
Vb=Vmax*sin(100π*t-90°)=Vmax*cos(100π*t);我们在进一步推算,如果这两个正交因子进行向量积和×乘,是不是可以得出一个固定的值;也就是Park变换;
Ud(Θ-Θ0)=cos(Θ-Θ0)*Vmax(Θ-Θ0)+sin(Θ-Θ0)*Vmax(Θ-Θ0-90°);
Uq(Θ-Θ0)=-sin(Θ-Θ0)*Vmax(Θ-Θ0)+cos(Θ-Θ0)*Vmax(Θ-Θ0-90°);
在进一步分析,如果对Uq进行PI控制,使得Uq=0;那么Θ=Θ0 ,系统角度是不是就被时刻跟踪住了;
也就是要实现锁相,最主要的就是如何通过对市电采样,然后分离出一对正交因子;下面我们主要介绍三种方法去求解正交因子:(下面的计算都是基于DSP采样频率为20KHz的计算)
方法一(求导法);
假设我们市电的信号是A(t)=310*(sin(100π*t))
那对应的正交因子应该是B(t)=310*(cos(100π*t))
在实际DSP采样中我们是不知道我们的信号实际是怎样的,只能知道输入信号是一个正弦信号;
但是我们知道一个正玄信号求导刚好变成一个余弦信号,这正好就是我们要求得正交因子呀;
我们知道对A函数的求导A`(t)=[A(t+△t)-A(t)]/△t
这时候我们直接看A(t)=310*(sin(100π*t))----->A`(t)=310*100π*(cos(100π*t))
也就是我们所要求的B(t)=A`(t)/100π;
明白这里,在回去看代码
U[2]=[A(t+△t)-A(t)],△t=1/20000, B(t)=Ube=[A(t+△t)-A(t)]/△t/100π=63.694*U[2];
考虑这样计算出来的B(t)是滞后于A(t)一个采样周期的,
所以加了补偿B(t)=63.694*(U[2]*05+U[3]*0.5)(具体补偿效果根据实际修改参数);
方法二(数组移项法):
我们定义另个数组Ua[400],Ub[400], 然后将数组Ua、Ub对市电一个周期进行采样存储,接着我们对数组Ub进行右移100的数据点,这时候也实现了一市电的一组正交因子;如下图:
方法三(广义积分法):
广义积分法也就是经常论文看到的SOGI算法;说白了就是设计两个传递函数,这两个传递函数分别对我们的输入信号也就是市电的采样信息,进行运算,得到两个正交信号;
下面通过搭建三种求正交因子的仿真如下:
仿真数据如下:(三种方法都能准确锁相)
到此为止,我们锁相已经实现了;
二、软件系统搭建;
3、MPPT追踪并网算法实现;
前面已经讲过MPPT功能以及实现了市电的锁相了,接下来就是如何将前级MPPT跟后级逆变串联起来:
如上图:就是整个光伏逆变器的系统;前级BOOST通过MPPT功能将最大的太阳能能量输送给中间母线,而后级逆变则是在母线上获取能量输送到电网上;那这样如果我后级逆变的主要功能是稳住母线,这样的话前级BOOST输送的能量通过母线就跟后级逆变串联起来了,而且实现了能量的平衡,前级往母线输送多少能量,后级逆变就从母线上吸收多少能量;
系统仿真波形如下:
二、软件系统搭建;
4、防孤岛算法检测实现;
随着分布式发电的迅速发展,越来越多的太阳能被转化为电能并通过并网逆变器输送到电网,对电网的安全与稳定运行提出了挑战 ,随之而来的一个必须要解决的问题就是并网逆变器的孤岛检测。光伏并网发电系统中的孤岛效应是指当电网停止供电时,由于光伏电站未能及时检测出电网状态的变化而未能将自身切离电网,和周围负载形成一个电网无法掌控的孤立供电区域 。孤岛效应可能会对电路检修人员和用电设备造成严重危害,所以研究孤岛检测具有重要的意义。
正常逆变器的锁相环如下:
为什么加入角度正反馈,就能识别出孤岛效应呢?
在正常并网的情况下,由于电网是个电压源,我们往电网注入电流,并不会改变电网的相位,所以由市电锁相出来的角速度一直是一个固定的值;所以正常并网情况下,由于加入了角度正反馈,注入电网的电流其实是跟市电有一个微小的相位差的,如下图:
在孤岛情况下,锁相环输入的电压,不再是一个电压源了,这时候这个输入电压跟我们注入的电流息息相关,也就是如果我们的注入电流频率越来越大,锁相环出来的角速度也是越来越大,这样的话,我们通过判断锁相环出来的角速度,就能够识别出孤岛效应了;
下面通过搭建仿真验证算法可行性:
不加角度扰动,仿真波形如下:逆变器脱离电网后,继续一直在正常工作;
加入角度扰动后,逆变器迅速识别到孤岛效应,关闭逆变器:
知道了为什么要锁相,那接下来的问题是怎么去锁相?要实现锁相就必须得到关于市电的一对正交因子;
我们假设市电Va=Vmax*sin(100π*t);要实现锁相就要设法得到一个跟Va正交的要个信号
请教一下,为什么要得到这个正交信号