当前位置:文档之家› MATLAB Simulink用法

MATLAB Simulink用法

MATLAB Simulink用法
MATLAB Simulink用法

Simulink仿真环境基础学习

Simulink是面向框图的仿真软件。

7.1演示一个Simulink的简单程序

【例7.1】创建一个正弦信号的仿真模型。

步骤如下:

(1) 在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(Simulink Library Browser) 窗口,如图7.1所示。

图7.1 Simulink界面

(2) 单击工具栏上的图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。

(3) 在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。

(4) 用鼠标单击所需要的输入信号源模块“Sine Wave ”(正弦信号),将其拖放到的空白模型窗口“untitled ”,则“Sine Wave ”模块就被添加到untitled 窗口;也可以用鼠标选中“Sine Wave ”模块,单击鼠标右键,在快捷菜单中选择“add to 'untitled'”命令,就可以将“Sine Wave ”模块添加到untitled 窗口,如图7.2所示。

(5) 用同样的方法打开接收模块库“Sinks ”,选择其中的“Scope ”模块(示波器)拖放到“untitled ”窗口中。

(6) 在“untitled ”窗口中,用鼠标指向“Sine Wave ”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope ”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图7.3所示。

(7) 开始仿真,单击“untitled ”模型窗口中“开始仿真”图标

,或者选择菜单“Simulink ”

——“Start ”,则仿真开始。双击“Scope ”模块出现示波器显示屏,可以看到黄色的正弦波形。如图7.4所示。

(8) 保存模型,单击工具栏的图标,将该模型保存

为“Ex0701.mdl ”文件。

图7.3 Simulink 模型窗口

图7.4 示波器窗口

图7.2 Simulink 界面

7.2 Simulink的文件操作和模型窗口

7.2.1 Simulink的文件操作

1. 新建文件

新建仿真模型文件有几种操作:

?在MATLAB的命令窗口选择菜单“File”→“New”→“Model”。

?在图7.1的Simulink模块库浏览器窗口选择菜单“File”→“New”→“Model”,或者

单击工具栏的图标。

?在图7.3的Simulink模型窗口选择菜单“File”→“New”→“Model”,或者单击工具

栏的图标。

2. 打开文件

打开仿真模型文件有几种操作:

?在MATLAB的命令窗口输入不加扩展名的文件名,该文件必须在当前搜索路径中,例如输入“Ex0701”。

?在MATLAB的命令窗口选择菜单“File”→Open…”或者单击工具栏的图标打开文

件。

?在图7.1的Simulink模块库浏览器窗口选择菜单“File”→“Open…”或者单击工具栏

的图标打开“.mdl”文件。

?在图7.3的Simulink模型窗口中选择菜单“File”→“Open…”或者单击工具栏的图标打开文件。

7.2.2 Simulink的模型窗口

模型窗口由菜单、工具栏、模型浏览器窗口、模型框图窗口以及状态栏组成。

1. 状态栏

2. 工具栏

模型窗口工具栏如图7.6所示。

3. 菜单

Simulink 的模型窗口的常用菜单如表7.1所示。

表7.1模型窗口常用菜单表

图7.5 双窗口模型窗口

7.3 模型的创建

7.3.1模块的操作

1. 对象的选定

?选定单个对象

选定对象只要在对象上单击鼠标,被选定的对象的四角处会出现小黑块编辑框。

?选定多个对象

如果选定多个对象,可以按下Shift键,然后再单击所需选定的模块;或者用鼠标拉出矩形虚线框,将所有待选模块框在其中,则矩形框中所有的对象均被选中,如图7.7所示。

图7.7 选定多个对象

?选定所有对象

如果要选定所有对象,可以选择菜单“Edit”→“Select all”。

2. 模块的复制

(1) 不同模型窗口(包括模型库窗口)之间的模块复制

?选定模块,用鼠标将其拖到另一模型窗口。

?选定模块,使用菜单的“Copy”和“Paste”命令。

?选定模块,使用工具栏的“Copy”和“Paste”按钮。

(2) 在同一模型窗口内的复制模块(如图7.8所示)

?选定模块,按下鼠标右键,拖动模块到合适的地方,释放鼠标。

?选定模块,按住Ctrl键,再用鼠标拖动对象到合适的地方,释放鼠标。

?使用菜单和工具栏中的“Copy”和“Paste”按钮。

图7.8 在同一模型窗口复制对象

3. 模块的移动

?在同一模型窗口移动模块

选定需要移动模块,用鼠标将模块拖到合适的地方。

?在不同模型窗之间移动模块

在不同模型窗之间移动模块,在用鼠标移动的同时按下Shift键。

当模块移动时,与之相连的连线也随之移动。

4. 模块的删除

要删除模块,应选定待删除模块,按Delete键;或者用菜单“Edit”→“Clear”或“Cut”;或者用工具栏的“Cut”按钮。

5. 改变模块大小

选定需要改变大小的模块,出现小黑块编辑框后,用鼠标拖动编辑框,可以实现放大或缩小。

6. 模块的翻转

?模块翻转180度

选定模块,选择菜单“Format”→“Flip Block”可以将模块旋转180度,如同7.9中间为翻转180度示波器模块。

?模块翻转90度

选定模块,选择菜单“Format”→“Rotate Block”可以将模块旋转90度,如图7.9右边示波器所示。如果一次翻转不能达到要求,可以多次翻转来实现。

图7.9 翻转模块

7. 模块名的编辑

?修改模块名

单击模块下面或旁边的模块名,出现虚线编辑框就可对模块名进行修改。

?模块名字体设置

选定模块,选择菜单“Format”→“Font”,打开字体对话框设置字体。

?模块名的显示和隐藏

选定模块,选择菜单“Format”→“Hide /Show name”,可以隐藏或显示模块名。

?模块名的翻转

选定模块,选择菜单“Format”→“Flip name”,可以翻转模块名。

7.3.2信号线的操作

1. 模块间连线

先将光标指向一个模块的输出端,待光标变为十字符后,按下鼠标键并拖动,直到另一模块的输入端。

2. 信号线的分支和折曲

(1) 分支的产生

将光标指向信号线的分支点上,按鼠标右键,光标变为十字符,拖动鼠标直到分支线的终点,释放鼠标;或者按住Ctrl键,同时按下鼠标左键拖动鼠标到分支线的终点,如图7.10所示。

图7.10 信号线的分支

(2) 信号线的折线

选中已存在的信号线,将光标指向折点处,按住Shift键,同时按下鼠标左键,当光标变成小圆圈时,用鼠标拖动小圆圈将折点拉至合适处,释放鼠标,如图7.11所示。

图7.11 信号线的折线

3. 信号线文本注释(label)

?添加文本注释

双击需要添加文本注释的信号线,则出现一个空的文字填写框,在其中输入文本。

?修改文本注释

单击需要修改的文本注释,出现虚线编辑框即可修改文本。

?移动文本注释

单击标识,出现编辑框后,就可以移动编辑框。

?复制文本注释

单击需要复制的文本注释,按下Ctrl键同时移动文本注释,或者用菜单和工具栏的复制操作。

4. 在信号线中插入模块

如果模块只有一个输入端口和一个输出端口,则该模块可以直接被插入到一条信号线中。

7.3.3给模型添加文本注释

(1) 添加模型的文本注释

在需要当作注释区的中心位置,双击鼠标左键,就会出现编辑框,在编辑框中就可以输入文字注释。

(2) 注释的移动

在注释文字处单击鼠标左键,当出现文本编辑框后,用鼠标就可以拖动该文本编辑框。

7.4 Simulink的基本模块

7.4.1基本模块

Simulink的基本模块包括9个子模块库。

1.输入信号源模块库(Sources)

输入信号源模块是用来向模型提供输入信号。常用的输入信号源模块源如表7.2所示。

表7.2 常用的输入信号源模块表

恒值常数,可设置数值

阶跃信号

线性增加或减小的信号

正弦波输出

Signal Generator 信号发生器,可以产生正弦、方波、锯齿波和随机波信号

从文件获取数据

From Workspace 从当前工作空间定义的矩阵读数据

仿真时钟,输出每个仿真步点的时间

输入模块

2. 接收模块库(Sinks)

接收模块是用来接收模块信号的,常用的接收模块如表7.3所示。

表7.3 常用的接收模块表

示波器,显示实时信号

实时数值显示

显示

把数据保存为文件

把数据写成矩阵输出到工作空间

Stop Simulation 输入不为零时终止仿真,

输出模块

3. 连续系统模块库(Continuous)

连续系统模块是构成连续系统的环节,常用的连续系统模块如表7.4所示。

表7.4 常用的连续系统模块表

积分环节

微分环节

状态方程模型

传递函数模型

零—极点增益模型

把输入信号按给定的时间做延时

4. 离散系统模块库(Discrete)

离散系统模块是用来构成离散系统的环节,常用的离散系统模块如表7.5所示。

表7.5 常用的离散系统模块表

Discrete Transfer Fcn 离散传递函数模型

离散零极点增益模型

离散状态方程模型

离散滤波器

零阶保持器

一阶保持器

采样保持,延迟一个周期

7.4.2常用模块的参数和属性设置

1. 模块参数设置

(1) 正弦信号源(Sine Wave)

双击正弦信号源模块,会出现如图7.13所示的

参数设置对话框。

图7.13的上部分为参数说明,仔细阅读可以帮

助用户设置参数。Sine type为正弦类型,包括

Time-based和Sample-based;Amplitude为正弦幅值;

Bias为幅值偏移值;Frequency为正弦频率;Phrase

为初始相角;Sample time为采样时间。

(2) 阶跃信号源(Step)

阶跃信号模块是输入信号源,其模块参数对话

框如图7.14所示。

其中:Step time为阶跃信号的变化时刻,initial

value为初始值,Final value为终止值,Sample time

为采样时间。

图7.13 模块的参数设置

图7.14 阶跃信号模块的参数

(3) 从工作空间获取数据(From workspace)

从工作空间获取数据模块的输入信号源为工作空间。

【例7.2】在工作空间计算变量t和y,将其运算的结果作为系统的输入。

t=0:0.1:10;

y=sin(t);

t=t';

y=y';

然后将“

From Workspace ”模块的参数设置对话框打开,如图7.15(a)所示,在“Data ”栏填写“[t,y]”,单击“OK ”按钮完成。则在模型窗口中该模块就显示为图7.15(b)。用示波器作为接收模块,可以查看输出波形为正弦波。

“Data ”的输入有几种,可以是矩阵、包含时间数据的结构数组。“From Workspace ”模块的接收模块必须有输入端口,“Data ”矩阵的列数应等于输入端口的个数+1,第一列自动当成时间向量,后面几列依次对应各端口。

t=0:0.1:2*pi;

y=sin(t); y1=[t;y];

save Ex0702 y1

%保存在“Ex0702.mat ”文件中

(4) 从文件获取数据(From file)

从文件获取数据模块是指从mat 数据文件中获取数据为系统的输入。 将【例7.2】中的数据保存到.mat 文件: t=0:0.1:2*pi; y=sin(t); y1=[t;y];

save Ex0702 y1 %保存在“Ex0702.mat ”文件中

然后将“From File ”模块的参数设置对话框打开,如图7.16所示,在“File name ”栏填写“Ex0702.mat ”,单击“OK ”按钮完成。用示波器作为接收模块,可以查看输出波形。

(5) 传递函数(Transfer function)

传递函数模块是用来构成连续系统结构的

图7.15 (a) 模块参数设置 (b) 从工作空间获取数据模块

图7.16 From File 参数设置

图7.18

模块,其模块参数对话框如图7.17所示。

在上图中设置“Denominator”为“[1 1.414 1]”,则在模型窗口中显示为如图7.18所示。

(6) 示波器(Scope)

示波器模块是用来接收输入信号并实时显示信号波形曲线,示波器窗口的工具栏可以调整显示的波形,显示正弦信号的示波器如图7.19所示。

图7.19 示波器窗口

2. 模块属性设置

每个模块的属性对话框的内容都相同,如图7.22所示。

图7.22 模块的属性设置

(1) 说明(Description)

对模块在模型中用法的注释。

(2) 优先级(Priority)

规定该模块在模型中相对于其它模块执行的优先顺序。 (3) 标记(Tag)

用户为模块添加的文本格式标记。 (4) 调用函数(Open function)

当用户双击该模块时调用的MATLAB 函数。 (5) 属性格式字符串(Attributes format string) 指定在该模块的图标下显示模块的哪个参数和格式。

7.5复杂系统的仿真与分析

Simulink 的模型实际上是定义了仿真系统的微分或差分方程组,而仿真则是用数值解算法来求解方程。

7.5.1仿真的设置

在模型窗口选择菜单“Simulation ” “Simulation parameters …”,则会打开参数设置对话框,如图7.24所示。

1. Solver 页的参数设置 (1) 仿真的起始和结束时间 仿真的起始时间(Start time) 仿真的结束时间(Stop time) (2) 仿真步长

仿真的过程一般是求解微分方程组,“Solve options ”的内容是针对解微分方程组的设置。 (3) 仿真解法

Type 的右边:设置仿真解法的具体算法类型。 (4) 输出模式

根据需要选择输出模式(Output options),可以达到不同的输出效果。

2. Workspace I/O(工作空间输入输出)页的设置

图7.23 模块的属性格式字符串

图7.24 Solver 参数设置

如图7.25所示,可以设置Simulink 从工作空间输入数据、初始化状态模块,也可以把仿真的结果、状态模块数据保存到当前工作空间。

(1) 从工作空间装载数据(Load from workspace) (2) 保存数据到工作空间(Save to workspace) ? Time 栏

勾选Time 栏后,模型将把(时间)变量以在右边空白栏填写的变量名(默认名为tout)存放于工作空间。

? States 栏

勾选States 栏后,模型将把其状态变量在右边空白栏填写的变量名(默认名为xout)存放于工作空间。

? Output 栏

如果模型窗口中使用输出模块“Out ”,那么就必须勾选Output 栏,并填写在工作空间中的输出数据变量名(默认名为yout)。

? Final state 栏

Final state 栏的勾选,将向工作空间以在右边空白栏填写的名称(默认名为xFinal),存放最终状态值。

(3) 变量存放选项(Save options)

Save options 必须与Save to workspace 配合使用。

7.5.2连续系统仿真

【例7.3】建立二阶系统的仿真模型。 方法一:

输入信号源使用阶跃信号,系统使用开环传递函数s

6.0s 12

,接受模块使用示波器来构成

模型。

(1) 在“Sources ”模块库选择“Step ”模块,在“Continuous ”模块库选择“Transfer Fcn ”模块,在“Math Operations ”模块库选择“Sum ”模块,在“Sinks ”模块库选择“Scope ”。

(2) 连接各模块,从信号线引出分支点,构成闭环系统。

图7.25 Workspace I/O 参数设置

(3) 设置模块参数,打开“Sum ”模块参数设置对话框,如图7.26所示。将“Icon shape ”设置为“rectangular ”,将“List of signs ”设置为“|+-”,其中“|”表示上面的入口为空。

“Transfer Fcn ”模块的参数设置对话框中,将分母多项式“Denominator ”设置为“[1 0.6 0]”。

将“Step ”模块的参数设置对话框中,将“Step time ”修改为0。 (4) 添加信号线文本注释

双击信号线,出现编辑框后,就输入文本。则模型如图7.27所示。

(5) 仿真并分析

单击工具栏的“Start simulation ”按钮,开始仿真,在示波器上就显示出阶跃响应。 在Simulink 模型窗口,选择菜单“Simulation ”——“Simulation parameters …”命令,在“Solver ”页将“Stop time ”设置为15,然后单击“Start simulation ”按钮,示波器显示的就到15秒结束。

打开示波器的Y 坐标设置对话框,将Y 坐标的“Y-min ”改为0,“Y-max ”改为2,将“Title ”设置为“二阶系统时域响应”,则示波器如图7.28所示。

方法二:

7.27 二阶系统模型

7.28 示波器显示

图7.26 Sum 参数设置

(1) 系统使用积分模块(Integrator)和零极点模块(zero-pole)串联,反馈使用“Math Operations ”模块库中的“Gain ”模块构成反馈环的增益为-1。

(2) 连接模块,由于“Gain ”模块在反馈环中,因此需要使用“Flip Block ”翻转该模块。 (3) 设置模块参数,将“zero-pole ”模块参数对话框中的“Zeros ”栏改为“[]”,将“Poles ”栏改为[-0.6]。

将“Gain ”模块的“Gain ”参数改为-1。模型如图7.29所示。

如果将示波器换成“Sinks ”模块库中的“Out ”模块;然后在仿真参数设置对话

框的“Workspace I/O ” 页(工作空间输入输出),将“Time ”和“Output ”栏勾选,并分别设置保存在工作空间的时间量和输出变量为“tout ”和“yout ”。仿真后在工作空间就可以使用这两个变量来绘制曲线,如图7.30所示:

plot(tout,yout)

7.5.3离散系统仿真

【例7.4】控制部分为离散环节,被控对象为两个连续环节,其中一个有反馈环,反馈环引入了零阶保持器,输入为阶跃信号。

创建模型并仿真:

(1) 选择一个“Step ”模块,选择两个“Transfer Fcn ”模块,选择两个“Sum ”模块,选择两个“Scope ”模块,选择一个“Gain ”模块,在“Discrete ”模块库选择一个“Discrete Filter ”和一个“Zero-Order Hold ”模块。

(2) 连接模块,将反馈环的“Gain ”模块和“Zero-Order Hold ”模块翻转。

(3) 设置参数,“Discrete Filter ”和“Zero-Order Hold ”模块的“Sample time ”都设置为0.1s 。

7.29 二阶系统模型

图7.30

plot 绘制的时域响应波形

(4) 添加文本注释,系统框图如图7.31所示。

(5) 设置颜色,Simulink 为帮助用户方便地跟踪不同采样频率的运作范围和信号流向,可以采用不同的颜色表示不同的采样频率,选择菜单“Format ”→“Sample time color ”,就可以看到不同采样频率的模块颜色不同。

(6) 开始仿真,在Simulink 模型窗口,选择菜单“Simulation ”→“Simulation parameters …”,将“Max step size ”设置为0.05s ,则两个示波器“Scope ”和“Scope1”的显示如图7.32所示。

可以看出当T=Tk=0.1时系统的输出响应较平稳。

(7) 修改参数,将“Discrete Filter ”模块的“Sample time ”设置为0.6s ,“Zero-Order Hold ”模块的“Sample time ”不变;选择菜单“Edit ”→“Update diagram ”命令修改颜色,就可以看到“Discrete Filter ”模块的颜色变化了;然后开始仿真,则示波器显示如图7.33所示。

可以看出当T=0.6而Tk=0.1时,系统出现振荡。

图7.32 T=Tk=0.1 (a) d(k)示波器显示 (b) y(t)示波器显示

图7.33 T=0.6 Tk=0.1 (a) d(k)示波器显示 (b) y(t)示波器显示

图7.31离散系统框图

(8) 修改参数,将“Discrete Filter ” 和“Zero-Order Hold ”模块的“Sample time ”都设置为0.6s ,更新框图颜色,开始仿真,则示波器显示如图7.34所示。

当T=Tk=0.6时,系统出现强烈的振荡。

7.5.4仿真结构参数化

当系统参数需要经常改变或由函数得出时,可以使用变量来作为模块的参数。 【例7.5】将【例7.4】中的模块结构参数用变量表示,结构图如图7.35所示。

将参数设置放在Ex0705_1.m 文件中:

% Ex0705_1 参数设置 T=0.1; %控制环节采样时间 Tk=0.6; %零阶保持器采样时间 k=0.03; %Gain 增益

zt1=1.44;zt2=-1.26;zt3=1;zt4=-1; tf11=6.7;tf12=0.1;tf13=1; tf21=1;tf22=3;tf23=1

在MATLAB

工作空间运行该文件: Ex0705_1

图7.34 T=0.6 Tk=0.1 (a) d(k)示波器显示 (b) y(t)示波器显示

图7.35离散系统框图

7.6子系统与封装

7.6.1建立子系统

子系统类似于编程语言中的子函数。建立子系统有两种方法:在模型中新建子系统和在已有的子系统基础上建立。

1. 在已建立的模型中新建子系统

【例7.6】打开【例7.4】建立的模型,将控制对象中的第一个连续环节中的反馈环建立为一个子系统。

在模型窗口中,将控制对象中的第一个连续环节的反馈环用鼠标拖出的虚线框框住,选择菜单“Edit ” “Create subsystem ”,则系统如图7.36所示。

双击子系统,则会出现“Subsystem ”模型窗口,如图7.37所示。可以看到子系统模型除了用鼠标框住的两个环节,还自动添加了一个输入模块“In1”和一个输出模块“Out1”。

2. 在已有的子系统基础上建立

【例7.7】在【例7.6】的基础上建立新子系统,将【例7.6】模型的控制对象中的第一个对象环节整个作为一个子系统。

将图7.36中的所有对象都复制到新的空白模型窗口中,双击打开子系统“Subsystem ”,则出现如图7.37所示的子系统模型窗口,添加模型构成反馈环形成闭环系统,如图7.38所示。

图7.36 子系统建立

然后将系统模型修改为如图7.39所示的系统。

创建的子系统可以打开和修改,但不能再解除子系统设置。

7.6.2条件执行子系统

1. 使能子系统(Enabled Subsystem)

【例7.8】建立一个用使能子系统控制正弦信号为半波整流信号的模型。

模型由正弦信号“Sine wave ”为输入信号源,示波器“Scope ”为接收模块,使能子系统“Enabled Subsystem ”为控制模块,

图7.39 包含子系统的模型

图7.38 子系统模块窗口

图7.37 子系统模型窗口

图7.41 (a) “Enable ”模块参数设置

(b) “

Out1”模块参数设置

MATLAB经典数学建模教程

第 1 节Matlab 基本知识 一、Matlab 的主要功能 Matlab是一种功能非常强大的工程语言,诞生于20世纪70年代,1984年正式推向市场。2002年8月,Matlab6.5开始发布。是进行科学研究和产品开发必不可少的工具。 ●数值和符号计算 矩阵(数组)的四则运算(Matrix+Laboratory)、数值差分、导数、积分、求解微分方程、微分方程的优化等 ●数字图像、数字信号处理 ●工程和科学绘图 ●控制系统设计 ●财务工程 ●建模、仿真功能 二、Matlab 的界面 1.命令窗口(Command Window): Matlab各种操作命令都是由命令窗口开始,用户可以在命令窗口中输入Matlab命令,实现其相应的功能。此命令窗口主要包括文本的编辑区域和菜单栏(如:四则运算;“;”禁止显示变量的值;↑↓遍历以前的命令)。在命令窗口空白区域单击鼠标右键,打开快捷菜单,各项命令功能如下: Evaluate Selection :打开所选文本对应的表达式的值。 Open Selection :打开文本所对应的MatLab文件。 Cut :剪切编辑命令。 Paste :粘贴编辑命令。 2. M-文件编辑/调试(Editor/Debugger)窗口 Matlab Editor/Debugger窗口是一个集编辑与调试两种功能于一体的工具环境。 M-文件(函数文件) ●什么是M-文件:它是一种和Dos环境中的批处理文件相似的脚本文件,对于简单问题, 直接输入命令即可,但对于复杂的问题和需要反复使用的则需做成M-文件(Script File)。 ●创建M-文件的方法: Matlab命令窗的File/New/M-file。 在Matlab命令窗口运行edit。 ●M-文件的扩展名:*.m ●执行M-文件:F5 ●M文件的调试 选择Debug菜单,其各项命令功能如下: Step :逐步执行程序。 Step in :进入子程序中逐步执行调试程序。

MATLAB及在数学建模中的应用

第1讲MATLAB及 在数学建模中的应用 ? MatLab简介及基本运算?常用计算方法 ?应用实例

一、 MatLab简介及基本运算 1.1 MatLab简介 1.2 MatLab界面 1.3 MatLab基本数学运算 1.4 MatLab绘图

1.1 MatLab简介?MATLAB名字由MATrix和 LABoratory 两词组成。20世纪七十年代后期, 美国新墨西哥大学计算机科学系主任Cleve Moler教授为减轻学生编程负担,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。

?经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。

?1997年春,MATLAB5.0版问世,紧接着是5.1、5.2、5.3、6.0、6.1、6.5、7.0版。现今的MATLAB拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。 ?20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。

?MATLAB具有用法简易、可灵活运用、程式结构强又兼具延展性。以下为其几个特色: ①可靠的数值运算和符号计算。在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函 数可使用。 ②强大的绘图功能。 MATLAB可以绘制各种图形,包括二维和三维图形。 ③简单易学的语言体系。 ④为数众多的应用工具箱。

MATLAB命令画出simulink示波器图形

毕业论文答辩已经结束很长时间了,现在总结一下我在做毕业论文时的用MATLAB命令画出simulink示波器图形的一点方法,我也是MATLAB初学者,所用方法不算高明方法,并且这些方法在论坛应该都能找到,请大家见谅。 第一步,将你的示波器的输出曲线以矩阵形式映射到MATLAB的工作空间内。 如图1所示,双击示波器后选择parameters目录下的Data history,将Save data to workspace勾上,Format选择Array,Variable name即你输入至工作空间的矩阵名称,这里我取名aa。在这之后运行一次仿真,那么你就可以在MATLAB的工作空间里看到你示波器输出曲线的矩阵aa。如图2所示。 第二步,用plot函数画出曲线 双击曲线矩阵aa,将可以看到详细情况,我这里的aa矩阵是一个1034行,3 列的矩阵,观察这个矩阵即可以发现,这个矩阵的第一列是仿真时间,而由于我仿真时示波器内输出的是两条曲线,所以第二列和第三列即分别代表了这2条曲线。同时大家要注意,在simulink中我们有时往往在示波器中混合输出曲线,那么就要在示波器前加一个MUX混合模块,因此示波器内曲线映射到的工作空间的矩阵是和你的MUX的输入端数有关,如果你设置了3个MUX输入端,而实际上你只使用了2个,那么曲线矩阵仍然会有4列,并且其中一列是零,而不是3列。 理解曲线矩阵的原理之后,我们就可以用plot函数画出示波器中显示的图形了。 curve=plot(aa(:,1),aa(:,2),aa(:,1),aa(:,3),'--r') %aa(:,1)表示取aa的第一列,仿真时间 %aa(:,2)表示取aa的第二列,示波器的输入一 %aa(:,3)表示取aa的第三列,示波器的输入二 %--r表示曲线2显示的形式和颜色,这里是(red) set(curve(1),'linewidth',3) %设置曲线1的粗细 set(curve(2),'linewidth',3) %设置曲线2的粗细 legend('Fuzzy','PID') %曲线名称标注 xlabel('仿真时间(s)') %X坐标轴名称标注 ylabel('幅值') %Y轴坐标轴标注 title('Fuzzy Control VS PID') %所画图的名称 grid on %添加网格 运行上述命令后即可以看到用MATLAB命令画出的图形了,你可以在图形出来之后继续进行编辑。

Matlab与数学建模综合练习(1)

《Matlab与数学建模》综合练习 1.按顺序进行如下的操作: (1)产生一个5阶魔术方阵A;并计算A'与A-1(即inv(A)); >> A=magic(5) A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> B=A' B = 17 23 4 10 11 24 5 6 12 18 1 7 13 19 25 8 14 20 21 2 15 16 22 3 9 >> inv(A) ans = -77/15600 133/2600 -23/650 3/2600 53/15600 89/2063 -97/2600 -3/650 33/2600 23/15600 -59/1950 1/325 1/325 1/325 71/1950 73/15600 -17/2600 7/650 113/2600 -577/15600 43/15600 1/200 27/650 -9/200 98/8837 (2)求A的特征值; >> eig(A) ans = 65 -2383/112 -3846/293 2383/112 3846/293

(3)计算A 的各列的总和与平均值; (4)计算A 的各行的总和与平均值; (5)若b=[1 2 3 4 5] ',求方程组 Ax=b 的解; (6)验证你的结论的正确性. 2.产生行向量S =[1.0, 1.2, 1.4, …, 20],并计算S * S' 与 S' * S ,你有何“发现”? 3.设A=???? ??4321;B=??? ? ??5055;求C=A * B – B * A ,你有何“发现”? 4.若设矩阵A=???? ??4321;B=??? ? ??5005;求C=A * B – B * A ,你又有何“发现”? 5.如何建立如下的矩阵(命令方式和程序方式)? (1)10 10200400020040002004???????? ?? ; (2)1010010101001010100??? ? ? ? ? ??? ;>> a=ones(10,1) a = 1 1 1 1 1 1 1 1 1 1 >> A=0*a A = 0 0 0 0 0 0 0

MATLAB编程与SIMULINK仿真简介

348 数字信号处理 MATLAB编程与SIMULINK仿真简介 A.1 MATLAB编程基础 MATLAB6.5提供了丰富的编程语句结构和实用函数,MATLAB产品组是支持你从概念设计、算法开发、建模仿真到实时实现的理想的集成环境。无论是进行科学研究还是产品开发,MATLAB产品族都是必不可少的工具。这里介绍一些常用的编程技巧和方法,以便同学们能尽快地启动起来,更好地应用MATLAB。 1. MATLAB文件的编写与调试环境 M文件的编写与调试在MATLAB Editor/Debugger下进行(图B1-1),这个集成环境可以方便地进行新建、修改、存储,选择Debug菜单中的Run命令就可以运行程序,运行结果显示在MATLAB Command Window 中。程序的调试应用Debug菜单就可以进行调试,其他高级语言中的Set/Clear Breakpoint、Single Step、Stop if error等选项都有,可以方便的调试程序。 图B1-1 M文件的编写与调试窗口 在MATLAB Editror/Debugger下按照MATLAB编程的规则键入相关的语句并存盘,就可以得到一个后缀为.m的文本文件。

2. MATLAB脚本文件和函数文件 在MATLAB中,无论是问题的提出还是结果的表达都采用你习惯的数学描述方法,而不需要用传统的编程语言进行处理。应用MATLAB编写出来的程序可以是M脚本文件(Script 。file),也可以是M函数文件(Function file),这些文件都由纯ASCII字符构成,其后缀m MATLAB下 M脚本文件是一串按用户意图排列而成的(包括控制流向指令在内)MATLAB 指令集合,可以直接执行,用户只需在Command Window中MATLAB提示符>>后键入文件名即可执行。脚本文件运行后所产生的所有变量都驻留在MATLAB的基本工作空间(Base workspace)中,只要用户不加以清除且MATLAB指令窗不关闭,则这些变量将一直保存在基本工作空间。与脚本文件不同,函数文件犹如一个“黑箱”,从外界只看到传给它的输入量和送出来的计算结果,内部运作是看不见的,并且函数文件的第一行总是以“function”引导的“函数申明行”。M函数文件必须由其它的语句来调用,在一般情况下用户不能单独键入其文件名来运行一个M函数。 MATLAB下的大多数的应用程序由M函数文件形式给出,例如求取系统特征方程的根的root ()函数和绘制零极点图的pzmap ()函数等。除了M函数文件之外,MATLAB还提供了大量的底层函数(内部),这类文件是不可读的,与M函数一起统称为函数。 3. M文件的一般结构 从结构上看脚本文件只是比函数文件少一个“函数申明行”,所以脚本文件和函数文件除第一行不同外,其余的结构都是一样的。 典型M函数文件的基本结构可由以下几部分构成: (1)函数申明行(Function declaration line),位于函数文件的首行,以MATLAB 关键字function 开头,函数名以及函数的输入输出宗量都在这一行中定义; (2)H1行(The first help text line):紧随函数申明行之后以%开头的第一行注释行。H1行包括大写体的函数名和运用关键词简要描述的函数功能,该行供lookfor关键词查询和help在线帮助查询使用; (3)在线帮助文本(Help text)区:H1行及其之后的连续以%开头的第一行的所有注释行构成在线帮助文本; (4)编写和修改记录:标志编写及修改该M文件的作者、日期,便于档案管理; (5)函数体(Function body):该部分由实现M函数功能的MATLAB指令组成。它接收输入宗量,进行程序流程控制,得到输出宗量。从运算角度看“函数申明行”和“函数体”两部分是构成M函数文件所必不可少的。 函数文件(Function file)由function()语句引导,其基本格式为: function 返回变量名=函数名(输入变量列表) 注释说明语句段 函数体语句 在编制程序的过程中输入和返回的变量分别由nargin和nargout两个MATLAB的保留参数给出,返回变量要多于1个,应该用方括号括起来,输入变量用逗号隔开。注释语句

Matlab中的Simulink和SimMechanics做仿真

这里我们利用Matlab中的Simulink和SimMechanics做仿真,那么先来看看相关的资料。 SimMechanics ——机械系统建模和仿真 SimMechanics 扩展Simscape? 在三维机械系统建模的能力。用户可以不进行方程编程,而是借助该多刚体仿真工具搭建模型,这个模型可以由刚体、铰链、约束以及外力组成。自动化3-D动画生成工具可做到仿真的可视化。用户也可通过从CAD系统中直接导入模型的质量、惯量、约束以及三维几何结构。Real-Time Workshop可以对SimMchanics模型进行自动化C代码生成,并在硬件在回路仿真过程中可以使用生成的代码而不是硬件原型测试嵌入式控制器。 SimMechanics可以用于开发悬架、机器手臂、外科医疗设备、起落架和大量的其它机械系统。用户也可以在SimMechanics环境下集成其它的MathWorks物理建模工具,这样做可以实现更加复杂跨领域的物理建模。 特点: ?提供了三维刚体机械系统的建模环境 ?包含了一系列分析机械运动和设计机械元件尺寸的仿真技术 ?三维刚体可视化仿真 ?SimMechanics Link utility,提供Pro/ENGINEER 和SolidWorks CAD平台的接口并且也提供了API函数和其它CAD平台的接口

?能够把模型转化为C代码(使用Real-Time Workshop) ?由于集成在Simulink环境中,因此可以建立高精度、非线性的模型以支持控制系统的开发和测试。 强大功能: 搭建机械系统模型 使用SimMechanics用户仅需要收集物理系统信息即可建立三维机械系统模型。使用刚体、坐标系、铰链和作用力元素定义和其它Simulink模型直接相连的部分。这个过程可以重用Simulink模型以及扩展了SimMechanics工具的能力。用户还可把Simulink模型和SimMechnics模型集成为一个模块,并可封装成可在其它模型中复用的子系统。 机械系统建模仿真和分析 SimMechanics包含如下子系统: ?使用Simulink查表模块和SimMechanics传感器和作动器定义的非线性的弹性单元 ?用来定义航空器件压力分布的空气动力学拖曳模块,例如副翼和方向舵 ?车辆悬架系统,例如防侧翻机械装置和控制器 ?轮胎模型

数学建模matlab例题参考及练习

数学实验与数学建模 实验报告 学院: 专业班级: 姓名: 学号: 完成时间:年月日

承 诺 书 本人承诺所呈交的数学实验与数学建模作业都是本人通过学习自行进行编程独立完成,所有结果都通过上机验证,无转载或抄袭他人,也未经他人转载或抄袭。若承诺不实,本人愿意承担一切责任。 承诺人: 年 月 日 数学实验学习体会 (每个人必须要写字数1200字以上,占总成绩的20%) 练习1 一元函数的图形 1. 画出x y arcsin =的图象. 2. 画出x y sec =在],0[π之间的图象. 3. 在同一坐标系中画出x y =,2x y =,3 x y = ,3x y =,x y =的图象. 4. 画出3 2 3 2)1()1()(x x x f + +-=的图象,并根据图象特点指出函数)(x f 的奇偶性. 5. 画出)2ln(1++=x y 及其反函数的图象. 6. 画出3 21+=x y 及其反函数的图象.

练习2 函数极限 1.计算下列函数的极限. (1) x x x 4 cos 1 2 sin 1 lim 4 - + π → . 程序: sym x; f=(1+sin(2*x))/(1-cos(4*x)); limit(f,x,pi/4) 运行结果: lx21 ans = 1 (2). 程序: sym x; f=(1+cos(x))^(3*sec(x)); limit(f,x,pi/2) 运行结果: lx22 ans = exp(3) (3) 2 2 ) 2 ( sin ln lim x x x - π π → . 程序: sym x; f=log(sin(x))/(pi-2*x)^2; limit(f,x,pi/2) 运行结果: lx23 ans = -1/8 (4) 2 1 2 lim x x e x →. 程序: x x x sec 3 2 ) cos 1( lim+ π →

matlabsimulink初级教程

S i m u l i n k仿真环境基础学习Simulink是面向框图的仿真软件。 7.1演示一个Simulink的简单程序 【例7.1】创建一个正弦信号的仿真模型。 步骤如下: (1)在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(SimulinkLibraryBrowser)窗口,如图7.1所示。

图7.1Simulink界面 (2)单击工具栏上的图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。 (3)在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。 (4)用鼠标单击所需要的输入信号源模块“SineWave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“SineWave”模块就被添加到untitled窗口;也可以用鼠标选中“SineWave”模块,单击鼠标右键,在快捷菜单中选择“addto'untitled'”命令,就可以将“SineWave”模块添加到untitled窗口,如图7.2所示。

(5) Scope ”模块(示波器)拖放到“untitled ”窗口中。 (6)在“untitled ”窗口中,用鼠标指向“SineWave ”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope ”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图7.3所示。 (7)开始仿真,单击“untitled ”模型窗口中“开始仿真”图标 ,或者选择菜单“Simulink ”——“Start ”,则仿真开始。双击“Scope ” 模块出现示波器显示屏,可以看到黄色的正弦波形。如图7.4所示。 图7.2Simulink 界面

matlab-simulink 初级教程

Simulink仿真环境基础学习 Simulink是面向框图的仿真软件。 7.1演示一个Simulink的简单程序 【例7.1】创建一个正弦信号的仿真模型。 步骤如下: (1) 在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(Simulink Library Browser) 窗口,如图7.1所示。

(2) 单击工具栏上的图标或选择菜单“File ”——“New ”——“Model ”,新建一个名为“untitled ”的空白模型窗口。 (3) 在上图的右侧子模块窗口中,单击“Source ”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink 下的Source 子模块库,便可看到各种输入源模块。 (4) 用鼠标单击所需要的输入信号源模块“Sine Wave ”(正弦信号),将其拖放到的空白模型窗口“untitled ”,则“Sine Wave ”模块就被添加到untitled 窗口;也可以用鼠标选中“Sine Wave ”模块,单击鼠标右键,在快捷菜单中选择“add to 'untitled'”命令,就可以将“Sine Wave ”模块添加到untitled 窗口,如图7.2所示。 图7.1 Simulink 界面

(5) 用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器)拖放到“untitled”窗口中。 (6) 在“untitled”窗口中,用鼠标指向“Sine Wave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图7.3所示。 (7) 开始仿真,单击“untitled ”模型窗口中“开始仿真”图标,或者选择菜单“Simulink”——“Start”,则仿真开始。双击“Scope”模块出现示波器显示屏, 可以看到黄色的正弦波形。如图7.4所示。 图7.2 Simulink界面

matlab在数学建模中的应用

Matlab在数学建模中的应用 数学建模是通过对实际问题的抽象和简化,引入一些数学符号、变量和参数,用数学语言和方法建立变量参数间的内在关系,得出一个可以近似刻画实际问题的数学模型,进而对其进行求解、模拟、分析检验的过程。它大致分为模型准备、模型假设、模型构成、模型求解、模型分析、模型检验及应用等步骤。这一过程往往需要对大量的数据进行分析、处理、加工,建立和求解复杂的数学模型,这些都是手工计算难以完成的,往往在计算机上实现。在目前用于数学建模的软件中,matlab 强大的数值计算、绘图以及多样化的工具箱功能,能够快捷、高效地解决数学建模所涉及的众多领域的问题,倍受数学建模者的青睐。 1 Matlab在数学建模中的应用 下面将联系数学建模的几个环节,结合部分实例,介绍matlab 在数学建模中的应用。 1.1 模型准备阶段 模型准备阶段往往需要对问题中的给出的大量数据或图表等进行分析,此时matlab的数据处理功能以及绘图功能都能得到很好的应用。 1.1.1 确定变量间关系 例1 已知某地连续20年的实际投资额、国民生产总值、物价指数的统计数据(见表),由这些数据建立一个投资额模型,根据对未来国民生产总值及物价指数的估计,预测未来的投资额。

表1 实际投资额、国民生产总值、物价指数的统计表 记该地区第t年的投资为z(t),国民生产总值为x(t),物价指数为y(t)。 赋值: z=[90.9 97.4 113.5 125.7 122.8 133.3 149.3 144.2 166.4 195 229.8 228.7 206.1 257.9 324.1 386.6 423 401.9 474.9 424.5]' x=[596.7 637.7 691.1 756 799 873.4 944 992.7 1077.6 1185.9 1326.4 1434.2 1549.2 1718 1918.3 2163.9 2417.8 2631.6 2954.7 3073]' y=[0.7167 0.7277 0.7436 0.7676 0.7906 0.8254 0.8679 0.9145 0.9601 1 1.0575 1.1508 1.2579 1.3234 1.4005 1.5042 1.6342 1.7842 1.9514 2.0688]' 先观察x与z之间,y与z之间的散点图 plot(x,z,'*') plot(y,z,'*') 由散点图可以看出,投资额和国民生产总值与物价指数都近似呈

数学实验与数学建模(matlab在建模中的应用)

数学实验与数学建模 学习目标 1.掌握利用Matlab软件进行了相关的数学运算的方法. 2.以软件辅助来完成数学实验. 3.了解数学建模思想方法,能够对一些简单问题建立数学模型求解分析. 教学要求 Matlab是Mathworks公司推出的用于数值计算的交互式软件系统,具有强大的数值分析、矩阵运算、信号处理、图形显示和建模仿真功能. Matlab是“Matrix Laboratory”的缩写,意思是“矩阵实验室”,其强大的数据处理能力和丰富的工具箱使它的编程极为简单,因此,它成为科学家和工程技术人员解决实际问题的首选计算工具软件。 本章的第一节主要介绍Matlab软件的简单使用方法,从第二节到第六节在讲解Matlab 用于解决高等数学和线性代数中的相关计算的函数基础上, 通过一些简单的数学实验例题,让学生体会如何用Matlab辅助解决数学问题. 最后,通过一些与线性代数相关的数学建模实例,让学生掌握数学建模的简单方法,学会利用Matlab软件辅助解决实际问题,以培养学生良好的数学意识和数学素质. 6.1 Matlab环境及使用方法 6.1.1 Matlab窗口管理 Matlab启动后显示三个窗口,如图6.1所示。左上窗口为工作区间窗口,显示用户定义的变量及其属性类型及变量长度。工作区间窗口也可显示为当前目录窗口,显示Matlab 所使用的当前目录及该目录下的全部文件名。左下窗口为历史窗口,显示每个工作周期(指Matlab启动至退出的工作时间间隔)在命令窗口输入的全部命令,这些命令还可重新获取应用。右侧窗口为Matlab命令窗口,可在里面输入相关运算命令,完成相应计算。三个窗口中的记录除非通过Edit菜单下的清除操作,否则将一直保存。

matlab数学建模实例

第四周 3. 中的三个根。 ,在求8] [0,041.76938.7911.1-)(2 3=-+=x x x x f function y=mj() for x0=0:0.01:8 x1=x0^3-11.1*x0^2+38.79*x0-41.769; if (abs(x1)<1.0e-8) x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(ε分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20; k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1; end x1 k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0); k=1; while (abs(x3-x0)>=1.0e-3) x0=x3; x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1; end 2 ,020102)(023==-++=x x x x x f

x3 k 牛顿法: function y=newton(x0) x1=x0-fc(x0)/df(x0); k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>=1.0e-8 x0=s; s=B*x0+G;

Matlab与Simulink系统仿真学习心得PDF.pdf

Matlab与Simulink系统仿真学习心得 班级:07610 学号:072019 姓名:马楠 第一部分:Matlab学习心得以及实践 Matlab是迄今为止我所见到过的功能最为强大实用范围宽广的软件。的确Matlab适用于教学,航天,网络仿真等等。而且提供了很多功能强大的工具箱,并且最为突出的是它自带的很全面细致的帮助文档,无论你是初学者还是老手都会惊叹于此,你也不必去花很多时间去熟悉那些繁杂的命令,并且很容易通过这些帮助文档得到关于这些函数最精准的用法。 Matlab是一个建立在矩阵操作上的软件,我想要想真正懂得并理解Matlab与一般的语言比如C或者java的区别,那么你就应该真正理解矩阵的思想。而且要熟悉Matlab对矩阵存储的方式(在下文中我会详细解释与之相关的内容),这样对提高你的代码执行效率与易懂性都有很大的帮助。 但是Matlab究竟应该怎么定位呢?一个编程软件,一个数学工具,一个工具箱,一个开发引擎,一个仿真工具,一个虚拟现实软件……的确要精准的说出Matlab的作用很难,或许去定义这个东西到底是用来干什么的并不重要,It is just a tool。 关于Matlab的学习方法,我想与别的语言有很大不同,对于汇编或者C,我们应当很注重底层的一些操作,比如栈或者队列存储数据的方式,int或者double类型转换的时候产生的数据丢失,或者指针方面很头疼的一些东西,但是对于Matlab你根本不必去注重这些东西,也不必去清除的记得那个函数的具体调用方式,那个函数的内容与结构等等。你需要的只是相当用一个笔记本写下你一步一步实现目标的步骤而已。一种草稿纸式的语言。你所学的东西很大部分都是为你要做的目标来服务的,也许这就是当初面向对象式语言产生的原因,但是Matlab就是这种语言的一个代表。 好了,就说到这里了,接下来是我自己学习中对Matlab的一些应用中所遇到的问题以及思考方式和解决办法。 1 离散信号卷积: N1=input('N1=');%输入N1 N2=input('N2=');%输入N2 k1=0:(N1-1);%定义序列f1的对应序号向量 k2=0:(N2-1);% 序列f2的对应序号向量 f1=ones(1,N1);%f1为阶跃序列 f2=0.5*k2;%f2为斜坡序列 [f,k]=dconv(f1,f2,k1,k2)%求离散卷积 其中dconv函数的代码为: function [f,k]=dconv(f1,f2,k1,k2) %The function of compute f=f1*f2 % f: 卷积和序列f(k)对应的非零样值向量 % k:序列f(k)的对应序号向量 % f1: 序列f1(k)非零样值向量 % f2: 序列f2(k)的非零样值向量 % k1: 序列f1(k)的对应序号向量 % k2: 序列f2(k)的对应序号向量

MATLAB及其在数学建模中的应用

Modeling and Simulation 建模与仿真, 2015, 4(3), 61-71 Published Online August 2015 in Hans. https://www.doczj.com/doc/b25080942.html,/journal/mos https://www.doczj.com/doc/b25080942.html,/10.12677/mos.2015.43008 Study of MATLAB and Its Application in Mathematical Modeling Chuanqi Qin, Ting Wang, Yuanfeng Jin School of Science, Yanbian University, Yanji Jilin Email: yfkim@https://www.doczj.com/doc/b25080942.html, Received: Jul. 22nd, 2015; accepted: Aug. 11th, 2015; published: Aug. 18th, 2015 Copyright ? 2015 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). https://www.doczj.com/doc/b25080942.html,/licenses/by/4.0/ Abstract This article firstly introduces the development and the features of MATLAB software. And then the concept and the process of mathematical modeling are explained. After, the article briefly intro-duces some MATLAB solution methods of mathematical modeling problems, giving several in-stances of some methods. At the last of this article, through a relatively complete example, it fo-cuses on the application of MATLAB in mathematical modeling. It has been found that the applica-tion of MATLAB in mathematical modeling can improve the efficiency and quality of mathematical modeling, enrich the means and methods of mathematical modeling, and play a very important role in the teaching of mathematical modeling course. Keywords MATLAB, Mathematical Modeling, Mathematic Model MATLAB及其在数学建模中的应用 秦川棋,王亭,金元峰 延边大学理学院,吉林延吉 Email: yfkim@https://www.doczj.com/doc/b25080942.html, 收稿日期:2015年7月22日;录用日期:2015年8月11日;发布日期:2015年8月18日

Matlab Simulink 仿真步骤

MATLAB基础与应用简明教程 张明等编著 北京航空航天大学出版社(2001.01) MATLAB软件环境是美国New Mexico大学的Cleve Moler博士首创的,全名为MATrix LABoratory(矩阵实验室)。它建立在20世纪七八十年代流行的LINPACK(线性代数计算)和ESPACK(特征值计算)软件包的基础上。LINPACK和ESPACK软件包是从Fortran语言开始编写的,后来改写为C语言,改造过程中较为复杂,使用不便。MATLAB是随着Windows环境的发展而迅速发展起来的。它充分利用了Windows环境下的交互性、多任务功能语言,使得矩阵计算、数值运算变得极为简单。MATLAB语言是一种更为抽象的高级计算机语言,既有与C语言等同的一面,又更为接近人的抽象思维,便于学习和编程。同时,它具有很好的开放性,用户可以根据自己的需求,利用MATLAB 提供的基本工具,灵活地编制和开发自己的程序,开创新的应用。 本书重点介绍了MATLAB的矩阵运算、符号运算、图形功能、控制系统分析与设计、SimuLink仿真等方面的内容。 Chap1 MATLAB入门与基本运算 本章介绍MATLAB的基本概念,包括工作空间;目录、路径和文件的管理方式;帮助和例题演示功能等。重点介绍矩阵、数组和函数的运算规则、命令形式,并列举了可能得到的结果。由于MATLAB的符号工具箱是一个重要分支,其强大的运算功能在科技领域有特殊的帮助作用。 1.1 MATLAB环境与文件管理 1.2 工作空间与变量管理 1.2.1 建立数据 x1=[0.2 1.11 3]; y1=[1 2 3;4 5 6]建立一维数组x1和二维矩阵y1。分号“;”表示不显示定义的数据。 MATLAB还提供了一些简洁方式,能有规律地产生数组: xx=1:10 %xx从1到10,间隔为1 xx=-2:0.5:1 %xx从-2到1,间隔为0.5 linespace命令等距离产生数组,logspace在对数空间中等距离产生数组。对于这一类命令,只要给出数组的两端数据和维数就可以了。 xx=linespace(d1,d2,n) %表示xx从d1到d2等距离取n个点 xx=logspace(d1,d2,n) %表明xx从10d1到10d2等距离取n个点 1.2.2 who和whos命令 who: 查看工作空间中有哪些变量名 whos: 了解这些变量的具体细节 1.2.3 exist命令 查询当前的工作空间内是否存在一个变量,可以调用exist()函数来完成。 调用格式:i=exist(‘A’); 式中,A为要查询的变量名。返回的值i表示A存在的形式: i=1 表示当前工作空间内存在一个变量名为A的矩阵; i=2 表示存在一个名为A.m的文件; i=3 表示MATLAB的工作路径下存在一个名为A.mex的文件;

(完整word版)MATLABsimulink中的基本模块的参数、含义、应用..

电力线路模块 PI Section Line 单项π型线路单相传输线模块。 电阻,电感和电容的传输线,沿着线是均匀分布的。级联几个相同的PI部分是通过以下方式获得一个近似的分布参数线路模型的Three-Phase PI Section Line 三相电力线路模块实现了一个平衡的三相传输线模型参数集中在π部分。相反,沿着线的电阻,电感和电容是均匀分布的分布参数线路模型,三相PI剖面线块肿块行参数在一个单一的π部分所示,在图中只有一相下代表。 被指定为正序和零序的,要考虑到的参数之间的感性和容性耦合的三相导体,以及地面参数的参数R,L,和C线。在此方法的指定行参数假设,这三个阶段是平衡的。 使用一个单一的PI部分的模型是适当的传输线或短,在感兴趣的频率范围是有限的基频周围建模。你可以得到更准确的模型通过级联多个相同的块。见PI剖面线的最大频率范围的说明,通过PI线模型,可以实现。

频率用于R L C规范 指定行参数所用的频率,以赫兹(Hz)。这通常是标称系统频率(50赫兹或60赫兹)。 正序和零序电阻 正序和零序电阻欧姆/公里(Ω/公里)。 正序和零序电感 正序和零序电感:亨利/公里(H/公里)。 正序和零序电容 正序和零序电容法拉/公里(F /公里)。 线路段长度(KM) 该生产线部分长度在千米(公里)。 Three-Phase Transformer (Two Windings) 三相变压器(两个绕组) 使用三个单相变压器,三相变压器三相变压器两个绕组块实现了。您可以模拟饱和的核心不是简单地通过在参数菜单中设置相应的复选框块。线性变压器块和可饱和变压器块部分的单相变压器的电气模型的详细说明,请参阅。 可以以下列方式连接的两个绕组的变压器: 1)Y 2)Y与中性点 3)接地Y 4)三角洲三角洲(D1),30度的滞后Y通过 5)D11)三角洲,三角洲领先的Y通过30度 Three-Phase V-I Measurement 三相电压-电流测量

matlab数学建模实例

第四周3. 中的三个根。 ,在求8] [0,041.76938.7911.1-)(2 3=-+=x x x x f function y=mj()for x0=0:0.01:8 x1=x0^3-11.1*x0^2+38.79*x0-41.769;if (abs(x1)<1.0e-8)x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(ε分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20;k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1;end x1k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10;x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=1; while (abs(x3-x0)>=1.0e-3) x0=x3; x1=(20-2*x0^2-x0^3)/10;x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1;end 2 ,020102)(023==-++=x x x x x f

x3 k 牛顿法: function y=newton(x0) x1=x0-fc(x0)/df(x0); k=1; while(abs(x1-x0)>=1.0e-3) x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>=1.0e-8 x0=s; s=B*x0+G;

matlab仿真命令集

simulink命令集(转载) 仿真命令: sim ---仿真运行一个simulink模块 sldebug ---调试一个simulink模块 simset ---设置仿真参数 simget ---获取仿真参数 线性化和整理命令: linmod ---从连续时间系统中获取线性模型(状态方程) linmod2 ---也是获取线性模型,采用高级方法 dinmod ---从离散时间系统中获取线性模型 trim ---为一个仿真系统寻找稳定的状态参数 构建模型命令: open_system --打开已有的模型 close_system --关闭打开的模型或模块 new_system --创建一个新的空模型窗口 load_system --加载已有的模型并使模型不可见 save_system --保存一个打开的模型 add_block --添加一个新的模块 add_line --添加一条线(两个模块之间的连线) delete_block --删除一个模块 delete_line --删除一根线 find_system --查找一个模块 hilite_system --使一个模块醒目显示 replace_block --用一个新模块代替已有的模块 set_param --为模型或模块设置参数 get_param --获取模块或模型的参数 add_param --为一个模型添加用户自定义的字符串参数delete_param --从一个模型中删除一个用户自定义的参数bdclose --关闭一个simulink窗口 bdroot --根层次下的模块名字 gcb --获取当前模块的名字 gcbh --获取当前模块的句柄 gcs --获取当前系统的名字 getfullname --获取一个模块的完全路径名 slupdate --将1.x的模块升级为3.x的模块 addterms --为未连接的端口添加terminators模块 boolean --将数值数组转化为布尔值 slhelp --simulink的用户向导或者模块帮助 封装命令: hasmask --检查已有模块是否封装

相关主题
文本预览
相关文档 最新文档