MATLAB 简介 MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.

Slides:



Advertisements
Similar presentations
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
Advertisements

Tool Command Language --11级ACM班 金天行.
MATLAB小结、 经典迭代法、CG.
Introduction to Matlab
1012 MATLAB 教學 彭奕翔 2013/02/27.
C语言实验 第一课 标题:学号+姓名.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
线性代数机算与应用 李仁先 2018/11/24.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
MATLAB数学实验 第一章 MATLAB入门.
内容: 1. 库模块简介 2.基本建模方法 3.模型举例 4.子系统与模块封装技术 5.函数的编写与应用
Simulink建模与仿真.
Simulink模擬基礎 主要內容 Simulink簡介 Simulink模組庫 Simulink的基本操作 S-函數.
走进编程 程序的顺序结构(二).
网络常用常用命令 课件制作人:谢希仁.
CH5、SIMULINK仿真基础 在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,则很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真。 1990年,Math Works软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具,并命名为SIMULAB,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。但因其名字与当时比较著名的软件SIMULA类似,所以1992年正式将该软件更名为SIMULINK。
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
第一章 函数 函数 — 研究对象—第一章 分析基础 极限 — 研究方法—第二章 连续 — 研究桥梁—第二章.
Simulink入门 什么是Simulink
数学模型实验课(三) 插值与三维图形.
引 言.
第二章 Java语言基础.
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
数学软件 Matlab —— 矩阵运算.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
第一章 函数与极限.
数学建模 江西财经大学 数学与管理决策系 制作:华长生 华长生制作.
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
VisComposer 2019/4/17.
实验教学 MATLAB在行列式和矩阵中的应用 授课教师:杨梦云.
姚金宇 MIT SCHEME 使用说明 姚金宇
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
VRP教程 2011.
2.2矩阵的代数运算.
线 性 代 数 厦门大学线性代数教学组 2019年5月12日4时19分 / 45.
2019/5/21 实验一 离散傅立叶变换的性质及应用 实验报告上传到“作业提交”。 11:21:44.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 Java基本语法 讲师:复凡.
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
作者:郭阳宽 王正林 《过程控制系统仿真》 电子工业出版社 出版 作者:郭阳宽 王正林
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
WEB程序设计技术 数据库操作.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
第十七讲 密码执行(1).
复习 界面介绍 工作簿 工作表 单元格 删除 添加 改名 移动 美化 内容修改 文字设置 边框设置 背景色设置 单元格对齐 单元格合并
§4.5 最大公因式的矩阵求法( Ⅱ ).
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
顺序结构程序设计 ——关于“字符串”和数值.
1.4 M文件与程序设计 文件的操作 命令文件 M函数文件 程序设计语句.
Presentation transcript:

MATLAB 简介 MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.

MATLAB的特点 运算符和库函数极其丰富,语言简洁,编程效率高 。 既具有结构化的控制语句(如for循环、while循环、break语句、if语句和switch语句),又有面向对象的编程特性。 图形功能强大。 功能强大的工具箱 。工具箱可分为两类:功能性工具箱和学科性工具箱。 易于扩充。

MATLAB的开发环境 MATLAB主窗口 命令窗口(Command Window) 历史窗口(Command History) 当前目录窗口(Current Directory ) 工作空间管理窗口(Workspace) 示意图

MATLAB帮助系统 完善的帮助系统是任何应用软件必要的组成部分。MATLAB提供了相当丰富的帮助信息,同时也提供了获得帮助的方法。首先,可以通过桌面平台的【Help】菜单来获得帮助,也可以通过工具栏的帮助选项获得帮助。此外,MATLAB也提供了在命令窗口中的获得帮助的多种方法,在命令窗口中获得MATLAB帮助的命令及说明列于下表中。其调用格式为:

doc 在帮助浏览器中显示指定函数的参考信息 help 在命令窗口中显示M文件帮助 helpbrowser 打开帮助浏览器,无参数 helpwin 打开帮助浏览器,并且将初始界面置于MATLAB函数的M文件帮助信息 lookfor 在命令窗口中显示具有指定参数特征函数的M文件帮助 web 显示指定的网络页面,默认为MATLAB帮助浏览器

MATLAB帮助格式 >>doc 关键词 >>help 关键词 >>Helpbrowser >>helpwin >>Lookfor 关键词 >>web

MATLAB数值计算功能 MATLAB 数据类型 矩阵及其运算

MATLAB 数据类型 变量 (1)、变量名区分大小写。 (2)、变量名长度不超31位,第31个字符之后的字符将被MATLAB语言所忽略。 (3)、变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点。 (4)、与其他的程序设计语言相同,在MATLAB语言中也存在变量作用域的问题。在未加特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其使用的M文件内有效。若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global。一般来说全局变量均用大写的英文字符表示。

MATLAB 数据类型 常量 MATLAB语言本身也具有一些预定义的变量,这些特殊的变量称为常量 ,如下表所示: pi 圆周率 eps 浮点运算的相对精度 inf 正无穷大 NaN 表示不定值 realmax 最大的浮点数 i、j 虚数单位

MATLAB 数据类型 显示格式 MATLAB语言中数值有多种显示形式,在缺省情况下,若数据为整数,则就以整数表示;若数据为实数,则以保留小数点后4位的精度近似表示。 若要更改显示形式,需要用到关键字“fomat” 例如: format long format long e 各种数据显示格式的精度如下表:

MATLAB 数据类型 字符串 在MATLAB中,字符串和字符数组基本上是等价的;所有的字符串都用单引号进行输入或赋值(当然也可以用函数char来生成)。字符串的每个字符(包括空格)都是字符数组的一个元素。例如: >>s=’matrix laboratory’ s= matrix laboratory >> size(s) % size查看数组的维数 ans= 1 17

矩阵及矩阵运算 矩阵的生成 直接输入 外部文件读入 特殊矩阵的生成 矩阵的基本数学运算

矩阵的生成 直接输入 从键盘上直接输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以下几点: 输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在括号内。 矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔。 矩阵大小不需要预先定义。 矩阵元素可以是运算表达式。 若”[ ]”中无元素则表示空矩阵

例: >> A=[1 2 3;4 5 6;7 8 9] A= 1 2 3 4 5 6 7 8 9 “;” 可以用回车符代替。 “ ” 可以用“,”符代替。

例: >> N=1:256 >> N=1:1:256 >> a=1:0.5:4 a= Columns1 through 7 1 1.5 2 2.5 3 3.5 4

例: A=[1,2,3;4,5,6;7,8,9] >> B=A (1:2, : ) B= 1 2 3 4 5 6 >> B=A (1, : ) >> B=A (:, : ) %B=A >> B=A (1:2 : 3, : ) >> B=A (1:2:3,1:2:3) >> B=A(3) %先列排序 >> B=A’ %A的转置矩阵

矩阵的生成 外部文件读入 可以利用load函数,其调用方法为: Load 文件名[参数] Load函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为matlab.mat文件为操作对象,如果该文件在MATLAB搜索路径中不存在时,系统将会报错。 使用“打开”,可以读入*.mat文件的数据。

矩阵的生成 特殊矩阵的生成 对于一些比较特殊的矩阵(单位阵、矩阵中含1或0较多),由于其具有特殊的结构,MATLAB提供了一些函数用于生成这些矩阵。常用的有下面几个: zeros(m) 生成m阶全0矩阵 zeros(m,n) 生成m行n列全0矩阵 用法相同的函数还有: “eye” (生成m阶单位矩阵)、“ones” (生成m阶全1矩阵)、 “rand” (生成m阶均匀分布的随机阵)、 “randn” (生成m阶正态分布的随机矩阵)

矩阵的基本数学运算 矩阵的基本数学运算包括矩阵的四则运算、与常数的运算、逆运算、行列式运算、秩运算、特征值运算等基本函数运算,这里进行简单介绍。

基本函数运算 矩阵的函数运算是矩阵运算中最实用的部分,常用的主要有以下几个: det(a) 求矩阵a的行列式 eig(a) 求矩阵a的特征值 inv(a)或a ^ (-1) 求矩阵a的逆矩阵 rank(a) 求矩阵a的秩 trace(a) 求矩阵a的迹(对角线元素之和)

与常数的运算 常数与矩阵的运算即是同该矩阵的每一元素进行运算。但需注意进行数除时,常数通常只能做除数。 例: a=[1,2;3,4;]

四则运算 矩阵的加、减、乘运算符分别为“+,—,*” ,用法与数字运算几乎相同,但计算时要满足其数学要求(如:同型矩阵才可以加、减)。 在MATLAB中矩阵的除法有两种形式:左除“\”和右除“/”。在传统的MATLAB算法中,右除是先计算矩阵的逆再相乘,而左除则不需要计算逆矩阵直接进行除运算。通常右除要快一点,但左除可避免被除矩阵的奇异性所带来的麻烦。在MATLAB6中两者的区别不太大。 左除可定义为:A\B=A*inv(B) 右除可定义为:A/B=inv(A)*B A/B=(B’\A’)’

例:a=[1,2;3,4;],b=[5,6;7,8] >>a*b ans = 19 22 43 52 >>a/b ans= 3 -2 2 1 >>a\b 3 -4 4 5

例: >> t=0:1/256:255/256 >> a=sin(2*pi*t); >> b=sin(2*pi*2*t); >> c=a+b; >> c=a*b %错误

矩阵的数组运算 我们在进行工程计算时常常遇到矩阵对应元素之间的运算。这种运算不同于前面讲的矩阵数学运算,有所区别,我们称之为数组运算。 矩阵的数组运算是以组成矩阵的数(元素)为操作对象;而矩阵的矩阵运算是以矩阵整体作为操作对象。

数组的加、减与矩阵的加、减运算完全相同。而乘除法运算有相当大的区别,数组的乘除法是指两同维数组对应元素之间的乘除法,它们的运算符为“.*”和“./”或“.\”。前面讲过常数与矩阵的除法运算中常数只能做除数。在数组运算中有了“对应关系”的规定,数组与常数之间的除法运算没有任何限制。 另外,矩阵的数组运算中还有幂运算(运算符为 .^ )、指数运算(exp)、对数运算(log)、和开方运算(sqrt)等。有了“对应元素”的规定,数组的运算实质上就是针对数组内部的每个元素进行的。

例:a=[1,2;3,4;]; b=[5,6;7,8] >>a*b ans = 19 22 43 50 >>a.*b 5 12 21 32

例: >> t=0:1/256:255/256; a=sin(2*pi*t); b=sin(2*pi*2*t); >> c=a.*b % c为1*256的矩阵 >> c=a*b %错误 >> c=a./b % c为1*256的矩阵

例:a=[1,2;3,4]; >> a^3 ans = 37 54 81 118 >> a.^3 1 8 27 64

逻辑关系运算

逻辑关系运算的说明 在关系比较中,若比较的双方为同维数组,则比较的结果也是同维数组。它的元素值由0和1组成。当比较双方对应位置上的元素值满足比较关系时,它的对应值为1,否则为0。 当比较的双方中一方为常数,另一方为一数组,则比较的结果与数组同维。 在算术运算、比较运算和逻辑与、或、非运算中,它们的优先级关系先后为:比较运算、算术运算、逻辑与或非运算。

例:a=[1,0;0,1;];b=[1,0;1,0] >>a&b ans= 1 0 0 0 >>a&&b %错误 >>(det(a))&&(det(b))

例:a=[1,0;0,1;];b=[1,0;1,0] >>a&1 ans= 1 0 0 1 >>ab=a&b ab= 0 0

MATLAB图形功能 MATLAB最常用的画二维图形的命令是plot(连续波形显示) 和stem(离散波形显示),此外还有bar、stairs等。 例: >>a=[0,1,5,7,5,2]; n=[0,1,2,3,4,5] >>plot(n,a) >>plot(a) >>stem(a)

例: >>t=0:1/256:511/256 >>a=sin(2*pi*5*t) >>plot(a) >>a_fft=abs(fft(a,512)) >>plot(a_fft) >>n=(0:255)*256/512 >>plot(n,a_fft(1:256)/512)

多重线的画法 例:t=0:1/256:511/256 >>a=sin(2*pi*t) >>b=sin(2*pi*t+pi/2) >>plot(t,a,t,b) >>plot(t,a) >>hold on >>plot(t,b)

线型和颜色 MATLAB对曲线的线型和颜色有许多选择,标注的方法是在每一对数组后加一个字符串参数。 线型线方式:“-”实线、“:”点线、“-.”虚点线、“--”破折线。 线型点方式:“.”实心圆点、“+”加号、“*”星号、“x”X型、“o”空心圆。 颜色:y黄; r红; g绿; b蓝; w白; k黑; m紫; c青 。

格式:plot(a,‘颜色 线方式 点方式’) >>a=sin(2*pi*t) >>plot(t,a,’b:*’) >>plot(t,a,’r-o’)

网格和标记 在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。 grid %网格 xlabel、 ylabel % x、y轴标记。 title %标题 text %在特定位置放置字符串 gtext %在任意位置放置字符串

例: t=0:1/32:63/32 >>a=sin(2*pi*t) >>plot(a) >>grid >>xlabel(‘T,时间’); ylabel(‘U,幅度’) >>text(32,0,‘sinx, 180度’) >>gtext(‘sin,45度’)

坐标系的控制 在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有: axis([xmin xmax ymin ymax]) [ ]中分别给出x轴和y轴的最大值、最小值 axis equal 或 axis(‘equal’) x轴和y轴的单位长度相同 axis square 或 axis(‘square’) 图框呈方形 axis off 或 axis(‘off’) 清除坐标刻度 还有axis auto、axis image、axis xy、axis ij、axis normal、axis on、axis(axis)用法可参考在线帮助系统。

例:axis([1 64 -2 2])

多幅图形的显示 可以在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图。 例: t=0:1/64:63/64 >>a=sin(2*pi*t); b=cos(2*pi*t); c=a.*b; d=a+b subplot(2,2,1),plot(t,a) subplot(2,2,2),plot(t,b) subplot(2,2,3),plot(t,c) subplot(2,2,4),plot(t,d)

三维图形 三维图形在本实验中使用不是很多,在此只做简单介绍。 可能使用到的一些函数: meshgrid mesh surf surfc plot3 contour contour3 view

M文件 使用MATLAB函数时,例如inv, abs, angle和sqrt,MATLAB获取传递给它的变量,利用所给的输入,计算所要求的结果。然后,把这些结果返回。由函数执行的命令,以及由这些命令所创建的中间变量,都是隐含的。所有可见的东西是输入和输出,也就是说函数是一个黑箱。 这些属性使得函数成为强有力的工具,用以计算命令。这些命令包括在求解一些大的问题时,经常出现的有用的数学函数或命令序列。由于这个强大的功能,MATLAB提供了一个创建用户函数的结构,并以M文件的文本形式存储在计算机上 。

M文件函数不进入命令窗口,而是由文本编辑器所创建的外部文本文件。一个函数的M文件与脚本文件在通信方面是不同的。函数与MATLAB工作空间之间的通信,只通过传递给它的变量和通过它所创建的输出变量。在函数内中间变量不出现在MATLAB工作空间,或与MATLAB工作空间不交互。

M文件的语法 M文件的语法与matlab工作空间语法一样。 以下介绍几个复杂语句的写法

1、for循环语句 基本格式: for 表达式 循环体 end 若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。

2、while循环语句 基本格式 while 表达式 循环体 end 若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。 While循环和for循环的区别在于,while循环结构的循环体被执行的次数不是确定的,而for结构中循环体的执行次数是确定的。

2、while循环语句 基本格式 while 表达式 循环体 end 若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。 While循环和for循环的区别在于,while循环结构的循环体被执行的次数不是确定的,而for结构中循环体的执行次数是确定的。

3、if,else,elseif语句 (1)if 逻辑表达式 执行语句 end 当逻辑表达式的值为真时,执行该结构中的执行语句,执行完之后继续向下进行;若为假,则跳过结构中的内容,向下执行。 (2)if 逻辑表达式 (3) if 逻辑表达式1 执行语句1 执行语句1 else elseif 逻辑表达式2 执行语句2 执行语句2 end … end if-else的执行方式为:如果逻辑表达式的值为真,则执行语句1,然后跳过语句2,向下执行;如果为假,则执行语句2,然后向下执行。 if-elseif的执行方式为:如果逻辑表达式1的值为真,则执行语句1;如果为假,则判断逻辑表达式2,如果为真,则执行语句2,否则向下执行。

4、switch语句 格式:switch 表达式(%可以是标量或字符串) case 值1 语句1 case 值2 语句2 …. otherwise 语句3 end 执行方式:表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,如果不同,则执行otherwise中的语句。格式中也可以不包括otherwise,这时如果表达式的值与列出的各种情况都不相同,则继续向下执行。

GUI 设计 Matlab提供了一个可视化的图形界面开发环境Guide,Graphical User Interface Development。其功能和VB等软件很接近,使用这样的软件并不需要很多专门的预备的知识。

GUI 启动 在Matlab中,用户想打开一个新的图形界面开发环境,可以选择Matlab主窗口中File/ New菜单下的GUI子菜单,也可以在Matlab命令窗口中键入Guide命令,就可以打开图形界面设计软件。

Simulink仿真基础 SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。 所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。

SIMULINK的启动 1、在MATLAB命令窗口中输入simulink。结果是在桌面上出现一个称为Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。当然用户也可以通过MATLAB主窗口的快捷按钮来打开Simulink Library Browser窗口。 2、在MATLAB命令窗口中输入simulink3。结果是在桌面上出现一个用图标形式显示的Library :simulink3的Simulink模块库窗口。 两种模块库窗口界面只是不同的显示形式,用户可以根据各人喜好进行选用,一般说来第二种窗口直观、形象,易于初学者,但使用时会打开太多的子窗口。

三、SIMULINK的模块库介绍 SIMILINK模块库按功能进行分类,包括以下8类子库: Continuous(连续模块) Discrete(离散模块) Function&Tables(函数和平台模块) Math(数学模块) Nonlinear(非线性模块) Signals&Systems(信号和系统模块) Sinks(接收器模块) Sources(输入源模块)

1、连续模块(Continuous) continuous.mdl Integrator:输入信号积分 Derivative:输入信号微分 State-Space:线性状态空间系统模型 Transfer-Fcn:线性传递函数模型 Zero-Pole:以零极点表示的传递函数模型 Memory:存储上一时刻的状态值 Transport Delay:输入信号延时一个固定时间再输出 Variable Transport Delay:输入信号延时一个可变时间再输出

2、离散模块(Discrete) discrete.mdl Discrete-time Integrator:离散时间积分器 Discrete Filter:IIR与FIR滤波器 Discrete State-Space:离散状态空间系统模型 Discrete Transfer-Fcn:离散传递函数模型 Discrete Zero-Pole:以零极点表示的离散传递函数模型 First-Order Hold:一阶采样和保持器 Zero-Order Hold:零阶采样和保持器 Unit Delay:一个采样周期的延时

3、 Function&Tables(函数和平台模块) function.mdl Fcn:用自定义的函数(表达式)进行运算 MATLAB Fcn:利用matlab的现有函数进行运算 S-Function:调用自编的S函数的程序进行运算 Look-Up Table:建立输入信号的查询表(线性峰值匹配) Look-Up Table(2-D):建立两个输入信号的查询表(线性峰值匹配)

4、 Math(数学模块) math.mdl Sum:加减运算 Product:乘运算 Dot Product:点乘运算 Gain:比例运算 Math Function:包括指数函数、对数函数、求平方、开根号等常用数学函数 Trigonometric Function:三角函数,包括正弦、余弦、正切等 MinMax:最值运算 Abs:取绝对值 Sign:符号函数

Logical Operator:逻辑运算 Relational Operator:关系运算 Complex to Magnitude-Angle:由复数输入转为幅值和相角输出 Magnitude-Angle to Complex:由幅值和相角输入合成复数输出 Complex to Real-Imag:由复数输入转为实部和虚部输出 Real-Imag to Complex:由实部和虚部输入合成复数输出

5、 Nonlinear(非线性模块) nonlinear.mdl Saturation:饱和输出,让输出超过某一值时能够饱和。 Relay:滞环比较器,限制输出值在某一范围内变化。 Switch:开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。 Manual Switch:手动选择开关

6、Signal&Systems(信号和系统模块) sigsys.mdl In1:输入端。 Out1:输出端。 Mux:将多个单一输入转化为一个复合输出。 Demux:将一个复合输入转化为多个单一输出。 Ground:连接到没有连接到的输入端。 Terminator:连接到没有连接到的输出端。 SubSystem:建立新的封装(Mask)功能模块

7、Sinks(接收器模块) sinks.mdl Scope:示波器。 XY Graph:显示二维图形。 To Workspace:将输出写入MATLAB的工作空间。 To File(.mat):将输出写入数据文件。

8、Sources(输入源模块) sources.mdl Constant:常数信号。 Clock:时钟信号。 From Workspace:来自MATLAB的工作空间。 From File(.mat):来自数据文件。 Pulse Generator:脉冲发生器。 Repeating Sequence:重复信号。 Signal Generator:信号发生器,可以产生正弦、方波、锯齿波及随意波。 Sine Wave:正弦波信号。 Step:阶跃波信号。

四、SIMULINK简单模型的建立及模型特点 1、简单模型的建立 (1)建立模型窗口 (2)将功能模块由模块库窗口复制到模型窗口 (3)对模块进行连接,从而构成需要的系统模型 2、模型的特点 在SIMULINK里提供了许多如Scope的接收器模块,这使得用SIMULNK进行仿真具有像做实验一般的图形化显示效果。 SIMULINK的模型具有层次性,通过底层子系统可以构建上层母系统。 SIMULINK提供了对子系统进行封装的功能,用户可以自定义子系统的图标和设置参数对话框。

SIMULINK功能模块的处理 功能模块的基本操作,包括模块的移动、复制、删除、转向、改变大小、模块命名、颜色设定、参数设定、属性设定、模块输入输出信号等。 模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住鼠标左键不放)而放到模型窗口中进行处理。 在模型窗口中,选中模块,则其4个角会出现黑色标记。此时可以对模块进行以下的基本操作。 移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳。 复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。 删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。

转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单Format中选择Flip Block旋转180度,选择Rotate Block顺时针旋转90度。或者直接按Ctrl+F键执行Flip Block,按Ctrl+R键执行Rotate Block。 改变大小:选中模块,对模块出现的4个黑色标记进行拖曳即可。 模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置也可以变换180度,可以用Format菜单中的Flip Name来实现,也可以直接通过鼠标进行拖曳。Hide Name可以隐藏模块名称。 颜色设定: Format菜单中的Foreground Color可以改变模块的前景颜色,Background Color可以改变模块的背景颜色;而模型窗口的颜色可以通过Screen Color来改变。

参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。通过对模块的参数设定,就可以获得需要的功能模块。 属性设定:选中模块,打开Edit菜单的Block Properties可以对模块进行属性设定。包括Description属性、 Priority优先级属性、Tag属性、Open function属性、Attributes format string属性。其中Open function属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数。 模块的输入输出信号:模块处理的信号包括标量信号和向量信号;标量信号是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对应着系统中几条连线的合成。缺省情况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种“智能”的识别功能,能自动进行匹配。某些模块通过对参数的设定,可以使模块输出向量信号。

SIMULINK线的处理 SIMULINK模型的构建是通过用线将各种功能模块进行连接而构成的。用鼠标可以在功能模块的输入与输出端之间直接连线。所画的线可以改变粗细、设定标签,也可以把线折弯、分支。 改变粗细:线所以有粗细是因为线引出的信号可以是标量信号或向量信号,当选中Format菜单下的Wide Vector Lines时,线的粗细会根据线所引出的信号是标量还是向量而改变,如果信号为标量则为细线,若为向量则为粗线。选中Vector Line Widths则可以显示出向量引出线的宽度,即向量信号由多少个单一信号合成。 设定标签:只要在线上双击鼠标,即可输入该线的说明标签。也可以通过选中线,然后打开Edit菜单下的Signal Properties进行设定,其中signal name属性的作用是标明信号的名称,设置这个名称反映在模型上的直接效果就是与该信号有关的端口相连的所有直线附近都会出现写有信号名称的标签。 线的折弯:按住Shift键,再用鼠标在要折弯的线处单击一下,就会出现圆圈,表示折点,利用折点就可以改变线的形状。 线的分支:按住鼠标右键,在需要分支的地方拉出即可以。或者按住Ctrl键,并在要建立分支的地方用鼠标拉出即可。

SIMULINK自定义功能模块 自定义功能模块有两种方法,一种方法是采用Signal&Systems 模块库中的Subsystem功能模块,利用其编辑区设计组合新的功能模块;另一种方法是将现有的多个功能模块组合起来,形成新的功能模块。对于很大的SIMULINK模型,通过自定义功能模块可以简化图形,减少功能模块的个数,有利于模型的分层构建。 一、方法1 将Signal&Systems 模块库中的Subsystem功能模块复制到打开的模型窗口中。 双击Subsystem功能模块,进入自定义功能模块窗口,从而可以利用已有的基本功能模块设计出新的功能模块。 二、方法2 在模型窗口中建立所定义功能模块的子模块。 用鼠标将这些需要组合的功能模块框住,然后选择Edit菜单下的Create Subsystem即可。