MATLAB代做  | MATLAB代写  | MATLAB有偿编程
首 页
当前位置:MATLAB代做|MATLAB代写|MATLAB有偿编程matlab源码Simulink仿真
仿真环境基础学习        [↓跳到下载地址]
官方主页:源码共享网站:www.buycode.cn

联系方式:客服QQ:1747812398 买代码源码软件站,欢迎咨询

运行环境:Win9X/2000/XP/2003/

源码语言:简体中文

源码类型:源码程序 - Simulink仿真

推荐星级:

更新时间:2012-11-21 23:40:41

源码简介

【例 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 界面
(8) 保存模型,单击工具栏的 图标,将该模型保存为 “Ex0701.mdl”文件。
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 模型窗口
图 7.4  示波器窗口
?  在图7.3的 Simulink 模型窗口中选择菜单“File”?“Open…”或者单击工具栏的 图标打开文件。
7.2.2 Simulink的模型窗口
模型窗口由菜单、工具栏、模型浏览器窗口、模型框图窗口以及状态栏组成。
 

正弦波输出
Signal Generator
 
信号发生器,可以产生正弦、方波、锯齿波和随机波信号
From File
 
从文件获取数据
From Workspace
 
从当前工作空间定义的矩阵读数据
Clock
 
仿真时钟,输出每个仿真步点的时间
In
 
输入模块
 
2. 接收模块库(Sinks)
接收模块是用来接收模块信号的,常用的接收模块如表 7.3 所示。
表 7.3  常用的接收模块表
名称  模块形状  功能说明
Scope
 
示波器,显示实时信号
Display
 
实时数值显示
XY Graph
 
显示X-Y两个信号的关系图
To File
 
把数据保存为文件
To Workspace
 
把数据写成矩阵输出到工作空间
Stop Simulation
 
输入不为零时终止仿真,常与关系模块配合使用
Out
 
输出模块
 
3. 连续系统模块库(Continuous)
连续系统模块是构成连续系统的环节,常用的连续系统模块如表 7.4所示。
表 7.4  常用的连续系统模块表
名称  模块形状  功能说明
Integrator
 
积分环节
Derivative
 
微分环节
State-Space
 
状态方程模型
Transfer Fcn
 
传递函数模型
Zero-Pole
 
零—极点增益模型
Transport Delay
 
把输入信号按给定的时间做延时
 
4. 离散系统模块库(Discrete)
离散系统模块是用来构成离散系统的环节,常用的离散系统模块如表 7.5 所示。
 
表 7.5  常用的离散系统模块表
名称  模块形状  功能说明
Discrete Transfer Fcn
 
离散传递函数模型
Discrete Zero-Pole
 
离散零极点增益模型
Discrete State-Space
 
离散状态方程模型
Discrete Filter
 
离散滤波器
Zero-Order Hold
 
零阶保持器
First-Order Hold
 
一阶保持器
Unit Delay
 
采样保持,延迟一个周期
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 为采样时间。
(3) 从工作空间获取数据(From workspace)
从工作空间获取数据模块的输入信号源为工 作空间。
【例 7.2】在工作空间计算变量 t 和 y,将其运算的结果作为系统
的输入。
 t=0:0.1:10;
 y=sin(t);
 t=t';
 y=y';   
图 7.14  阶跃信号模块的参数
图 7.13  模块的参数设置
然后将“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.17所示。
 
在上图中设置“Denominator”为“[1 1.414 1]”,则在模型窗口中显
示为如图 7.18 所示。
(6) 示波器(Scope)
示波器模块是用来接收输入信号并实时显示信号波形曲线,示波器窗
口的工具栏可以调整显示的波形,显示正弦信号的示波器如图7.19所示。
 
2. 模块属性设置
每个模块的属性对话框的内容都相同,如图 7.22所示。
图 7.17  传递函数模块参数设置
图 7.18  
打开参数对话框
纵坐标
的自动
 
X-Y坐标变焦
X坐标变焦
图 7.19  示波器窗口
把当前的坐
标设置保存
浮动示波器
恢复保存过
的坐标设置
Y坐标变焦
(1) 说明(Description)
对模块在模型中用法的注释。
(2) 优先级(Priority)
规定该模块在模型中相对于其它模块执行的优先顺序。
(3) 标记(Tag)
用户为模块添加的文本格式标记。
(4) 调用函数(Open function)
当用户双击该模块时调用的 MATLAB函数。
(5) 属性格式字符串(Attributes format string)
指定在该模块的图标下显示模块的哪个参数和格 式。
7.5复杂系统的仿真与分析
Simulink 的模型实际上是定义了仿真系统的微分或差分方程组,而仿真则是用数值解算法来求解方程。
图 7.22  模块的属性设置
图 7.23  模块的属性格式字符串
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.25 所示,可以设置 Simulink从工作空间输入数据、初始化状态模块,也可以把仿真的结果、状态模块数据保存到当前工作空间。
图 7.24 Solver 参数设置
(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 . 0 s
1
2
+
,接受模块使用示波器来构成模型。
图 7.25 Workspace I/O 参数设置
(1) 在“Sources”模块库选择“Step”模块,在“Continuous”模块库选择“Transfer Fcn”模块,在“Math Operations”模块库选择“Sum”模块,在“Sinks”模块
库选择“Scope”。
(2) 连接各模块,从信号线引出分支点,构成闭环系统。
(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.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.28  示波器显示
图 7.29  二阶系统模型
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。
(4) 添加文本注释,系统框图如图7.31所示。
图 7.30  plot绘制的时域响应波形
图 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 时,系统出现振荡。
(8) 修改参数,将“Discrete Filter” 和“Zero-Order Hold”模块的“Sample time”都设置为0.6s,更新框图颜色,开始仿真,则示波器显示如图 7.34 所示。
图 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)示波器显示
当 T=Tk=0.6时,系统出现强烈的振荡。
7.5.4 仿真结构参数化
当系统参数需要经常改变或由函数得出时,可以使用变量来作为模块的参数。
【例 7.5】将【例 7.4】中的模块结构参数用变量表示,结构图如图 7.35所示。
将参数设置放在 Ex0705_1.m文件中:
% Ex0705_1    参数设置
T=0.1;                %控制环节采样时间
图 7.34 T=0.6 Tk=0.1 (a) d(k)示波器显示                          (b) y(t)示波器显示
图 7.35 离散系统框图
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.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  子系统建立
将图7.36 中的所有对象都复制到新的空白模型窗口中,双击打开子系统“Subsystem”,则出现如图7.37所示的子系统模型窗口,添加模型构成反馈环形成闭环系
统,如图 7.38 所示。
然后将系统模型修改为如图 7.39所示的系统。
创建的子系统可以打开和修改,但不能再解除子系统设置。
7.6.2 条件执行子系统
1. 使能子系统(Enabled Subsystem)
图 7.39  包含子系统的模型
图 7.38  子系统模块窗口
图 7.37  子系统模型窗口
【例 7.8】建立一个用使能子系统控制正弦信号为半波整流信号的模型。
模型由正弦信号“Sine wave”为输入信号源,示波器“Scope”为接收模块,使能子系统“Enabled Subsystem”为控制模块,
连接模块,将“Sine wave”模块的输出作为“Enabled Subsystem”的控制信号,模型如图7.42(a)所示。
开始仿真,由于“Enabled Subsystem”的控制为正弦信号,大于零时执行输出,小于零时就停止,则示波器显示为半波整流信号,示波器的显示如图7.42(b)所示。
 
2. 触发子系统(Triggered Subsystem)
【例 7.9】建立一个用触发子系统控制正弦信号输出阶梯波形的模型。
图 7.42 (a)  使能子系统模型                        (b)  示波器显示
图 7.43 (a)  触发子系统模型                           (b)  示波器显示
图 7.41 (a)  “Enable”模块参数设置                     (b)  “Out1”模块参数设置
模型由正弦信号“Sine wave”为输入信号源,示波器“Scope”为接收模块,触发子系统“Triggered Subsystem”为控制模块,选择“Sources”模块库中的“Pulse Generator”
模块为控制信号。
连接模块,将“Pulse Generator”模块的输出作为“Triggered Subsystem”的控制信号,模型如图 7.43(a)所示。
开始仿真,由于“Triggered Subsystem”的控制为“Pulse Generator”模块的输出,示波器输出如图7.43(b)所示。
 
3. 使能触发子系统(Enabled and Triggered Subsystem)
使能触发子系统就是触发子系统和使能子系统的组合,含有触发信号和使能信号两个控制信号输入端,触发事件发生后,Simulink 检查使能信号是否大于 0,大于
0 就开始执行。
7.6.3 子系统的封装
1. 封装子系统的步骤
(1) 选中子系统双击打开,给需要进行赋值的参数指定一个变量名;
(2) 选择菜单“Edit”?“Mask subsystem”,出现封装对话框;
(3) 在封装对话框中的设置参数,主要有“Icon”、“Parameters”、“Initialization”和“Documentation”四个选项卡。
 
2.  Icon选项卡
Icon选项卡用于设定封装模块的名字和外观,如图 7.44 所示。
(1) Drawing commands 栏
用来建立用户化的图标,可以在图标中显示文本、图像、图形或传递函数等。在Drawing commands 栏中的命令如上图中“Examples of drawing commands”的下拉
列表所示,包括 plot、disp、text、port_label、image、patch、color、droots、dploy和fprintf。
(2) Icon Options 栏
用于设置封装模块的外观。
 
3. Parameters 选项卡
Parameters 选项卡用于输入变量名称和相应的提示,如图 7.45所示。
图 7.44 Icon 参数设置
(1) Add 、Delete 、Move up 和 Move down 按钮
用于添加、删除、上移和下移输入变量。
(2) Dialog Parameters
?  Prompt:输入变量的含义,其内容会显示在输入提示中。
?  Variable:输入变量的名称。
?  type:给用户提供设计编辑区的选择。“Edit”提供一个编辑框;“Checkbox”提供一个复选框;“Popup”提供一个弹出式菜单。
?  Evaluate:用于配合“type”的不同选项提供不同的变量值,有两个选项“Evaluate”和“Literal”,其含义如表 7.6 所示。
表 7.6 Assignment 选项的不同含义
   Evaluate
type
on  off
Edit  输入的文字是程序执行时所用的变量值  将输入的内容作为字符串
Checkbox  输出1和0  输出为on或off
Popup  将选择的序号作为数值,第一项则为1  将选择的内容当作字符串
(3) Options for selected parameter
?  Pops:当“type”选择“Popup”时,用于输入下拉菜单项。
图 7.45 Parameters 参数设置
?  Callback:用于输入回调函数。
 
4. Initialization 选项卡
Initialization 选项卡用于初始化封装子系统。
 
5. Documentation选项卡
Documentation 选项卡用于编写与该封装模块对应的Help 和说明文字,分别有“Mask type”、“Mask Description”和“Mask help”栏。
(1) Mask type栏
用于设置模块显示的封装类型。
(2) Mask Description 栏
用于输入描述文本。
(3) Mask help 栏
用于输入帮助文本。
 
6. 按钮
设置参数设置对话框中的“Apply”按钮用于将修改的设置应用于封装模块;“Unmask”按钮用于将封装撤销,则双击该模块就不会出现定制的对话框。
 
【例 7.10】创建一个二阶系统,并将子系统进行封装。
创建一个二阶系统,将其闭环系统构成子系统,并封装将阻尼系数 zeta 和无阻尼频率 wn作为输入参数。
(1) 创建模型,并将系统的阻尼系数用变量 zeta 表示,无阻尼频率用变量wn 表示,如图7.46所示。
(2) 用虚线框框住反馈环,选择菜单“Edit”?“Create Subsystem”,则产生子系统,如图 7.47 所示。
图 7.46  二阶系统模型
(3) 封装子系统,选择菜单“Edit”?“Mask subsystem”,出现封装对话框,将 zeta 和wn作为输入参数。
在 Icon 选项卡中设置的“Drawing commands”栏中写文字并画曲线,命令如下:
disp('二阶系统')
plot([0 1 2 3 10],-exp(-[0 1 2 3 10]))
在 Parameters 选项卡中,单击“Add” 按钮添加两个输入参数,设置“Prompt”分别为“阻尼系数”和“无阻尼振荡频率”,并设置“type”栏分别为“Popup”
和“edit”,对应的“Variable”为“zeta”和“wn”  ,设置“Popups”为“0 0.3 0.5 0.707 1 2”,如图 7.48(a)所示。
在 Initialization 选项卡初始化输入参数,如图7.48(b)所示。
在 Documentation 选项卡中输入提示和帮助信息,如图 7.48(c)所示。
图 7.47  子系统模型
图 7.48 (a) Parameters选项卡                           (b) Initialization 选项卡
单击“OK”按钮,完成参数设置,然后双击该封装子系统,则出现如图7.49(a)所示的封装子系统,双击该子系统出现图7.49(b)所示的输入参数对话框,在对话框
中输入“阻尼系数”zeta 和“无阻尼振荡频率”wn 的值,再不需要为子系统中的每个模块分别打开参数设置对话框了。
 
图 7.48(c) Documentation 选项卡                       
图 7.49 (a)  封装子系统外观                       (b)  封装子系统参数输入对话框                        
7.7用 MATLAB命令创建和运行 Simulink 模型
7.7.1 用 MATLAB 命令创建 Simulink模型
1. Simulink模型与文件
(1) 创建新模型
new_system命令用来在 MATLAB的工作空间创建一个空白的 Simulink 模型。
语法:
    new_system(‘newmodel’,option)       %创建新模型
说明:‘newmodel’为模型名;option 选项可以是’Library’和’Model’两种,也可以省略,默认为’Model’。
(2) 打开模型
open_system命令用来打开逻辑模型,在 Simulink 模型窗口显示该模型。
语法:
    open_system(‘model’)           %打开模型
说明:‘model’为模型名。
(3) 保存模型
save_system命令用来保存模型为模型文件,扩展名为.mdl。
语法:
    save_system(‘model’,文件名)         %保存模型
说明:‘model’为模型名可省略,如果不给出模型名,则自动保存当前的模型;文件名指保存的文件名,是字符串,也可省略,如果不省略则保存为新文件。
【例 7.11】用 MATLAB命令创建新模型。
  new_system('Ex0711model')        %创建逻辑模型
  open_system('Ex0711model')         %打开模型
  save_system('Ex0711model','Ex0711')       %保存模型文件
 
2. 添加模块和信号线
(1) 添加模块
使用 add_block 命令在打开的模型窗口中添加新模块。
语法:
    add_block(’源模块名’,’目标模块名’,’属性名 1’,属性值 1,’属性名 2’,属性值 2,…)
说明:’源模块名’为一个已知的库模块名,或在其它模型窗口中定义的模块名,Simulink 自带的模块为内在模块,例如正弦信号模块为’built-in/Sine Wave’;’目标模
块名’为在模型窗口中使用的模块名。
(2) 添加信号线
模块需要用信号线连接起来,添加信号线使用 add_line命令。
语法:
    add_line(’模块名’,’起始模块名/输出端口号’, ’终止模块名/输入端口号’)
  add_line(’模块名’,m)
说明:’模块名’为在模型窗口中的模块名;m为有两列元素的矩阵,每列给出一个转折点坐标。
【例 7.11 续】用 MATLAB命令添加四个模块连接成一个二阶系统模型。
  add_block('built-in/Step','Ex0711/Step','position',[20,100,40,120])     %添加阶跃信号模块
  add_block('built-in/Sum','Ex0711/Sum','position',[60,100,80,120])     %添加Sum模块
  add_block('built-in/Transfer Fcn','Ex0711/Fcn1','position',[120,90,200,130])   
%添加传递函数模块
  add_block('built-in/Scope','Ex0711/Scope','position',[240,100,260,120])   %添加示波器模块
  add_line('Ex0711','Step/1','Sum/1')                 %添加连线
  add_line('Ex0711','Sum/1','Fcn1/1')
  add_line('Ex0711','Fcn1/1','Scope/1')
  add_line('Ex0711','Fcn1/1','Sum/2')
程序分析:'position'为位置属性,模块名为'Ex0711'。
则出现如图7.50 所示的模型。
 
3. 设置模型和模块属性
(1) 模型属性的获得
【例 7.11 续】获得模型属性和各属性的含义。
  f1=simget('Ex0711')
f1 =  
图 7.50  二阶系统模型
              AbsTol: 'auto'         %绝对允许误差限
               Debug: 'off'         %是否允许跟踪调试
          Decimation: 1           %输出位数,每个1点输出 1次
        DstWorkspace: 'current'       %输出量工作空间
      FinalStateName: ''           %状态变量名
           FixedStep: 'auto'         %定步长
        InitialState: []        %初始状态向量
         InitialStep: 'auto'      %初始步长
            MaxOrder: 5      %最高算法阶次
           SaveFormat: 'Array'    %变量类型
       MaxDataPoints: 1000    %最大返回点数
             MaxStep: 'auto'    %最大步长
             MinStep: []      %最小步长
        OutputPoints: 'all'      %输出点
     OutputVariables: 'ty'      %输出变量
              Refine: 1      %插值点
              RelTol: 0.0010    %相对误差
              Solver: 'ode45'    %仿真算法
        SrcWorkspace: 'base'    %输入量工作空间
               Trace: ''      %是否逐步显示
           ZeroCross: 'on'      检测过零点
(2) 设置模型属性
(3) 设置模块和信号线属性
【例 7.11 续】设置各模块的属性,建立一个与【例7.3】模型参数相同的二阶系统模型。
  set_param('Ex0711','StopTime','15')           %设置采样停止时间
  set_param('Ex0711/Step','time','0')           %设置阶跃信号上升时间
  set_param('Ex0711/Sum','Inputs','+-')         %设置Sum模块信号的符号
  set_param('Ex0711/Fcn1','Denominator','[1 0.6 0]')     %设置传递函数分母
则系统模型框图如图7.51所示。
 
4. 删除模块和信号线
(1) 删除模块
例如删除示波器模块则使用:
  delete_block('Ex0711/Scope')
(2) 删除信号线
7.7.2 用 MATLAB 命令运行 Simulink模块
使用 sim命令来完成,在命令窗口就可以方便地对模型分析和仿真。
语法:
    [t,x,y]=sim(‘model’,timespan,options,ut)       %利用输入参数进行仿真,输出矩阵
    [t,x,y1,y2,…]=sim(‘model’,timespan,options,ut)%利用输入参数进行仿真,逐个输出
说明:‘model’为模型名;timespan是仿真时间区间,可以是[t0,tf]表示起始时间和终止时间,也可以是[],利用模型对话框设置时间,如果是标量则指终止仿真时间;
options 参数为模型控制参数;ut 为外部输入向量。t 为时间列向量;x 为状态变量构成的矩阵;y 为输出信号构成的矩阵,每列对应一路输出信号。timespan  、options
和 ut参数都可省略。
【例 7.11 续】运行二阶系统的阶跃响应,如图7.50所示。
  [t,x,y]=sim('Ex0711',[0,15]);
  plot(t,x(:,2))
图 7.51  二阶系统模型
7.8以 Simulink为基础的模块工具箱简介
在打开Simulink 时出现的界面中,如前面的图7.1所示左侧的模块库和工具箱(Block and Toolboxes)栏中列出了各领域开发的仿真环节库。
主要的仿真环节库有:
?  控制系统工具箱(Control System Toolbox)
?  通信模块工具箱(Communications Blockset )
?  数字信号处理模块工具箱(DSP Blockset)
?  非线性控制模块工具箱(NCD Blockset)
?  定点处理模块工具箱(Fixed-Point Blockset)
?  状态流(StateFlow)
?  系统辨识模块工具箱(System ID Blocks)
?  神经网络模块工具箱(Neural Network Blockset)
?  模糊逻辑工具箱(Fuzzy Logic Toolbox)
 

 


提 示:本站所有源码只提供浏览,需要定制的朋友可以联系在线客服!
注意:价格根据项目的难易程度来定价格业务咨询

仿真环境基础学习 --下载地址

注意:为避免不必要的误会,本站项目里的源码只公开部分需要的联系在线客服

本站长期招聘程序代写高手,欢迎加入华南地区matlab团队

想创业却没有经验的人

无论你是否有过网上开店的经验,都可以随时联系在线客服,建立自己独立的网站
想开网店却不知道如何入手

淘宝创业成本低而且风险小,如果想开淘宝店的朋友可以联系在线客服。
想兼职创业,却不擅长交际与服务的人

在家创业月入5000元。网站程序+百套群发工具+网赚资料+域名+空间+本站终身代理资格,这样你网赚的条件全具备了。每天3小时管理、推广、收钱。
缺乏能快速赢利型产品的人

导入多种最新流行营销软件+网赚教程,让入驻者轻松加盟、复制有效成交技巧、快速赚钱。

源码评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

浏览说明

* 本站所有源码全部公开,随时随地浏览!
* MATLAB软件如用于商业用途,请购买正版!
* 如果您发现下载链接错误,请点击报告错误谢谢!
* 站内提供的所有软件包含破解及注册码均是由网上搜集,若侵犯了你的版权利益,敬请来信通知我们!
Copyright © 2008-2014 www.buycode.cn. All Rights Reserved.
页面执行时间:265.62500 毫秒