动态系统仿真——Simulink
SIMULINK仿真

后面的每一列对应每一个输入端口,矩阵的第一行表示某 一时刻各输入端口的输入状态。另外,也可以把矩阵分开 来表示,即MATLAB默认的表示方法[t,u],其中t是一维 时间列向量,表示仿真时间,u是和t长度相等的n维列向 量(n表示输入端口的数量),表示状态值。例如,在命 令窗口中定义t和u:
条件执行子系统分为
1.使能子系统
使能子系统表示子系统在由控制信号控制时,控制信号由 负变正时子系统开始执行,直到控制信号再次变为负时结 束。控制信号可以是标量也可以是向量。
建立使能子系统的方法是:打开Simulink模块库中的Ports & Subsystems模块库,将Enable模块复制到子系统模型 中,则系统的图标发生了变化。
阵、结构和包含时间的结构3种选择。“Limit data points to last”用来限定保存到工作空间中 的数据的最大长度。 输出选项(Output options)有: ① Refine output(细化输出) ② Produce additional output(产生附加输出) ③ Produce specified output only(仅在指定 的时刻产生输出)
4.1 初识Simulink—— 一个简单的仿 真实例
在MATLAB的命令窗口输入Simulink,或单击MATLAB主 窗口工具栏上的“Simulink”命令按钮即可启动Simulink。 Simulink启动后会显示如图4.1所示的Simulink模块库浏览 器(Simulink Library Browser)窗口。
U (s)
Kp
Ki s
Kd s
simulink仿真

Neural Network Blockset:神经网络工具箱;
Simulink Extras:补充Simulink公共模块库; Stateflow:用来对复杂的事件驱动系统进行建模和仿真; Real-Time Workshop (简称RTW):可以直接将simulink模型框图和 Stateflow的状态图转换成高效优化的程序代码。
将其输入写入工作空间 X-Y示波器模块
16
5、 Sources(信号源模块组) 及其用途
18个基本模块,包 括模型及子系统输入 与信号发生器两种。 其子模块组的名称和 用途见表3-5。
17
表3-5 信号源模块组子模块的名称及用途
模 块 名 称
Chirp Signal Clock Constant Digital Clock From Workspace From File Ground In1 Pulse Generator
工具栏区:含4个按钮: 是新建与打开按钮, 是将模 块放在桌面最上层按钮,Find是用来查找模块库中的模块按
钮。
文字说明区:对所选模块的文字说明; 模块库区:含模块库及其相应的模块组; 状态栏区:即最下方显示Ready区,用来显示浏览器状态。
4
二、基本模块库的分类及其用途
SIMULINK 有13类基本模块库,分别为: Continuous(连续模块组)、 Discontinuities(非连续模块组)、 Discrete(离散模块组)、 Look-Utions(数学运算模块组)、 Model Verification(模型检验模块组)、
模
块
用
途
Band-Limited White Noise 带宽限幅白噪声模块
线性调频信号模块(频率随时间线性增加的 正弦信号),可用于非线性系统谱分析 在每一仿真步输出当前仿真时间(连续时间) 输出与时间无关的实数或复数 仅在指定的采样间隔内输出仿真时间,在 其它时间输出保持前一次值不变(离散时间) 从MATLAB工作空间中读取数据 从一个指定的文件中读取数据并输出 接地模块 输入端口模块(同端口与子系统模块中In1) 产生固定频率脉冲序列
Simulink动态系统仿真入门

Simulink动态系统仿真入门Simulink是基于MA TLAB的图形化仿真设计环境,是MATLAB 提供的进行动态系统建模、仿真和综合分析的集成软件包。
它使用图形化的系统模块对动态系统进行描述,并在此基础上采用MATLAB 的计算引擎对动态系统在时域内进行求解。
它可以处理的系统包括:线性、非线性、离散、连续及混合、单任务、多任务离散事件等。
在MATLAB7.X版本中,可以直接在Simulink环境中运作的工具箱和模型库很多,已经覆盖了航天、航空、通信、控制、信号处理等等诸多领域,涉及内容专业性很强。
1、Simulink系统的启动由于Simulink和MATLAB是高度集成在一起的,因此启动Simulink必须先启动MA TLAB。
在MA TLAB启动Simulink可以通过在命令窗口输入Simulink,或者点击MATLAB工具栏的Simulink 快速启动图标。
启动Simulink后,出现Simulink的主窗口,选择主菜单File中的New\model,即可以打开系统模型编辑器。
下图依次是MATLAB 主窗口、Simulink主窗口和系统模型编辑窗口,图中的箭头表示了操作顺序。
在打开一个新的系统模型文件以后,用户可以从Simulink模块库中选择适合的系统模块或自定义模块来建立系统模型。
我们通过一个简单的例子来分步说明Simulink建模和仿真的能力。
1)在MATLAB 窗口运行Simulink。
打开Simulink模块库浏览器。
2)点击Source子库前的“+”展开库,可以看到各种信源模块。
3)点击新建图标,打开一个空白型的模型窗口。
4)用鼠标选中需要的信源模块,把它拖入新建的空白模型编辑窗口,生成一个正弦波的复制品。
5)同样将信宿库Sinks中的示波器Scope拷贝到模型窗口。
6)利用鼠标完成两个模块的连线操作,完成一个简单的模型。
7)为进行仿真,双击示波器模块,打开示波器显示屏。
Matlab系列之Simulink仿真教程

交互式仿真
Simulink支持交互式 仿真,用户可以在仿 真运行过程中进行实 时的分析和调试。
可扩展性
Simulink具有开放式 架构,可以与其他 MATLAB工具箱无缝 集成,从而扩展其功 能。
Simulink的应用领域
指数运算模块
用于实现信号的指数运算。
减法器
用于实现两个信号的减法 运算。
除法器
用于实现两个信号的除法 运算。
对数运算模块
用于实现信号的对数运算。
输出模块
模拟输出模块
用于将模拟信号输出 到外部设备或传感器。
数字输出模块
用于将数字信号输出 到外部设备或传感器。
频谱分析仪
用于分析信号的频谱 特性。
波形显示器
控制工程
Simulink在控制工程领域 中应用广泛,可用于设计 和分析各种控制系统。
信号处理
Simulink中的信号处理模 块可用于实现各种信号处 理算法,如滤波器设计、 频谱分析等。
通信系统
Simulink可以用于设计和 仿真通信系统,如调制解 调、信道编码等。
图像处理
Simulink中的图像处理模 块可用于实现各种图像处 理算法,如图像滤波、边 缘检测等。
用于将时域信号转换为频域信号,如傅里叶变换、 拉普拉斯变换等。
03 时域变换模块
用于将频域信号转换为时域信号,如逆傅里叶变 换、逆拉普拉斯变换等。
04
仿真过程设置
仿真时间的设置
仿真起始时间
设置仿真的起始时间,通 常为0秒。
步长模式
选择固定步长或变步长模 式,以满足不同的仿真需 求。
Simulink仿真操作基本教程

◼ 在 Simulink 模 型 或 模 块 库 窗
口内,用鼠标左键单击所需 模块图标,图标四角出现黑 色小方点,表明该模块已经 选中。
c) 模块拷贝及删除
◼ 在模块库中选中模块后,按 住鼠标左键不放并移动鼠标 至目标模型窗口指定位置, 释放鼠标即完成模块拷贝。
◼ 模块的删除只需选定删除的 模块,按Del键即可。
a) 启动Simulink。
➢ 单击MATLAB Command窗口工具条上的Simulink图标,或者
在MATLAB命令窗口输入simulink,即弹出图示的模块库窗 口界面(Simulink Library Browser)。该界面右边的窗口给出 Simulink所有的子模块库。
➢ 常用的子模块库有 Sources( 信 号 源 ) , Sink( 显 示输出),Continuous(线性连 续系统),Discrete(线性离 散系统),Function & Table (函数与表格),Math(数学 运算), Discontinuities (非 线性),Demo(演示)等。
图9-15 定步长算法
图9-16 变步长算法
第一章 Simulink动态仿真
① Solver页 ➢ Error Tolerance(误差限度): 算法的误差是指当前状态值与当前
状态估计值的差值,分为Relative tolerance(相对限度)和Absolute tolerance(绝对限度),通常可选auto。
第一章 Simulink动态仿真
a) 启动Simulink
① 用鼠标右键点击Simulink菜单项,则弹出一菜单条,点击该菜单
条即弹出该子库的标准模块窗口.如单击左图中的【Sinks】,出现 “Open the ‘Sinks’Library”菜单条,单击该菜单条,则弹出右图所 示的该子库的标准模块窗口。
simulink动态系统建模仿真 第7章

图7-6
当选择变步长算法仿真模型时,Solver options选项区 中的Zero crossing control选项可以控制是否启动过零检测, 如图7-7所示。对于大多数模型来说,当选择较大步长仿真 模型时,启动过零检测会加速仿真过程。但是,如果模型有 极大的动态变化,则关闭过零检测会加速仿真过程,但会降 低仿真结果的精确度。
表7-1列出了Simulink中具有过零的模块,每个模块的过 零类型是不同的,有的过零只是用来通知求解器的模式是否 发生了改变,另外一些过零类型则与信号有关,用来驱动其 他模块。
模块 Abs Backlash De adZo ne From Workspace Hit Crossing If
Inte gra to r
图7-7
对于模型中的某些模块,用户可以在模块的参数对话框 中不选择Enable zero crossing detection选项来关闭模块的过 零检测,并设置Zero crossing control选项为Use local settings,表示只对模型进行局部过零检测。局部过零检测 可以减少Simulink频繁地对模型进行过零检测,而模型中的 其他模块同样可以获得使用过零检测带来的高精度。
这里将Sine Wave模块中的Frequency(rad/sec)值设置为2,把 模型中的输出数据传送到MATLAB工作区,在工作区中利用 plot(tout,yout)命令绘制输出结果曲线,可得到如图7-9所示的结 果。从图中可以看到,实线是Function模块的输出,该模块未检 测到过零事件,因此输出曲线在拐点处漏掉了一些点,正弦波的 绝对值输出不完全正确;虚线是Abs模块的输出,该模块检测到 了过零事件,在MATLAB工作区中输入下列命令:
第4章 SIMULINK仿真

• (9)Signal Attributes(信号属性模块库)和Signal Attributes(信号属性模块库) Routing(信号路由模块库) Routing(信号路由模块库)
• • • • • • • • • • • • • • • 这两个模块库主要是由描述信号系统的模块构成,其中主要模块有: Data Type Conversion (数据类型转换器) IC(初始状态); Probe(探测器); Width(带宽); Bus Creator(总线生成器); Bus Selector(总线选择器); Data Store Memory(数据记忆存储); Data Store Read(数据读存储); Data Store Write(数据写存储); From(导入); Goto(传出); Goto Tag Visibility(传出标记符可视性); Multiport Switch (多路选择开关); Mux(混合)
• (7)Model Verification(模型辨识模块库)和ModelVerification(模型辨识模块库) ModelUtilities(扩展模型模块库) Wide Utilities(扩展模型模块库) • 这两个模块库由描述模型辨识的和扩展模型模块构成,其 中主要模块有: • Assertion(确认); • Check Discrete Gradient(检查离散梯度); • Check Dynamic Range(检查动态系统范围); • Check Dynamic Lower Bound(检查动态系统低段范围) • Check Static Range(检查静态系统范围); • Check Input Resolution (检查输入分辨率); • DocBlock(模块注释文本); • Model Info(模型信息); • Timed-Based Linearization(基于时间的线性化模型)
如何使用MATLABSimulink进行动态系统建模与仿真

如何使用MATLABSimulink进行动态系统建模与仿真如何使用MATLAB Simulink进行动态系统建模与仿真一、引言MATLAB Simulink是一款强大的动态系统建模和仿真工具,广泛应用于各个领域的工程设计和研究中。
本文将介绍如何使用MATLAB Simulink进行动态系统建模与仿真的方法和步骤。
二、系统建模1. 模型构建在MATLAB Simulink中,可以通过拖拽模块的方式来构建系统模型。
首先,将系统的元件和子系统模块从库中拖拽到模型窗口中,然后连接这些模块,形成一个完整的系统模型。
2. 参数设置对于系统模型的各个组件,可以设置对应的参数和初始条件。
通过双击模块可以打开参数设置对话框,可以设置参数的数值、初始条件以及其他相关属性。
3. 信号连接在模型中,各个模块之间可以通过信号连接来传递信息。
在拖拽模块连接的同时,可以进行信号的名称设置,以便于后续仿真结果的分析和显示。
三、系统仿真1. 仿真参数设置在进行系统仿真之前,需要设置仿真的起止时间、步长等参数。
通过点击仿真器界面上的参数设置按钮,可以进行相关参数的设置。
2. 仿真运行在设置好仿真参数后,可以点击仿真器界面上的运行按钮来开始仿真过程。
仿真器将根据设置的参数对系统模型进行仿真计算,并输出仿真结果。
3. 仿真结果分析仿真结束后,可以通过查看仿真器界面上的仿真结果来分析系统的动态特性。
Simulink提供了丰富的结果显示和分析工具,可以对仿真结果进行绘图、数据处理等操作,以便于对系统模型的性能进行评估。
四、参数优化与系统设计1. 参数优化方法MATLAB Simulink还提供了多种参数优化算法,可以通过这些算法对系统模型进行优化。
可以通过设置优化目标和参数范围,以及定义参数约束条件等,来进行参数优化计算。
2. 系统设计方法Simulink还支持用于控制系统、信号处理系统和通信系统等领域的特定设计工具。
通过这些工具,可以对系统模型进行控制器设计、滤波器设计等操作,以满足系统性能要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 3) Fcn:函数 • 对输入进行符合c语言规范的数学表达式
处理。模块输入为u。它使用的函数比较 少。它可以进行如sin(u[1])之类的计算。 • 4)保存一步memory
2020/4/8
6、离散系统
1)零阶保持器。模拟A/D转换器。 2)一阶保持器。 3)离散积分器,实现离散的欧拉积分。 4)离散传递函数和离散状态空间模型(初值) 5)延迟:输入信号做单位延时并保持一个采
Matlab及其应用 讲座之五
动态系统仿真——Simulink
主讲人:鲍文
2020/4/8Байду номын сангаас
>
退出
目录
发展历史 基本使用 模型介绍 数值仿真 高级分析 例题
2020/4/8
<>
主菜单
退出
一、发展历史
• 1、动态系统仿真 CSCAD(E) 80年代前:自己编程序,C/FORTRAN 90年代后:集成仿真环境 VisSim SimuLink
2020/4/8
2、步长控制
1)容许误差越大,仿真的精度越低。一般容 许误差应当在0.1到1e-6之间。
2)最大步长足够小,则仿真的精确度比较好 ,最大步长比较大,可能出现不稳定。
3)仿真的最小步长,是仿真开始的步长。设 置的过小,如系统不连续,在不连续处容 易产生过多的点,会超出可用内存和资源; 如果最小步长过大,导致结果不精确。
2020/4/8
• 4)积分 • 可以设定初始条件。 • 5)状态空间 • a、b、c、d形式,可以给出初值。 • 6)扩展 • a、PID b、可设定初值的传函
2020/4/8
5、非线性系统
• 1)常见非线性
死区
、限幅
、滞环
、滞后
。
• 2)MATLAB函数或表达式。它由一个表量 或者向量输入,下面的表达式是有效的: sin、u(1)/u(2)。
2、SimuLink发展 1990年出现,叫SimuLab 1992年改名为SimuLink1.0 +3.5
2020/14/8999年SimuLink 3.0 +5.3 OO
二、基本使用
• 1、Simulink的启动 • 1). 命令窗口中键入simulink • 2). file菜单中选择new命令的model • 3). 工具栏中,按按钮 • 4).模型窗口file菜单选择new命令的model
2020/4/8
四、数值仿真
1、仿真方法 1)定步长仿真:1,2,3,4,5
仿真步长的选择: a 稳定性:最小时间常数的一半 b 精度:更小一些
随机特性/非线性 2)变步长仿真:缺省
2020/4/8
A Runge-Kutta (包含rk23、rk45)适合于高度 非线性或不连续系统,不适合刚性系统; B Adams方法:非线性小、时间常数变化小 C stiff方法是专门用于刚性系统仿真 D Euler方法比较差,尽量避免使用 E Linsim方法适合于接近线性的系统,对 线性刚性系统有很大的优越性。
• 3)修改模型参数
4)模型名字修改
• 5)旋转模型
6)保存文件
• 7)打印
2020/4/8
三、模型介绍
只介绍一些经典模块 • 1、数据源部分: • A常数模块 B阶跃模块 • B信号发生器 • 只接受输入的数字,不接受变量 • D时钟 • 输出仿真中的当前时间,以秒为单位。在
记录数据序列中需要这个模块。
F 从工作空间读数
• 这个模块从工作空间中读取数据,数据 源至少有两列,第一列为单调递增的时 间,其它列为对应的数据。这个模块的 其它特性和from file一样。它常用于在 MATLAB工作空间处理完数据后,读入 SIMULINK中。
2020/4/8
2、连接
•a)聚合 •一般用在显示、保存或者状态空间系统的 输入中。
•b)分离 •一般用在处理从文件、工作空间读入数据 或者状态控制系统的输出分解。
•c)子系统
2020/4/8
3、显示部分
• 1) 示波器 • 示波器中可以同时显示多个曲线 • 2)输出到文件 • 3)输出到工作空间 • 4)数字显示 • 5)XY图
2020/4/8
6)、高级显示
• A)Extras中的增强显示
•
谱分析/相关分析
• B)DSP模块
• 作FFT显示
2020/4/8
4、线性系统
• 1)增益 • 输出为输入与增益的乘积。 • 2)加法 • 对输入作求和(差)操作,输入可以使两
个或者多个。操作使用+-+-系统给出。 • 3)传递函数 • 分子分母多项式形式。分母的阶次必须大
于分子的阶次,初始值条件为0。
2020/4/8
E 从文件读数
• 至少有两行,单调递增的时间,其 它行为对应数据。文本文件或mat文件。 对数据文件没有描述的时间,采用线性 插值的方法得到中间数据。使用这个模 块可以设定任意的输入曲线,对测试试 验数据十分有用。需要注意输入输入不 能过于稀少,免得导致仿真的精度降低 。
2020/4/8
2020/4/8
2. 仿真一个简单的模型
• 仿真一个温度计放入水中,显示的变化。
• 1)仿真建立模型:惯性环节 1/(Ts+1)
•
T=10s
• 2)搭建这个模型:使用simulink
• 3)开始仿真:a.开始/结束时间
•
b.仿真方法
• 4)看看显示/修改模型参数
2020/4/8
3.基本操作
• 1)选择(多个)/复制模型 2)连线/移动
样周期。没有延迟采保,使用零阶保持器, 大于一个单位的延迟功能,采用Discrete Transfer FCN模块。
2020/4/8
7、扩展的模块
1)NCD模块:非线性控制系统设计。例子 2)模糊 3)神经元网络 4)电力系统 5)其它:系统辨识、通讯
例子:计算峰峰值 y=sqrt(x).*sin(x).^2
2020/4/8
8.子系统的建立
• 1)为什么建立子系统 • a 减少模块数 b 有利于调试 • c 对大系统/复杂系统有利 • 2)建立方法 • a Subsystem b Group命令 • 3)输入输出 • a in / out b 更名
2020/4/8
9、注意
• 1)大部分模块可连接向量、可改方向 • 2)连续系统和离散系统可以共同使用 • 3)少用matlab FCN • 4)模块可以使用mask产生:iconedit • 5)初始化数据: