风力发电机运行仿真.docx
《风力发电机运行仿真.docx》由会员分享,可在线阅读,更多相关《风力发电机运行仿真.docx(30页珍藏版)》请在冰豆网上搜索。
风力发电机运行仿真
基于MATLAB的“风力发电机运行仿真”
软件设计
摘要
关键词
1前言
1.1建模仿真的发展现状
20世纪50—60年代,自动控制领域普遍采用计算机模拟方法研究控制系统动态过程和性能。
“计算机模拟”实质上是数学模型在计算机上的解算运行,当时的计算机是模拟计算机,后来发展为数字计算机。
1961年G.W.Morgenthler首次对仿真一词作了技术性的解释,认为“仿真”是指在实际系统尚不存在的情况下,对于系统或活动本质的复现。
目前,比较流行于工程技术界的技术定义是系统仿真是通过对系统模型的实验,研究一个存在的或设计中的系统。
仿真的三要素之间的关系可用三个基本活动来描述。
如图1
图1系统仿真三要素之间的关系
20世纪50年代初连续系统仿真在模拟计算机上进行,50年代中出现数字仿真技术,从此计算机仿真技术沿着模拟仿真和数字仿真两个方面发展。
60年代初出现了混和模拟计算机,增加了模拟仿真的逻辑控制功能,解决了偏微分方程、差分方程、随机过程的仿真问题。
从60-70代发展了面向仿真问题的仿真语言。
20世纪80年代末到90年代初,以计算机技术、通讯技术、智能技术等为代表的信息技术的迅猛发展,给计算机仿真技术在可视仿真基础上的进一步发展带来了契机,出现了多媒体仿真技术。
多媒体仿真技术充分利用了视觉和听觉媒体的处理和合成技术,更强调头脑、视觉和听觉的体验,仿真中人与计算机交互手段也更加丰富。
80年代初正式提出了“虚拟现实”一词。
虚拟现实是一种由计算机全部或部分生成的多维感觉环境,给参与者产生视觉、听觉、触觉等各种感官信息,使参与者有身临其境的感觉,同时参与者从定性和定量综合集成的虚拟环境中可以获得对客观世界中客观事物的感性和理性的认识。
图2体现了仿真科学与技术的发展进程。
图2仿真科学与技术的发展
以美国为代表的发达国家高度重视仿真技术的发展和应用。
美国等西方国家除军事用途外的其它行业中的仿真技术及应用都居于世界领先水平,如飞行模拟器、车辆运输仿真、电力系统、石油化工仿真系统等。
经过几个五年计划的努力,我国仿真技术得到了快速的发展,并取得了突破性成果,和长足的进步。
在某些方面达到了国际先进水平。
但总体水平,特别是应用水平与发达国家比较还有差距,需要进一步努力,加速发展仿真技术以缩小差距
1.2本仿真软件简介
2风力发电机各部分数学模型及仿真
2.1风力机
风能利用系数(功率系数)Cp是指单位时间内风力机所获得的能量与风能之比。
它是评定风力机气动特性优劣的只要参数,其定义式:
(1)
式中:
P为风力机的功率,单位是W;
ρ为空气密度,单位是kg/m3;
S为风轮的扫风面积,单位是m2;
V为来流风速,单位是m/s
在设计Savonius风力机时要考虑两个重要的结构参数:
一个是重叠比OL(Overlapratio),一个是高径比AP(Aapectratio):
(2)
(3)
叶片重叠比对Savonius风力机的各种性能影响很大。
如图4的风洞试验数据所示,具有不同的叶片重叠比的风力机的最大功率系数相差很大,合理设计叶片重叠比可以改善风力机的静态启动特性,对风力机的动态力矩变化的战俘和相位也具有一定的影响。
图4具有不同重叠比的Savonius风力机的性能
叶片高径比也对风力机的性能影响很大,一般来说叶片高径比越大风力机性能越好。
目前实际应用中的Savonius风力机的叶片高径比一般为1~4,准确数值要根据设计目标、成本和安装地点的风况特点来决定。
叶尖速比λ是叶片的叶尖圆周速度与风速之比,用来描述风轮在不同风速中的状态:
(4)
式中:
n为风轮转速,单位是r/s;
ω为风轮角频率,单位是rad/s;
R为风轮半径,单位是m;
V为上游风速,单位是m/s
风力机通过叶片捕获风能,将风能转换为作用的发电机转子上的机械能,将吸收的叶片转矩为作用在发电机转子上的机械转矩。
风力机吸收功率可以表示为风速的函数,其模型表示为:
(5)
所以风力机的机械转矩为:
(6)
其中相关参数的设定会影响风力机的输出效率。
对于风力机建模,主要有两种方式,一种是对发电机的实测数据的查表法,另一种是根据相关的公式进行垂直轴风力发电机输出参数建模。
风能利用系数Cp的函数曲线如图6所示,由图可知,当叶尖速比在1左右时,输出效率最大。
为了简化模型,我们在仿真过程中设定叶尖速比在速度范围之内为恒定值。
图6最佳Savonius型风力机输出效率及转矩效率随叶尖速比的变化
通过图6可以拟合曲线,得到风能利用系数Cp的函数:
(7)
由此可得输出功率为:
(8)
根据数学模型,进行Simulink仿真。
输入为风速V,空气密度ρ和发电机电磁转矩T_em;叶尖速比λ和风力机受风面积A为常数。
输出为风力机输出功率P,输出转矩Te,输出转速ω和发电机输入转速ω_em。
同时我们还设定了风力机的启动风速和最高风速。
模型如图7所示,并对其进行了封装。
封装界面如图8。
图7风力机仿真模型
图8风力机封装界面
设定输入风速为15m/s,空气密度为1.29kg/m3,仿真时间为10秒,得输出曲线如图9。
横坐标为时间,纵坐标分别为功率、转矩、转速、发电机输入转速。
风力机输出功率约为620W。
图9风力机仿真输出曲线
2.2发电机
2.2.1永磁发电机
永磁同步发电机由绕线转子同步发电机发展而来,定子与普通同步发电机基本相同,转子为永磁体,一般无阻尼绕组,因此不存在励磁绕组的铜损耗,同时无需外部提供励磁电源,可以提高效率;转子上没有滑轮,可以提高系统的稳定性。
风力机输出的机械转矩带动发电机转子转动。
永磁同步发电机的转子为永磁式结构,转子的磁链由永磁体决定。
我们将定子电压在dp0同步旋转坐标系下进行分解,其中,同步旋转坐标系的d轴是转子磁链的方向。
在此基础上建立发电机定子电压的d轴和q轴分量的表达式:
(9)
式中:
id和iq分别为发电机的d轴和q轴电流;
ud和uq分别为定子电压Eg的d轴和q轴分量;
λd和λq分别是d轴和q轴的磁链
Ra为定子电阻;
ωe为电角频率
定义磁链的d轴和q轴的分量的表达式为:
(10)
式中:
Ld和Lq分别为发电机的d轴和q轴电感;
λo为永磁体产生的磁链
定义q轴的反电势eq=ωeλo,而d轴的反电势ed=0,因为发电机的转子为对称结构,这里我们可以假设发电机的d轴和q轴的电感相等,即Ld=Lq=L。
将式(8)带入到式(7)并整理化简得到:
(11)
因为Ld=Lq=L,则永磁同步发电机的电磁转矩表达式为:
(12)
式中np为极对数。
MATLAB中提供的永磁发电机模型当其输入为负时,作为发电机使用。
输入有转矩Tm和转速ω两种选择。
本仿真软件中,我们选择转速ω输入。
参数设置如图13所示,从上到下依次表示:
定子相电阻,d轴和q轴定子电感,选择机器常数,感应磁链,电压常数,转矩常数,极对数,初始条件(转速、角度、电流)。
通过调整感应磁链和极对数得到较为理想的曲线。
图14和图15分别为仿真模型和仿真结果。
图13永磁同步发电机参数设置
图14永磁同步发电机模型
图15发电机输出电压曲线
2.2.2电励磁同步发电机
风力发电中所用的同步发电机绝大部分是三相同步电机,其输出联接到邻近的三相电网或输配电线。
普通三相同步发电机的原理结构如图5所示。
在定子铁心上有若干槽,槽内嵌有均匀分布的在空间彼此相隔120°电角的三相电枢绕组aa′、bb′和cc′,转子上装有磁极和励磁绕组,当励磁绕组通以直流电流If后,电机内产生磁场。
转子被风力机带动旋转,则磁场与定子三相绕组之间有相对运动,从而在定子三相绕组中感应出三个幅值相同,彼此相隔120°电角的交流电势。
这个交流电势的频率f决定于电机的极对数p和转子转速n,即f=pn/60。
图5三相同步发电机结构原理图
我们将定子电压在dp0同步旋转坐标系下进行分解,则定子方程可表示为:
(11)
定义磁链的表达式:
(12)
式中:
Mf′为定子绕组和励磁绕组之间的互感系数;
Md′为定子绕组和直轴阻尼绕组之间的互感系数;
MQ′为定子绕组和交轴阻尼绕组之间的互感系数
发电机的电磁转矩为:
(13)
MATLAB中的同步电机有国际标准单位和标幺值两种,我们选择的是国际标准单位值的。
输入分功率Pm和转速ω两种,为了与永磁电机的输入统一,我们还是选择转速ω输入。
参数设置如图16所示,参数依次为:
视在功率、线电压、频率、励磁电流,电子电阻、漏磁电感、d轴和q轴电感,定子的漏磁回路电阻、漏磁电感,阻尼器的d轴和q轴电阻和漏磁电感,极对数,初始值(初始速度偏差、电角度、线电流、相角、初始励磁电压)。
图16电励磁同步发电机参数设置
这一发电机模块需要配合励磁模块一起使用,在这里需要说明一下。
图17为励磁模块的基础模型,从左到右依次是:
低通滤波器,超前滞后补偿,主调节器,饱和度,励磁模型,阻尼器。
通过改变主调节器的增益、时间常数和饱和度的上下限,得到稳定的励磁电压。
与发电机相连得到整体模型,如图18所示。
图19为发电机输出电压曲线。
图17励磁基础模型
图18励磁发电机模型
图19励磁发电机输出电压曲线
2.3整流逆变
3整体模型及GUI界面
3.1整体模型
将上一章的各个部分按照风力机、发电机、整流逆变的顺序连接在一起,得到整体的风力发电系统的模型,如图20所示,上为应用永磁发电机的风力发电系统,下为应用励磁同步发电机的风力发电系统,两者的区别仅在于发电机励磁方式不同。
设置仿真时间为1秒进行仿真,由于模块比较复杂运算量比较大,所以实际的仿真时间较长,得到的仿真结果如图21所示。
图20风力发电系统模型(上图为永磁同步发电机,下图为励磁同步发电机)
图21发电机输出波形(上为永磁同步发电机输出,下为励磁同步发电机输出,右侧为波形细节图)
从图形可以看出与之前发电机仿真结果相比波形中夹杂了很多谐波,并且也非正弦波形。
通过调节发电机的参数不能解决这一问题,经过与指导老师讨论并查阅资料,我们在发电机与整流装置之间加入了1:
1的变压器,利用变压器作为隔离装置,消除整流逆变对发电机输出的影响。
如图22所示图中用粗线框住的部分为添加的变压器隔离装置。
通过观察结果,达到了我们的目的。
如图23所示为调试后的发电机输出曲线。
图24为风力发电系统最终输出电压。
图22修改后的风力发电系统模型(上图为永磁同步发电机,下图为励磁同步发电机)
图23修改后发电机输出波形(上为永磁同步发电机输出,下为励磁同步发电机输出)
图24风力发电系统输出(上为永磁同步发电系统输出,下为励磁同步发电系统输出)
3.2GUI界面设计
3.21GUI的使用
GUI是GraphicalUserInterface图形用户界面的意思,象很多高级编程语言一样,Matlab也有图形用户界面开发环境,随着计算机技术的飞速发展,人与计算机的通信方式也发生的很大的变化,从原来的命令行通讯方式(例如很早的DOS系统)变化到了现在的图形界面下的交互方式,而现在绝大多数的应用程序都是在图形化用户界面下运行的。
(1)首先我们新建一个GUI文件:
,或者在命令窗口输入GUIDE,运行GUI界面设计工具,或者点击GUIDE按钮(问号左边第二个)启动,
图3-1打开GUIDE的快捷按钮
启动的界面如下图所示:
图3-2GUIDE启动界面
(2)选择BlankGUI(Default)
图3-3GUI设计版面
(3)窗口的左边有许多控件,类似VC++、VB,可以将控件拖到窗口中。
比如做一个按钮控制图片显示的界面,布置控件如下:
图3-4拖动控件的实例
按钮的显示字符和字体大小可以通过双击后,在弹出的对话框中修改。
(4)对按钮控件功能的编程:
右键按钮,选择viewcallbacks->callback回调函数,就会弹出这个界面的M文件,并且光标定位在该按钮的子函数开始处,写好点击该按钮时触发的语句:
%---Executesonbuttonpressinpushbutton1.
functionpushbutton1_Callback(hObject,eventdata,handles)
%hObjecthandletoUntitled1(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
axes(handles.axes1);
imshow('flower.jpg');
(4)保存文件,单击fig文件窗口上的三角执行或者运行其M文件运行该程序:
图3-5运行设计的界面
图3-6按下按钮之后
通过该例子简单描述下制作GUI的过程。
3.22动态仿真软件界面设计
下面以水平轴并网风力发电场动态仿真界面设计为例,介绍各部分界面的需求分析、功能安排及设计过程。
需求分析:
该软件界面的制作是为了给实验室环境提供一种可靠的数据获取手段和决策安排方法。
在给定各设备具体参数的情况下,能够得到与实际相贴近的过程结果数据。
功能安排:
对模型的参数修改及模型的打开关闭运行等操作;
仿真过程的曲线图的可视化;
仿真过程的详细数据的显示;
仿真过程的参数和详细数据可以保存为自定义文档;
以上功能的菜单实现。
设计过程:
基本的设计方法3.21中已经介绍过了。
界面总貌如下所示
打开模型的回调函数:
ifisempty(find_system('Name','power_wind_ig.mdl'))
open_system('power_wind_dfig_avg.mdl');
end
关闭模型的回调函数:
save_system('power_wind_dfig_avg.mdl');
close_system('power_wind_dfig_avg.mdl');
回主界面就是关闭改图形界面。
主要是为了各个界面之间的衔接功能。
其回调函数:
close(gcf);
set(0,'currentfigure',mainGUI);
这几个控制功能实现十分简单。
困难在于,原来的动态仿真系统中的各个参数是在M文件中书写的,运行mdl文件之前需要先载入全局参数到内存,再启动仿真,然后再通过运行画图程序把结果体现出来。
而现在是做成操作界面,如果再这个运行程序太过烦琐,用户友好化就体现不出了。
为了解决这个问题,首先想到的是制作一个嵌入式的模块,把初始化代码放到该模块里面,使它在模型运行时第一时间把参数载入。
但是尝试了EmbeddedMatlabFcn等模块后,没有成功,嵌入式模块支持的语句有限,有些基本的函数或字符在其中不能应用,所以功能发挥受到了一定的限制。
只有寻找其他方法。
在Simulink的模型文件环境下,选中File->moduleproperties后会弹出一个对话框:
图3-10模型属性对话框
该对话框第二个标签就是callbacks,就是回调函数,鉴于之前对GUI中callback的研究及已知的simulink基本知识,决定将所需参数初始参数写入一M文件(power_wind_dfig_data.m),然后装载到模型中。
实践证明这个方法是可以实现的。
选中callbacks,界面左边一栏列出了各种支持的回调函数,第一时间可以发现PreLoadFcn,就是自动装载函数。
右边的对话框就是编写程序代码的地方,用法跟M-editor一样:
图3-12自动装载函数
这样解决了初始化的问题。
之后是结果反馈的问题。
moduleproperty的callbacks里提供了其他一些回调函数,经过尝试postloadFcn,PostsaveFcn这些后续操作的函数之后,发现stopFcn可实现仿真完毕之后进行操作的功能。
所以,将画图和数据显示的代码写入stopFcn的对话框中。
图3-13停止仿真后执行的回调函数
这样写入仿真前后的仿真语句之后,只要打开模型,点击运行就OK了。
图3-14设置好回调函数后运行模型的结果
通过选择,相应数据也会在主界面上显示出来。
这样操作方便,给操作人员减少了许多负担。
但是这种方法并不方便修改各参数及数据保存,为了使该软件功能更加完善,需要继续加工。
但难点也随之而来,在GUI界面上输入的数据被内存获取之后并不送入workspace,但是Simulink仿真数据初始化获取必须通过workspace,这是一个矛盾。
把GUI中edit框中的数值赋给simulink中对应的变量。
这个问题一开始用set_param尝试,但总是会报错说变量没有定义。
之后研究发现,只需要用等号对变量名进行赋值即可。
例如:
simulink中有个变量为f1,edit框Tag属性为edit1,那么相应的代码就Pnom=str2num(get(handles.edit1,’string'));这里的str2num是将字符串转变为数值的函数。
启动simulink之前需要写上options=simset('SrcWorkspace','current');将GUI中所输入的各个参数送到workspace中,再通过语句sim('model_name',[0sim_time],options);启动仿真。
然后是运行仿真后,将所得到的数据从工作空间读到GUI的内存空间里,需要做如下处理:
首先将Simulink的数据用toworkspace模块连接,再通过语句assignin('base','Vabc',Vabc);才能将其内容保存到workspace中去,然后再从workspace中读取到GUI空间中去,通过语句:
Vabc=evalin('base','Vabc');来实现,之后的操作就很简单了,set就可以完成各种数据显示的功能。
仿真数据显示如下:
图3-16动态模型版面运行仿真后演示结果
接下来是文件读取及保存问题。
该软件具有参数装载、参数保存,仿真过程数据保存及两者同时保存。
文件格式为.xls即Excel文件。
未开始仿真前保存文件均有相应的提示信息,分别如下所示:
通过MenuEdit为软件添加菜单。
菜单实现的功能均可由界面上的按钮等控件实现,其整体框架如下所示:
其他部分的界面设计与此类似。
3.23综合软件的制作
下面制作一个综合控制版面把这四个分界面连接起来。
首先制作该软件的主界面:
图3-17启动界面制作
下面四个按钮分别启动四个仿真子模块,并且将该主界面关掉。
关闭当前界面并打开新的界面功能实现起来方法很多,如open,run函数等,但是经过实验,本文提出了一种新的方法,比上述两个函数的代码量要小,思维也更新颖:
close(gcf);%关闭当前界面
set(0,'currentfigure',shuipingbw);%将当前焦点设置到shuipingbw上
为了软件界面的友好性,在其工作栏中也制作了切换界面的菜单。
图3-18启动界面运行图
点击按钮或菜单会进入相应的控制界面。
在其菜单栏上点击操作->关于……->会弹出毕业设计作者名字,指导老师姓名等字样。
3.24小结
通过GUIDE制作软件界面方便,而且图形丰富,可以根据自己的需要调整界面布局。
而且它可以连接M脚本语言和simulink模块,将各种特性组件的特性有机地结合起来,通过按钮,坐标窗口,列表栏等控件获取外部输入或者展示仿真结果,很好地达到了界面友好,交互方便的效果。
通过GUI完成的仿真软件综合了四类风力发电仿真功能,对获取实验数据,研究风力发电,优化风力发电控制等方面具有十分重要的意义。
4总结
经过半年多的努力,我们的风力发电运行仿真系统已经初见模型了,在GUI界面上可以实现系统运行,修改模型参数,查看输出曲线,分析曲线数据等功能,并可以查看底层模型。
基本实现了项目的预期成果,但由于时间和所学知识有限,系统中还缺少控制部分,以及更形象的可视化界面。