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