《交互式仿真集成环境课件》由会员分享,可在线阅读,更多相关《交互式仿真集成环境课件(49页珍藏版)》请在金锄头文库上搜索。
1、第7章 SIMULINK交互式 仿真集成环境,引导,SIMULINK是MATLAB的重要组成部分,是一个进行动态系统建模、仿真和综合分析的集成软件包 SIMULINK提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能 SIMULINK可以处理的系统:线性、非线性系统;离散、连续及混合系统;单任务、多任务离散事件系统,引导,在信息处理和通信相关专业领域,应用MATLAB的两个主要用途 科学计算:复杂数学问题的求解(积分、微分、方程组求解、各种数学变换等等) 系统算法(策略)仿真:根据某专业理论设设计出一个系统处理算法或策略后,此算法的有
2、效性如何?能否达到预定目的?可在MATLAB进行仿真评估,引导,为了在MATLAB仿真某一系统算法的有效性,可以使用两种方法 使用M文件编程实现该系统,运行代码进行仿真; 使用Simulink的模块化组件,按照系统算法要求搭建模型进行仿真 编程仿真:灵活性强,可对任何算法进行仿真,与实际实现代码程序几乎相同,但过程相对复杂; Simulink组件模块化仿真:过程简单,但受到可选组件的限制,引导,【例】分别以M文件编程仿真和SIMULINK仿真以下系统性能:该系统把一个单音音频文件处理为回响振荡的音频文件;测试音频数据保存在dspafxr.mat中,本章内容,引导 SIMULINK入门 SIMU
3、LINK的启动、浏览器界面、模型窗组成 模型概念和文件操作 7.1 连续时间系统建模与仿真 7.1.1 基于微分方程的SIMULINK建模 7.1.2 基于传递函数的SIMULINK建模 7.2 离散时间系统建模与仿真,本章内容,重点 建立SIMULINK仿真模型的基本操作 SIMULINK中常用模型的使用方法 以连续系统建模的基本方法理解SIMULINK仿真的基本作用和运行机制 难点 SIMULINK仿真的内部运行机制,SIMULINK入门,Simulink的启动 在MATLAB的命令窗口输入simulink或单击MATLAB主窗口工具栏上的Simulink命令按钮 Simulink启动后会
4、显示Simulink模块库浏览器(Simulink Library Browser)窗口,SIMULINK库浏览器界面,关键词查找栏:查找相关模块 模块和模块库总览表:分层结构 基本组件模块组在Simulink一项下,其余均为专门工具包 Simulink基本组件模块组下包括各类基本组件子模块库,每类基本组件子模块库包含了许多基本组件 文字说明框:给出在总览表中所选对象的简明信息,简单示例,点击Source子库前的“+”,可看到各种信源模块 新建一个仿真模型窗口 把正弦波信源放到仿真模型窗口中 把示波器Scope放到仿真模型窗口中 连接信号线 打开示波器显示屏 开始仿真,练习1,实验内容1 搭建
5、观察使用示波器观察正弦波信号的基本仿真模型,其中正弦波频率为100rad/s,幅度为-2V2V。,SIMULINK模型窗的组成,工具条 仿真的启动或继续按钮 暂停按钮 结束仿真按钮 打开模块库浏览器按钮 状态栏 菜单栏,模型概念和文件操作,SIMULINK模型是什么 在视觉上:直观的方框图 在文件上:扩展名为MDL的ASCII代码 在数学上:体现了一组微分方程或差分方程 在行为上:模拟了物理器件的构成的实际系统的动态性状 SIMULINK模型的3种宏观组件:信源(Source)、系统(System)、信宿(Sink),模型概念和文件操作,SIMULINK模型的一般结构 信源:可以是常数、正弦波
6、、阶梯波等信号源 信宿:可以是示波器、图形记录仪等 系统:被研究系统的SIMULINK方框图 系统、信源、信宿,可以从SIMULINK模块库中直接获得,也可以根据用户意愿用库中的模块构搭而成 对于具体的SIMULINK而言,不一定完全包含这三大组件,信源,系统,信宿,模型概念和文件操作,模型文件(*.mdl)的操作 新建 打开 存盘 打印,创建动态系统SIMULINK模型的一般步骤,写出描写系统动力学的全部方程,包括微分方程、差分方程、代数方程等 为待建模型,开启空白模型窗 根据理论数学模型,在SIMULINK模块库中选择所需的模块,并将其复制到空白模型窗 假如模块结构不符合数学模型要求,在勾
7、画信号线之前,必须先设置模块中影响结构的参数,如输入输出口的数目 根据理论数学模型,借助鼠标勾画各模块间的信号连线,使之成为系统,再根据理论数学模型,从系统角度出发,对各模块的非结构参数进行设置 根据经验或采用默认方法,对仿真解算器和仿真终止时间进行设置 给新建模型起适当的名字加以保存 运行SIMULINK模块模型,并根据情况进行适当调试 保存调试好的SIMULINK模型,以供仿真研究使用,创建动态系统SIMULINK模型的一般步骤,7.1 连续系统建模,连续系统:可以用微分方程或传递函数描述的系统 连续系统的分类:线性和非线性 用于建模连续系统的模块:Simulink模块组中的Contino
8、us、Math以及Nonlinear模块库中,7.1.1 基于微分方程的SIMULINK建模,建立理论数学模型 对于无外力作用的“弹簧质量阻尼”系统,据牛顿定律可写出 代入具体数值并整理,可得,建模的基本思路 采用“积分”模块,而不采用“求导”模块,描写二阶导数与一阶导数、一阶导数与函数间的关系 等号右边的各项的非1系数,借助“增益”模块实现 等号右边两项的代数和运算采用“求和”模块实现 为了观察位移随时间的变化,还需要显示“示波器”模块,开启空白(新建)模型窗 从模块库复制所需模块到空白(新建)模型窗 连接信号线 根据理论数学模型设置模块参数 增益模块参数设置 求和模块参数设置:+改为- 积
9、分模块参数设置:x(0)=0.05m 仿真参数设置:采用默认参数 保存模型文件,引出示波器窗口,运行仿真模型,参数设置,几乎所有的模块都有一个相应的参数对话框,该对话框可以用来对模块参数进行设置 打开参数设置对话框的方法:双击一个模块 可根据仿真需要对各个模块的参数进行设置,信号线操作,信号线:模块间的连线 每个模块都有特定标识的输入口和输出口 连接模块时,要注意模块的输入、输出端和各模块间的信号流向,常用的Sourse库信源,无输入口,至少有一个输出口 Clock:仿真时钟,输出每个仿真步点的时刻 Constant:恒值输出 From File: 从文件读数据,必须是MAT文件,而且第一行是
10、时间,其余每行存放一个信号序列 From Workspace: 从工作内存读数据,常用的Sourse库信源,Signal Generator:信号发生器,可产生正弦、方波、锯齿波、随机波 Sine Wave:正弦波输出,可设置幅值、相位、频率 Step: 阶跃输出,可设置阶跃时刻、阶跃前后的幅值 其他标准信源,常用的Sink库信宿,Display:数值显示模块 Scope:示波器 Stop:终止仿真模块,可接受向量输入,任何分量非零时,终止整个仿真 To File:把数据保存为文件,可设定文件名和数据结果矩阵的名称 To Workspace:把数据写成矩阵,以列方式保存时间或信号序列 XY G
11、raph:显示x-y图形,纵横坐标范围可设置,常用的Sink库信宿,示波器 工具条的使用 纵坐标范围的手工设置 横坐标的设置 把示波器数据送入MATLAB工作空间:勾选Save data to workspace栏,可把示波器缓冲区中保存的数据以矩阵形式,送入MATLAB工作空间;变量名可设定,缺省名是ScopeData 多信号显示区设置:根据需要可设置Number of axes的值为1、2、3等,分别可以使示波器显示1、2、3路输入信号,仿真的配置,打开系统仿真模型,从模型编辑窗口的Simulation菜单中选择Simulation parameters命令,打开一个仿真参数对话框,在其中
12、可以设置仿真参数 仿真参数对话框包含5个可以相互切换的选项卡 Solver选项卡 Workspace I/O选项卡 Diagnostics选项卡 Advanced选项卡 Real-time Workshop选项卡,仿真的配置,Solver选项卡:用于设置仿真起始和停止时间,选择微分方程求解算法并为其规定参数,以及选择某些输出选项,仿真的配置,Workspace I/O选项卡:用于管理对MATLAB工作空间的输入和输出,仿真的配置,Workspace I/O选项卡 如果使用输入模块In,则必须勾选Input栏 Initial state栏:积分块初始状态值或微分方程初始条件值 Time栏:以指定
13、变量名存放时间变量在工作空间 States栏:把状态变量以指定的变量名存放于工作空间 Output栏:使用输出模块out时设置,仿真的配置,Diagnostics选项卡:用于设置在仿真过程中出现各类错误时发出警告的等级 Advanced选项卡:用于设置一些高级仿真属性,更好地控制仿真过程 Real-time Workshop选项卡:用于设置若干实时工具中的参数。如果没有安装实时工具箱,则将不出现该选项卡,练习2,利用SIMULINK求解 。 利用SIMULINK求解微分方程 在初始条件 , 情况下的 解,并图示。(提示:使用积分模块中的Initial Condition进行初始条件的设置),7
14、.1.2 基于传递函数的SIMULINK建模,建模基本思路,系统数学模型通过形象直观的框图和各环节传递函数给出 可采用SIMULINK的传递函数模块建模 传递函数模块分子和分母系数的数组表示 系统的输入输出需使用In和Out模块 注意累加运算模块的翻转前调整,模型获取代码,%从SIMULINK模型得到系统的状态方程 A,B,C,D=linmod2(exm070102); %求状态方程最小实现的传递函数LTI对象, ss(A,B,C,D)根据获得的状态方程四对组生成一个线性 时不变LTI模型的状态空间对象 STF=tf(minreal(ss(A,B,C,D) %从LTI对象提取传递函数分子分母多
15、项式系数 minreal用于求线性时不变LTI对象的最小实现 Num,Den=tfdata(STF); %元胞数组内容显示 Num:,Den:,系统的单位阶跃响应,t0=(0:0.1:5); y,t=step(STF,t0); plot(t,y,LineWidth,3) grid on xlabel(t),ylabel(y),关于例7.1-2的说明,利用simulink模型,系统函数可以很容易求出,这对复杂系统传递函数的求取特别有用 本例展示了SIMULINK与MATLAB之间的交互 ss、minreal、tf、tfdata、step都是基于LTI对象的MATLAB内建函数,关于LTI对象的详
16、细内容请参考MATLAB帮助文件,7.2 离散时间系统的建模与仿真,与连续系统不同,离散时间系统动态过程的数学描述工具是差分方程和Z变换传递函数(或滤波器) 在建立离散时间系统的SIMULINK模型时,采样周期是最重要的一个设置参数,【例7.2 -1】构建一个低通滤波系统的SIMULINK模型。输入信号是一个受正态噪声干扰的采样信号, 在此 (秒),而 ;采用8阶Butterworth低通滤波器,以便从输入信号中过滤获得10Hz的输出信号。,建模思路,输入信号为离散信号,应建立纯离散时间模型 低通滤波器为离散时间系统,采用离散时间系统函数H(z)模块 滤波器系数可使用数字信号系统课程中的IIR滤波器设计方法得到,本例采用IIR滤波器中的巴特沃夫滤波器,且借助MATLAB指令butter获得 仿真参数设置 选择discrete算法解算器,关于采样周期的说明,采样周期:离散时间系统模块工作的时间间隔,SIMULINK将会按模块定义周期触发相应事件(即采样输入信号或产生输出信号) 采样周期为0,表明此模