电力电子电路仿真MATLAB和PSpice应用课件_第1页
电力电子电路仿真MATLAB和PSpice应用课件_第2页
电力电子电路仿真MATLAB和PSpice应用课件_第3页
电力电子电路仿真MATLAB和PSpice应用课件_第4页
电力电子电路仿真MATLAB和PSpice应用课件_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章MATLAB应用第1页,共136页。第五章MATLAB应用 MATLAB是一种科学计算软件。MATLAB是Matrix Laboratory(矩阵实验室)的缩写 。早期的MATLAB主要用于解决科学和工程的复杂数学计算问题。使用方便、输入便捷、运算高效、适应科技人员的思维方式,并且有绘图功能,有用户自行扩展的空间,是国内外高校教学和科学研究的常用软件。 MATLAB比较易学,如果有不清楚的地方,可以通过它的帮助(help)和演示(demo)功能得到启示。 学习MATLAB的难点在于,它有大量函数,这些MATLAB函数仅基本部分就有700多个,其中常用的有200300个,掌握和记忆起来都比

2、较困难。 第2页,共136页。 1993年出现了SIMULINK,是基于框图的仿真平台,SIMULINK挂接在MATLAB环境上,以MATLAB的强大计算功能为基础,以直观的模块框图进行仿真和计算。SIMULINK提供了各种仿真工具,尤其是它不断扩展的、内容丰富的模块库,为系统的仿真提供了极大便利。避免了在MATLAB窗口使用MATLAB命令和函数仿真时需要熟悉记忆大量M函数的麻烦 。 SIMULINK原本是为控制系统的仿真而建立的工具箱,在使用中易编程、易拓展,并且可以解决MATLAB不易解决的非线性、变系数等问题。 支持连续系统和离散系统的仿真,支持连续离散混合系统的仿真,支持线性和非线性

3、系统的仿真,支持多种采样频率(Multirate)系统的仿真,也就是不同的系统能以不同的采样频率组合,这样就可以仿真较大、较复杂的系统。 各科学领域根据自己的仿真需要,以MATLAB为基础,开发了大量的专用仿真程序,并把这些程序以模块的形式都放入SIMULINK中,形成了模块库。第五章MATLAB应用第3页,共136页。 现在SIMULINK模块库有三级树状的子目录,在一级目录下就包含了SIMULINK最早开发的数学计算工具箱、控制系统工具箱的内容,之后开发的信号处理工具箱(DSP Blocks)、通信系统工具箱(Comm) 等也并行列入模块库的一级子目录,逐级打开模块库浏览器(SIMULIN

4、K Library Browser)的目录,就可以看到这些模块。 第五章MATLAB应用第4页,共136页。 从SIMULINK 4.1开始,有了电力系统模块库(Power System Blockset),该模块库主要由加拿大HydroQuebec和TECSIM International 公司共同开发。在SIMULINK环境下用电力系统模块库的模块,可以方便地进行RLC电路、电力电子电路、电机控制系统和电力系统的仿真。 本书中电力电子和电力拖动控制系统的仿真就是在MATLAB/SIMULINK环境下,主要使用电力系统模块库和SIMULINK两个模块库进行。第五章MATLAB应用第5页,共1

5、36页。5.1 MATLAB的计算基础 MATLAB的计算主要是数组和矩阵的计算,并且定义的数值元素是复数 MATLAB函数的变量不需要事先定义,它以在命令语句中首次出现而自然定义 5.1.1 常量和变量 1. 常量 MATLAB定义的数值元素是复数,因此实数是复数虚部为零的特殊情况。常量可以是十进制数,也可以是其他进制的数值。 复数的生成语句为 或 MATLAB中的常数存储格式是16位长型格式,数值有效范围是 。5.1 MATLAB的计算基础第6页,共136页。2. 变量 变量的命名规则 1)变量名以英文字母开始,即首字符必须是26个英文字母之一。 2)变量名可以由英文字母、数字和下划线组成

6、,MATLAB能区分字母的大小写。 3)变量名长度不超过31个字符长度。 4)如果在变量名前添加了关键词“global”,该变量就成为全局变量,全局变量不仅在主程序中起作用,并且在调用的子程序和函数中起作用。定义全局变量必须在主程序的首行,这是惯例 。MATLAB有一些规定的常量和变量 表5-1 5.1 MATLAB的计算基础第7页,共136页。 表5-1 MATLAB规定的常量和变量常量和变量名说 明常量和变量名说 明ANS(或ans)默认变量名,用于应答最近一次的操作、运算结果realmin最小的实正数i或j虚数单位INF(或inf)无穷大Pi圆周率NaN(或nan)表示不定值(即0/0)

7、eps浮点数的相对误差nargin函数实际输入的参数个数realmax最大的实正数nargout函数实际输出的参数个数5.1 MATLAB的计算基础第8页,共136页。5.1.2 数组和矩阵的表示和赋值 MATLAB既支持数组的运算,也支持矩阵的运算,但是数组与矩阵的运算有很大的不同,数组的运算对数组中每个元素都执行相同的操作,而矩阵的运算则按线性代数的法则进行。 一维数组的表示和赋值 一维数组(行向量)是用方括号括起的一组元素(或数),元素之间用空格或逗号分隔,组成数组的元素可以是具体的数值、变量名或算式。如 5.1 MATLAB的计算基础第9页,共136页。2. 维数组和矩阵的表示和赋值

8、矩阵或数组的元素列入括号中,每行的元素间用空格或逗号分隔,行与行之间用分号或回车键隔开。如 表示一个33的矩阵 矩阵内的元素可以是数值、变量或者表达式。 5.1.3 MATLAB 的算术运算 5.1 MATLAB的计算基础第10页,共136页。 表5-2 MATLAB的算术运算符 算术运算说 明算术运算说 明算术运算说 明+加矩阵乘方/矩阵右除-减.数组乘方./数组右除*矩阵乘矩阵左除矩阵转置.*数组乘.数组左除.数组转置5.1 MATLAB的计算基础第11页,共136页。5.1.4 MATLAB 的关系运算 表5-3 MATLAB的关系运算符 关系运算的结果只可能是或。表示该关系式不成立,即

9、为“假”;表示该关系式成立,即为“真”。 关系运算符说 明关系运算符说 明= =等于 =大于等于大于 =小于等于5.1 MATLAB的计算基础第12页,共136页。5.1.5 MATLAB 的逻辑运算 逻辑量的基本运算有与(&)、或(|)和非()三种。有时也包括异或运算(xor) 表5-4 MATLAB的关系运算符逻辑运算A=0A=1B=0B=1B=0B=1A&B0001 AB0111A1100 xor(A,B)01105.1 MATLAB的计算基础第13页,共136页。5.1.6 MATLAB的特殊运算符 表5-5 MATLAB的特殊运算符 这些特殊运算符在英文状态下输入有效,在中文状态下输

10、入则无效 特殊运算符说明:冒号,从向量、数组、矩阵中取指定元素 ;分号,用于分隔行,逗号,用于分隔列( )圆括号,用于表示数学运算中的先后次 方括号,用于构成向量和矩阵 大括号,用于构成单元数组.小数点或域访问符.父目录用于语句末端,表示该行未结束%用于注释!用于调用操作系统命令=用于赋值5.1 MATLAB的计算基础第14页,共136页。5.1.7 MATLAB 常用的函数 MATLAB的函数极为丰富,一些常用的数学函数如表5-6 见书5.1 MATLAB的计算基础第15页,共136页。5.2 MATLAB程序设计基础5.3 MATLAB的绘图功能5.2 MATLAB程序设计基础 5.2.1

11、 表达式、表达式语句和赋值语句 5.2.2 流程控制语句 5.2.3 MATLAB常用的其他命令5.3 MATLAB的绘图功能 5.3.1 直角坐标中的二维曲线 5.3.2 多条曲线的绘制 5.3.3 电力电子电路波形图的绘制第16页,共136页。5.4 SIMULINK 环境和模型库5.4 SIMULINK 环境和模型库 5.4.1 系统仿真(SIMULINK)环境 系统仿真(SIMULINK)环境也称工具箱(Toolbox),是MATLAB最早开发的,它包括SIMULINK仿真平台和系统仿真模型库两部分。由于SIMULINK的仿真平台使用方便、功能强大,后来拓展的其他模型库也都共同使用这个

12、仿真环境,成为MATLAB仿真的公共平台。SIMULINK 是Simulation和Link两个英文单词的缩写,意思是仿真链接,MATLAB模型库都在此环境中使用,从模型库中提取模型放到SIMULINK的仿真平台上进行仿真。 第17页,共136页。 SIMULINK特点:1)以调用模块代替程序的编写。 2)画完系统框图,设置好仿真参数,即可启动仿真。 3)系统运行的状态和结果可以通过波形和曲线观察 。4)系统仿真的数据可以用以.mat为后缀的文件保存,并且可以用其他数据处理软件进行处理。5)如果系统框图绘制不完整或仿真过程中出现计算不收敛的情况,会给出一定的出错提示信息,但是这提示不一定准确,

13、这是软件还不够完备的地方。5.4 SIMULINK 环境和模型库第18页,共136页。5.4.2 SIMULINK 的工作环境 进入SIMULINK 的工作环境: SIMULINK模型库浏览窗口 SIMUUNK工作窗口,即系统仿真平台 SIMULINK窗口菜单系统与目前常用的一些应用软件大同小异,不再逐一进行介绍,应用中比较特殊的命令会在应用内容中进行说明 5.4 SIMULINK 环境和模型库第19页,共136页。5.4.3 模型库浏览器 模型库是SIMULINK的重要内容,模型库中保存了控制系统中常用的典型环节的模型可以通过模型库浏览器(SIMULINK Library Browser)来

14、查找 5.4 SIMULINK 环境和模型库第20页,共136页。 MATLAB的工具箱具有极其丰富的内涵,在上图左侧可以看到,整个SIMULINK工具箱是由Simulink(标准模块库)、Aerospace blockset(航空航天系统模块库)、Communications Blockset(通信系统模型库)、Simpower Systems(电力系统模块库)等数十个模块组构成。结合电力电子的专业特点,主要介绍系统仿真标准工具箱(SIMULINK)和电力系统(Power System Block)两个模块库内所包含的模块 Simulink(标准工具箱) Simulink(标准工具箱)中包含

15、了Conntinuous, Discontinuities、Discrete、Look-up Tables、Math Operations、Model Verification、Model-Wide Utilities、 PortsSubsystems、Signal Attributes、Signal Routing、Sinks、Sources和Use-Defined functions等模块组。在电力电子专业中常用的模块组有Continuous、Math operations、Signal Routing、Sinks、sources、Discontinuities等。 5.4 SIMULIN

16、K 环境和模型库第21页,共136页。第五章MATLAB应用5.4 SIMULINK 环境和模型库第22页,共136页。(1)Continuous模块组 (2)Math operations模块组 5.4 SIMULINK 环境和模型库第23页,共136页。(3)Discontinuities模块组 (4)Signal Routing模块组 5.4 SIMULINK 环境和模型库第24页,共136页。(5)Sinks模块组 (6)Sources模块组 5.4 SIMULINK 环境和模型库第25页,共136页。2. SimPower System(电力系统)工具箱 主要有电源(Electric

17、al sources)、元件(Elements)、电力电子(Power Electronics)、电机系统(Machines)、测量(Measurements)附加(Extras)等模块组。 (1)Electrical sources(电源)模块组 5.4 SIMULINK 环境和模型库第26页,共136页。(2)Measurements(测量)模块组 在MATLAB中没有测量端口m的模块,如需用示波器显示工作波形,则要使用这些测量模块先将所需信号测量出来,然后将测量模块的输出接入到示波器或显示模块中进行显示 (3)Elements(元件)模块组 5.4 SIMULINK 环境和模型库第27页

18、,共136页。注意:单个的电阻、电容和电感元件只能通过串联或并联的RLC分支以及它们的负载形式来定义,单个元件的参数设置在串联或并联分支中是不同的,具体设置如表5-9 表5-9 单个电阻、电容、电感元件的参数设置表元 件串联RLC分支并联RLC分支类 型电阻数值电感数值电容数值电阻数值电感数值电容数值单个电阻R0infRinf0单个电感0LinfinfL0单个电容00CinfinfC5.4 SIMULINK 环境和模型库第28页,共136页。(4)Power Electronics(电力电子)模块组 (6)Extras liberary(附加)模块组 附加(Extras)模块组是二级子目录,其

19、中包括控制(Control Blocks)模块组、离散控制(Discrete Control Blocks)模块组、离散测量(Discrete Measurments)模块组、测量(Measurments)模块组和向量(Phasor Liberary)模块组 。常用的有5.4 SIMULINK 环境和模型库第29页,共136页。1)Control Blocks(控制)模块组 2)Measurments(测量)模块组 5.4 SIMULINK 环境和模型库第30页,共136页。3. 模块的基本操作(1)模块的参数设置 (2)模块的连接 5.5 SIMULINK 的仿真实践基础5.5.1 SIMU

20、LINK的仿真步骤 第一步 电路或系统搭建。 注意:一个完整的仿真模型应该至少包括一个源模块(Sources)和一个输出模块(Sinks)第二步 设置模块参数。 第三步 设置仿真参数。第四步 启动仿真。 第五步 观察结果。5.5 SIMULINK 的仿真实践基础第31页,共136页。5.5 SIMULINK 的仿真实践基础第32页,共136页。5.5 SIMULINK 的仿真实践基础第33页,共136页。5.5 SIMULINK 的仿真实践基础第34页,共136页。5.5 SIMULINK 的仿真实践基础第35页,共136页。仿真结束,双击仿真模型中的输出模块SCOPE观察结果5.5 SIMU

21、LINK 的仿真实践基础第36页,共136页。5.5 SIMULINK 的仿真实践基础第37页,共136页。 在使用MATLAB Simulink进行仿真的过程中,除出了模块参数的设置以外,仿真参数的设置的是否合适、波形的处理是否到位,对于仿真结果有明显的影响。 5.5.2 仿真参数的设置 仿真参数的设置界面中Solver、Data Import/Export项的设置与仿真及仿真数据的处理密切相关。 1. Solver(解算器)的参数设置 Solver(解算器)的参数设置是MATLAB仿真中必需的步骤。包括“Simulation time”(仿真时间)、“Solver options”(解算器

22、选项)和“Solver diagnostic controls”(解算器诊断控制)三组参数 1)“Simulation time”仿真时间设置栏:此栏设置项在仿真之前必须进行修改和确认。 “Start time”仿真的起始时间,连续系统一般从零开始。 “Stop time”仿真的停止时间,单位为s 。5.5 SIMULINK 的仿真实践基础第38页,共136页。2)“Solver options”仿真算法设置栏 “type”栏下用下拉选择框中可选变步长算法(Variable-step)或者固定步长算法(Fix-step) 5.5 SIMULINK 的仿真实践基础第39页,共136页。5.5 S

23、IMULINK 的仿真实践基础第40页,共136页。 2. Data Import/Export的参数设置(略)5.5.3 观察仿真结果 Simulink的Sinks输出模块组中的几个模块都可以用来观察仿真结果 第一种方法是将仿真结果信号输入到输出模块“Scope”示波器(将信号显示在类似示波器的图标窗口内 )、“XY Graph”二维X-Y图形显示器(绘制X-Y二维的曲线图形)与“Display”数字显示器(将仿真结果的信息数据以数字形式显示) 中直接查看图形或者数据。第二种方法是将仿真结果信号输入到“To Workspace”模块中,保存到MATLAB工作空间里,再利用绘图命令Plot在M

24、ATLAB命令窗口里绘制出图形(plot(tout, simout) )。第三种方法是使用outl模块将仿真输出信息返回到MATLAB命令窗口里,再利用绘图命令Plot绘制出图形(plot (tout, yout)) 。5.5 SIMULINK 的仿真实践基础第41页,共136页。5.5.4 基本仿真举例【例5-5】 仿真一阶惯性环节在单位阶跃给定下的响应。5.5 SIMULINK 的仿真实践基础第42页,共136页。【例5-6】 5.5 SIMULINK 的仿真实践基础第43页,共136页。5.5.5 示波器的使用和数据保存 示波器(Scope)是最经常使用的输出模块,示波器不仅可以显示波形

25、,并且可以同时保存波形数据。 示波器的参数包含General和data history两部分设置 5.5 SIMULINK 的仿真实践基础第44页,共136页。 a) General页参数设置 “Number of Axies”项用于设定示波器的Y 轴数量,即示波器的输入信号端口的个数 5.5 SIMULINK 的仿真实践基础第45页,共136页。5.5 SIMULINK 的仿真实践基础第46页,共136页。 第二项“Time range”(时间范围),用于设定示波器时间轴的最大值 第三项用于选择标签的贴放位置 第四项用于选择数据取样方式,其中Decimation方式是当右边栏设为“3”时,则

26、每3个数据取一个数据显示波形。如果取样方式选Sample time采样方式,则其右栏里输入的是采样的时间间隔,这时将按采样间隔提取数据显示。 还有一项“Floating scope”选择,如果在它左方的小框中单击选中,则该示波器成为浮动的示波器,即没有输入接口,但可以接收其他模块发送来的数据。5.5 SIMULINK 的仿真实践基础第47页,共136页。b) data histry页参数设置 第一项是数据点数,预置值是5000,即可以显示5000个数据,若超过5000个数据,则删掉前面的保留后面的。也可以不选该项,显示所有数据。 第二项“Save data to workspace”,即将数据

27、放到工作间去,则仿真的结果可以保存起来,并可以用MATLAB的绘图命令来处理,也可以用其他绘图软件画出更漂亮的图形。 在保存数据栏下,还有两项设置,第一项是保存的数据命名(Variable name),这时给数据起一个名,以便将来调用时识别。第二项是选择数据的保存格式(Format),该处有3种选择:Array格式适用于只有一个输入变量的情况;Structure with time 和Structure这两种格式适用于以向量表示的多个变量情况,并且前者同时保存数值和时间,后者仅保存数值。 5.5 SIMULINK 的仿真实践基础第48页,共136页。 用Arrary格式保存的变量,为了以后可以

28、用MATLAB命令重画,同时需要将时间也保存起来 2. 图形缩放 3. 坐标轴范围 4. 浮动示波器(Floating Scope)5.5.6 SIMULINK 的仿真算法5.5 SIMULINK 的仿真实践基础第49页,共136页。5.5.7 建立子系统和系统模型的封装 将需要打包的模块都包含在虚线框内,松开鼠标,这时虚线框内的模块和线条都被选中。然后在Edit 菜单中选Create Subsystem(创建子系统)命令。建成的子系统模块可以重新命名 如果需要打开这个子系统模块,只要双击该子系统模块图标即可。打开子系统模块后,可以给子系统内的各模块设置参数,还可以进行修改模块名称等操作。关闭

29、子系统只要单击窗口右上角的关闭按钮即可。子系统模型是允许嵌套的子系统模块可以复制,并转移到其他仿真模型中去使用。 5.5 SIMULINK 的仿真实践基础第50页,共136页。 2. 子系统模型的封装 一一打开子系统修改参数很繁琐,SIMULINK提供了子系统的封装(Mask)功能,也就是将子系统中各模块常要修改的参数集中在一张表上,方便子系统的使用。封装子系统需要在选中该子系统模块后,在模型窗口Edit菜单中选择Mask subsystem命令,就会弹出Mask编辑器窗口,然后在编辑器窗口内输入相关信息。(见数学模型的simulink实现子系统S函数.ppt第41页) 5.5 SIMULIN

30、K 的仿真实践基础第51页,共136页。 5.6 SIMULINK与MATLAB的接口设计 Simulink可以和MATLAB进行数据交互(从MATLAB的工作空间中读入数据或者向MATLAB工作空间写入数据)。 5.6.1 由MATLAB工作空间变量设置系统模块参数 可以使用MATLAB工作空间中的变量设置系统模块参数, 模块参数的形式有如下两种: 1)直接使用MATLAB工作空间中的变量设置模块参数。 2)使用变量的表达式设置模块参数。 5.6 SIMULINK与MATLAB的接口设计第52页,共136页。 5.6.2 将信号输出到MATLAB工作空间中 需要对输出信号作定量分析时,可以先

31、将系统模型中的选定信号输出到MATLAB工作空间中,然后再作进一步的定量分析。 使用Sinks模块库中的To Workspace模块,可以轻易地将信号输出到MATLAB工作空间中。信号输出的名称、结构等在To Workspace模块的对话框中设置,仿真结束或暂停时信号被输出到工作空间中 5.6 SIMULINK与MATLAB的接口设计第53页,共136页。 5.6 SIMULINK与MATLAB的接口设计第54页,共136页。 5.6.3 使用工作空间变量作为系统输入信号 使用Sources模块库中的From Workspace模块可以将MATLAB工作空间中的变量作为系统模型的输入信号。 ;

32、 %表示信号输入时间范围与时间步长 ; %表示在每一时刻的信号值 ; %表示信号的输入向量,输入变量第一列须为时间序 列,接下来的各列代表信号的取值例如,在MATLAB命令窗口中键入如下的语句并运行。 ; ; ;在系统模型的FromWorkspace中使用此变量作为信号输入 5.6 SIMULINK与MATLAB的接口设计第55页,共136页。注意MATLAB命令中的输入向量与FromWorkspace中Data项设置名称都为input 5.6 SIMULINK与MATLAB的接口设计第56页,共136页。在必要的情况下Simulink会对没有定义的时间点进行线性插值,例如: ; ; ;将生成

33、一个三角波。 5.6 SIMULINK与MATLAB的接口设计第57页,共136页。 5.6.4 MATLAB Function与Function模块 用户还可以使用user-defined Functions模块库中的Function模块(简称为Fcn模块)或MATLAB Function模块(简称为MATLAB Fcn模块)进行彼此间的数据交互 在Fcn模块中:1)输入总是表示成,可以是一个向量。2)可以使用C语言表达式,例如。3)输出永远为一个标量。MATLAB Fcn用来调用MATLAB函数来实现功能,在MATLAB Fcn模块中:1)所要调用的函数只能有一个输出(可以是一个向量)。2

34、)单输入函数只需使用函数名,多输入函数输入需要引用相应的元素,如mean,sqrt ,myfunc(u(1),u(2) 。3)在每个仿真步长内都需要调用MATLAB解释器。 5.6 SIMULINK与MATLAB的接口设计第58页,共136页。 如 5.6 SIMULINK与MATLAB的接口设计第59页,共136页。 5.7 S函数5.7.1 S函数的基本概念 S函数是系统函数(System Function)的简称,是指采用非图形化的方式(即计算机语言,区别于Simulink的系统模块)描述的一个功能块。用户可以采用MATLAB代码。C、C+、FORTRAN或Ada等语言编写S函数。 S函

35、数由一种特定的语法构成,用来描述并实现连续系统、离散系统和混合系统等动态系统。 为何还要使用S函数5.7 S函数第60页,共136页。可以从如下的几个角度来理解S函数: l) S函数为Simuilink的“系统”函数。 2)能够响应Simulink求解器命令的函数。 3)采用非图形化的方法实现一个动态系统。 4)可以开发新的Simulink模块。 5)可以与已有的代码相结合进行仿真。 6)采用文本方式输入复杂的系统方程。 7)扩展Simulink功能。M文件S函数可以扩展图形能力,C MEX S函数可以提供与操作系统的接口。 8)S函数的语法结构是为实现一个动态系统而设计的(默认用法),其他S

36、函数的用法是默认用法的特例(如用于显示目的)。5.7 S函数第61页,共136页。5.7.2 如何使用S函数 S函数的使用步骤 1)创建S函数源文件。 2)在动态系统的Simulink模型框图中添加S-function模块,并进行正确的设置 3)在Simulink模型框图中按照定义好的功能连接输入输出端口。5.7.3 与S函数相关的一些术语仿真例程 mdlInitialization初始化 mdlGetTimeofNextVarHit计算下一个采样点 mdlOutput计算输出 mdlUpdate更新离散状态 mdlDerivatives计算导数 mdlTeminate结束仿真2. 直接馈通

37、3. 采样时间和偏移量 4. 动态输入5.7 S函数第62页,共136页。5.7.4 S函数的工作原理 M文件S函数流程5.7 S函数第63页,共136页。2. M文件S函数模板 打开模板文件 在MATLAB命令行下输入: edit sfuntmpl 或者双击S-function exampleM-file S-functionslevel 1 M-files level 1 M-file S-function template块,5.7 S函数第64页,共136页。 function sys,x0,str,ts=sfuntmpl(t,x,u,flag) switch flag case 0,

38、 sys,x0,str,ts=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u); case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u); case 4 sys=mdlGetTimeOfNextVarHit(t,x,u); case 9 sys=mdlTerminate(t,x,u); otherwise error(Unhandled flag=,num2str(flag); end5.7 S函数第65页,共136页。各个子函数(各个仿真例程) 1)初始化例程子函数。 提

39、供状态、输入、输出、采样时间数目和初始状态的值。必须有该子函数。 function sys,x0,str,ts=mdlInitializeSizes sizes=simsizes; %生成sizes数据结构 sizes.NumContStates=0; %连续状态数,默认为0 sizes.NumDiscState=0; %离散状态数,默认为0 sizes.NumOutputs=0; %输出量个数,默认为0 sizes.NumInputs=0; %输入量个数,默认为0 sizes.DirFeedthrough=1; %是否存在直接馈通。1:存在,0:不存在,默认为1 sizes.NumSampl

40、eTimes=1; %采样时间个数,至少是一个 sys=simsizes(sizes); %返回size数据结构所包含的信息 x0=; %设置初始状态 str=; %保留变量置空 ts=0 0; %采样时间采样周期 偏移量,采样周期为0表示连续系统5.7 S函数第66页,共136页。 2)计算导数例程子函数。给定t,x,u,计算连续状态的导数,用户应该在此给出系统的连续状态方程。该子函数可以不存在。 function sys=mdlDerivatives(t,x,u) sys= ; % sys表示状态导数,即dx 3)状态更新例程子函数。给定t,x,u,计算离散状态的更新。每个仿真步长必然调用

41、该子函数,不论是否有意义。用户除了在此描述系统的离散状态方程外,还可以填入其他每个仿真步长都有必要执行的代码。 function sys=md1Upate(t,x,u) sys= ; %sys表示下一个离散状态即 4)计算输出例程子函数。给定t,x,u,计算输出。该子函数必须存在,用户可以在此描述系统的输出方程。 function sys=mdlOutputs(t,x,u) sys= ; %sys表示输出,即y 5)计算下一个采样时间,仅在系统是变采样时间系统时调用。 function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime=1; %设置下一次

42、的采样时间是 以后 sys=t+sampleTime; %sys表示下一个采样时间点5.7 S函数第67页,共136页。 6)仿真结束时要调用的例程函数。在仿真结束时调用,用户可以在此完成结束仿真所需的必要工作。 function sys=mdlTerminate(t,x,u) sys= ; S函数实现几种不同的系统举例: 【例5-9】 【例5-10】 【例5-11】5.7 S函数第68页,共136页。第五章MATLAB应用5.8 MATLAB demo(演示)和Help文件的使用5.8 MATLAB demo(演示)和Help文件的使用第69页,共136页。5.8 MATLAB demo(演

43、示)和Help文件的使用第70页,共136页。 其中含有各个工具箱的Demo,以电力电子专业常用的SymPowerSystem的Demo为例,单击SymPowerSystem,可以看到其下包含了8个Demo库,分别为Simple Models、Power Electronics Models、Machine Models、Power Utility AC/DC Network Models、Measurment and Control Models、Electric Drives Models、FACTS Models、Distributed Resources Models,右端窗口中为该工

44、具箱中的演示的电路或系统的列表 5.8 MATLAB demo(演示)和Help文件的使用第71页,共136页。5.8.2 单个Simulink仿真模块Help的使用 在使用MATLAB仿真软件的过程中,遇到Simulink仿真模块使用和参数设置不清楚时,可以使用MATLAB的Simulink仿真模块Help文件,进行查询。 以Transfer FCN模块为例进行说明,从Simulink工具箱中选取Transfer FCN模块放入Simulink仿真平台(见图5-68),在不清楚如何使用时,可用鼠标右击器件,从打开的菜单中选中Help,即可打开Transfer FCN的Help文件。 5.8

45、MATLAB demo(演示)和Help文件的使用第72页,共136页。 为了能够灵活熟练使用MATLAB进行仿真,应充分利用它强大丰富的demo(演示)和Help文件 5.8 MATLAB demo(演示)和Help文件的使用第73页,共136页。5.9 电力电子电路的MATLAB仿真 5.9.1 SIMULINK电力电子相关模块参数 一、开关器件模型及参数 MATLAB 电力电子器件模型主要仿真了电力电子器件的开关特性,并且不同电力电子器件模型都具有类似的模型结构 。 在MATLAB 电力电子器件模型中已经并联了简单的RC 串联缓冲电路,在参数表中设置,名称分别为Rs和Cs。更复杂的缓冲电

46、路则需要另外建立。对于MOSFET模型还反并联了二极管,在使用中要注意,需要设置体内二极管的正向压降Vf和等效电阻Rd。对于GTO和IGBT需要设置电流下降时间Tf和电流拖尾时间Tt。5.9 电力电子电路的MATLAB仿真第74页,共136页。第五章MATLAB应用 # MATLAB 的电力电子器件必须连接在电路中使用,也就是要有电流的回路,但是器件的驱动仅仅是取决于门极信号的有无,没有电压型和电流型驱动的区别,也不需要形成驱动的回路,这是MATLAB 电力电子器件模型与其他Spice模型的不同之处。尽管模型与实际器件工作有差异,但是也使MATLAB 电力电子器件模型在与控制连接的时候很方便。

47、 # MATLAB 的电力电子器件模型中含有电感,因此有电流源的性质,所以在模块参数中还包含了IC即初始电流项。也因为它的电流源性质,在没有连接缓冲电路时不能直接与电感或电流源相连接,也不能开路工作。含电力电子模型的电路或系统仿真时,仿真算法一般采用刚性积分算法,如ode23tb、ode15s,这样可以得到较快的仿真速度。 # 电力电子器件的模块上,一般都带有一个测量输出端口,通过输出端m 可以观测器件的电压和电流,不仅测量方便,并且可以为选择器件的耐压和电流提供依据。5.9 电力电子电路的MATLAB仿真第75页,共136页。 理想开关IdealSwitch。理想开关的特点是开关受门极控制,

48、开关导通时电流可以双向通过。初始状态一栏,如果起动仿真时开关应是接通状态,则设为0; 如果启动仿真时开关应是断开的,则设为1。 5.9 电力电子电路的MATLAB仿真第76页,共136页。二、整流、逆变电路模块 MATLAB中提供了一个通用(多功能)桥电路模块UniversalBridge和三电平桥电路模块Three-levelBridge。 5.9 电力电子电路的MATLAB仿真第77页,共136页。如果在开关器件栏中选择二极管或晶闸管,则桥式线路的结构为:5.9 电力电子电路的MATLAB仿真第78页,共136页。 如果在开关器件栏中选择的是自关断器件GTO、MOSFET、IGBT或理想开

49、关,则桥式线路的结构为:5.9 电力电子电路的MATLAB仿真第79页,共136页。第五章MATLAB应用 两种编号方式是为与晶闸管6脉冲触发器和驱动模块PWM发生器输出的脉冲序列相对应。 自关断器件模块上已经反并联了续流二极管。三电平桥电路模块Three-levelBridge 5.9 电力电子电路的MATLAB仿真第80页,共136页。三、驱动模块 1、pulse Generator用于发出脉冲序列5.9 电力电子电路的MATLAB仿真第81页,共136页。PWM Generator调制原理 5.9 电力电子电路的MATLAB仿真第82页,共136页。3、Synchronized 6-pu

50、lse generator用于产生三相桥式整流电路晶闸管的六路与开关电压同步的单脉冲或双脉冲其中如果Block口置1,则没有脉冲输出,如置0,则有脉冲输出。 5.9 电力电子电路的MATLAB仿真第83页,共136页。 4、 Synchronized 12-pulse generator用于产生十二相整流器的触发脉冲 5.9 电力电子电路的MATLAB仿真第84页,共136页。 四、 变压器1、变压器 5.9 电力电子电路的MATLAB仿真第85页,共136页。 2、单相多绕组变压器 5.9 电力电子电路的MATLAB仿真第86页,共136页。 3、三相变压器:三相变压器模块共有10余个,这里

51、介绍两个 三相变压器模型是由三个单相变压器模型根据不同的联结组要求连接而成,根据需要可在参数对话框中进行选择,因此三相变压器的参数设置与单相变压器相同。 Y 星形联结,无中线 11三角形联结,电压相位领先Y 联结30 Yn 星形联结,带中性点的连接端 1三角形联结,电压相位滞后Y 联结30 Yg星形联结,中点在模型内接地 5.9 电力电子电路的MATLAB仿真第87页,共136页。 三相变压器参数设置 5.9 电力电子电路的MATLAB仿真第88页,共136页。 4、互感线圈在对话框中可设置三个线圈的电阻和自感,并可设置3个线圈的互感。如不勾选Three windingsMutual indu

52、ctance,则为两个有互感的线圈。如果Rm、Lm都取零,则模型表示的是3个没有互感关系的独立线圈。互感线圈也是一个简单的变压器模型。 5.9 电力电子电路的MATLAB仿真第89页,共136页。 五、 电动机模块 1、直流电机其中F+和F-为直流电机励磁绕组连接端,A+A-为电枢绕组连接端TL为电机负载转矩的输入端(可选为设定机械负载转矩或设定速度,前者为电动机模式,后者为发电机模式)m端可输出转速、电枢电流、励磁电流和电磁转矩。可通过励磁绕组和电枢绕组的并联或串联组成并励或串励电机。5.9 电力电子电路的MATLAB仿真第90页,共136页。 直流电机仿真: 5.9 电力电子电路的MATL

53、AB仿真第91页,共136页。 直流电机仿真(上例使用电阻启动器进行限流启动): 5.9 电力电子电路的MATLAB仿真第92页,共136页。 2、交流电机交流异步电机 5.9 电力电子电路的MATLAB仿真第93页,共136页。交流同步电动机 5.9 电力电子电路的MATLAB仿真第94页,共136页。永磁同步电机 5.9 电力电子电路的MATLAB仿真第95页,共136页。 开关磁阻电机5.9 电力电子电路的MATLAB仿真第96页,共136页。 3、交流电机测量单元根据所选Machine type不同,该模块的外形有: 5.9 电力电子电路的MATLAB仿真第97页,共136页。 根据所

54、选Machine type不同,该模块的外形有: 5.9 电力电子电路的MATLAB仿真第98页,共136页。5.9.2 基础电路仿真 熟悉电力电子相关的元器件、测量显示的连接法、参数设置及使用用法。 一、线性变压器模块的使用5.9 电力电子电路的MATLAB仿真第99页,共136页。线性变压器参数设置: MATLAB线性变压器的电路模型: 模型考虑了绕组电阻(R1、R2、R3)和漏感(L1、L2、L3),还通过一个线性支路Rm、Lm考虑了磁芯的磁化特性。参数的设置可以有两种类型:标幺值(pu)和国际单位(SI)。 如果设定一个理想变压器,则将绕组电阻(R1、R2、R3)和电感(L1、L2、L

55、3)设置为0,磁化电阻和电感(RmLm)设置为无穷大(inf)。 5.9 电力电子电路的MATLAB仿真第100页,共136页。电路中变压器标幺值(pu)与国际单位(SI)设置对比 5.9 电力电子电路的MATLAB仿真第101页,共136页。仿真参数仿真结果5.9 电力电子电路的MATLAB仿真第102页,共136页。2. 可变电感的实现(子系统的应用)Demo中 的一个演示实例 其中的交流电压源Vsource幅值频率、阻抗源Zsource电阻、电感,电流源Isource幅值频率,还使用了阻抗测量,使用常数(constant)和正弦波作为可变电感的给定。电感随给定变化的规律是在Variabl

56、e Inductor子系统中实现的 5.9 电力电子电路的MATLAB仿真第103页,共136页。5.9 电力电子电路的MATLAB仿真第104页,共136页。 鼠标右击Variable Inductor子系统模块,弹出菜单,选择Look under mask,即可打开子系统仿真模型。 5.9 电力电子电路的MATLAB仿真第105页,共136页。打开子电路内部:5.9 电力电子电路的MATLAB仿真第106页,共136页。仿真结果:5.9 电力电子电路的MATLAB仿真第107页,共136页。5.9.3 直流直流变流器降压(Buck)变换器及Powergui的使用 降压(Buck)变换器仿真

57、电路、参数设置(输入电压为200v,滤波电感为10mH,输出滤波电容为100f,负载5) 5.9 电力电子电路的MATLAB仿真第108页,共136页。参数设置:5.9 电力电子电路的MATLAB仿真第109页,共136页。仿真参数设置:5.9 电力电子电路的MATLAB仿真第110页,共136页。仿真结果5.9 电力电子电路的MATLAB仿真第111页,共136页。仿真结果5.9 电力电子电路的MATLAB仿真第112页,共136页。 在Simpowersystems 模型仿真时,会自动调用一个专用的图形用户界面Powergui(Graphical user interface,见图左上角),这个模块是仿真包含Simpowersystems模型的任何Simulink模型时所需要的。 其主要常用的功能 :1)显示电路中所测量的电压和电流以及全部状态变量的稳态值2)修改初始条件,使得仿真可以从任何的初始条件下开始,状态变量名称为电感或电容所在模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论