作者寄语
本文作者--爱上烙铁的口红
身为一名85(大于等于)后妹子,想当年也是有一颗想要叱诧风云、拨弄人生的野心,于是高考那年就用抓阄的方式严肃的选择了一个叫电气工程及其自动化的专业,打算未来为祖国的社会主义现代化建设抛头颅、洒热血,哦不,是贡献自己的一砖一瓦,四年之后又由于无法阻挡内心对知识的强烈渴求(女生本科毕业出去不好找工作这种事情我会告诉你吗)继续攻读了硕士研究生,于是义无反顾的在通往女汉子的道路上一路狂奔。
那年月(掐指一算,也好几年了),祖国大地到处都是光伏热,各个高校相关专业、大大小小的涉及做逆变器公司要是不说自己也在做光伏都不好意出门,于是妹子我也在导师的悉心教导下加入了光伏逆变器的研发中,成为了一名光荣的并网人,现在想起来我都激动的差点不能打字。毕业季节顺利的在校园招聘中签约了我的第一个东家继续做光伏并网逆变器产品开发。
进入公司之后,发现研发一个东西不再是搞搞原理那么简单,各种产品化的流程、认证标准、还有难搞的部门的之间交流,都让刚工作不久的我开始打听最新的退休年龄是什么时候,在得知我离退休还有点早,并且缴纳社保不足15年退休之后没钱领 这两大噩耗之后,我决定好好研究怎么把逆变器做好。于是我跟我老大说我要洗心革面、重新做人,快把逆变器软件控制部分的任务交给我!介于当时实在没有合适的人顶上去,于是我老大整理了一下自己的面部表情,淡定的思考了3秒钟之后,对我说,嗯,相信你!。。。好吧我承认我已经忘了当时是怎么回事了,这段是我编的,反正我就成了一个光伏逆变器控制软件工程师。
后来经历了跟兄弟公司合作、去产线观摩、辗转跳槽等一系列的事情,直到2年前,我都还在做光伏并网逆变器,并且迄今为止我参与研发的小功率光伏并网逆变器也卖到了不少客户那里。这期间我利用我的颜值和钻研精神,把自己工作所涉的知识好好研究了一番,现在把自己的经验总结一下写出来,不求能给大家带来多大的启发,只求fen 享。现在市场竞争激烈,行业洗牌迅猛飞速,我也已经不再从事光伏并网逆变器的研发了,此文算是一个阶段性总结,更是对过去几年的一个纪念。
说到这我知道你们羡慕我还可以在搞技术的路上用到颜值提升技术水平,你们也可以的,因为颜不好就只能自己一个人钻研技术了,‘尴尬捂脸’。
--完毕
下面会给大家分析本人原创的一篇技术文章,所有图(电子图&手画图)都是自己的画的,所有matchcad公式都是自己推导计算,所有仿真都是自己仿的,所有实验波形都是自己写代码做实验所得。
说明
本次主要想写一下关于单相光伏并网逆变器的环路控制问题,即如何对系统建立数学模型,以及选定环路调节器的参数(主要是逆变器电流环),如何减小并网电流的THD。通常光伏逆变器的控制都是数字控制,所以本贴最后还会讲如何将选定的控制器参数转化为数字控制代码中的参数。
概述
单相光伏并网逆变器的拓扑结构通常为两级电路,前级boost升压电路+后级的逆变并网电路,这两级电路通常需要4个控制环,前级:boost的电流内环(控制boost电感电流)+boost电压外环(控制光伏电池板电压);后级:inverter电流环(控制逆变器电感电流)+bus电压环(中间母线电压)。电路结构如下:
、
让我们对电路的各端口的源特性进行分析一下,因为并网逆变器输出端接的是电网,是一个强电压源,所以逆变器的输出必须是一个电流源特性,因为地球人都知道,两个电压源不可以并联。如下图:电池板的输出既不是一个电压源也不是一个电流源,而是相当于一个电压源与一个电阻串联的端口特性,通过控制boost的输入电压(即电池板输出电压)可以使电池板输出不同的功率;中间母线被一堆大电容搞成一个相对来说稳定的电压源,把电路的前后两级从控制的级别解耦开;inverter的输出需要被控制成一个电流源;
说到控制,直白的说就是让目标控制量尽可能的跟踪给定量,那么控制的稳态误差为0(目标量与给定量)的条件是啥:当然大家都知道:控制系统实现对某一频率信号控制的稳态误差为0的条件是——系统开环bode图(或者控制器的bode图)在此频率点具有无限大增益。
上一张图给大家说明:将一个闭环系统的输入输出传递函数写出来后,可以得出,某个频率点对应的增益越大,稳态误差越小。
前级boost电路的控制,无论内环还是外环,都是控制的直流量,并且控制目标为外环的电压(即PV板的电压)。所以boost级的控制参数设计仅以开环bode图能够实现高增益(系统稳定的前提下)为目标即可。因为有朋友问过我为什么前级boost要用双环,所以这里插入一段解释一下:
实际上前级boost用双环有3个作用:
1)电流限幅。当光伏曲线为低电压大电流的时候,可以对电流环给定进行限幅以保证系统安全工作在一个非最大功率点的位置。
第一点很好理解,对外环的输出(即内环的给定)限幅,就可以对电流进行限幅,保证其不会超过额定电流稳定工作。
2)防止电感电流变化太快而造成器件损坏或者电感饱和。
3)电压环降阶,电压环由二阶振荡系统变为一阶系统。
第2条和第3条可以一起解释。
先来看一下单环和双环的仿真结果对比:下图中,在输入功率突然增加的时候,同样是从4A突变到16A,双闭环系统的电流振荡明显好很多,因此第2条就很好解释。
那么为什么会出先这个情况,就是第三条。单环系统的传递函数是一个二阶振荡环节,而双闭环系统则是一个一阶系统。
我们从传递函数和bode图来看:
第一图是从占空比到电压的传递函数及bode图,即只有一个单电压环时候,其传递函数有一对共轭极点,所以有一个振荡点。用PI调节器去控制,这个振荡怎么都会存在,表现在波形上就是上图的情况。(bode图中实线为幅频特性,坐标轴为左边;虚线为相频特性,坐标轴为右边,下同。)
而加入电流内环以后,电流内环调好之后,整个电流内环的闭环会化解为一个比例环节(在电流环带宽范围内),电压环就会降阶为一个一阶系统,不会存在振荡现象了。
inverter的环路控制
我们主要讨论后级inverter的控制,inverter的电感电流为被控电流,间接的也是并网电流的控制量(LC滤波器情况,LCL滤波器不在这里讨论),因此inverter电流内环的电流波形质量的控制非常关键。
对了,我们之所以可以把前后级的控制分开讨论,是因为中间母线大电容在开关小信号级上是相当于短路的,也就是前后级被母线大电容解耦。
inverter电流环控制
我们先给出inverter级的电路模型以及控制框图:
根据电路推演,可以得出电流内环以及Vbus电压外环的双环控制框图:
逆变器可以看做一个稳态工作点在变化的buck电路,所以建立小信号模型时候类似于buck电路,建模过程呢,简单说一下,首先将电网Vg看做一个扰动量,在建模时候不加考虑。先对储能元件(通常是电感和电容)列出微分方程,然后对微分方程中的变量(随着开关闭合会变化的量)加入小信号扰动,然后化解方程,将不含微分因子项和微分因子乘积的项均去掉,然后对剩下的部分做拉氏变换,就会得到小信号模型,将两个小信号模型方程(电容一个,电感一个)化解就会得到占空比到电感电流的传函或者占空比到电容电压的传函。那么单相并网逆变器的占空比到电感电流的传函如下:
看起来很简单是不是,呵呵!
其bode图如下:相角为-180度时候,幅值仍然大于0分贝,因此系统不稳定;系统起始相角为-90,如果使用純积分控制,则起始相角会变成-180,且没有响应的零点来拉回相角,因此电流环调节器必须是带有一个零点、一个积分(起始幅值斜率为-40db/dec,可以提高低频部分的增益,减小低频部分稳态误差)的环节,那么PI调节器就是这样的控制器。
加入PI调节器后的开环bode图:在mathcad中动态调整Kp、Ki的值,保证在低频增益足够高(穿越频率足够大)的情况下,使幅值穿越0分贝线时候相角值大于-180度大约20db以上。这样系统即稳定又稳态误差又小。
大家平时肯定也有经验,就是对交流信号控制的时候,总是不能完全跟踪,即输出与给定是由静差的。这一点可以从bode图上看出来,在50Hz处,可以看到其增益是一个有限值,根据我们前面所说,对某一频率信号实现无静差控制的条件是其开环增益在此频率点的增益为无限大,比如一个带积分环节的传递函数,在0HZ(即直流)处的增益就是无限大的。因此PI调节器可以对直流信号实现无静差控制。那么交流信号,通常频率为50Hz,在此处的开环增益往往不是无限大,因此通常调节器对交流信号往往是有差控制,这也是输出并网电流THD形成的一个原因。
为了解决在50Hz处增益的问题,现在很多人使用比例谐振调节器(PR),这个调节器在谐振频率处可以使增益达到一个比较高的点。我先放上传递函数和bode图:
从PR调节器的bode图中可以可以看出,与PI调节器在频率越低出增益越大(直流处理论增益无穷大)不同,PR调节器幅频特性在50Hz(谐振频率)处的增益很大,因为可以特别改善50Hz频率的波形控制。
当然无图无真相,无实验无说服力,下面PO仿真波形VS实验波形:
当然我们肉眼凡胎,看不出差别,下面上THD分析:其中Ithd1为对电流波形的THD测量:结果显而易见
当然,有的同学说这不行,你得弄点让我们从波形上能看出来的东东证明,那好吧。我们看看在小功率的时候控制情况对比:(白底图为仿真对比,黑图为实验对比)
在PI调节器的控制下,波形的基波分量已经偏离给定正弦波太多,而PR调节器控制下,电流的基波分量仍然跟随给定信号。
BUS电压环设计
在确定好内环的调节器参数之后,可以设计母线外环了,母线外环的设计需要注意一点,单相光伏并网逆变器与功率因数校正电路(PFC)有相似的地方,就是流入电网(PFC电路是流出电网)的电流必须为正弦,因此母线环的设计就不能将带宽设计的太高。先把控制框图PO上再说:
电流环设计好之后可以合并为一个环节。整个框图就会简化为图中下面的框图。
首先明确一点,由于并网功率的脉动(50HZ电压乘以50Hz电流,所以交流功率为100Hz的脉动功率),导致中间母线上出现100Hz的纹波(即二次纹波),而这个二次纹波会影响到并网电流的谐波,导致并网电流中出现严重的3次谐波,也是导致并网电流THD大的主要原因。从控制框图可以中看出,bus电压环的调节器输出再乘以单位正弦信号sinwt就是电流环的参考输入,那么这个bus电压环调节器输出中如果含有2次纹波,那么电流环的参考输入信号中就会含有3次谐波。这个3次谐波是电流环的调节器如何设计都去不掉的,因为它在给定的参考信号里。
所以从并网电流的THD的角度来考虑,最理想的情况就是bus电压环的PI调节器输出为一个平直的信号。而从控制框图中我们可以看到,BUS的参考信号是给定的定值,没有问题,但是BUS的采样反馈信号是含有2次纹波的,它们的差值也是含有2次纹波的,所以这就需要BUS的调节器能够滤除差值信号中的2次纹波(调节器的实质就是一个滤波器),2次纹波通常是100Hz,所以BUS的PI调节器的带宽不能高于100Hz,为了滤除100Hz,通常设定在50Hz以下。那么这样BUS环的调节器带宽很低,增益必然也很低,所以BUS的动态响应必然不会快,稳态误差有可能也会受到影响。
一般情况下,就只能面对这个现实了,呵呵,在追求输出电流THD的是时候就要牺牲母线环路的带宽和增益,万事没有完美,大家懂的。
即便输出电流3次谐波与母线环带宽增益不可兼得,那也不可任之妄为,对不对!数字控制嘛,只要中断时间还有,只要ROM还能放得下,那就要争取最后一丝希望,没羞没臊的干下去~~~
母线环不甘心那么点点带宽和增益,不然母线稳不住,大局hold不住,肿么办?不就是个2次纹波么,单挑它!
前面说了PR调节器可以单独提高50Hz的增益,那么现在我们用个陷波器,单独滤除100Hz的增益。陷波器是个虾米玩意呢?实际就是个带阻滤波器,他的传递函数以及bode图如下:fc为陷波器的中心频率,fb为陷波的宽度。
把这个环节加在BUS环的PI调节器之后,和sinwt相乘的信号之前。就可以把电流环给定中的3次谐波大大减小。(因为2次纹波乘以sinwt,出来就是3次谐波)。
本来这个也要有仿真波形和实验波形对比,但是我把实验的波形搞丢了,没找到,现在机器也不在我手里啦,也不能现取波形了,但是我有仿真波形验证,呵呵!
首先来不加陷波器时候的电流波形以及其THD分析:红色为电感电流波形,蓝色为电流参考信号波形;可以看出正弦波稍微有点“偏头”,这实际就是由于3次谐波稍大,右下角的可以看到THD为6.2%左右(感觉THD挺大是不,呵呵,因为仿真的THD分析是一直分析到500kHz,大约1万次谐波,而实验中THD一般分析到50次左右。)
下面的波形是加入陷波器之后的仿真结果:
波形“偏头”不明显了,从右下角可以看到THD为4.7%左右
当然有的童鞋会说,我没用你所谓的陷波器,电流也没有这么偏头的厉害。我前面说过,疯狂降低BUS环路的增益和带宽,是可以实现对电流环3次谐波的抑制的。
当然所有事情有得必有失,无论PR调节器还是陷波器,都对DSP的能力(精度和运算速度)要求比较高。
电网前馈的问题
通常单相光伏并网逆变器的控制中会加入电网前馈控制,用来尽快抵消电网的扰动对电流环的影响。我们先来从控制的角度看一下电网扰动带来的误差影响:下面是电流环的控制框图,其中电网Vg的影响位置如图所示:其中Vg就是框图中的N(s),误差En(s)为参考信号与反馈信号之差。
将参数代入后可以得到220Vac电网扰动下的误差bode图:在50Hz处,扰动增益较大。从上面的图中可以看到控制器Gc的增益可以影响误差信号,也就是说增大控制器Gc在增益就可以减小误差。
顺便从bode图上对比一下电流环PI控制器和PR控制器对扰动误差的影响:
为了快速抑制电网扰动对电流环的影响,很好的办法就是将电网电网信号前馈。我们从控制框图上来解释一下:第一个图所示为电网扰动的实际位置,根据方框图的变换法则,在第2个图的位置加入这个信号,就可以与原来的信号相抵消。这就是前馈的做法。在实际操作中就是:电网*载波幅值/母线电压,将这个结果加在PI调节器的输出上面。
同样我们进行一下仿真验证,电流环统一用PI调节器控制:第1图为无电网前馈,第2图为有电网前馈,效果显而易见。(蓝色为给定的电流参考信号,红色为电感电流信号)
控制器的离散化
在用DSP实现数字控制的时候,要把控制的部分写成代码才能实现,所以需要把控制器或者滤波器写成数字控制器或者数字滤波器,也就是离散化。很多初学宝宝估计把控制书上的离散化过程看了好多遍还是不知道在实际操作中怎么把一个传递函数变成程序代码。今天就把自己做数字控制时候的转换方法给大家说一下。
首先要明确一点,任何调节器、滤波器离散化成为代码的时候都是固定的格式,就是如下,根据不同的传递函数,其中有些系数有可能是相同的:
其中y(n)为调节器的最新输出,y(n-1)、y(n-2)为前一次、前2次的输出。
其中e(n)为调节器的最新输入(参考-反馈的误差),e(n-1)、e(n-2)为前一次、前2次的输入。
具体要取到多少旧值,取决于调节器或者滤波器传递函数s的最高次幂。
然后要在每次计算之后更新旧值,例如:
离散化的方法通常用的有3种:
1、差分变换法
2、零阶保持器法
3、双线性变换法
在这里我不讲这三种方法的原理,因为教科书上面都有。我只以PI调节器为例,分别说明这三种方法怎么用。
差分变换法:
PI调节器的传递函数如下:其中Kp为增益系数,Ki为积分时间常数。
将上式写成时域微分方程式为:
然后对上式进行离散化,以求和代替积分,采用矩形法进行数值积分,分别得到第k-1次和第k次采样时刻调节器的输出为:
其中Ts为计算周期,也就是控制周期,其倒数为控制频率。下同。
将两式做差可得出两个相邻时刻调节器输出的增量,并且写出PI调节器的差分方程:
上面这第二个式子就是最终PI调节器离散后的方程式。
零阶保持器法:
这个方法说白了就是用下面等式替换传递函数中的s:
于是有:
然后将对等位置的系数找出来:
双线性变换法
和上面的零阶保持器法类似,只是s与z的替换公式不一样:
用这个方法得到的PI调节器的离散化公式和前面两个方法不太一样,但是可以看出来,当采样周期越小,或者说控制频率越高的时候,它和前面的方法越接近。
PI调节器写成代码
使用双线性变换法:
PR调节器的离散化
PR调节器的传递函数:
其中:Kpr和Kipr为调节器参数,ω为谐振频率,通常为希望提高增益处的频率,50Hz电网中为2*Pi*50Hz。
用双线性变换法,z替换s后得到:
其中:
于是PR调节器的C语言代码为:
在实验中将控制器的c语言代码写到DSP中时候,其中有一个参数要变化,就是Ts,要根据你自己的控制频率将Ts套入计算得到的才能得到对的结果哈!否则你的Kp、Ki参数选的再好都是然并卵!比如,你的开关频率是20k,程序代码是一个开关周期计算一次,即控制频率也是20k,那么Ts就是1/20k,然后代入上面的离散化方程中。好了,不细说了!
当控制器传函中s的幂次越高的时候,对DSP的计算精度越高,所以对于s幂次大于等于2的控制器或者滤波器,最好用浮点型的DSP,如果硬要用定点DSP,需要对小数扩大成整数计算,最后把结果再以同样的倍数变小。注意计算过程别溢出。
为了这篇投稿我也是破费心血!所有图(电子图&手画图)都是自己的画的,所有matchcad公式都是自己推导计算,所有仿真都是自己仿的,所有实验波形都是自己写代码做实验所得。
附件
做这篇技术文章好多地方用到了mathcad计算和psim仿真,这两个软件在计算分析和仿真时十分好用,有感兴趣的朋友也可以一起分享和讨论。
下面分享一些文件给大家参考
二阶低通滤波器的离散化mathcad文件
2_order_LowPass_filter.rar
boost建模CCM.rar
下面是我在别的帖子里给别人回复的H6中间管的工作状态分析以及Psim仿真文件
H6拓扑中间管的工作.pdf
H6 topology.rar
本文原文档:单相光伏并网逆变器的环路控制.doc以及文章中分享的文档
下载方法,关注微信公众号“电源研发精英圈”,然后在公众号回复“美女工程师”
本文作者--爱上烙铁的口红 |