第9章 MATLAB环境下的仿真软件Simulink

Slides:



Advertisements
Similar presentations
第一讲:导论 The Introduction  哲学与中国哲学  哲学与哲学史  中国哲学史的历史.
Advertisements

國立成功大學工程科學系 Department of Engineering Science -National Cheng Kung University 控制與訊號處理實驗室 Control & Signal Processing Lab MATLAB/Simulink 教學.
第六讲 MATLAB 语言程序设计 6.1 MATLAB语言的函数的基本结构 6.2 全局、局部变量、子函数与私有目录
窦娥冤 关汉卿 感天动地 元·关汉卿.
我征服了黃山 林達的黃山之旅 2006春.
舌尖上的昭通.
人 因 工 程 四室一B 黃雅勤 四室一B 黃曉楓 四室一B 鄭羽真 四室一B 張起順.
知其不可而为之.
一百零一年溪口國小 學校日 班級: 三年三班 教師: 張慈麟.
中国画家协会理事、安徽省美术家协会会员、 工艺美术师、黄山市邮协常务理事余承平主讲
声明 本课件供《虚拟仪器技术》、《自动测试技术》等相关课程教师授课使用与参考. 教师可根据课程需要和实际情况在此课件基础上增删内容
《愛》 張愛玲 指導老師:胡翰平 國二甲 S 黃宜宣.
用“自言自语法”提高学生 英语口头表达能力 李奉栖.
关注热点 2014年天猫双十一成交总额 571亿 点亮217个国家地区
第二章 项目一:企业厂区与车间平面设计 1.
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
主講人:臺中市政府警察局 交通警察大隊 行政組組長簡仁照
汉字的构造.
诵读欣赏 古代诗词三首.
台灣廢物物處理機構 邱騰煥 8 號.
高等职业学校建筑设计类与艺术设计类专业骨干教师实践能力国家级培训
中鸣虚拟搜救比赛项目 (一人) 现场主题创作(40%)(一人) 3D虚拟搜救(60%)(一人).
没有请柬该如何办 记者如何选取有利位置 着装 准备工作 提问时的注意事项
第 5 章 流程控制 (一): 條件分支.
我的心得報告 經過篩選,挑中我們 十多位學生由學校推薦進入公司,開始他們的學習之旅 學習的過程中有想像不到的意外驚喜
实践 课题 周围环境对当代大学生成长的影响 指导老师:王永章 小组成员:陈荣、刘若楠、张红艳、吕雪丹、樊金芳、李惠芬、黄婧
贴近教学 服务师生 方便老师.
六年级 语文 下册 第四单元 指尖的世界.
(浙教版)四年级品德与社会下册 共同生活的世界 第四单元 世界之窗 第二课时.
波浪发电 组员:罗海荣 方健 凤亮 李健雄 江召.
洛阳师范学院思想政治教育省级教学团队网络课程 中国哲学史 孟子
第2章 MATLAB仿真 2.1 MATLAB介绍 2.2 MATLAB编程仿真 2.3 Simulink仿真.
第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。
單元一:基頻訊號傳送技術實習 (PCM取樣 量化 編碼部分) 數位通訊實習模擬 單元一.
第1章 MATLAB概述 1.1 MATLAB 7.x简介 是Matrix Laboratory的缩写,它将计算、可视化和编程功能于一身,是一个开放的基于矩阵的交互式开发系统。主要用于数学计算、系统建模与仿真、数据分析与可视化等。(Mathworks始创于1984) MATLAB的系统结构.
第七章 Simulink建模和仿真 在计算机技术飞速发展的今天,许多科学研究、工程设计由于其复杂性越来越高,因此与计算机的接合日趋紧密。也正是计算机技术的介入,改变了许多学科的结构、研究内容和研究方向。例如,计算流体力学、计算物理学、计算声学等新兴学科的兴起,均与计算机技术的发展分不开。控制理论、仿真技术本身与计算机的接合就十分紧密,而随着专业领域的研究深入和计算机软硬件技术的发展,这种联系呈现更加紧密。计算控制论的建立,足以说明这个问题。而这种发展,又以系统仿真技术的发展分不开的。
第4章 PIC软件开发设计基础.
Matlab M檔案 方煒 台大生機系.
無線通訊系統模擬 姓名:顏得洋 學號:B
内容: 1. 库模块简介 2.基本建模方法 3.模型举例 4.子系统与模块封装技术 5.函数的编写与应用
Simulink建模与仿真.
Simulink模擬基礎 主要內容 Simulink簡介 Simulink模組庫 Simulink的基本操作 S-函數.
CH5、SIMULINK仿真基础 在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,则很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真。 1990年,Math Works软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具,并命名为SIMULAB,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。但因其名字与当时比较著名的软件SIMULA类似,所以1992年正式将该软件更名为SIMULINK。
弯管( Duct Bend ) 实例 1.
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
第6章 FIR数字滤波器设计 6.1 FIR数字滤波器原理 6.2 使用DSP Builder设计FIR数字滤波器
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
第六章 安全衛生工作守則 6-1 前 言  6-2 訂定依據相關法令規定  6-3 工作守則製作程序及製作前應注意事項  6-4 如何訂定適合需要之安全衛生工作守則  6-5 結 論.
MATLAB介绍 Matlab基本命令介绍 Matlab矩阵运算 Matlab控制流 Matlab图像处理工具箱 实习题讲解.
Matlab及其应用 讲座之五 动态系统仿真——Simulink 主讲人:鲍文 在此幻灯片插入公司的徽标 从“插入”菜单 选择图片
第2章 MATLAB程序设计 编者.
第二章 闭环控 制的直 流调速 系统及 计算机 仿真.
一、问题的背景和目的 二、问题分析 三、例题
9.1 仿真概念和仿真操作步骤 9.2 常用仿真元件与激励源 9.3 仿真器的设置与运行
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
设计示例一 用门级结构描述D触发器:.
Matlab及其应用 讲座之五 动态系统仿真——Simulink 主讲人:鲍文 在此幻灯片插入公司的徽标 从“插入”菜单 选择图片
志在蓝天 ——见证雏鹰的起飞 高二(13)班 评优评先锦辑.
Inspiration From Above 1 Chinese Evangelical Free Church
PowerWorld Simulator入门
控制系统计算机辅助设计-MATLAB语言与应用
Xián 伯 牙 绝 弦 安徽淮南市八公山区第二小学 陈燕朵.
MATLAB 程式設計 程式除錯 方煒 台大生機系.
MATLAB 实用教程.
自动控制原理.
作者:郭阳宽 王正林 《过程控制系统仿真》 电子工业出版社 出版 作者:郭阳宽 王正林
第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试.
熟悉VC++开发环境.
MATLAB 程式設計入門篇 程式除錯 張智星 (Roger Jang)
跑壘訓練與戰術應用 授課講師:林郁捷.
Presentation transcript:

第9章 MATLAB环境下的仿真软件Simulink 9.3 仿真模型参数的设置 9.4 子系统的建立与封装 9.5 在命令窗口中创建模型 9.6 S-函数的设计和应用 9.7 仿真系统的线性化分析

9.1 Simulink的基本操作 9.1.1 Simulink的启动与退出 1. Simulink的启动 启动Simulink的方法有3种: (1)在MATLAB的命令窗口直接键入simulink。 (2)单击MATLAB命令窗口工具栏上的Simulink模块库浏览器命令按钮。 (3)在MATLAB命令窗口File菜单中选择New菜单项下的Model命令。 2. Simulink的退出 为了退出Simulink,只要关闭所有模型窗口和Simulink模块库窗口即可。

9.1.2 Simulink模块的操作 1. 选取模块 2. 复制与删除模块 3. 模块的参数和属性设置 4. 模块外形的调整 5. 模块名的处理 6. 模块的连接 7. 在连线上反映信息。

9.2 Simulink的几类基本模块 9.3 仿真模型参数的设置 9.3.1 通过菜单命令设置仿真模型参数 选择模型窗口Simulation菜单中的Parameter命令,将出现仿真参数对话框。对话框分四个选项卡:Solver(算法)、Workspace I/O(工作空间输入输出)、Diagnostics(诊断)和Real-Time Workshop(实时工作间)。

9.3.2 在命令窗口调用函数设置仿真模型参数 1. sim 函数 其调用格式为: [t, x, y ] =sim(modname,timespan,options,data); 2. simset函数 它有如下4种用法: (1)options=simset(property,value,…) (2)options=simset(old_opstruct,property,value,…) (3)options=simset(old_opstruct,new_opstruct) (4)simset

例9.1以图9.15所示的仿真模型为例,说明simset函数的用法。 (1)在命令窗口输入命令: option=simset('OutputVariables','x','OutputPoints','all','FinalstateName','date'); [t,x,y]=sim('mode1',[1,10],option) (2)在命令窗口中输命令: optionl=simset('OutputVariables','xy','OutputPoints','all'); [t,x,y]=sim('Simul',[2,4,6,8],option1);

3. simget函数 该函数有如下3种用法: (1)struct=simget(model) (2)value=simget(model,property) (3)value=simget(Option,Structure,property) 4.set_param函数 (1)设置仿真参数 调用格式为:set_param(mode,property,value,…) (2)控制仿真进程 调用格式为: set_param(mode,'SimulationCommand','cmd')

例9. 2 假设从实际应用领域(力学、电学、生态或社会)中,抽象出有初始状态为0的二阶微分方程x"+0. 2x'+0. 4x=0 例9.2 假设从实际应用领域(力学、电学、生态或社会)中,抽象出有初始状态为0的二阶微分方程x"+0.2x'+0.4x=0.2u (t), u(t)是单位阶跃函数。用积分器直接构造求解微分方程的模型exm1.mdl。 步骤如下: (1)改写微分方程。把原方程改写为:x"=0.2u(t)-0.2x'-0.4x (2)利用Simulink模块库中的标准模块构作模型。 (3)仿真操作。 (4)保存在MATLAB工作空间中的数据。

例9.3利用传递函数模块建模。 步骤如下: (1)根据系统传递函数构造系统模型 (2)仿真操作。 例9.4利用状态方程模块建模。 (1)利用构造仿真模型 (2)仿真

9.4 子系统的建立与封装 9.4.1 子系统的建立 1. 通过Subsystem模块建立子系统 操作步骤为: (1)先打开Simulink模块库浏览器,新建一个仿真模型。 (2)打开Simulink模块库中的Signals & Systems模块库,复制Subsystem模块到新的模型窗口中。 (3)用鼠标左键双击Subsystem模块打开一个空白的Subsystem窗口,将要组合的模块添加到该窗口中,另外还要根据需要复制一个或多个Input和Output模块,表示子系统的输入和输出端口。这样,一个子系统就建好了。

2. 通过已有的模块建立子系统 操作步骤为: (1)先选择要建立子系统的模块,不包括输入端口和输出端口。 (2)选择模型窗口Edit菜单中的Create Subsystem 命令,这样,子系统就建好了。在这种情况下,系统会自动把Input模块和Output模块添加到子系统中,并把原来的模块变为子系统的图标。

9.4.2 子系统的条件执行 1. 使能子系统 建立使能子系统的方法是:打开Simulink模块库中的Signals & Systems模块库,将Enable模块复制到子系统模型中,则系统的图标发生了变化。

例9.5利用使能原理构成一个正弦半波整流器。 操作步骤如下: (1)打开Simulink模块库浏览器以及新建一个模型窗口。 (2)双击空子系统模块Subsystem,打开其结构模型窗。 (3)将Simulink浏览库中的In输入口模块、Out输出口模块、Enable使能模块拖至子系统的结构模型窗;把In模块的输出直接送到Out模块的输入端;Enable模块无须进行任何连接,且采用它的缺省设置实现题目所需使能子系统。 (4)完成新建模型窗口中各模块间的连接并存盘。 (5)双击示波器模块,打开显示窗。然后选择Simulink菜单中的Start命令,就可看到半波整流波形。

2. 触发子系统 触发子系统是指当触发事件发生时开始执行子系统。与使能子系统相类似,触发子系统的建立要把Signals & Systems模块库中的Trigger模块拷贝到子系统中。

例9.6 利用触发子系统原理将一锯齿波转换成方波。 操作步骤如下: (1)用Signal Generator、Subsystem和Scope模块构成一子系统,双击Signal Generator模块图标在Wave from的下拉列表框中选择sawtooth,即锯齿波。 (2)将上例中的Enable模块换成Trigger触发模块。双击该模块并选Trigger type触发事件形式为either,即上跳沿或下跳没触发。 (3)完成新建模型窗口中各模块间的连接,并存盘。 (4)双击示波器模块,然后选择Simulink菜单中的start命令,就可看到方波。

3. 使能加触发子系统 所谓使能加触发子系统就是把Enable和Tirgger模块都加到子系统中,使能控制信号和触发控制信号共同作用子系统的执行,也就是前两种子系统的综合。该系统的行为方式与触发子系统相似,但只有当使能信号为正时,触发事件才起作用。

9.4.3 子系统的封装 子系统的封装过程很简单:先选中所要封装的子系统,再选择模型窗口Edit菜单中的Mask Subsystem命令,这时将出现Mask Editor对话框。 Mask Editor对话框中共包括3个选项卡:Icon、Initialization和Documentation。子系统的封装主要就是对这3页参数进行设置。

9.5 在命令窗口中创建模型 9.5.1 构造模型的命令 9.5.2 设置参数

9.6 S-函数的设计和应用 9.6.1 S-函数概述 9.6.2 用M文件编写S-函数 (1)MATLAB5.3为用户提供了一个模板,只要在必要的子程序里编写代码并输入参数就可以了。 (2)从Function & Tables子库里把S-Function系统的功能模块复制过来,输入程序的文件名,以供调用。

例9.7利用M文件来写一个限幅积分器的S-函数,并借助S-函数模块来调用此文件。限幅积分器的数学模型如下: 操作步骤如下: (1)根据数学模型,编写S-函数sfun97.m。 function [sys, x0, str, ts] = sfun97(t, x, u, flag, lb, ub, xi) switch flag, case 0, [sys, x0, srt, ts] = mdlInitializeSizes(xi); case 1, sys = mdlDerivatives(t, x, u, lb, ub); case 2 , sys = mdlUpdate(t, x, u); case 3, sys = mdlOutputs(t, x, u); case 4, sys = mdlGetTimeOfNextVarHit(t, x, u); case 9, sys = mdlTerminate (t , x , u); otherwise error ( [ ‘Unhandled flag =’ ,num2str ( flag) ] ); end function [sys,x0,str,ts]=mdlInitializeSizes(xi) sizes =simsizes; sizes.NumContStates=1; sizes.NumDiscStates=0; sizes.NumOutputs=1; sizes.NumInputs=1; sizes.DirFeedthrough=0; sizes.NumSampleTimes=1; sys=simsizes(sizes); xo=xi; str=[ ]; ts=[0, 0]; function sys=mdlDerivatives(t,x,u,lb,ub) if(x<=lb&u<0)|(x>=ub&u>0) sys=0; else sys=u; function sys=mdIUpdae(t,x,u) sys=[ ]; function sys=mdIOutputs(t,x,u) sys=x; function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime=1;% Example,set the next hit to be one second later sys=t+ sampleTime; function sys=mdlTerminate(t,x,u) sys = [ ];

(2)完成S-函数的编写后,接着建立 Simulink模型,将功能模块S-function复制到设计区域,打开其参数页,输入S-函数的文件名sfun97.m和S-函数的参数lb、ub、xi。 (3)编写主程序。 clear; lb=-0.5; ub=0.5; xi=0; sim(‘sfun97’); (4)在命令窗口运行主程序,并双击示波器,即可查看到输入波形及限幅积分的结果。

线性化分析函数linmod用来提取非线性系统的近似线性模型,也可以用来获取线性系统的数学模型。linmod函数的调用格式为: 9.7 仿真系统的线性化分析 9.7.1 连续系统的线性化 线性化分析函数linmod用来提取非线性系统的近似线性模型,也可以用来获取线性系统的数学模型。linmod函数的调用格式为: [A,B,C,D]=linmod ('sys') [A,B,C,D]=linmod ('sys', x ,u) [A,B,C,D]=linmod ('sys', x, u, pert) [A,B,C,D]=linmod ('sys', x, u, pert, xpert, upert)

9.7.2离散系统的线性化 dlinmod能够以任意给定的采样时间对离散系统、多速率系统以及连续和离散混合系统进行线性化。除了第2个选项需要插入采样时间来对系统线性化外,dlinmod的调用格式和linmod是相同的: [A,B,C,D]=dlinmod ('sys', Ts, x ,u)

9.7.4 平衡分析 在给定输入、输出及状态条件下,Simulink提供的函数trim可以用来确定系统的稳态平衡点。其调用格式为: [x,u,y,dx]=trim('sys') [x,u,y,dx]=trim('sys',x0,u0,y0,ix,iu,iy) 其中x,u,y,dx分别代表状态向量、输入向量、输出向量和状态向量的导数。sys是模型名。x0,u0,y0分别为状态向量x、输入向量u和输出向量y的初始猜测值,它们的输入格式必须是列向量形式。ix是向量,它的元素是那些在寻找过程中,要求保持其值固定不变(等于初始猜测值)的那些状态变量的序号。iu、iy与ix类似,分别适用于u和y。