@Richie_Li
二、软件系统搭建;
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算法;说白了就是设计两个传递函数,这两个传递函数分别对我们的输入信号也就是市电的采样信息,进行运算,得到两个正交信号;


下面通过搭建三种求正交因子的仿真如下:

仿真数据如下:(三种方法都能准确锁相)

到此为止,我们锁相已经实现了;
4255092
2502274
13
781520
说说你的看法
登录后可以回复楼主登录