(陕西科技大学 电气与信息工程学院,西安 710021)
在电力电子设备实验与研发过程中,控制器是最为核心也最关键的一部分,目前高性能的电力电子设备大多采用数字控制,在微控制芯片上利用软件代码实现控制算法。随着对系统性能要求不断提高,导致控制算法愈趋复杂,传统的人工编写代码模式渐渐显示出不足,如:开发周期长,代码测试与验证费时费力等。为了解决传统研发过程中的这些问题,提高开发效率,MathWorks公司提出了基于模型的设计方法[1],在MATLAB中设计完成控制器后可以自动生成实现控制器的软件代码,与底层驱动代码集成,在微处理器上实现控制器,省略了人工编写控制器代码的步骤,并且可以很方便地对代码进行测试和验证。可以使研究人员集中精力在控制算法的研究和控制器的设计上,而不需要投入过多的精力去关心控制器的实现过程,采用基于模型的设计方法可以提高代码的可靠性、可移植性、易测试及易读性,也可以将整个开发周期缩短至传统开发模式的20%~50%[2]。
针对目前研究热点光伏并网,利用基于模型设计的方法,以单相光伏并网逆变器为例,从其基本原理出发直到最终的实际实现,展示了基于模型的设计方法的整个过程及其优点。
如图1所示,单相光伏并网逆变系统主要包含:电网、光伏电池板、单相逆变桥、滤波器及控制器5部分。单相并网逆变系统的目的是将太阳能转化为电流的形式注入电网,且并网电流与电网电压同频同相,即实现单位功率因数,向电网输送有功电流。
图1 系统框图Fig.1 System diagram
其中:Udc为直流侧电压为MPPT(最大功率点跟踪)的输出值,也是直流侧电压给定值为有功电流幅值给定值;eac为电网电压为并网电流瞬时给定值;il为实际并网电流。虚线框中的部分为控制器部分,在控制芯片上由软件实现。
根据检测直流侧电压电流,用电压扰动法,改变直流侧给定电压与上次输出功率比较,从而决定电压的改变方向,最终实现MPPT;MPPT输出的给定电压与直流侧实际电压做差,再通过PI控制器,实现直流侧电压的控制,应当注意的正负,其正负号与输出的并网电流方向有关,总之应保证当增大时应减小,即根据功率平衡来判断;对电网电压进行锁相可以得到与eac同频同相的单位正弦波,与相乘可以得到瞬时电流给定值,最后通过无差拍控制器,使实际并网电流跟踪给定电流,实现单位功率因数并网。
单相光伏并网逆变器常用的电流控制器有PI、电流滞环控制、准比例谐振控制等。PI控制器对交流信号不能实现无静差跟踪;电流滞环控制器虽具有动态快、误差小等优点,但其开关频率不固定而且不利于数字化实现及滤波设计[3];准比例谐振控制器可以实现无静差跟踪,但动态响应慢。针对本系统的特点,设计了无差拍控制器,其具有算法简单,动态响应快、精度高等优点[4-5]。
图1中系统电压电流关系为
其中:Uab为逆变桥两桥臂之间的输出电压;L为滤波电感;R为滤波电感内阻 (包括导线电阻);eac为电网电压;il为电感电流也是并网电流。
采用双极性调制,有:
其中:d为占空比;Udc为直流侧电压。将式(2)带入式(1)并离散化可得:
其中:Ts为采样时间;il(k+1)为系统下一时刻的给定电流值;il(k)为当前电流值,因此可由式(3)计算出占空比信号从而实现对并网电流的控制。
传统开发模式大多是先在MATLAB环境下搭建系统仿真模型,设计控制器并仿真验证,验证通过后人工编写代码,然后对代码进行测试并修复bug,最后在实际系统中测试。这样开发效率就比较低下,因为人工写代码往往会引入bug,而且代码测试不方便。
而基于模型的设计方法是建立好仿真模型并测试通过后,可以对控制器自动生成代码,而且可以通过SIL(软件在环)测试生成的代码与MATLAB中设计的控制器是否等效,可以通过PIL(处理器在环)测试代码的执行时间及效率,还可以通过MAT-LAB提供的工具测试覆盖度及代码复杂度等,而这些对于人工代码是很难完成的。
在搭建系统模型的时候应根据实际系统选取仿真中的参数,如图2所示,系统硬件部分由电网、逆变桥、滤波电感及直流电源组成,为了实现简单采用直流电压源代替了光伏电池板,因此并网有功电流幅值为外部直接给定;软件部分由控制器(Controller)和脉宽调制(PWM)模块组成,最终均要在微控制器上实现,其中控制器部分就是将来要自动生成代码的部分,脉宽调制模块由底层程序实现。
图2 系统仿真模型Fig.2 System simulation model
其中,采样时间Ts=0.00005 s,滤波电感内阻R=0.26 Ω,滤波电感L=3 mH,电网电压有效值eac= 220 V,逆变器直流侧电压Udc=350 V,并网逆变器的额定功率为1.5 kW,额定并网电流幅值为10 A。
图3为控制器部分的内部结构主要由锁相环和无差拍控制器组成,其中无差拍控制器的表达式如式(3)所示。
图3 控制器内部结构Fig.3 Inner structure of controller
图4为并网电流及电网电压波形,为了使并网电流和电网电压能更好地一起显示,故将并网电流放大了20倍与电网电压同时显示,图中横坐标代表时间轴,纵坐标代表电压和电流轴,电压100 V/格,电流5 A/格;其中t<0.04 s时并网电流幅值给定值可以看出并网电流与电网电压同频同相,且在t=0.04 s时并网电流能快速响应幅值变为10 A的正弦波电流。
图4 并网电流及电网电压波形Fig.4 Current and voltage waveform
图5是5 A和10 A并网电流的谐波分析结果,图中横坐标代表频率,单位是Hz;纵坐标为谐波电流相对于基波电流的相对值。图5(a)为时并网电流的谐波分析结果,其电流THD(总谐波畸变率)=3.94%,图5(b)为时并网电流的谐波分析结果,其并网电流THD=1.95%,均满足国标的THD<5%的要求。
图5 并网电流谐波分析Fig.5 Harmonic analysis of current
搭建完系统模型并仿真验证通过后即可对系统进行配置自动生成代码,对代码生成的相关关键配置选项如表1所示。
表1 代码生成的相关配置Tab.1 Configuration of the code generation
分别代表了定步长离散求解器步长为0.00005 s;嵌入式目标文件;模块化代码格式;TI公司c2000系列处理器;代码以高执行效率为优先目标。配置完以上选项后还应对代码原型进行控制,以更好地与底层程序接口。
可以分别配置代码中初始化函数名,函数名及输入输出参数如图6所示。
图6 函数原型控制界面Fig.6 Interface of function prototype control
在配置完以上选项后就可以生成代码,在生成的代码中只需要看其中的.h文件,找到函数名,通过函数名,调用可与底层代码集成。最终生成的代码中函数原型如图7所示,与期望的函数原型一致。
图7 函数原型Fig.7 Function prototype
基于模型设计的最大优点就是容易实现代码的验证与测试,在与底层代码集成之前需要先验证MATLAB自动生成的代码与搭建的控制器是等效的。在配置选项中选中SIL,即可产生一个S-function模块,是自动生成的 C代码经过了封装,可以在MATLAB中调用。因此可以对比自动生成的代码和设计的控制器是否等效,给其和控制器相同的输入判断两者的输出之差是否为零,即可判断两者是否等效。如图8所示,SIL模块为经过封装自动生成的C代码,经测试其与搭建的控制在相同输入的条件下,两者的输出差值始终为零,即两者等效。之后即可与底层代码集成,在实际系统中实验测试。
图8 代码等效性测试Fig.8 Equivalence test of code
按照以上仿真参数搭建实际系统,将MATLAB生成的代码与底层代码集成,在TI公司的TMS320F28335微处理器上实现控制器。实验结果如图9(a)、(b)所示,图中横坐标代表时间轴,纵坐标代表电压和电流轴,电压100 V/格,电流7.5 A/格;分别为实测电网电压与幅值为5 A和10 A的并网电流波形,可以看出电压电流同频同相,实现了单位功率因数并网,与仿真结果基本相同。
图9 实测电压电流波形Fig.9 Measured voltage and current waveform
采用基于模型的设计方法设计了单相光伏并网逆变器,利用MATLAB自动生成了代码,然后再对生成的代码做SIL测试其与控制器的等效性,最后与底层集成并搭建硬件实现了并网功能,实验结果与仿真结果相同。证明了该方法的优点:加快开发速度,容易实现代码的验证、测试等工作,系统代码升级方便等。对电力电子装置的研发具有重要意义。
[1] 邓焱弢,骆光照,陈哲,等.基于模型设计的处理器在回路联合仿真系统[J].测控技术,2011,30(3):45-48.
[2] 冯璨,李刚,赵刚.基于模型设计思想的功率测量技术研究[J].电测与仪表,2014,51(19):1-7.
[3] 杨露露,时斌,闻枫.基于改进的无差拍控制方法在单相并网逆变器中的应用[J].水电能源科学,2014,32(5):172-175.
[4] 黄文俊,余晓建,沈永林.单相并网逆变器的Deadbeat控制[J].电力电子技术,2007,41(2):10-12.
[5] 单竹杰,林明耀,顾娟,等.单相光伏并网逆变器的无差拍控制研究[J].电工电气,2009,28(1):5-7.