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

下载本文档

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

文档简介

第五章MATLAB应用

MATLAB是一种科学计算软件。MATLAB是MatrixLaboratory(矩阵实验室)的缩写。早期的MATLAB主要用于解决科学和工程的复杂数学计算问题。使用方便、输入便捷、运算高效、适应科技人员的思维方式,并且有绘图功能,有用户自行扩展的空间,是国内外高校教学和科学研究的常用软件。

MATLAB比较易学,如果有不清楚的地方,可以通过它的帮助(help)和演示(demo)功能得到启示。学习MATLAB的难点在于,它有大量函数,这些MATLAB函数仅基本部分就有700多个,其中常用的有200~300个,掌握和记忆起来都比较困难。

1993年出现了SIMULINK,是基于框图的仿真平台,SIMULINK挂接在MATLAB环境上,以MATLAB的强大计算功能为基础,以直观的模块框图进行仿真和计算。SIMULINK提供了各种仿真工具,尤其是它不断扩展的、内容丰富的模块库,为系统的仿真提供了极大便利。避免了在MATLAB窗口使用MATLAB命令和函数仿真时需要熟悉记忆大量M函数的麻烦。

SIMULINK原本是为控制系统的仿真而建立的工具箱,在使用中易编程、易拓展,并且可以解决MATLAB不易解决的非线性、变系数等问题。支持连续系统和离散系统的仿真,支持连续离散混合系统的仿真,支持线性和非线性系统的仿真,支持多种采样频率(Multirate)系统的仿真,也就是不同的系统能以不同的采样频率组合,这样就可以仿真较大、较复杂的系统。各科学领域根据自己的仿真需要,以MATLAB为基础,开发了大量的专用仿真程序,并把这些程序以模块的形式都放入SIMULINK中,形成了模块库。第五章MATLAB应用

现在SIMULINK模块库有三级树状的子目录,在一级目录下就包含了SIMULINK最早开发的数学计算工具箱、控制系统工具箱的内容,之后开发的信号处理工具箱(DSPBlocks)、通信系统工具箱(Comm)等也并行列入模块库的一级子目录,逐级打开模块库浏览器(SIMULINKLibraryBrowser)的目录,就可以看到这些模块。

第五章MATLAB应用

从SIMULINK4.1开始,有了电力系统模块库(PowerSystemBlockset),该模块库主要由加拿大HydroQuebec和TECSIMInternational公司共同开发。在SIMULINK环境下用电力系统模块库的模块,可以方便地进行RLC电路、电力电子电路、电机控制系统和电力系统的仿真。

本书中电力电子和电力拖动控制系统的仿真就是在MATLAB/SIMULINK环境下,主要使用电力系统模块库和SIMULINK两个模块库进行。第五章MATLAB应用5.1MATLAB的计算基础

MATLAB的计算主要是数组和矩阵的计算,并且定义的数值元素是复数

MATLAB函数的变量不需要事先定义,它以在命令语句中首次出现而自然定义5.1.1常量和变量

1.常量MATLAB定义的数值元素是复数,因此实数是复数虚部为零的特殊情况。常量可以是十进制数,也可以是其他进制的数值。复数的生成语句为或

MATLAB中的常数存储格式是16位长型格式,数值有效范围是~。5.1MATLAB的计算基础2.变量变量的命名规则

1)变量名以英文字母开始,即首字符必须是26个英文字母之一。

2)变量名可以由英文字母、数字和下划线组成,MATLAB能区分字母的大小写。

3)变量名长度不超过31个字符长度。

4)如果在变量名前添加了关键词“global”,该变量就成为全局变量,全局变量不仅在主程序中起作用,并且在调用的子程序和函数中起作用。定义全局变量必须在主程序的首行,这是惯例。MATLAB有一些规定的常量和变量表5-15.1MATLAB的计算基础

表5-1MATLAB规定的常量和变量常量和变量名说明常量和变量名说明ANS(或ans)默认变量名,用于应答最近一次的操作、运算结果realmin最小的实正数i或j虚数单位INF(或inf)无穷大Pi圆周率πNaN(或nan)表示不定值(即0/0)eps浮点数的相对误差nargin函数实际输入的参数个数realmax最大的实正数nargout函数实际输出的参数个数5.1MATLAB的计算基础5.1.2数组和矩阵的表示和赋值

MATLAB既支持数组的运算,也支持矩阵的运算,但是数组与矩阵的运算有很大的不同,数组的运算对数组中每个元素都执行相同的操作,而矩阵的运算则按线性代数的法则进行。一维数组的表示和赋值一维数组(行向量)是用方括号括起的一组元素(或数),元素之间用空格或逗号分隔,组成数组的元素可以是具体的数值、变量名或算式。如5.1MATLAB的计算基础2.维数组和矩阵的表示和赋值矩阵或数组的元素列入括号中,每行的元素间用空格或逗号分隔,行与行之间用分号或回车键隔开。如表示一个3×3的矩阵矩阵内的元素可以是数值、变量或者表达式。

5.1.3MATLAB的算术运算

5.1MATLAB的计算基础

表5-2MATLAB的算术运算符

算术运算说明算术运算说明算术运算说明+加^矩阵乘方/矩阵右除-减.^数组乘方./数组右除*矩阵乘\矩阵左除′矩阵转置.*数组乘.\数组左除.′数组转置5.1MATLAB的计算基础5.1.4MATLAB的关系运算表5-3MATLAB的关系运算符

关系运算的结果只可能是或。表示该关系式不成立,即为“假”;表示该关系式成立,即为“真”。关系运算符说明关系运算符说明==等于<小于~=不等于>=大于等于>大于<=小于等于5.1MATLAB的计算基础5.1.5MATLAB的逻辑运算逻辑量的基本运算有与(&)、或(|)和非(~)三种。有时也包括异或运算(xor)

表5-4MATLAB的关系运算符逻辑运算A=0A=1B=0B=1B=0B=1A&B0001A│B0111~A1100xor(A,B)01105.1MATLAB的计算基础5.1.6MATLAB的特殊运算符表5-5MATLAB的特殊运算符

这些特殊运算符在英文状态下输入有效,在中文状态下输入则无效

特殊运算符说明:冒号,从向量、数组、矩阵中取指定元素;分号,用于分隔行,逗号,用于分隔列()圆括号,用于表示数学运算中的先后次[]方括号,用于构成向量和矩阵{}大括号,用于构成单元数组.小数点或域访问符..父目录…用于语句末端,表示该行未结束%用于注释!用于调用操作系统命令=用于赋值5.1MATLAB的计算基础5.1.7MATLAB常用的函数

MATLAB的函数极为丰富,一些常用的数学函数如表5-6见书5.1MATLAB的计算基础5.2MATLAB程序设计基础

5.3MATLAB的绘图功能5.2MATLAB程序设计基础

5.2.1表达式、表达式语句和赋值语句

5.2.2流程控制语句

5.2.3MATLAB常用的其他命令5.3MATLAB的绘图功能

5.3.1直角坐标中的二维曲线

5.3.2多条曲线的绘制

5.3.3电力电子电路波形图的绘制5.4SIMULINK环境和模型库5.4SIMULINK环境和模型库

5.4.1系统仿真(SIMULINK)环境系统仿真(SIMULINK)环境也称工具箱(Toolbox),是MATLAB最早开发的,它包括SIMULINK仿真平台和系统仿真模型库两部分。由于SIMULINK的仿真平台使用方便、功能强大,后来拓展的其他模型库也都共同使用这个仿真环境,成为MATLAB仿真的公共平台。SIMULINK是Simulation和Link两个英文单词的缩写,意思是仿真链接,MATLAB模型库都在此环境中使用,从模型库中提取模型放到SIMULINK的仿真平台上进行仿真。

SIMULINK特点:1)以调用模块代替程序的编写。2)画完系统框图,设置好仿真参数,即可启动仿真。3)系统运行的状态和结果可以通过波形和曲线观察。4)系统仿真的数据可以用以.mat为后缀的文件保存,并且可以用其他数据处理软件进行处理。5)如果系统框图绘制不完整或仿真过程中出现计算不收敛的情况,会给出一定的出错提示信息,但是这提示不一定准确,这是软件还不够完备的地方。5.4SIMULINK环境和模型库5.4.2SIMULINK的工作环境

进入SIMULINK的工作环境:

SIMULINK模型库浏览窗口

SIMUUNK工作窗口,即系统仿真平台

SIMULINK窗口菜单系统与目前常用的一些应用软件大同小异,不再逐一进行介绍,应用中比较特殊的命令会在应用内容中进行说明

5.4SIMULINK环境和模型库5.4.3模型库浏览器

模型库是SIMULINK的重要内容,模型库中保存了控制系统中常用的典型环节的模型可以通过模型库浏览器(SIMULINKLibraryBrowser)来查找

5.4SIMULINK环境和模型库MATLAB的工具箱具有极其丰富的内涵,在上图左侧可以看到,整个SIMULINK工具箱是由Simulink(标准模块库)、Aerospaceblockset(航空航天系统模块库)、CommunicationsBlockset(通信系统模型库)、SimpowerSystems(电力系统模块库)等数十个模块组构成。结合电力电子的专业特点,主要介绍系统仿真标准工具箱(SIMULINK)和电力系统(PowerSystemBlock)两个模块库内所包含的模块Simulink(标准工具箱)

Simulink(标准工具箱)中包含了Conntinuous,Discontinuities、Discrete、Look-upTables、MathOperations、ModelVerification、Model-WideUtilities、Ports&Subsystems、SignalAttributes、SignalRouting、Sinks、Sources和Use-Definedfunctions等模块组。在电力电子专业中常用的模块组有Continuous、Mathoperations、SignalRouting、Sinks、sources、Discontinuities等。

5.4SIMULINK环境和模型库第五章MATLAB应用5.4SIMULINK环境和模型库(1)Continuous模块组

(2)Mathoperations模块组

5.4SIMULINK环境和模型库(3)Discontinuities模块组

(4)SignalRouting模块组

5.4SIMULINK环境和模型库(5)Sinks模块组

(6)Sources模块组

5.4SIMULINK环境和模型库2.SimPowerSystem(电力系统)工具箱主要有电源(Electricalsources)、元件(Elements)、电力电子(PowerElectronics)、电机系统(Machines)、测量(Measurements)附加(Extras)等模块组。(1)Electricalsources(电源)模块组

5.4SIMULINK环境和模型库(2)Measurements(测量)模块组

在MATLAB中没有测量端口m的模块,如需用示波器显示工作波形,则要使用这些测量模块先将所需信号测量出来,然后将测量模块的输出接入到示波器或显示模块中进行显示(3)Elements(元件)模块组

5.4SIMULINK环境和模型库注意:单个的电阻、电容和电感元件只能通过串联或并联的RLC分支以及它们的负载形式来定义,单个元件的参数设置在串联或并联分支中是不同的,具体设置如表5-9

表5-9单个电阻、电容、电感元件的参数设置表元件串联RLC分支并联RLC分支类型电阻数值电感数值电容数值电阻数值电感数值电容数值单个电阻R0infRinf0单个电感0LinfinfL0单个电容00CinfinfC5.4SIMULINK环境和模型库(4)PowerElectronics(电力电子)模块组

(6)Extrasliberary(附加)模块组

附加(Extras)模块组是二级子目录,其中包括控制(ControlBlocks)模块组、离散控制(DiscreteControlBlocks)模块组、离散测量(DiscreteMeasurments)模块组、测量(Measurments)模块组和向量(PhasorLiberary)模块组。常用的有5.4SIMULINK环境和模型库1)ControlBlocks(控制)模块组

2)Measurments(测量)模块组

5.4SIMULINK环境和模型库3.模块的基本操作(1)模块的参数设置(2)模块的连接5.5SIMULINK的仿真实践基础5.5.1SIMULINK的仿真步骤

第一步电路或系统搭建。

注意:一个完整的仿真模型应该至少包括一个源模块(Sources)和一个输出模块(Sinks)第二步设置模块参数。第三步设置仿真参数。第四步启动仿真。第五步观察结果。5.5SIMULINK的仿真实践基础5.5SIMULINK的仿真实践基础5.5SIMULINK的仿真实践基础5.5SIMULINK的仿真实践基础5.5SIMULINK的仿真实践基础仿真结束,双击仿真模型中的输出模块SCOPE观察结果5.5SIMULINK的仿真实践基础5.5SIMULINK的仿真实践基础

在使用MATLABSimulink进行仿真的过程中,除出了模块参数的设置以外,仿真参数的设置的是否合适、波形的处理是否到位,对于仿真结果有明显的影响。5.5.2仿真参数的设置仿真参数的设置界面中Solver、DataImport/Export项的设置与仿真及仿真数据的处理密切相关。

1.Solver(解算器)的参数设置

Solver(解算器)的参数设置是MATLAB仿真中必需的步骤。包括“Simulationtime”(仿真时间)、“Solveroptions”(解算器选项)和“Solverdiagnosticcontrols”(解算器诊断控制)三组参数

1)“Simulationtime”仿真时间设置栏:此栏设置项在仿真之前必须进行修改和确认。“Starttime”仿真的起始时间,连续系统一般从零开始。“Stoptime”仿真的停止时间,单位为s。5.5SIMULINK的仿真实践基础2)“Solveroptions”仿真算法设置栏

“type”栏下用下拉选择框中可选变步长算法(Variable-step)或者固定步长算法(Fix-step)

5.5SIMULINK的仿真实践基础5.5SIMULINK的仿真实践基础2.DataImport/Export的参数设置(略)5.5.3观察仿真结果

Simulink的Sinks输出模块组中的几个模块都可以用来观察仿真结果第一种方法是将仿真结果信号输入到输出模块“Scope”示波器(将信号显示在类似示波器的图标窗口内)、“XYGraph”二维X-Y图形显示器(绘制X-Y二维的曲线图形)与“Display”数字显示器(将仿真结果的信息数据以数字形式显示)中直接查看图形或者数据。第二种方法是将仿真结果信号输入到“ToWorkspace”模块中,保存到MATLAB工作空间里,再利用绘图命令Plot在MATLAB命令窗口里绘制出图形(plot(tout,simout)

)。第三种方法是使用outl模块将仿真输出信息返回到MATLAB命令窗口里,再利用绘图命令Plot绘制出图形(plot(tout,yout))。5.5SIMULINK的仿真实践基础5.5.4基本仿真举例【例5-5】仿真一阶惯性环节在单位阶跃给定下的响应。5.5SIMULINK的仿真实践基础【例5-6】5.5SIMULINK的仿真实践基础5.5.5示波器的使用和数据保存示波器(Scope)是最经常使用的输出模块,示波器不仅可以显示波形,并且可以同时保存波形数据。示波器的参数包含General和datahistory两部分设置

5.5SIMULINK的仿真实践基础

a)General页参数设置“NumberofAxies”项用于设定示波器的Y轴数量,即示波器的输入信号端口的个数

5.5SIMULINK的仿真实践基础5.5SIMULINK的仿真实践基础

第二项“Timerange”(时间范围),用于设定示波器时间轴的最大值

第三项用于选择标签的贴放位置第四项用于选择数据取样方式,其中Decimation方式是当右边栏设为“3”时,则每3个数据取一个数据显示波形。如果取样方式选Sampletime采样方式,则其右栏里输入的是采样的时间间隔,这时将按采样间隔提取数据显示。

还有一项“Floatingscope”选择,如果在它左方的小框中单击选中,则该示波器成为浮动的示波器,即没有输入接口,但可以接收其他模块发送来的数据。5.5SIMULINK的仿真实践基础b)datahistry页参数设置第一项是数据点数,预置值是5000,即可以显示5000个数据,若超过5000个数据,则删掉前面的保留后面的。也可以不选该项,显示所有数据。第二项“Savedatatoworkspace”,即将数据放到工作间去,则仿真的结果可以保存起来,并可以用MATLAB的绘图命令来处理,也可以用其他绘图软件画出更漂亮的图形。在保存数据栏下,还有两项设置,第一项是保存的数据命名(Variablename),这时给数据起一个名,以便将来调用时识别。第二项是选择数据的保存格式(Format),该处有3种选择:Array格式适用于只有一个输入变量的情况;Structurewithtime和Structure这两种格式适用于以向量表示的多个变量情况,并且前者同时保存数值和时间,后者仅保存数值。5.5SIMULINK的仿真实践基础

用Arrary格式保存的变量,为了以后可以用MATLAB命令重画,同时需要将时间也保存起来

2.图形缩放

3.坐标轴范围

4.浮动示波器(FloatingScope)5.5.6SIMULINK的仿真算法5.5SIMULINK的仿真实践基础5.5.7建立子系统和系统模型的封装将需要打包的模块都包含在虚线框内,松开鼠标,这时虚线框内的模块和线条都被选中。然后在Edit菜单中选CreateSubsystem(创建子系统)命令。建成的子系统模块可以重新命名

如果需要打开这个子系统模块,只要双击该子系统模块图标即可。打开子系统模块后,可以给子系统内的各模块设置参数,还可以进行修改模块名称等操作。关闭子系统只要单击窗口右上角的关闭按钮即可。子系统模型是允许嵌套的子系统模块可以复制,并转移到其他仿真模型中去使用。

5.5SIMULINK的仿真实践基础2.子系统模型的封装

一一打开子系统修改参数很繁琐,SIMULINK提供了子系统的封装(Mask)功能,也就是将子系统中各模块常要修改的参数集中在一张表上,方便子系统的使用。封装子系统需要在选中该子系统模块后,在模型窗口Edit菜单中选择Masksubsystem命令,就会弹出Mask编辑器窗口,然后在编辑器窗口内输入相关信息。(见数学模型的simulink实现子系统S函数.ppt第41页)

5.5SIMULINK的仿真实践基础

5.6SIMULINK与MATLAB的接口设计

Simulink可以和MATLAB进行数据交互(从MATLAB的工作空间中读入数据或者向MATLAB工作空间写入数据)。

5.6.1由MATLAB工作空间变量设置系统模块参数可以使用MATLAB工作空间中的变量设置系统模块参数,模块参数的形式有如下两种:1)直接使用MATLAB工作空间中的变量设置模块参数。

2)使用变量的表达式设置模块参数。

5.6SIMULINK与MATLAB的接口设计

5.6.2将信号输出到MATLAB工作空间中需要对输出信号作定量分析时,可以先将系统模型中的选定信号输出到MATLAB工作空间中,然后再作进一步的定量分析。使用Sinks模块库中的ToWorkspace模块,可以轻易地将信号输出到MATLAB工作空间中。信号输出的名称、结构等在ToWorkspace模块的对话框中设置,仿真结束或暂停时信号被输出到工作空间中

5.6SIMULINK与MATLAB的接口设计

5.6SIMULINK与MATLAB的接口设计

5.6.3使用工作空间变量作为系统输入信号

使用Sources模块库中的FromWorkspace模块可以将MATLAB工作空间中的变量作为系统模型的输入信号。

»;%表示信号输入时间范围与时间步长

»;%表示在每一时刻的信号值

»;%表示信号的输入向量,输入变量第一列须为时间序列,接下来的各列代表信号的取值例如,在MATLAB命令窗口中键入如下的语句并运行。

»;»;»;在系统模型的FromWorkspace中使用此变量作为信号输入

5.6SIMULINK与MATLAB的接口设计注意MATLAB命令中的输入向量与FromWorkspace中Data项设置名称都为input

5.6SIMULINK与MATLAB的接口设计在必要的情况下Simulink会对没有定义的时间点进行线性插值,例如:»;»;»;将生成一个三角波。

5.6SIMULINK与MATLAB的接口设计

5.6.4MATLABFunction与Function模块用户还可以使用user-definedFunctions模块库中的Function模块(简称为Fcn模块)或MATLABFunction模块(简称为MATLABFcn模块)进行彼此间的数据交互在Fcn模块中:1)输入总是表示成,可以是一个向量。2)可以使用C语言表达式,例如。3)输出永远为一个标量。MATLABFcn用来调用MATLAB函数来实现功能,在MATLABFcn模块中:1)所要调用的函数只能有一个输出(可以是一个向量)。2)单输入函数只需使用函数名,多输入函数输入需要引用相应的元素,如mean,sqrt,myfunc(u(1),u(2))。3)在每个仿真步长内都需要调用MATLAB解释器。

5.6SIMULINK与MATLAB的接口设计

5.6SIMULINK与MATLAB的接口设计5.7S函数5.7.1S函数的基本概念

S函数是系统函数(SystemFunction)的简称,是指采用非图形化的方式(即计算机语言,区别于Simulink的系统模块)描述的一个功能块。用户可以采用MATLAB代码。C、C++、FORTRAN或Ada等语言编写S函数。

S函数由一种特定的语法构成,用来描述并实现连续系统、离散系统和混合系统等动态系统。

为何还要使用S函数5.7S函数可以从如下的几个角度来理解S函数:l)S函数为Simuilink的“系统”函数。2)能够响应Simulink求解器命令的函数。3)采用非图形化的方法实现一个动态系统。4)可以开发新的Simulink模块。5)可以与已有的代码相结合进行仿真。6)采用文本方式输入复杂的系统方程。7)扩展Simulink功能。M文件S函数可以扩展图形能力,CMEXS函数可以提供与操作系统的接口。8)S函数的语法结构是为实现一个动态系统而设计的(默认用法),其他S函数的用法是默认用法的特例(如用于显示目的)。5.7S函数5.7.2如何使用S函数S函数的使用步骤1)创建S函数源文件。2)在动态系统的Simulink模型框图中添加S-function模块,并进行正确的设置3)在Simulink模型框图中按照定义好的功能连接输入输出端口。5.7.3与S函数相关的一些术语仿真例程mdlInitialization初始化mdlGetTimeofNextVarHit计算下一个采样点mdlOutput计算输出mdlUpdate更新离散状态mdlDerivatives计算导数mdlTeminate结束仿真2.直接馈通3.采样时间和偏移量4.动态输入5.7S函数5.7.4S函数的工作原理M文件S函数流程5.7S函数2.M文件S函数模板

打开模板文件

在MATLAB命令行下输入:»editsfuntmpl

或者双击\S-functionexample\M-fileS-functions\level1M-files\level1M-fileS-functiontemplate块,5.7S函数function[sys,x0,str,ts]=sfuntmpl(t,x,u,flag)switchflagcase0,[sys,x0,str,ts]=mdlInitializeSizes;case1,sys=mdlDerivatives(t,x,u);case2,sys=mdlUpdate(t,x,u);

case3,sys=mdlOutputs(t,x,u);

case4sys=mdlGetTimeOfNextVarHit(t,x,u);case9sys=mdlTerminate(t,x,u)

;

otherwiseerror([Unhandledflag=',num2str(flag)]);end5.7S函数各个子函数(各个仿真例程)1)初始化例程子函数。

提供状态、输入、输出、采样时间数目和初始状态的值。必须有该子函数。function[sys,x0,str,ts]=mdlInitializeSizessizes=simsizes;%生成sizes数据结构sizes.NumContStates=0;%连续状态数,默认为0sizes.NumDiscState=0;%离散状态数,默认为0sizes.NumOutputs=0;%输出量个数,默认为0sizes.NumInputs=0;%输入量个数,默认为0sizes.DirFeedthrough=1;%是否存在直接馈通。1:存在,0:不存在,默认为1sizes.NumSampleTimes=1;%采样时间个数,至少是一个sys=simsizes(sizes);%返回size数据结构所包含的信息x0=[];%设置初始状态str=[];%保留变量置空ts=[00];%采样时间[采样周期偏移量],采样周期为0表示连续系统5.7S函数2)计算导数例程子函数。给定t,x,u,计算连续状态的导数,用户应该在此给出系统的连续状态方程。该子函数可以不存在。functionsys=mdlDerivatives(t,x,u)sys=[];%sys表示状态导数,即dx3)状态更新例程子函数。给定t,x,u,计算离散状态的更新。每个仿真步长必然调用该子函数,不论是否有意义。用户除了在此描述系统的离散状态方程外,还可以填入其他每个仿真步长都有必要执行的代码。functionsys=md1Upate(t,x,u)sys=[];%sys表示下一个离散状态即

4)计算输出例程子函数。给定t,x,u,计算输出。该子函数必须存在,用户可以在此描述系统的输出方程。functionsys=mdlOutputs(t,x,u)sys=[];%sys表示输出,即y5)计算下一个采样时间,仅在系统是变采样时间系统时调用。functionsys=mdlGetTimeOfNextVarHit(t,x,u)sampleTime=1;%设置下一次的采样时间是

以后sys=t+sampleTime;%sys表示下一个采样时间点5.7S函数6)仿真结束时要调用的例程函数。在仿真结束时调用,用户可以在此完成结束仿真所需的必要工作。functionsys=mdlTerminate(t,x,u)sys=[];

S函数实现几种不同的系统举例:

【例5-9】

【例5-10】

【例5-11】5.7S函数第五章MATLAB应用5.8MATLABdemo(演示)和Help文件的使用5.8MATLABdemo(演示)和Help文件的使用5.8MATLABdemo(演示)和Help文件的使用

其中含有各个工具箱的Demo,以电力电子专业常用的SymPowerSystem的Demo为例,单击SymPowerSystem,可以看到其下包含了8个Demo库,分别为SimpleModels、PowerElectronicsModels、MachineModels、PowerUtilityAC/DCNetworkModels、MeasurmentandControlModels、ElectricDrivesModels、FACTSModels、DistributedResourcesModels,右端窗口中为该工具箱中的演示的电路或系统的列表

5.8MATLABdemo(演示)和Help文件的使用5.8.2单个Simulink仿真模块Help的使用在使用MATLAB仿真软件的过程中,遇到Simulink仿真模块使用和参数设置不清楚时,可以使用MATLAB的Simulink仿真模块Help文件,进行查询。

以TransferFCN模块为例进行说明,从Simulink工具箱中选取TransferFCN模块放入Simulink仿真平台(见图5-68),在不清楚如何使用时,可用鼠标右击器件,从打开的菜单中选中Help,即可打开TransferFCN的Help文件。

5.8MATLABdemo(演示)和Help文件的使用

为了能够灵活熟练使用MATLAB进行仿真,应充分利用它强大丰富的demo(演示)和Help文件

5.8MATLABdemo(演示)和Help文件的使用5.9电力电子电路的MATLAB仿真

5.9.1SIMULINK电力电子相关模块参数一、开关器件模型及参数

MATLAB电力电子器件模型主要仿真了电力电子器件的开关特性,并且不同电力电子器件模型都具有类似的模型结构。在MATLAB电力电子器件模型中已经并联了简单的RC串联缓冲电路,在参数表中设置,名称分别为Rs和Cs。更复杂的缓冲电路则需要另外建立。对于MOSFET模型还反并联了二极管,在使用中要注意,需要设置体内二极管的正向压降Vf和等效电阻Rd。对于GTO和IGBT需要设置电流下降时间Tf和电流拖尾时间Tt。5.9电力电子电路的MATLAB仿真第五章MATLAB应用#MATLAB的电力电子器件必须连接在电路中使用,也就是要有电流的回路,但是器件的驱动仅仅是取决于门极信号的有无,没有电压型和电流型驱动的区别,也不需要形成驱动的回路,这是MATLAB电力电子器件模型与其他Spice模型的不同之处。尽管模型与实际器件工作有差异,但是也使MATLAB电力电子器件模型在与控制连接的时候很方便。

#MATLAB的电力电子器件模型中含有电感,因此有电流源的性质,所以在模块参数中还包含了IC即初始电流项。也因为它的电流源性质,在没有连接缓冲电路时不能直接与电感或电流源相连接,也不能开路工作。含电力电子模型的电路或系统仿真时,仿真算法一般采用刚性积分算法,如ode23tb、ode15s,这样可以得到较快的仿真速度。

#电力电子器件的模块上,一般都带有一个测量输出端口,通过输出端m可以观测器件的电压和电流,不仅测量方便,并且可以为选择器件的耐压和电流提供依据。5.9电力电子电路的MATLAB仿真

理想开关IdealSwitch。理想开关的特点是开关受门极控制,开关导通时电流可以双向通过。初始状态一栏,如果起动仿真时开关应是接通状态,则设为"0";如果启动仿真时开关应是断开的,则设为"1"。

5.9电力电子电路的MATLAB仿真二、整流、逆变电路模块

MATLAB中提供了一个通用(多功能)桥电路模块UniversalBridge和三电平桥电路模块Three-levelBridge。

5.9电力电子电路的MATLAB仿真如果在开关器件栏中选择二极管或晶闸管,则桥式线路的结构为:5.9电力电子电路的MATLAB仿真

如果在开关器件栏中选择的是自关断器件GTO、MOSFET、IGBT或理想开关,则桥式线路的结构为:5.9电力电子电路的MATLAB仿真第五章MATLAB应用

两种编号方式是为与晶闸管6脉冲触发器和驱动模块PWM发生器输出的脉冲序列相对应。自关断器件模块上已经反并联了续流二极管。三电平桥电路模块Three-levelBridge

5.9电力电子电路的MATLAB仿真三、驱动模块

1、pulseGenerator用于发出脉冲序列5.9电力电子电路的MATLAB仿真PWMGenerator调制原理

5.9电力电子电路的MATLAB仿真3、Synchronized6-pulsegenerator用于产生三相桥式整流电路晶闸管的六路与开关电压同步的单脉冲或双脉冲其中如果Block口置1,则没有脉冲输出,如置0,则有脉冲输出。

5.9电力电子电路的MATLAB仿真

4、Synchronized12-pulsegenerator用于产生十二相整流器的触发脉冲

5.9电力电子电路的MATLAB仿真

四、

变压器1、变压器

5.9电力电子电路的MATLAB仿真

2、单相多绕组变压器

5.9电力电子电路的MATLAB仿真

3、三相变压器:三相变压器模块共有10余个,这里介绍两个三相变压器模型是由三个单相变压器模型根据不同的联结组要求连接而成,根据需要可在参数对话框中进行选择,因此三相变压器的参数设置与单相变压器相同。Y星形联结,无中线∆11三角形联结,电压相位领先Y联结30ºYn星形联结,带中性点的连接端∆1三角形联结,电压相位滞后Y联结30ºYg星形联结,中点在模型内接地

5.9电力电子电路的MATLAB仿真三相变压器参数设置

5.9电力电子电路的MATLAB仿真

4、互感线圈在对话框中可设置三个线圈的电阻和自感,并可设置3个线圈的互感。如不勾选ThreewindingsMutualinductance,则为两个有互感的线圈。如果Rm、Lm都取零,则模型表示的是3个没有互感关系的独立线圈。互感线圈也是一个简单的变压器模型。

5.9电力电子电路的MATLAB仿真五、

电动机模块

1、直流电机其中F+和F-为直流电机励磁绕组连接端,A+A-为电枢绕组连接端TL为电机负载转矩的输入端(可选为设定机械负载转矩或设定速度,前者为电动机模式,后者为发电机模式)m端可输出转速、电枢电流、励磁电流和电磁转矩。可通过励磁绕组和电枢绕组的并联或串联组成并励或串励电机。5.9电力电子电路的MATLAB仿真直流电机仿真:

5.9电力电子电路的MATLAB仿真直流电机仿真(上例使用电阻启动器进行限流启动):

5.9电力电子电路的MATLAB仿真

2、交流电机交流异步电机

5.9电力电子电路的MATLAB仿真交流同步电动机

5.9电力电子电路的MATLAB仿真永磁同步电机

5.9电力电子电路的MATLAB仿真开关磁阻电机5.9电力电子电路的MATLAB仿真

3、交流电机测量单元根据所选Machinetype不同,该模块的外形有:

5.9电力电子电路的MATLAB仿真

根据所选Machinetype不同,该模块的外形有:

5.9电力电子电路的MATLAB仿真5.9.2基础电路仿真熟悉电力电子相关的元器件、测量显示的连接法、参数设置及使用用法。

一、线性变压器模块的使用5.9电力电子电路的MATLAB仿真线性变压器参数设置:

MATLAB线性变压器的电路模型:

模型考虑了绕组电阻(R1、R2、R3)和漏感(L1、L2、L3),还通过一个线性支路Rm、Lm考虑了磁芯的磁化特性。参数的设置可以有两种类型:标幺值(pu)和国际单位(SI)。如果设定一个理想变压器,则将绕组电阻(R1、R2、R3)和电感(L1、L2、L3)设置为0,磁化电阻和电感(RmLm)设置为无穷大(inf)。5.9电力电子电路的MATLAB仿真电路中变压器标幺值(pu)与国际单位(SI)设置对比

5.9电力电子电路的MATLAB仿真仿真参数仿真结果5.9电力电子电路的MATLAB仿真2.可变电感的实现(子系统的应用)Demo中的一个演示实例

其中的交流电压源Vsource幅值频率、阻抗源Zsource电阻、电感,电流源Isource幅值频率,还使用了阻抗测量,使用常数(constant)和正弦波作为可变电感的给定。电感随给定变化的规律是在VariableInductor子系统中实现的

5.9电力电子电路的MATLAB仿真5.9电力电子电路的MATLAB仿真

鼠标右击VariableInductor子系统模块,弹出菜单,选择Lookundermask,即可打开子系统仿真模型。

5.9电力电子电路的MATLAB仿真打开子电路内部:5.9电力电子电路的MATLAB仿真仿真结果:5.9电力电子电路的MATLAB仿真5.9.3直流-直流变流器降压(Buck)变换器及Powergui的使用降压(Buck)变换器仿真电路、参数设置(输入电压为200v,滤波电感为10mH,输出滤波电容为100μf,负载5Ω)

5.9电力电子电路的MATLAB仿真参数设置:5.9电力电子电路的MATLAB仿真仿真参数设置:5.9电力电子电路的MATLAB仿真仿真结果5.9电力电子电路的MATLAB仿真仿真结果5.9电力电子电路的MATLAB

温馨提示

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

评论

0/150

提交评论