MATLAB 仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 Simulink仿真环境
7.1 Simulink的概述 7.2 Simulink的工作环境 7.3 建立模型 7.4 Simulink的应用实例 7.5 模型的调试 7.6 子系统与封装 7.7 S函数的设计与应用
7.1 Simulink的概述
1. SIMULINK简介
SIMULINK是MATLAB软件的扩展,它是实现动态系统 建模和仿真的一个软件包,它与MATLAB语言的主要区别 在于,其与用户交互接口是基于Windows的模型化图形输 入,其结果是使得用户可以把更多的精力投入到系统模型 的构建,而非语言的编程上。 所谓模型化图形输入是指SIMULINK提供了一些按功能 分类的基本的系统模块,用户只需要知道这些模块的输入 输出及模块的功能,而不必考察模块内部是如何实现的, 通过对这些基本模块的调用,再将它们连接起来就可以构 成所需要的系统模型(以.mdl文件进行存取),进而进行 仿真与分析。
2. 使用命令运行仿真
启动模型的仿真可以使用sim函数来完成,使用simset 函数可以设置仿真参数,这样模型中的模块参数和仿真参 数就可以随机地设置和修改。 [t,x,y]=sim('model',timespan,options,ut) %利用输入参数进行仿真 说明: 'model'为模型名,其余参数都可以省略; timespan是仿真时间区间,可以使用[t0,tf]设置仿真起 始时间和终止时间,如果是标量则指终止时间; options参数为模型仿真的相关参数,包括仿真参数和求 解器的属性; ut为模型的外部输入向量; t为仿真时间列向量,x为状态变量构成的矩阵,y为输出 信号构成的矩阵,每列对应一路输出信号。
2. 工作空间数据输入输出的设置(Data
Import/Outport) (1)从工作空间装载数据(Load from workspace) (2)保存数据到工作空间(Save to workspace) (3)变量保存设置(Save options)
7.3.3 常用模块的设置
打开参数设置对话框的方法有: 双击模块; 或者用鼠标右键单击模块,在快捷菜单中选择 “Block Parameters…”,各模块的参数对话框最 上面都显示了模块的功能。 1. 阶跃信号模块(Step) 2. 正弦信号模块(Sine Wave)
例7-1 将一个阶跃输入信号送到积分环节 ,并将积分后的信号送到示波器显示。 1. 创建空白模型 2. 添加模块 3. 添加连接 4. 仿真 5. 保存模型
7.2.1 一个简单的Simulink实例
补充实例:建立一个模型,将正弦信号输出到示波 器中。 解题步骤: (1) 新建一个模型窗口 (2) 为模型添加所需模块 (3) 连接相关模块,构成所需要的系统模型 (4) 进行系统仿真 (5) 观察仿真结果
输入(u) 状态(x) 输出(y)
4. Simulink模型的结构
信号源(sources) 系统(systems) 接收器(sinks)
例:
7.2 Simulink的工作环境
在MATLAB的命令 窗口输入“simulink” ,或单击工具栏中的 图标,就可以打开 Simulink模块库浏览 器(Simulink Library Browser)窗口。
8.示波器(Scope)
示波器的主要参数有: Number of axes:示波器的输入端口个数,默认值为1 表示只有一个输入;图7-24 示波器坐标设置 Time range:设置显示信号范围,默认auto为仿真时间 范围,如果信号实际持续时间超过该范围,则超出范围的 信号在示波器中不显示; Limit data points to last:表示缓冲区接收数据的长度 ,默认为5000,示波器的缓冲区可接收30个信号,数据长 度为5000,如果数据长度超出,则最早的历史数据会被清 除。 Save data to workspace:把示波器缓冲区中保存的数 据以矩阵或结构数组的形式送到工作空间,在下面两栏设 置变量名“Variable name”和数据类型“Format”。
3. Simulink的特点 (1)设计简单,系统结构使用方框图绘制,以 绘制模型化的图形代替程序输入,以鼠标操作代替 编程; (2)分析直观,用户不需要考虑系统模块内部 ,只要考虑系统中各模块的输入输出; (3)仿真快速、准确,智能化地建立各环节的 方程,自动地在给定精度要求下以最快速度仿真, 还可以交互式地进行仿真。
(3) 设置属性
set_param('对象名','参数名1',参数值1,'参数名 2',参数值2,…)
(ex7_5.m或ex75.m) %创建新模型 >> new_system('ex7_5') %添加模块
例7-5 使用命令创建一个反馈系统的Simulink模型。
>> open_system(‘ex7_5’) %创建模型 >> set_param(‘ex7_5’,‘location’,[100,100,500,400])%设置模型窗口大小
9. 模块的属性设置 (1)“General”选项卡 (3)调用函数(Callbacks) (2)“Block Annotation”选项卡
7.3.4 仿真结构参数化
例7-4续 将单位负反馈二阶系统的参数使用变量 表示,变量的值存放在“ex7_41.m”文件中。 模块参数的三个变量在“ex7_41.m”文件中设置 ,则文件内容如下: %ex7_41 设置参数T1,T2,K T1=1; T2=2; K=-1;
2. 发展历史 1990年MathWorks公司为MATLAB增加了用于 建立系统框图和仿真的环境 1992年公司将该软件改名为SIMULINK Simulink可以搭建: (1)通信系统物理层和数据链路层; (2)动力学系统; (3)控制系统; (4)数字信号处理系统; (5)电力系统; (6)生物系统; (7)金融系统等。
3. 从工作空间获取数据(From workspace)和 从文件获取数据(From file)
From workspace和From file分别是从工作空间和MAT 文件输入数据,都在“Sources”子模块库中。
4. 求和模块(Sum) Sum模块用来计算信号的和,是“Math Operations”子模块库中的。
fieldnames(yout) yout.signals plot(tout,yout.signals.values) 练习
7.5 模型的调试
7.5.1 Simulink调试器 •调试器窗口的选项卡
“Break Points”:用于设置断点,使仿真运行到断点就停止; “Simulation Loop”:包含Method、Breakpoints和ID三列内容,用于 显示各仿真步以及正在运行的相关信息; “Outputs”:用于显示调试结果,包括调试命令提示、当前运行模块的 输入、输出和模块的状态; “Sorted List”:用于显示被调试的模块列表,该列表按模块执行的顺序 排列; “Status”:用于显示调试器各种选项设置的值以及其他状态信息。
演 示(sinwave.mdl)
补充实例2:利用simulink来计算“chirp”信 号和正弦函数信号叠加后的信号波形 (chirp.mdl)
(model1.mdl)
Chirp信号
显示三个信号model3
7.2.2 Simulink的模型窗口
Simulink模型窗口的打开:运行命令simulink Simulink模型的创建和仿真都是在模型窗口 中进行的,模型窗口包括菜单、工具栏、模型 设计区和状态栏。 模型窗口中的模型设计区用来创建和修改模 型
>> add_block('built-in/Sine Wave','ex7_5/sin','position',[40,80,80,120]) ……
%设置模块参数
>> set_param('ex7_5/sin','Amplitude','10') ……
%添加信号线
>> add_line('ex7_5','sin/1','sum/1') …… >> add_line('ex7_5',[300,100;300,180;105,180;115,105])
7.2.3 Simulink的工作原理
仿真包括以下几个步骤。 (1)模型编译 (2)连接 (3)仿真执行 一般仿真模型都采用数值积分来仿真的, 相邻两个时间点的长度为步长,步长的大小 取决于求解器的类型。
7.2.4 Simulink的模块库
Simulink的模块库浏览器提供了各种基本 模块,并将它们按照应用领域和功能进行分 类以方便用户查找。
参数设置对话框:(Simulation/configuration parameters)
仿真器参数(Solver) 工作空间数据输入/输出(Data Import/Output) 优化设置(Optimization) 诊断参数(Diagnostics) 硬件实现(Hardware Implementation) 模型引用(Model Referencing) 实时工作间(Real-Time workshop)
7.3建立模型
7.3.1 创建模型
1. 模块的操作 (1)改变大小 (2)移动 (3)复制 (4)模块的翻转 (5)修改模块名 (7)模块名的翻转 (6)模块名的显示和隐藏
2. 信号线的操作 (1)信号线的分支 (2)信号线的折线 (3)信号线的文本注释 (4)信号线与模块分离
练习
7.3.2 仿真参数的设置图
5.传递函数(Transfer function)和零 极点传递函数(Zero-Pole) 例7-3 创建一个单位负反馈的二阶系统, 输入为阶跃信号,将输出送到示波器显示。
6. 增益(Gain) Gain模块是将信号放大K倍,是“Math Operations”子模块库中的。 7. 输出到文件(To File)和输出到工作空 间(To Workspace)
ex7_4_1.mdl
源自文库
7.3.5使用命令创建和运行Simulink模型 1.使用命令创建Simulink模型 (1)模型函数
new_system(„newmodel‟,option) %创建新模型 load_system(„model‟) %装载模型 open_system(„model‟) %显示模型 save_system(„model‟,文件名) %保存模型 close_system(„model‟,option) %关闭模型
练习
7.3.5使用命令创建和运行Simulink模型
(2) 模块和信号线函数
add_block('源模块名','属性名1',属性值1,'属性名2',属 性值2,…) delete_block(„模块名’) add_line('模块名','起始模块名/输出端口号', '终止模块 名/输入端口号') delete_line
R 40V Ra Re Rc Rd Rb
7.4.2 Simulink在数字电路中的应用实例 例7-7 创建一个Simulink模型实现三-八
译码器的仿真。(ex7_7.mdl)
7.4.3 Simulink在控制系统中的应用实例
例7-8 创建一个Simulink模型使用PID控 制器控制三阶系统,查看其输出响应。
1. 仿真器参数设置(Solver) (1)仿真时间(Simulation time) 仿真的起始时间(Start time):默认为0,单位 为秒。 (2)仿真步长模式(Solver options) (3)Solver diagnostic controls “Solver”:设置仿真解法的具体算法类型。变步 长的算法有discrete、ode45、ode23、ode113、 ode15s、ode23s、ode23t和ode23tb,默认使用 ode45。
7.4 Simulink的应用实例
7.4.1 Simulink在电路中的应用实例
例7-6 根据电路桥电路创建一个Simulink模型,求电路中 的电流,电路如图7-30所示,已知电阻R=5Ω,Ra=25Ω, Rb=100Ω,Rc=125Ω,Rd=100Ω,Re=37.5Ω,求当直流 电源为100V时电路中的电流。(ex7_6.mdl)
相关文档
最新文档