Matlab第10章Simulink仿真环境

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章 Simulink仿真环境
1
• Simulink是一个以MATLAB为基础的软件包,用 于对动态系统进行建模和仿真。 • MATLAB提供了许多现成的模块,将它们连接起 来就可以构成动态系统的仿真模型,即可视化建 模。 • 建模以后,以该模型为对象运行Simulink中的仿 真程序,可以对模型进行仿真,并可以随时观察 仿真结果和干预仿真过程。 • Simulink适用于各类系统,由于功能强大、使用 简单方便,已成为应用十分广泛的动态系统仿真 软件。
20
10.3.2 仿真结果分析
• 为了观察仿真结果的变化轨迹可以采用3种方法。 (1)把输出结果送给Scope模块或者XY Graph模块。 Scope模块显示系统输出量对于仿真时间的变化曲线, XY Graph模块显示送到该模块上的两个信号中的一个对 另一个的变化关系。 (2)把仿真结果送到输出端口并作为返回变量,然后使用 MATLAB命令画出该变量的变化曲线。 (3)把输出结果送到To Workspace模块,从而将结果直接 存入工作空间,然后用MATLAB命令画出该变量的变化曲 线。
3
【本章学习目标】
● 熟悉Simulink的操作环境。 ● 掌握绘制系统模型的方法。 掌握子系统模块的建立与封装技术。 了解S函数的功能与设计方法。
4
10.1 初识Simulink—— 一个简单的仿真实例
• 在MATLAB的命令窗口输入Simulink,或单击MATLAB 主窗口工具栏上的“Simulink”命令按钮即可启动 Simulink。SimuliHale Waihona Puke Baiduk启动后会显示如图所示的Simulink 模块库浏览器(Simulink Library Browser)窗口。
17
② 包含时间数据的结构形式。结构变量包含若干个成员,对 结构成员的引用格式为:结构变量名.成员名。在结构中 必须有成员:time和signals。在time成员中包含一个列 向量,表示仿真时间;在signals成员中包含一个数组, 数组中的每个元素对应一个输入端口,并且每个元素必须 包含一个名字同样不能改变的values成员,values成员也 包含一个列向量,对应于输入端口的输入数据。例如,对 于上例,若改为包含数据的结构输入,则命令格式如下: t=(0:0.1:10)'; A.time=t; A.signals(1).values=sin(t); A.signals(2).values=cos(t).*sin(t); A.signals(3).values=exp(-2*t).*sin(t);
19
(3)保存选项(Save options) • 在保存选项栏中的“Format”下拉列表中有矩阵、结构和 包含时间的结构3种选择。“Limit data points to last”用 来限定保存到工作空间中的数据的最大长度。 • 输出选项(Output options)有: ① Refine output(细化输出) ② Produce additional output(产生附加输出) ③ Produce specified output only(仅在指定的时刻产生 输出)
15
1.Solver类设置
(1)设置仿真起始和停止时间(Simulink time) (2)仿真算法的选择(Solver options) 在“Type”编辑框中设定算法类别:固定步长(Fixed-step) 和变步长(Variable-step)算法,在“Solver”编辑框中 选择具体算法。
16
14
10.3 系统的仿真与分析
10.3.1 设置仿真参数 • 打开系统仿真模型,从模型编辑窗口的“Simulation”菜单中选择 “Configuration Parameters”命令,打开一个仿真参数对话框,在 其中可以设置仿真参数。在此对话框中,仿真参数设置被分为8类。 ● Solver类:用于设置仿真起始和停止时间,选择微分方程求解算法并 为其规定参数,以及选择某些输出选项。 ● Data Import/Export类:用于管理工作空间数据的导入和导出。 ● Optimization类:用于设置仿真优化模式。 ● Diagnostics类:用于设置在仿真过程中出现各类错误时发出警告的 等级。 ● Hardware Implementation类:用于设置实现仿真的硬件。 ● Model Referencing类:用于设置参考模型。 ● Simulation Target类:用于设置仿真模型目标。 ● HDL Coder类:用于设置通过自动代码生成技术将设计算法生成HDL 代码的方法
2.Data Import/Export类设置
(1)从工作空间载入数据(Load from workspace) ① 矩阵形式。MATLAB把矩阵的第一列默认为时间向量, 后面的每一列对应每一个输入端口,矩阵的第一行表示某 一时刻各输入端口的输入状态。另外,也可以把矩阵分开 来表示,即MATLAB默认的表示方法[t,u],其中t是一维 时间列向量,表示仿真时间,u是和t长度相等的n维列向 量(n表示输入端口的数量),表示状态值。例如,在命 令窗口中定义t和u: t=(0:0.1:10)'; u=[sin(t),cos(t).*sin(t),exp(-2*t).*sin(t)];
8
(5)设置系统仿真参数。
(6)仿真操作。
9
对比:用plot函数绘制函数曲线
>> t=0:0.005:2; >> y=sin(t)+sin(9*t); >> plot(t,y)
10
10.2 仿真模型的建立
10.2.1 Simulink的基本模块 • 模块是构成系统仿真模型的基本单元。构建系统仿真模型 主要涉及Simulink模块的操作。 • Simulink的模块库提供了大量模块,大体分为两类:
23
方法 2:利用传递函数模块建模。 对方程 y" + 1.5y ' + 10y = 2u'(t) + 10u(t) 两边取 Laplace 变换,得 s2Y(s) + 1.5sY (s) + 10Y (s) = 2sU (s) + 10U (s) 经整理得传递函数:
G( s)
Y ( s) 2s 10 2 U ( s) s 1.5s 10
24
方法 3:利用状态方程模块建模。 若令 x1 = y,x2 = y',那么微分方程 y" + 1.5y' + 10y = 2u '(t) + 10u (t)可写成:
x1 x2 x2 10 x1 1.5 x2 u y 10 x1 2 x2
x ' Ax Bu 写成状态方程为: y Cx Du 1 0 0 式中, A ,B 1 ,C = [10 2],D = 0。 10 1.5
25
10.4 子系统与封装
• 子系统把功能上有关的一些模块集中到一起保存,能够完成 几个模块的功能。 10.4.1 子系统的建立 1.通过Subsystem模块建立子系统 • 新建一个仿真模型,打开Simulink模块库中的Ports & Subsystems模块库,将Subsystem模块添加到模型编辑窗 口中。双击Subsystem模块打开一个Subsystem窗口,窗 口中已经自动添加了一个输入模块和输出模块(表示子系统 的输入端口和输出端口)。将要组合的模块插入到输入模块 和输出模块中间,一个子系统就建好了。若双击该 Subsystem模块,则打开原来的子系统内部结构窗口。 2.通过已有的模块建立子系统 • 先选择要建立子系统的模块,不包括输入端口和输出端口。 选择模型编辑窗口Edit菜单中的Create Subsystem命令,这 样,子系统就建好了,原来的模块变为子系统的图标。
18
(2)保存到工作空间(Save to workspace) • 在Save to workspace栏中,可以选择的选项有:Time (时钟)、States(状态)、Output(输出端口)、 Final state(最终状态)和Signal logging(信号)。同 载入数据的形式一样,保存数据也有矩阵、结构和包含时 间数据的结构3种形式。
6
2.仿真步骤
利用Simulink进行系统仿真的步骤如下: (1)建立系统仿真模型,包括添加模块、设置模块 参数、进行模块连接等操作。 (2)设置仿真参数。 (3)启动仿真并分析仿真结果。
7
3.仿真实例
【例10.1】利用Simulink仿真曲线 y(t ) sin t sin(9t ) 。 • 正弦信号由信号源模块库(Sources)中的Sine Wave模 块提供,求和用数学运算模块库(Math Operations)中 的数学函数模块(Add)产生,再用信号输出模块库 (Sinks)中的示波器模块(Scope)输出波形,操作步 骤如下: (1)打开一个名为untitled的模型编辑窗口。 (2)将所需模块添加到模型中。 (3)用连线将各个模块连接起来组成系统仿真模型。 (4)设置模块参数并连接各个模块组成仿真模型。 模型建好后,将模型以模型文件的 格式(扩展名为.mdl)存盘。
2
傅科摆
为了证明地球在自转,法国物理学家傅科(1819— 1868)于1851年做了一次成功的摆动实验,傅科摆由此 而得名。实验在法国巴黎先贤祠最高的圆顶下方进行,摆 长67米,摆锤重28公斤,悬挂 点经过特殊设计使摩擦减 少到最低限度。这种摆惯性和动量大,因而基本不受地球 自转影响而自行摆动,并且摆动时间很长。在傅科摆试验 中,人们看到,摆动过程中摆动平面沿顺时针方向缓缓转 动,摆动方向不断变化。分析这种现象,摆在摆动平面方 向上并没有受到外力作用,按照惯性定律,摆动的空间方 向不会改变,因而可知,这种摆动方向的变化,是由于观 察者所在的地球沿着逆时针方向转动的结果,地球上的观 察者看到相对运动现象,从而有力地证明了地球是在自转。
5
1.模型元素
一个典型的Simulinnk模型包括以下3种元素: ● 信号源(Source):可以是常量(Const)、时 间(Clock)、正弦波(Sine Wave)、锯齿(Step) 波等。 ● 被模拟的系统模块:如数学运算(Math Operations)模块、连续(Continuous)系统模块、 离散(Discrete)系统模块等。 ● 信号输出(Sink):信号可以在示波器 (Scope)、图形(XY Graph)记录仪上显示,也 可以存储到文件(To File)、导出到工作空间(To Workspace)。
– 基本模块库 – 专业模块库
11
10.2.2 模块操作
1.添加与删除模块 2.选取模块 3.复制模块 4.模块外形的调整 5.模块名的处理
12
10.2.3 模块的连接
1.连接两个模块 2.模块间连线的调整 3.连线的分支 4.标注连线
13
10.2.4 模块的参数和属性设置
1.模块的参数设置 2.模块的属性设置 ① Description:对该模块在模型中的用法进行说明。 ② Priority:规定该模块在模型中相对于其他模块执行的优 先顺序。 ③ Tag:用户为模块添加的文本格式的标记。 • “Block Annotation”选项卡中指定在该模块的图标下显 示模块的哪个参数。“Callbacks”选项卡中指定当对该模 块实施某种操作时需要执行的MATLAB命令或程序。
22
10.3.3 系统仿真实例
【例10.3】有初始状态为0的二阶微分方程 y" + 1.5y' + 10y = 2u'(t) + 10u(t),其中u(t)是单位阶跃函数,试建立 系统模型并仿真。 方法1:用微分/积分器直接构造求解微分方程的模型。 把原微分方程改写为 y" = 2u' (t) + 10u(t) − 1.5y' − 10y u经微分作用得u',y"经积分作用得y',y'再经积分模块作用就得y,而u'、 u、y'和y经代数运算又产生y",据此可以建立系统模型并仿真。 (1)利用Simulink模块库中的基本模块建立系统模型 (2)设置系统仿真参数。在模型编辑窗口的Simulation stop time栏把 仿真的停止时间设置为5。 (3)仿真操作。
21
【例10.2】利用Simulink仿真求I = x 3dx 0 首先打开一个模型编辑窗口,将所需模块添加到模型中。 设置模块参数并连接各个模块组成仿真模型。
2
设置系统仿真停止时间为2s。单击模型编辑窗口中的Start simulation按钮或选择模型编辑窗口Simulation菜单中的 Start命令开始系统仿真。系统仿真结束后,显示模块 Display,显示仿真结果为4。
相关文档
最新文档