购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.1 MATLAB/SIMULINK简介

MATLAB是MATrix LABoratory(矩阵实验室)的缩写,是一款由美国MathWorks公司开发的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级计算语言和交互式环境。除矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建图形用户界面(Graphics User Interface,GUI)、调用其他语言(包括C、C++和FORTRAN等)编写的程序。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用 C、FORTRAN等语言完成相同的事情简捷得多。此外MATLAB语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用丰富的库函数避开繁杂的子程序编程任务,压缩了很多不必要的编程工作。

MATLAB大家庭有许多成员,包括应用程序开发工具、工具箱(Toolbox)、数据存取工具、状态流图(Stateflow)、模块集(Blocksets)、代码生成工具等。其中,应用程序开发工具包括MATLAB编译器、C/C++数学库、MATLAB Web服务器、MATLAB运行服务器,这些工具可以建立和发布独立于MATLAB环境的应用程序。工具箱实际上是一些高度优化且面向专门应用领域的函数集合,软件提供的工具箱可支持的领域有信号和图像处理、控制系统设计、最优化、金融工程、符号数学、神经网络等,其最大特点是开放性,几乎所有函数都是用MATLAB语言写成的(只有少数工具箱的某些函数是使用C语言写成的动态库函数),因而可以直接阅读和加以改写,用户也可以自行开发适合特定领域的工具箱。数据存取工具提供了从外部数据源获取数据的简捷途径,这些数据源包括外部硬件和外部数据库(与ODBC等兼容)。状态流图是一个专门针对事件驱动系统建模和设计的图形化模拟环境。模块集是面向应用领域的模块(SIMULINK的基本单位)的集合,这些模块可以直接用于SIMULINK模型中。代码生成工具可以从SIMULINK模型或状态流图中产生可定制的C和Ada代码,以便实现快速原型和硬件在线模拟。

MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。

(1)开发环境

MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。它是一个集成的用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。

(2)数学函数库

MATLAB数学函数库包括了大量的计算算法。从基本算法如加法、正弦,到复杂算法如矩阵求逆、快速傅里叶变换等。

(3)语言

MATLAB语言是一种高级的基于矩阵/数组的语言,它有程序流控制、函数、数据结构、输入/输出和面向对象编程等特色。

(4)图形处理系统

图形处理系统使得MATLAB能方便地图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强大的二维与三维图形函数、图像处理和动画显示等函数。

(5)应用程序接口

MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等其他高级编程语言进行交互的函数库。该函数库的函数通过调用动态链接库(DLL)实现与MATLAB文件的数据交换,其主要功能包括在MATLAB中调用C和Fortran程序,以及在MATLAB中与其他应用程序建立客户、服务器关系。

本书采用仿真软件MATLAB R2018b版本对永磁同步电动机进行仿真建模,软件界面如图4-1所示。

图4-1 MATLAB软件界面

SIMULINK是一个对动态系统(包括连续系统、离散系统和混合系统)进行建模、仿真和综合分析的集成软件包,是MATLAB的一个附加组件,其特点是模块化操作、易学易用,而且能够使用MATLAB提供的丰富资源。在SIMULINK环境中,用户不仅可以观察现实世界中非线性因素和各种随机因素对系统行为的影响,而且也可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化。因此,目前SIMULINK已成为控制工程领域的通用软件,而且在许多其他的领域(如通信、信号处理、电力、金融、生物系统等)也获得了重要应用。

和MATLAB的其他组件相比,SIMULINK的一个突出特点就是它完全支持图形用户界面(GUI),这样就极大地方便了用户的操作。用户只需要进行简单的拖拽操作就可以构造出复杂的仿真模型,它的外观以框图的形式来呈现,而且采用分层结构。从建模的角度来看,这种方法可以让用户将主要的精力放在具有创造性的算法和模块结构的设计上,而不用把精力放在算法的具体实现上。从分析研究的角度来看,SIMULINK模型不仅可以让用户知道具体环节的动态细节,而且还可以让用户清晰地了解到各系统组件、各子系统、各系统之间的信息交换。

SIMULINK启动方式有以下几种:在MATLAB的命令窗口(command window)中从键盘键入simulink(小写,注意MATLAB软件环境对字母的大小写敏感)后回车;用鼠标左键单击图4-1中的SIMULINK按钮。

启动SIMULINK后,会弹出图4-2a所示的SIMULINK库浏览器(Library Browser)(若没有mdl文档打开,则会显示4-2b的界面)。左上方的SIMULINK库中包含了众多的子库,其中有常用模块(Commonly Used Blocks)、时间连续模块(Continuous)、时间不连续模块(Discontinuities)、时间离散模块(Discrete)、逻辑与位运算模块(Logic And Bit Operations)、查表模块(Lookup Tables)、数学运算模块(Math Operations)、模型验证模块(Model Verification)、模型扩展实用工具(Model-Wide Utilities)、端口与子系统模块(Ports&Subsystems)、信号属性模块(Signal Attributes)、信号连接模块(Signal Routing)、输入模块(Sinks)、输出模块(Sources)、字符串模块(String)、用户定义函数模块(User-Defined Functions)、补充数学与离散模块(Additional Math&Discrete)。读者完全可以在实际操作中熟悉这些模块,其功能不再详细解释。

图4-2 SIMULINK软件包界面

如果MATLAB软件安装的工具箱比较完整的话,在图4-2的界面中可以看到与SIMULINK处于并列位置的其他工具箱,如常用的控制系统工具箱(Control System Toolbox)、模糊逻辑控制工具箱(Fuzzy Logic Toolbox)、神经网络工具箱(Neural Network Toolbox)R2018b版本已将原工具箱放到了Deep Learning Toolbox/Shallow Neural Networks中、电力系统仿真库(SimPowerSystems)(较新版本MATLAB已将其移动到Simscape中)物理建模仿真库(Simscape)、辅助的SIMULINK模块库(SIMULINK Extras)、状态流图工具箱(Stateflow)、系统辨识工具箱(System Identification Toolbox)等等。

在SIMULINK中对永磁同步电动机进行仿真建模通常可以采用以下三种方法:

1)使用SIMULINK库里已有的分立模块进行组合来搭建电动机模型,该方法思路清晰、简单、直观,但需要调用较多的模块,连线较多且不利于查错(尤其是复杂的数学模型)。因此本方法一般较适用于简单的、小规模系统的仿真建模。如果利用它提供的from与goto模块代替连线,可以大大减少连线出错。

2)用S函数(S-Function)模块构造模型。该方法建模接近数学解析表达式,容易修改,方式灵活。这种模型处理能力强,可以方便地构建极其复杂的连续、离散动态系统和对采样时间有较高要求的模型,非常适合PMSM的分析。

3)使用SIMULINK内部提供的PMSM模型,不同版本MATLAB中,该模块的具体位置是不同的,对于R2018b版本,PMSM包含在Simscape/Electrical/Specialized Power Systems子库(即老版本中的SimPowerSystems)的Fundamental Blocks中的电动机库(Machines)中。这种方法简单、方便,适于快速构建永磁同步电动机调速系统。但由于模型已经封装好,不能随意进行修改,同时也不方便研究PMSM内部变量之间的关系。另外,SimPowerSystems中的模块性质与SIMULINK中模块性质是不同的,因此它们之间的连线需要经过特别的接口模块[如受控电压源(Controlled Voltage Source)、受控电流源(Controlled Current Source)、电压检测模块(Voltage Measurement)、电流检测模块(Current Measurement)]等才能顺利建模。

下面分别对三种建模方法进行详细阐述。 EE6ILgAvfp9k3SYLXXyjj/WSoVh7Wq4bRv2ORoOqIWiPvxSA4aJdh4GXMRLSRurz

点击中间区域
呼出菜单
上一章
目录
下一章
×