matlab仿真

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例3_1_2:实现两个正弦信号的相乘。
3
3.2 模型的创建和模型文件
3.2.1 SIMULINK 模型是什么? SIMULINK 模型有以下几层含义: • 在视觉上表现为直观的方框图; • 在文件上则是扩展名为 mdl 的ASCII代码; • 在数学上表现为一组微分方程或差分方程; • 在行为上则模拟了实际系统的动态特性 。 SIMULINK 模型通常包含三种 “组件”: • 信源( Sources):可以是常数、时钟、白噪声、正弦波、 阶梯波、扫频信号、脉冲生成器、随机数产生器等信号源; • 系统( System):即指被研究系统的 SIMULINK 方框图; • 信宿( Sink):可以是示波器、图形记录仪等。 对于具体的 SIMULINK 模型而,不一定完全地包含这三大 组件。例如:研究初始条件对系统影响就不必包含信源组件。
13
3.5 子系统的创建、封装及受控执行
利用 SIMULINK 的封装(Mask)功能 ,可以定做一个模块 或一个子系统的对话框和图标 。 引用子系统的理由是:研究分析系统时 ,进行概念抽象 (Abstraction of concepts)的需要;为提高工作效率和可靠 性,实施模块“重用(Reuse)” 的需要。 仿真建模中子系统的作用,类 似于 MATLAB 指令运行中的 M函数文件。 前面介绍了如何利用库标准模块建立被研究系统的仿真模型。 下面着重介绍如何利用“分层”思想建立比较复杂的仿真模型, 介绍建立这种分层模型所需的各种子系统( Subsystem )。 封装的一个重要用途是帮助用户创建一个对话框来接受参 数。这样就无需打开子系统中各个模块的对话框,然后再逐 个输入参数。
17
使能子系统
例3_5_2:利用使能原理构成一个半波整流器。本例演示使能子系统的创建 及工作机理。 ( M3_ex3_5_2.mdl) (1)打开SIMULINK的新建模型窗口。
(2)从SIMULINK库中提取三个模块Sine wave、 Subsystem 、 Scope 到新 建窗。然后进行文件保存操作,并起文件名为M3_ex3_5_2 (这保存操作只 为以后调用方便,并非必要)。
16
3.5.2 条件执行子系统
在 SIMULINK 模块库中,有两个特殊模块:Enable 模块 和Trigger 模块。如果把这种模块放到某个子系统中,则该子 系统是否起作用将取决于外界的某个条件(状态或事件 )是 否满足,这样就构成了所谓的条件执行子系统 (Conditionally Executed Subsystem) 。 常用的条件执行子系统有:使能子系统 ( Enabled Subsystem );触发子系统 ( Trigged Subsystem ); 触发使能子系统 ( Trigged and Enabled Subsystem )。
1 In
1 Gain
1 Out
Байду номын сангаас
用 mdl 文件编写有输入和输出的增益器。 (在 Word下 ) (韩利竹P161)
6
3.3 仿真运行
3.3.1 使用菜单进行仿真 设置仿真参数和选择求解器 通过选择菜单 Simulation 下的 Parameters 菜单项,用来设置 仿真参数和选择求解器。其中有三个页面管理这些仿真参数。 • 在 Solver 页面,设置开始和停止时间,选择求解器和指定 求解器(solver)的参数,另外还可以选择一些输出选项。 • 在 Solver options 中, SIMULINK 模型的仿真涉及到一组 常微分方程(ODEs)的数值积分。如果模型是连续系统, 使用ode45方法;如果模型不是连续系统,使用discrete方法。 • 在 Workspace I/O 页面,管理对 MATLAB 工作空间的输 入和输出。 • 在 Diagnostics 页面,可以选择在仿真期间显示的警告信息 的层次。 例3_1_2:实现两个正弦信号的相乘。( AM .mdl )
(3)双击空子系统模块Subsystem ,打开其结构模型窗。 (4)从SIMULINK库中拷贝In输入口模块、Out输出口模块、Enable使能 模块到子系统的结构模型窗;把In 模块的输出直接送到Out模块的输入端; Enable模块无须进行任何连接,且本例采用它的缺省设置;便实现了题目 所需使能子系统。 (5)完成M3_ex3_5_2窗口中各模块间的连接。 (6)双击示波器模块,打开显示窗。然后选择M3_ex3_5_2窗口菜单项 【Simulation:Start】,就可看到半波整流后的波形。
8
3.3 仿真运行(续2)
3.3.4 综合算例 (M3_ex3_3_1.m)
x1 x1 2 x 2 2 4 例3_3_1:求非线性系统 x 2 2 x1 x 2
平衡点,并进行稳定性分析。
的相平面轨迹、
本例演示:(A)SIMULINK模型和MATLAB指令的配合使用。 (B)sim , simset , trim 指令的应用。 (C)二阶系统相轨迹的精良图形。
14
3.5.1 用封装的办法创建模块
1。封装模块功能 例3_5_1:封装线性方程 y=mx+b 的模型。 ( M3_ex3_5_1.mdl) 在 SIMULINK 中产生线性方程 y=mx+b 的模型,并生成 mx+b 子系统。 子系统mx+b 包含了一个Gain模块,命名为Slope,其增 益常数为m;一个Constant模块,命名为Intercept,其常数 值参数指定为b。这些参数代表一条直线的斜率和截距。 封装该子系统产生一个用户对话框和图标。对话框包含对 斜率和截距的提示。 用户向封装对话框输入 Slope和 Intercept 的值。封装将这 些封装参数映射给底层模块。
可以得到:
G( s)
X ( s) 0.2 2 U ( s) s 0.2s 0.4
10
3.4.1 连续系统建模(续)
非线性系统建模举例
x1 x1 2 x 2 2 4 例3_4_4:求非线性系统 的相平面轨迹、 x 2 2 x1 x 2
平衡点,并进行稳定性分析。 本例综合演示:
15
3.5.1 用封装的办法创建模块(续)
2。产生封装提示对话框 要产生这个系统的封装,先选取子系统模块,然后从 Edit 菜单中选取 Mask Subsystem 命令。 封装提示对话框开始时大都显示 Mask Editor 对话框的 Initialization 选项卡。 把 Slope 和 Intercept 定义为 Edit 控件。 3。产生封装模块描述和帮助文本 在 Documentation 选项卡中可以定义模块的封装类型、模 块描述和帮助文本。 4。产生模块的图标 可以在 Mask Editor 对话框的 Icon 选项卡中定义图标。
2
3.1 快速入门(续1)
在 SIMULINK 环境中,用户将观察到现实世界中非线性因 素和各种随机因素对系统行为的影响。
在 SIMULINK 环境中,用户可以在仿真进程中改变感兴趣 的参数,实时地观察系统行为的变化。
在MATLAB 5.3 版中,可直接在 SIMULINK 环境中运作的 工具包很多,已覆盖通信、控制、信号处理、DSP、电力系 统等诸多领域,所涉内容专业性极强。 本讲由浅入深地讲述 SIMULINK 对各种数学、工程问题的 建模、仿真和分析的基本方法,采用“算例”作为主体,配以 适量的归纳性表述。 例3_1_1:信号发生器和示波器。
4
3.2 模型的创建和模型文件(续1)
3.2.2 SIMULINK 模型的创建 创建模型文件; 选择对象; 模块的操作; 连线的操作; 对模型的注释; 创建子系统; 仿真的配置 ; 保存模型; 仿真和结果分析。
5
3.2 模型的创建和模型文件(续2)
3.2.3 SIMULINK 模型文件 SIMULINK 除了可以通过图形界面设计模块外 ,也可以 通过直接编写 mdl 文件来设计仿真模型图。 一个有输入和输出的图形界面设计模块。
(A)SIMULINK模型和MATLAB指令的配合使用。 (B)sim , simset , trim 指令的应用。 (C)二阶系统相轨迹的精良图形。 (1)非线性系统由 SIMULINK 模型M3_ex3_4_4 _ mdl 表达。 (2)编写绘制传统状态轨迹(State trajectory)的M文件 M3_ ex 3_4 _4.m
11
3.4.2 离散时间系统和混合系统建模
c 用组合逻辑模块产生 a, b 的“逻辑和”结果 (1) 或”结果 。 c(2)
(1)建立输入输出关系。 (2)建立模型M3_ex3_4_5.mdl 及“逻辑
12
3.4.2 离散时间系统和混合系统建模(续)
多速率离散时间系统:计算机就是这样的系统。它的CPU、 串行/并行控制器、 磁盘驱动器、输入 键盘就采用不同的工作 速率。再如通信系统也是多速率系统。 离散-连续混合系统:在现代控制系统中 ,通常被控的对象 是连续时间的(物理)子系统,而控制器是由逻辑控制器或 计算机构成的离散子系统。对于这种离散-连续混合系统,模 型参数设置页中的几乎所有 Solver 解算方法都能采用 。 可以使该模型及其所有子系统按采样速率着色:连续时间部 分用黑色;离散时间部分用红色;离散、连续混合的子系统 被着黄色。
7
3.3 仿真运行(续1)
3.3.2 通过命令行运行仿真 通过命令行运行仿真与通过菜单运行仿真相比 ,有如下的 一些优点: • 可以不理睬模块中的初始条件(参数 x0 ); • 可以定义任何外部输入(用参数 ut ); • 可以由一个M 文件来启动一个仿真,并且允许模块中的 参数发生改变 。 用来进行仿真的命令有四个: • 使用 set_param 命令:开始、停止或者继续仿真或者更新 模块的方框图。 get_param 命令来检查一个仿真的状态。 • 使用 sim 命令:启动仿真命令; • 使用 simset 命令:用来向 sim 命令产生或者编辑仿真参数 和积分法属性的命令; • 使用 simget 命令:可以得到选项结构体属性和参数。
第三讲 MATLAB的 SIMULINK仿真
3.1 快速入门 3.2 模型的创建和模型文件 3.3 仿真运行 3.4 系统建模 3.5 子系统的创建、封装及受控执行 3.6 常用工具箱简介 3.7 仿真设计实例 3.7.1 幅度调制的仿真 3.7.2 平衡正交调幅与解调
1
3.1 快速入门
SIMULINK是一个进行动态系统建模、仿真和综合分析的 集成软件包。它可以处理的系统包括:线性、非线性系统; 离散、连续及混合系统;单任务、多任务离散事件系统。 在 SIMULINK 提供的图形用户界面GUI上,只要进行鼠标 的简单拖拉操作就可构造出复杂的仿真模型。它外表以方块 图形式呈现,且采用分层结构。 • 从建模角度讲,这既适于自上而下(Top-down)的设计 流程(概念、功能、系统、子系统、直至器件),又适于 自下而上(Bottum-up) 逆程设计。 • 从分析研究角度讲,这种 SIMULINK 模型不仅能让用户 知道具体环节的动态细节,而且能让用户清晰地了解各器 件、各子系统、各系统间的信息交换,掌握各部分之间的 交互影响。
9
3.4 系统建模 3.4.1 连续系统建模
线性系统建模举例 例3_4_1:复位积分器的功用示例。 在仿真启动时,积分器从零开始对 0.5 t 进行积分。当复位口 信号 t-5=0 瞬间,积分器被重置为零。此后,再对0.5 ( t-5 ) 进行积分。 例3_4_2:积分模块直接构造微分方程求解模型。 假设从实际自然界(力学、电学、生态等)或社会中,抽象 出有初始状态为0的二阶微分程 x 0.2 x 0.4 x 0.2u, (t ) u (t )是单位阶跃函数。本例演示如何用积分器直接构搭求解该微 分方程的模型。 例3_4_3:直接利用传递函数模块求解方程。 对二阶微分程进行拉氏变换:s 2 X (s) 0.2sX (s) 0.4 X (s) 0.2U (s)
相关文档
最新文档